@24i/bigscreen-sdk 0.9.9-alpha.2147
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.
- package/README.md +47 -0
- package/package.json +272 -0
- package/packages/adobe-heartbeat/README.md +46 -0
- package/packages/adobe-heartbeat/src/AdobeHeartbeat.ts +244 -0
- package/packages/adobe-heartbeat/src/__external__/Adobe/Adobe.d.ts +24 -0
- package/packages/adobe-heartbeat/src/__external__/Adobe/MediaSDK.min.d.ts +126 -0
- package/packages/adobe-heartbeat/src/__external__/Adobe/MediaSDK.min.js +76 -0
- package/packages/adobe-heartbeat/src/index.ts +5 -0
- package/packages/adobe-heartbeat/src/types.ts +67 -0
- package/packages/animations/README.md +74 -0
- package/packages/animations/src/AnimationUtils.ts +232 -0
- package/packages/animations/src/JSAnimations.ts +142 -0
- package/packages/animations/src/index.ts +3 -0
- package/packages/announcement-banner/README.md +49 -0
- package/packages/announcement-banner/examples/example1.gif +0 -0
- package/packages/announcement-banner/src/AnnouncementBanner.scss +8 -0
- package/packages/announcement-banner/src/AnnouncementBanner.tsx +136 -0
- package/packages/announcement-banner/src/index.ts +1 -0
- package/packages/async-image/README.md +47 -0
- package/packages/async-image/src/AsyncImage.tsx +96 -0
- package/packages/async-image/src/index.ts +2 -0
- package/packages/conviva/README.md +48 -0
- package/packages/conviva/src/ConvivaSDK.ts +38 -0
- package/packages/conviva/src/index.ts +1 -0
- package/packages/conviva/src/theoPlugin/ConvivaConviguration.ts +19 -0
- package/packages/conviva/src/theoPlugin/__external__/Conviva_4.0.15.js +699 -0
- package/packages/conviva/src/theoPlugin/__external__/convivaTheoPlugin.d.ts +7 -0
- package/packages/conviva/src/theoPlugin/__external__/convivaTheoPlugin.js +636 -0
- package/packages/conviva/src/theoPlugin/convivaTheoPluginWrapper.ts +61 -0
- package/packages/conviva/src/theoPlugin/index.ts +2 -0
- package/packages/developer-tools/DeveloperConsole/README.md +114 -0
- package/packages/developer-tools/DeveloperConsole/index.ts +3 -0
- package/packages/developer-tools/DeveloperConsole/unstyled.ts +1 -0
- package/packages/developer-tools/DeveloperToolsService/README.md +54 -0
- package/packages/developer-tools/DeveloperToolsService/index.ts +3 -0
- package/packages/developer-tools/DeveloperToolsService/unstyled.ts +1 -0
- package/packages/developer-tools/EnvironmentSelection/README.md +77 -0
- package/packages/developer-tools/EnvironmentSelection/index.ts +3 -0
- package/packages/developer-tools/EnvironmentSelection/unstyled.ts +1 -0
- package/packages/developer-tools/PlayerDebugWindow/README.md +65 -0
- package/packages/developer-tools/PlayerDebugWindow/index.ts +3 -0
- package/packages/developer-tools/PlayerDebugWindow/unstyled.ts +1 -0
- package/packages/developer-tools/README.md +24 -0
- package/packages/developer-tools/TechnicalInfo/README.md +90 -0
- package/packages/developer-tools/TechnicalInfo/index.ts +9 -0
- package/packages/developer-tools/TechnicalInfo/unstyled.ts +6 -0
- package/packages/developer-tools/src/DeveloperConsole/ControlButton.tsx +16 -0
- package/packages/developer-tools/src/DeveloperConsole/DeveloperConsole.tsx +388 -0
- package/packages/developer-tools/src/DeveloperConsole/Panel.tsx +108 -0
- package/packages/developer-tools/src/DeveloperConsole/PanelMessage.tsx +33 -0
- package/packages/developer-tools/src/DeveloperConsole/helpers/Queue.ts +38 -0
- package/packages/developer-tools/src/DeveloperConsole/helpers/index.ts +2 -0
- package/packages/developer-tools/src/DeveloperConsole/helpers/instrumentHandler.ts +165 -0
- package/packages/developer-tools/src/DeveloperConsole/index.ts +2 -0
- package/packages/developer-tools/src/DeveloperConsole/initDeveloperConsole.tsx +8 -0
- package/packages/developer-tools/src/DeveloperConsole/styles/DeveloperConsole/DeveloperConsole.scss +91 -0
- package/packages/developer-tools/src/DeveloperConsole/styles/DeveloperConsole/DeveloperConsole.styles.1080.scss +2 -0
- package/packages/developer-tools/src/DeveloperConsole/styles/DeveloperConsole/DeveloperConsole.styles.scss +2 -0
- package/packages/developer-tools/src/DeveloperConsole/styles/DeveloperConsole/_sizes.1080.scss +16 -0
- package/packages/developer-tools/src/DeveloperConsole/styles/DeveloperConsole/_sizes.scss +16 -0
- package/packages/developer-tools/src/DeveloperConsole/styles/Panel/Panel.scss +87 -0
- package/packages/developer-tools/src/DeveloperConsole/styles/Panel/Panel.styles.1080.scss +2 -0
- package/packages/developer-tools/src/DeveloperConsole/styles/Panel/Panel.styles.scss +2 -0
- package/packages/developer-tools/src/DeveloperConsole/styles/Panel/_sizes.1080.scss +9 -0
- package/packages/developer-tools/src/DeveloperConsole/styles/Panel/_sizes.scss +9 -0
- package/packages/developer-tools/src/DeveloperConsole/styles.ts +2 -0
- package/packages/developer-tools/src/DeveloperConsole/types.ts +49 -0
- package/packages/developer-tools/src/DeveloperToolsService/DeveloperToolItem.tsx +21 -0
- package/packages/developer-tools/src/DeveloperToolsService/DeveloperToolsList.tsx +114 -0
- package/packages/developer-tools/src/DeveloperToolsService/DeveloperToolsService.tsx +122 -0
- package/packages/developer-tools/src/DeveloperToolsService/index.ts +1 -0
- package/packages/developer-tools/src/DeveloperToolsService/styles/DeveloperToolsService.scss +64 -0
- package/packages/developer-tools/src/DeveloperToolsService/styles/DeveloperToolsService.styles.1080.scss +2 -0
- package/packages/developer-tools/src/DeveloperToolsService/styles/DeveloperToolsService.styles.animated.1080.scss +3 -0
- package/packages/developer-tools/src/DeveloperToolsService/styles/DeveloperToolsService.styles.animated.scss +4 -0
- package/packages/developer-tools/src/DeveloperToolsService/styles/DeveloperToolsService.styles.scss +2 -0
- package/packages/developer-tools/src/DeveloperToolsService/styles/_animated.scss +5 -0
- package/packages/developer-tools/src/DeveloperToolsService/styles/_sizes.1080.scss +16 -0
- package/packages/developer-tools/src/DeveloperToolsService/styles/_sizes.scss +16 -0
- package/packages/developer-tools/src/DeveloperToolsService/styles.ts +1 -0
- package/packages/developer-tools/src/EnvironmentSelection/EnvironmentList.tsx +93 -0
- package/packages/developer-tools/src/EnvironmentSelection/EnvironmentListItem.tsx +73 -0
- package/packages/developer-tools/src/EnvironmentSelection/EnvironmentSelection.tsx +100 -0
- package/packages/developer-tools/src/EnvironmentSelection/assets/checkmark.svg +18 -0
- package/packages/developer-tools/src/EnvironmentSelection/assets/development-stripe.png +0 -0
- package/packages/developer-tools/src/EnvironmentSelection/config.ts +43 -0
- package/packages/developer-tools/src/EnvironmentSelection/constants.ts +1 -0
- package/packages/developer-tools/src/EnvironmentSelection/index.ts +2 -0
- package/packages/developer-tools/src/EnvironmentSelection/sizes.1080.ts +9 -0
- package/packages/developer-tools/src/EnvironmentSelection/sizes.ts +9 -0
- package/packages/developer-tools/src/EnvironmentSelection/styles/EnvironmentSelection.scss +107 -0
- package/packages/developer-tools/src/EnvironmentSelection/styles/EnvironmentSelection.styles.1080.scss +2 -0
- package/packages/developer-tools/src/EnvironmentSelection/styles/EnvironmentSelection.styles.animated.1080.scss +3 -0
- package/packages/developer-tools/src/EnvironmentSelection/styles/EnvironmentSelection.styles.animated.scss +3 -0
- package/packages/developer-tools/src/EnvironmentSelection/styles/EnvironmentSelection.styles.scss +2 -0
- package/packages/developer-tools/src/EnvironmentSelection/styles/_animated.scss +9 -0
- package/packages/developer-tools/src/EnvironmentSelection/styles/_sizes.1080.scss +25 -0
- package/packages/developer-tools/src/EnvironmentSelection/styles/_sizes.scss +25 -0
- package/packages/developer-tools/src/EnvironmentSelection/styles.ts +1 -0
- package/packages/developer-tools/src/EnvironmentSelection/types.ts +10 -0
- package/packages/developer-tools/src/IDeveloperTool.ts +14 -0
- package/packages/developer-tools/src/PlayerDebugWindow/PlayerDebugWindow.tsx +115 -0
- package/packages/developer-tools/src/PlayerDebugWindow/constants.ts +113 -0
- package/packages/developer-tools/src/PlayerDebugWindow/index.ts +1 -0
- package/packages/developer-tools/src/PlayerDebugWindow/styles/PlayerDebugWindow.scss +29 -0
- package/packages/developer-tools/src/PlayerDebugWindow/styles/PlayerDebugWindow.styles.1080.scss +2 -0
- package/packages/developer-tools/src/PlayerDebugWindow/styles/PlayerDebugWindow.styles.scss +2 -0
- package/packages/developer-tools/src/PlayerDebugWindow/styles/_sizes.1080.scss +11 -0
- package/packages/developer-tools/src/PlayerDebugWindow/styles/_sizes.scss +11 -0
- package/packages/developer-tools/src/PlayerDebugWindow/styles.ts +1 -0
- package/packages/developer-tools/src/TechnicalInfo/ITechnicalInfoProvider.ts +5 -0
- package/packages/developer-tools/src/TechnicalInfo/TechnicalInfo.tsx +123 -0
- package/packages/developer-tools/src/TechnicalInfo/TechnicalInfoDetail.tsx +76 -0
- package/packages/developer-tools/src/TechnicalInfo/TechnicalInfoProvider.ts +318 -0
- package/packages/developer-tools/src/TechnicalInfo/icons/arrow-down.svg +18 -0
- package/packages/developer-tools/src/TechnicalInfo/icons/arrow-up.svg +18 -0
- package/packages/developer-tools/src/TechnicalInfo/index.ts +5 -0
- package/packages/developer-tools/src/TechnicalInfo/sizes.1080.ts +1 -0
- package/packages/developer-tools/src/TechnicalInfo/sizes.ts +1 -0
- package/packages/developer-tools/src/TechnicalInfo/styles/TechnicalInfo.scss +186 -0
- package/packages/developer-tools/src/TechnicalInfo/styles/TechnicalInfo.styles.1080.scss +2 -0
- package/packages/developer-tools/src/TechnicalInfo/styles/TechnicalInfo.styles.animated.1080.scss +3 -0
- package/packages/developer-tools/src/TechnicalInfo/styles/TechnicalInfo.styles.animated.scss +3 -0
- package/packages/developer-tools/src/TechnicalInfo/styles/TechnicalInfo.styles.scss +2 -0
- package/packages/developer-tools/src/TechnicalInfo/styles/_animated.scss +16 -0
- package/packages/developer-tools/src/TechnicalInfo/styles/_sizes.1080.scss +50 -0
- package/packages/developer-tools/src/TechnicalInfo/styles/_sizes.scss +50 -0
- package/packages/developer-tools/src/TechnicalInfo/styles.ts +1 -0
- package/packages/developer-tools/src/TechnicalInfo/translations.ts +75 -0
- package/packages/device/README.md +219 -0
- package/packages/device/keymap.ts +1 -0
- package/packages/device/resolver/index.ts +2 -0
- package/packages/device/resolver/keymap.ts +1 -0
- package/packages/device/src/DeviceEventMap.ts +1 -0
- package/packages/device/src/device.ts +6 -0
- package/packages/device/src/driver/index.entone.ts +1 -0
- package/packages/device/src/driver/index.hbbtv.tv.ts +1 -0
- package/packages/device/src/driver/index.kreatv.ts +1 -0
- package/packages/device/src/driver/index.saphi.tv.ts +1 -0
- package/packages/device/src/driver/index.tizen.tv.ts +1 -0
- package/packages/device/src/driver/index.ts +1 -0
- package/packages/device/src/driver/index.webos.tv.ts +1 -0
- package/packages/device/src/getKeyDigit.ts +35 -0
- package/packages/device/src/getKeyMap.ts +4 -0
- package/packages/device/src/index.ts +8 -0
- package/packages/device/src/isClickOrEnter.ts +3 -0
- package/packages/device/src/resolver/index.ts +2 -0
- package/packages/device/src/resolver/resolver.ts +60 -0
- package/packages/digital-clock/README.md +26 -0
- package/packages/digital-clock/src/DigitalClock.tsx +67 -0
- package/packages/digital-clock/src/index.ts +1 -0
- package/packages/driver-base/DeviceBase.md +139 -0
- package/packages/driver-base/README.md +44 -0
- package/packages/driver-base/src/ConnectionType.ts +1 -0
- package/packages/driver-base/src/DeviceBase.ts +218 -0
- package/packages/driver-base/src/KeyMap/Key.ts +41 -0
- package/packages/driver-base/src/KeyMap/KeyMap.ts +386 -0
- package/packages/driver-base/src/KeyMap/generateKeyCodeKeyMap.ts +11 -0
- package/packages/driver-base/src/KeyMap/index.ts +5 -0
- package/packages/driver-base/src/KeyMap/interface.ts +7 -0
- package/packages/driver-base/src/KeyMap/overrideValues.ts +16 -0
- package/packages/driver-base/src/KeyMap/switchByKey.ts +18 -0
- package/packages/driver-base/src/ScreenSize.ts +1 -0
- package/packages/driver-base/src/VolumeRange.ts +5 -0
- package/packages/driver-base/src/bindPreventDefaultEvent.ts +5 -0
- package/packages/driver-base/src/errors.ts +32 -0
- package/packages/driver-base/src/index.ts +10 -0
- package/packages/driver-base/src/loadObject.ts +30 -0
- package/packages/driver-base/src/types/DeviceEvent.ts +9 -0
- package/packages/driver-base/src/types/ExitOptions.ts +1 -0
- package/packages/driver-base/src/types/KeycodeKeyMap.ts +85 -0
- package/packages/driver-base/src/types/ScreenSaverStatus.ts +3 -0
- package/packages/driver-base/src/utils.ts +10 -0
- package/packages/driver-browser/src/DeviceBrowser.ts +170 -0
- package/packages/driver-browser/src/getBrowser.ts +51 -0
- package/packages/driver-browser/src/getOsName.ts +30 -0
- package/packages/driver-browser/src/index.ts +1 -0
- package/packages/driver-browser/src/keymap.ts +14 -0
- package/packages/driver-browser/src/patchSuitestKeys.ts +27 -0
- package/packages/driver-entone/README.md +9 -0
- package/packages/driver-entone/src/DeviceEntone.ts +232 -0
- package/packages/driver-entone/src/IEntone.ts +460 -0
- package/packages/driver-entone/src/constants.ts +73 -0
- package/packages/driver-entone/src/index.ts +1 -0
- package/packages/driver-entone/src/keymap.ts +56 -0
- package/packages/driver-hbbtv/src/DeviceHbbTV.ts +313 -0
- package/packages/driver-hbbtv/src/constants.ts +28 -0
- package/packages/driver-hbbtv/src/deviceInfo.ts +23 -0
- package/packages/driver-hbbtv/src/getVersion.ts +16 -0
- package/packages/driver-hbbtv/src/index.ts +1 -0
- package/packages/driver-hbbtv/src/keymap.ts +45 -0
- package/packages/driver-hbbtv/src/types.ts +366 -0
- package/packages/driver-kreatv/src/DeviceKreaTV.ts +271 -0
- package/packages/driver-kreatv/src/IToi.ts +379 -0
- package/packages/driver-kreatv/src/index.ts +1 -0
- package/packages/driver-kreatv/src/keymap.ts +31 -0
- package/packages/driver-kreatv/src/toi2.ts +107 -0
- package/packages/driver-kreatv/src/toi3.ts +102 -0
- package/packages/driver-kreatv/src/types.ts +35 -0
- package/packages/driver-saphi/src/DeviceSaphi.ts +144 -0
- package/packages/driver-saphi/src/constants.ts +1 -0
- package/packages/driver-saphi/src/formatUserAgent.ts +19 -0
- package/packages/driver-saphi/src/index.ts +1 -0
- package/packages/driver-saphi/src/keymap.ts +64 -0
- package/packages/driver-saphi/src/types.ts +75 -0
- package/packages/driver-tizen/src/DeviceTizen.ts +296 -0
- package/packages/driver-tizen/src/ITizen.ts +212 -0
- package/packages/driver-tizen/src/IWebapis.ts +95 -0
- package/packages/driver-tizen/src/TizenKeys.ts +94 -0
- package/packages/driver-tizen/src/constants.ts +197 -0
- package/packages/driver-tizen/src/index.ts +1 -0
- package/packages/driver-tizen/src/types.ts +14 -0
- package/packages/driver-webos/scripts/exportWebOSTVjs.ts +23 -0
- package/packages/driver-webos/scripts/template.ts +12 -0
- package/packages/driver-webos/src/DeviceWebos.ts +305 -0
- package/packages/driver-webos/src/constants.ts +20 -0
- package/packages/driver-webos/src/index.ts +1 -0
- package/packages/driver-webos/src/keymap.ts +9 -0
- package/packages/driver-webos/src/types.ts +344 -0
- package/packages/driver-webos/src/utils.ts +60 -0
- package/packages/driver-webos/src/webOSTVjs/webOSTVjs-1.2.3/LICENSE-2.0.txt +202 -0
- package/packages/driver-webos/src/webOSTVjs/webOSTVjs-1.2.3/webOSTV-dev.js +1 -0
- package/packages/driver-webos/src/webOSTVjs/webOSTVjs-1.2.3/webOSTV.js +1 -0
- package/packages/driver-xbox/__external__/winjs/directionalnavigation-1.0.0.0.js +1015 -0
- package/packages/driver-xbox/src/DeviceXbox.ts +231 -0
- package/packages/driver-xbox/src/index.ts +1 -0
- package/packages/driver-xbox/src/interfaces.ts +138 -0
- package/packages/driver-xbox/src/keymap.ts +96 -0
- package/packages/driver-xbox/src/utils.ts +23 -0
- package/packages/epg/IMPLEMENTATION.md +228 -0
- package/packages/epg/MockGenerator.md +102 -0
- package/packages/epg/README.md +582 -0
- package/packages/epg/src/v2/Cell.tsx +208 -0
- package/packages/epg/src/v2/CellsManager.ts +1 -0
- package/packages/epg/src/v2/DataManager.ts +301 -0
- package/packages/epg/src/v2/DatePicker.tsx +104 -0
- package/packages/epg/src/v2/DateToast/DateToast.scss +28 -0
- package/packages/epg/src/v2/DateToast/DateToast.styles.1080.scss +2 -0
- package/packages/epg/src/v2/DateToast/DateToast.styles.scss +2 -0
- package/packages/epg/src/v2/DateToast/DateToast.tsx +87 -0
- package/packages/epg/src/v2/DateToast/_sizes.1080.scss +7 -0
- package/packages/epg/src/v2/DateToast/_sizes.scss +7 -0
- package/packages/epg/src/v2/DateToast/index.tsx +1 -0
- package/packages/epg/src/v2/DateToast/styles.ts +1 -0
- package/packages/epg/src/v2/Day.tsx +30 -0
- package/packages/epg/src/v2/Epg.tsx +444 -0
- package/packages/epg/src/v2/Header.tsx +41 -0
- package/packages/epg/src/v2/InputEvents.ts +294 -0
- package/packages/epg/src/v2/MockGenerator/config.1080.ts +2 -0
- package/packages/epg/src/v2/MockGenerator/config.ts +2 -0
- package/packages/epg/src/v2/MockGenerator/generator.ts +173 -0
- package/packages/epg/src/v2/MockGenerator/index.ts +2 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_1.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_10.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_11.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_12.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_13.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_14.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_15.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_16.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_17.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_18.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_19.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_2.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_20.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_3.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_4.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_5.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_6.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_7.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_8.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/assets/channel_logo_9.png +0 -0
- package/packages/epg/src/v2/MockGenerator/mocks/data.ts +102 -0
- package/packages/epg/src/v2/MockGenerator/types.ts +25 -0
- package/packages/epg/src/v2/MockGenerator/utils.ts +28 -0
- package/packages/epg/src/v2/MouseNavigation/MouseNavigation.tsx +88 -0
- package/packages/epg/src/v2/MouseNavigation/MouseNavigationFallback.ts +4 -0
- package/packages/epg/src/v2/MouseNavigation/index.tizen.tv.ts +1 -0
- package/packages/epg/src/v2/MouseNavigation/index.ts +1 -0
- package/packages/epg/src/v2/MouseNavigation/index.web.ts +1 -0
- package/packages/epg/src/v2/MouseNavigation/index.webos.tv.ts +1 -0
- package/packages/epg/src/v2/NowLine.tsx +66 -0
- package/packages/epg/src/v2/Program.tsx +58 -0
- package/packages/epg/src/v2/ProgramInfo/ProgramInfo.scss +67 -0
- package/packages/epg/src/v2/ProgramInfo/ProgramInfo.styles.1080.scss +3 -0
- package/packages/epg/src/v2/ProgramInfo/ProgramInfo.styles.animated.1080.scss +2 -0
- package/packages/epg/src/v2/ProgramInfo/ProgramInfo.styles.animated.scss +2 -0
- package/packages/epg/src/v2/ProgramInfo/ProgramInfo.styles.scss +3 -0
- package/packages/epg/src/v2/ProgramInfo/ProgramInfo.tsx +149 -0
- package/packages/epg/src/v2/ProgramInfo/_animated.scss +8 -0
- package/packages/epg/src/v2/ProgramInfo/_mixins.scss +5 -0
- package/packages/epg/src/v2/ProgramInfo/_sizes.1080.scss +21 -0
- package/packages/epg/src/v2/ProgramInfo/_sizes.scss +21 -0
- package/packages/epg/src/v2/ProgramInfo/index.ts +1 -0
- package/packages/epg/src/v2/ProgramInfo/rtl.scss +7 -0
- package/packages/epg/src/v2/ProgramInfo/sizes.1080.ts +3 -0
- package/packages/epg/src/v2/ProgramInfo/sizes.ts +3 -0
- package/packages/epg/src/v2/ProgramInfo/styles.ts +1 -0
- package/packages/epg/src/v2/ProgramInfo/utils.ts +27 -0
- package/packages/epg/src/v2/Row.tsx +132 -0
- package/packages/epg/src/v2/RowsManager.ts +1 -0
- package/packages/epg/src/v2/TimeManager.ts +58 -0
- package/packages/epg/src/v2/Timeline.ts +1 -0
- package/packages/epg/src/v2/TimelineSection.tsx +47 -0
- package/packages/epg/src/v2/basic/CellsManager.tsx +295 -0
- package/packages/epg/src/v2/basic/RowsManager.tsx +500 -0
- package/packages/epg/src/v2/basic/Timeline.tsx +88 -0
- package/packages/epg/src/v2/index.ts +1 -0
- package/packages/epg/src/v2/interface.ts +1489 -0
- package/packages/epg/src/v2/sizes.1080.ts +2 -0
- package/packages/epg/src/v2/sizes.ts +2 -0
- package/packages/epg/src/v2/styles/Basic/Basic.scss +116 -0
- package/packages/epg/src/v2/styles/Basic/index.ts +1 -0
- package/packages/epg/src/v2/styles/Whitelabel/index.ts +1 -0
- package/packages/epg/src/v2/utils.ts +40 -0
- package/packages/events-manager/src/EventsManager.ts +56 -0
- package/packages/events-manager/src/index.ts +2 -0
- package/packages/floating-focus/README.md +64 -0
- package/packages/floating-focus/src/FloatingFocus.ts +106 -0
- package/packages/floating-focus/src/Horizontal.tsx +20 -0
- package/packages/floating-focus/src/Vertical.tsx +20 -0
- package/packages/floating-focus/src/index.ts +4 -0
- package/packages/floating-focus/src/types.ts +20 -0
- package/packages/floating-focus/src/utils.ts +43 -0
- package/packages/focus/README.md +294 -0
- package/packages/focus/src/IFocusable.ts +3 -0
- package/packages/focus/src/Layout/Base.tsx +128 -0
- package/packages/focus/src/Layout/Horizontal.ts +12 -0
- package/packages/focus/src/Layout/Matrix.tsx +305 -0
- package/packages/focus/src/Layout/Vertical.ts +12 -0
- package/packages/focus/src/Layout/__test__/Base.spec.ts +162 -0
- package/packages/focus/src/Layout/__test__/Horizontal.spec.ts +46 -0
- package/packages/focus/src/Layout/__test__/Matrix.spec.ts +261 -0
- package/packages/focus/src/Layout/__test__/Vertical.spec.ts +46 -0
- package/packages/focus/src/Layout/__test__/shared.ts +15 -0
- package/packages/focus/src/Layout/constants.ts +10 -0
- package/packages/focus/src/Layout/types.ts +6 -0
- package/packages/focus/src/__test__/candidate.spec.tsx +245 -0
- package/packages/focus/src/__test__/focusFirstExisting.spec.tsx +21 -0
- package/packages/focus/src/__test__/refocusAfterHashChange.spec.tsx +41 -0
- package/packages/focus/src/__test__/safeFocus.spec.tsx +41 -0
- package/packages/focus/src/candidate.ts +106 -0
- package/packages/focus/src/focusFirstExisting.ts +13 -0
- package/packages/focus/src/index.ts +15 -0
- package/packages/focus/src/refocusAfterHashChange.ts +19 -0
- package/packages/focus/src/safeFocus.ts +15 -0
- package/packages/gallup/README.md +27 -0
- package/packages/gallup/src/Gallup.ts +80 -0
- package/packages/gallup/src/GallupMock.ts +7 -0
- package/packages/gallup/src/__external__/SpringStreams.d.ts +39 -0
- package/packages/gallup/src/__external__/SpringStreams.js +1 -0
- package/packages/gallup/src/index.ts +1 -0
- package/packages/grid/BasicGrid/README.md +78 -0
- package/packages/grid/BasicGrid/examples/example1.gif +0 -0
- package/packages/grid/BasicGrid/examples/example2.gif +0 -0
- package/packages/grid/BasicGrid/index.ts +1 -0
- package/packages/grid/FirstOnlyGrid/README.md +43 -0
- package/packages/grid/FirstOnlyGrid/examples/example1.gif +0 -0
- package/packages/grid/FirstOnlyGrid/index.ts +1 -0
- package/packages/grid/FixedToEndGrid/README.md +45 -0
- package/packages/grid/FixedToEndGrid/examples/example1.gif +0 -0
- package/packages/grid/FixedToEndGrid/index.ts +1 -0
- package/packages/grid/Item/index.ts +1 -0
- package/packages/grid/README.md +150 -0
- package/packages/grid/src/Base/Base.mouse.tsx +24 -0
- package/packages/grid/src/Base/Base.tsx +450 -0
- package/packages/grid/src/Base/index.tizen.tv.ts +1 -0
- package/packages/grid/src/Base/index.ts +1 -0
- package/packages/grid/src/Base/index.webos.tv.ts +1 -0
- package/packages/grid/src/Base/index.webtv.ts +1 -0
- package/packages/grid/src/BasicGrid/BasicGrid.tsx +137 -0
- package/packages/grid/src/BasicGrid/config.ts +13 -0
- package/packages/grid/src/FastFocusingOptimizer/FastFocusingOptimizer.ts +54 -0
- package/packages/grid/src/FirstOnlyGrid/FirstOnlyGrid.tsx +110 -0
- package/packages/grid/src/FirstOnlyGrid/config.ts +13 -0
- package/packages/grid/src/FirstOnlyGrid/controller.ts +10 -0
- package/packages/grid/src/FixedToEndGrid/FixedToEndGrid.tsx +112 -0
- package/packages/grid/src/FixedToEndGrid/config.ts +13 -0
- package/packages/grid/src/FixedToEndGrid/controller.ts +36 -0
- package/packages/grid/src/UnifiedGridController/UnifiedGridController.ts +550 -0
- package/packages/grid/src/UnifiedGridController/index.ts +2 -0
- package/packages/grid/src/UnifiedGridController/interface.ts +92 -0
- package/packages/grid/src/animate.animated.ts +1 -0
- package/packages/grid/src/animate.ts +1 -0
- package/packages/grid/src/interface.ts +28 -0
- package/packages/grid/src/mocks/index.tsx +41 -0
- package/packages/grid/src/types.ts +63 -0
- package/packages/grid/src/utils.ts +69 -0
- package/packages/i18n/README.md +460 -0
- package/packages/i18n/src/I18n.ts +246 -0
- package/packages/i18n/src/Translation.tsx +36 -0
- package/packages/i18n/src/addResourceBundle.ts +73 -0
- package/packages/i18n/src/direction.ts +33 -0
- package/packages/i18n/src/index.ts +4 -0
- package/packages/i18n/src/isRtl.ts +3 -0
- package/packages/i18n/src/middlewares/i18next/Context/Context.ts +25 -0
- package/packages/i18n/src/middlewares/i18next/Context/index.ts +1 -0
- package/packages/i18n/src/middlewares/i18next/Interpolation/Interpolation.ts +95 -0
- package/packages/i18n/src/middlewares/i18next/Interpolation/index.ts +1 -0
- package/packages/i18n/src/middlewares/i18next/Nesting/Nesting.ts +38 -0
- package/packages/i18n/src/middlewares/i18next/Nesting/index.ts +1 -0
- package/packages/i18n/src/middlewares/i18next/Plurals/Plurals.ts +123 -0
- package/packages/i18n/src/middlewares/i18next/Plurals/Resolvers.ts +124 -0
- package/packages/i18n/src/middlewares/i18next/Plurals/index.ts +1 -0
- package/packages/i18n/src/middlewares/i18next/Plurals/types.ts +6 -0
- package/packages/i18n/src/middlewares/icu/DateInterpolation/DateInterpolation.ts +64 -0
- package/packages/i18n/src/middlewares/icu/DateInterpolation/index.ts +1 -0
- package/packages/i18n/src/middlewares/icu/Interpolation/Interpolation.ts +39 -0
- package/packages/i18n/src/middlewares/icu/Interpolation/index.ts +1 -0
- package/packages/i18n/src/middlewares/icu/NumberInterpolation/NumberInterpolation.ts +41 -0
- package/packages/i18n/src/middlewares/icu/NumberInterpolation/index.ts +1 -0
- package/packages/i18n/src/middlewares/icu/Plurals/Plurals.ts +65 -0
- package/packages/i18n/src/middlewares/icu/Plurals/Resolvers.ts +130 -0
- package/packages/i18n/src/middlewares/icu/Plurals/index.ts +1 -0
- package/packages/i18n/src/middlewares/icu/Plurals/types.ts +15 -0
- package/packages/i18n/src/middlewares/icu/Select/Select.ts +36 -0
- package/packages/i18n/src/middlewares/icu/Select/index.ts +1 -0
- package/packages/i18n/src/middlewares/icu/TimeInterpolation/TimeInterpolation.ts +65 -0
- package/packages/i18n/src/middlewares/icu/TimeInterpolation/index.ts +1 -0
- package/packages/i18n/src/middlewares/icu/shared/hasVariable.ts +5 -0
- package/packages/i18n/src/middlewares/icu/shared/matchSwitchCase.ts +80 -0
- package/packages/i18n/src/middlewares/icu/shared/unwrap.ts +1 -0
- package/packages/i18n/src/pluralsCommon/PluralsHelper.ts +54 -0
- package/packages/i18n/src/pluralsCommon/ResolverByLanguage.ts +129 -0
- package/packages/i18n/src/t.tsx +6 -0
- package/packages/i18n/src/typedTranslate.ts +31 -0
- package/packages/i18n/src/types.ts +66 -0
- package/packages/i18n/src/utils.ts +76 -0
- package/packages/icon/README.md +107 -0
- package/packages/icon/src/Icon.tsx +49 -0
- package/packages/icon/src/index.ts +1 -0
- package/packages/ime/README.md +72 -0
- package/packages/ime/src/IKeyboard.ts +6 -0
- package/packages/ime/src/IKeyboardEvent.ts +7 -0
- package/packages/ime/src/ImeManager.ts +33 -0
- package/packages/ime/src/SystemKeyboard/SystemKeyboard.ts +33 -0
- package/packages/ime/src/SystemKeyboard/SystemKeyboardBase.ts +98 -0
- package/packages/ime/src/SystemKeyboard/TizenSystemKeyboard.ts +66 -0
- package/packages/ime/src/SystemKeyboard/WebosSystemKeyboard.ts +74 -0
- package/packages/ime/src/SystemKeyboard/index.tizen.tv.ts +1 -0
- package/packages/ime/src/SystemKeyboard/index.ts +1 -0
- package/packages/ime/src/SystemKeyboard/index.webos.tv.ts +1 -0
- package/packages/ime/src/index.ts +3 -0
- package/packages/input/README.md +62 -0
- package/packages/input/src/Input.scss +5 -0
- package/packages/input/src/Input.tsx +216 -0
- package/packages/input/src/handleOverflow.ts +16 -0
- package/packages/input/src/index.ts +1 -0
- package/packages/interactable/README.md +37 -0
- package/packages/interactable/src/Interactable.tsx +27 -0
- package/packages/interactable/src/index.ts +1 -0
- package/packages/interactable/src/interface.ts +6 -0
- package/packages/ipify/README.md +30 -0
- package/packages/ipify/src/index.ts +1 -0
- package/packages/ipify/src/ipify.ts +41 -0
- package/packages/jsx/README.md +388 -0
- package/packages/jsx/src/Component.ts +68 -0
- package/packages/jsx/src/createRef.ts +5 -0
- package/packages/jsx/src/forwardRef.ts +8 -0
- package/packages/jsx/src/index.ts +31 -0
- package/packages/jsx/src/jsx-runtime.ts +5 -0
- package/packages/jsx/src/manipulation/attachNode.ts +30 -0
- package/packages/jsx/src/manipulation/attachNodeBefore.ts +44 -0
- package/packages/jsx/src/manipulation/clearNode.ts +14 -0
- package/packages/jsx/src/manipulation/detachNode.ts +26 -0
- package/packages/jsx/src/manipulation/index.ts +7 -0
- package/packages/jsx/src/manipulation/removeNode.ts +18 -0
- package/packages/jsx/src/manipulation/replaceNode.ts +42 -0
- package/packages/jsx/src/manipulation/swapNodes.ts +53 -0
- package/packages/jsx/src/mount/guards.ts +26 -0
- package/packages/jsx/src/mount/handleLifecycle.ts +71 -0
- package/packages/jsx/src/mount/index.ts +1 -0
- package/packages/jsx/src/mount/lifecycle.ts +38 -0
- package/packages/jsx/src/mount/lifecycleHelpers.ts +29 -0
- package/packages/jsx/src/mount/mount.ts +141 -0
- package/packages/jsx/src/mount/namespaces.ts +7 -0
- package/packages/jsx/src/mount/props.ts +121 -0
- package/packages/jsx/src/nodeUtils.ts +69 -0
- package/packages/jsx/src/setText.ts +15 -0
- package/packages/jsx/src/test-utils/MountedComponent.ts +50 -0
- package/packages/jsx/src/test-utils/README.md +73 -0
- package/packages/jsx/src/test-utils/click.ts +7 -0
- package/packages/jsx/src/test-utils/enter.ts +4 -0
- package/packages/jsx/src/test-utils/index.ts +5 -0
- package/packages/jsx/src/test-utils/keydown.ts +21 -0
- package/packages/jsx/src/test-utils/shallow.ts +33 -0
- package/packages/jsx/src/test-utils/spec-utils.ts +6 -0
- package/packages/jsx/src/textNode.ts +9 -0
- package/packages/jsx/src/types.ts +128 -0
- package/packages/jsx/src/utils.ts +35 -0
- package/packages/jsx/src/virtualDOM.ts +121 -0
- package/packages/key-sequence/README.md +44 -0
- package/packages/key-sequence/src/KeySequence.ts +56 -0
- package/packages/key-sequence/src/arrayEndsWithKeyCombo.ts +22 -0
- package/packages/key-sequence/src/index.ts +1 -0
- package/packages/key-sequence/src/types.ts +13 -0
- package/packages/keyboard/README.md +235 -0
- package/packages/keyboard/src/AndroidKeyboard/Keyboard.scss +140 -0
- package/packages/keyboard/src/AndroidKeyboard/Keyboard.styles.1080.scss +2 -0
- package/packages/keyboard/src/AndroidKeyboard/Keyboard.styles.animated.1080.scss +3 -0
- package/packages/keyboard/src/AndroidKeyboard/Keyboard.styles.animated.scss +3 -0
- package/packages/keyboard/src/AndroidKeyboard/Keyboard.styles.scss +2 -0
- package/packages/keyboard/src/AndroidKeyboard/Keyboard.tsx +228 -0
- package/packages/keyboard/src/AndroidKeyboard/_animated.scss +7 -0
- package/packages/keyboard/src/AndroidKeyboard/_sizes.1080.scss +15 -0
- package/packages/keyboard/src/AndroidKeyboard/_sizes.scss +15 -0
- package/packages/keyboard/src/AndroidKeyboard/icons/arrow_left.svg +7 -0
- package/packages/keyboard/src/AndroidKeyboard/icons/arrow_right.svg +7 -0
- package/packages/keyboard/src/AndroidKeyboard/icons/key_backspace.svg +13 -0
- package/packages/keyboard/src/AndroidKeyboard/index.ts +1 -0
- package/packages/keyboard/src/AndroidKeyboard/makeLayout.ts +19 -0
- package/packages/keyboard/src/Backdrop/Backdrop.scss +15 -0
- package/packages/keyboard/src/Backdrop/Backdrop.styles.1080.scss +2 -0
- package/packages/keyboard/src/Backdrop/Backdrop.styles.scss +2 -0
- package/packages/keyboard/src/Backdrop/Backdrop.tsx +31 -0
- package/packages/keyboard/src/Backdrop/_sizes.1080.scss +2 -0
- package/packages/keyboard/src/Backdrop/_sizes.scss +2 -0
- package/packages/keyboard/src/DefaultKeyboard/Keyboard.scss +73 -0
- package/packages/keyboard/src/DefaultKeyboard/Keyboard.styles.1080.scss +2 -0
- package/packages/keyboard/src/DefaultKeyboard/Keyboard.styles.scss +2 -0
- package/packages/keyboard/src/DefaultKeyboard/Keyboard.tsx +154 -0
- package/packages/keyboard/src/DefaultKeyboard/_sizes.1080.scss +12 -0
- package/packages/keyboard/src/DefaultKeyboard/_sizes.scss +12 -0
- package/packages/keyboard/src/DefaultKeyboard/index.ts +1 -0
- package/packages/keyboard/src/KeyboardBase.tsx +325 -0
- package/packages/keyboard/src/MobiKeyboard/Keyboard.scss +180 -0
- package/packages/keyboard/src/MobiKeyboard/Keyboard.styles.1080.scss +2 -0
- package/packages/keyboard/src/MobiKeyboard/Keyboard.styles.animated.1080.scss +3 -0
- package/packages/keyboard/src/MobiKeyboard/Keyboard.styles.animated.scss +3 -0
- package/packages/keyboard/src/MobiKeyboard/Keyboard.styles.scss +2 -0
- package/packages/keyboard/src/MobiKeyboard/Keyboard.tsx +267 -0
- package/packages/keyboard/src/MobiKeyboard/_animated.scss +7 -0
- package/packages/keyboard/src/MobiKeyboard/_sizes.1080.scss +10 -0
- package/packages/keyboard/src/MobiKeyboard/_sizes.scss +10 -0
- package/packages/keyboard/src/MobiKeyboard/icons/arrow_left.svg +7 -0
- package/packages/keyboard/src/MobiKeyboard/icons/arrow_right.svg +7 -0
- package/packages/keyboard/src/MobiKeyboard/icons/key_backspace.svg +13 -0
- package/packages/keyboard/src/MobiKeyboard/icons/key_space.svg +7 -0
- package/packages/keyboard/src/MobiKeyboard/index.ts +1 -0
- package/packages/keyboard/src/MobiKeyboard/utils.ts +19 -0
- package/packages/keyboard/src/QwertyKeyboardBase/QwertyKeyboardBase.tsx +54 -0
- package/packages/keyboard/src/ShiftMode.ts +25 -0
- package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.scss +159 -0
- package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.styles.1080.scss +2 -0
- package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.styles.scss +2 -0
- package/packages/keyboard/src/WhitelabelKeyboard/Keyboard.tsx +354 -0
- package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/_sizes.1080.scss +7 -0
- package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/_sizes.scss +7 -0
- package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/index.ts +1 -0
- package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/whitelabel.scss +77 -0
- package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/whitelabel.styles.1080.scss +2 -0
- package/packages/keyboard/src/WhitelabelKeyboard/WhitelabelStyles/whitelabel.styles.scss +2 -0
- package/packages/keyboard/src/WhitelabelKeyboard/_sizes.1080.scss +31 -0
- package/packages/keyboard/src/WhitelabelKeyboard/_sizes.scss +31 -0
- package/packages/keyboard/src/WhitelabelKeyboard/focusMatrix.ts +19 -0
- package/packages/keyboard/src/WhitelabelKeyboard/icons/arrow_left.svg +10 -0
- package/packages/keyboard/src/WhitelabelKeyboard/icons/arrow_right.svg +10 -0
- package/packages/keyboard/src/WhitelabelKeyboard/icons/key_backspace.svg +10 -0
- package/packages/keyboard/src/WhitelabelKeyboard/icons/key_shift.svg +10 -0
- package/packages/keyboard/src/WhitelabelKeyboard/icons/key_shift_active.svg +10 -0
- package/packages/keyboard/src/WhitelabelKeyboard/index.ts +2 -0
- package/packages/keyboard/src/WhitelabelKeyboard/types.ts +8 -0
- package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.scss +105 -0
- package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.styles.1080.scss +2 -0
- package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.styles.scss +2 -0
- package/packages/keyboard/src/WhitelabelNumericKeyboard/NumericKeyboard.tsx +158 -0
- package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/_sizes.1080.scss +7 -0
- package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/_sizes.scss +7 -0
- package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/index.ts +1 -0
- package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/whitelabel.scss +62 -0
- package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/whitelabel.styles.1080.scss +2 -0
- package/packages/keyboard/src/WhitelabelNumericKeyboard/WhitelabelStyles/whitelabel.styles.scss +2 -0
- package/packages/keyboard/src/WhitelabelNumericKeyboard/_sizes.1080.scss +29 -0
- package/packages/keyboard/src/WhitelabelNumericKeyboard/_sizes.scss +29 -0
- package/packages/keyboard/src/WhitelabelNumericKeyboard/icons/key_backspace.svg +10 -0
- package/packages/keyboard/src/WhitelabelNumericKeyboard/index.ts +2 -0
- package/packages/keyboard/src/WhitelabelNumericKeyboard/layout.ts +14 -0
- package/packages/keyboard/src/hwKeyboardEventToChar.ts +11 -0
- package/packages/keyboard/src/types/index.ts +11 -0
- package/packages/l10n/README.md +102 -0
- package/packages/l10n/interface.ts +1 -0
- package/packages/l10n/locales/cs.ts +4 -0
- package/packages/l10n/locales/en-001.ts +4 -0
- package/packages/l10n/locales/en-us.ts +4 -0
- package/packages/l10n/src/Locale.tsx +44 -0
- package/packages/l10n/src/date/common.ts +153 -0
- package/packages/l10n/src/date/cs.ts +95 -0
- package/packages/l10n/src/date/en-001.ts +76 -0
- package/packages/l10n/src/date/en-common.ts +54 -0
- package/packages/l10n/src/date/en-us.ts +83 -0
- package/packages/l10n/src/date/iso.ts +64 -0
- package/packages/l10n/src/date/types.ts +47 -0
- package/packages/l10n/src/index.ts +2 -0
- package/packages/l10n/src/l10n.ts +54 -0
- package/packages/l10n/src/types.ts +22 -0
- package/packages/list/AttachDetachItem/README.md +128 -0
- package/packages/list/AttachDetachItem/index.ts +3 -0
- package/packages/list/BasicList/README.md +71 -0
- package/packages/list/BasicList/examples/example1.gif +0 -0
- package/packages/list/BasicList/examples/example2.gif +0 -0
- package/packages/list/BasicList/index.ts +1 -0
- package/packages/list/CenteredList/README.md +42 -0
- package/packages/list/CenteredList/examples/example1.gif +0 -0
- package/packages/list/CenteredList/index.ts +1 -0
- package/packages/list/EdgeOffsetList/README.md +58 -0
- package/packages/list/EdgeOffsetList/examples/example1.gif +0 -0
- package/packages/list/EdgeOffsetList/examples/example2.gif +0 -0
- package/packages/list/EdgeOffsetList/index.ts +1 -0
- package/packages/list/FirstOnlyList/README.md +39 -0
- package/packages/list/FirstOnlyList/examples/example1.gif +0 -0
- package/packages/list/FirstOnlyList/index.ts +1 -0
- package/packages/list/FirstOnlyVariedList/README.md +105 -0
- package/packages/list/FirstOnlyVariedList/index.ts +1 -0
- package/packages/list/FixedToEndList/README.md +42 -0
- package/packages/list/FixedToEndList/examples/example1.gif +0 -0
- package/packages/list/FixedToEndList/index.ts +1 -0
- package/packages/list/Item/index.ts +1 -0
- package/packages/list/README.md +176 -0
- package/packages/list/src/AttachDetachItem/AttachDetachItem.tsx +96 -0
- package/packages/list/src/AttachDetachItem/prepareAttachDetachItemData.ts +13 -0
- package/packages/list/src/Base/Base.mouse.tsx +28 -0
- package/packages/list/src/Base/Base.tsx +355 -0
- package/packages/list/src/Base/index.tizen.tv.ts +1 -0
- package/packages/list/src/Base/index.ts +1 -0
- package/packages/list/src/Base/index.webos.tv.ts +1 -0
- package/packages/list/src/Base/index.webtv.ts +1 -0
- package/packages/list/src/BasicList/BasicList.tsx +175 -0
- package/packages/list/src/BasicList/config.ts +13 -0
- package/packages/list/src/CenteredList/CenteredList.tsx +116 -0
- package/packages/list/src/CenteredList/config.ts +13 -0
- package/packages/list/src/CenteredList/controller.ts +47 -0
- package/packages/list/src/CenteredList/interface.ts +10 -0
- package/packages/list/src/EdgeOffsetList/EdgeOffsetList.tsx +172 -0
- package/packages/list/src/EdgeOffsetList/config.ts +13 -0
- package/packages/list/src/FastFocusingOptimizer/FastFocusingOptimizer.ts +54 -0
- package/packages/list/src/FirstOnlyList/FirstOnlyList.tsx +122 -0
- package/packages/list/src/FirstOnlyList/config.ts +13 -0
- package/packages/list/src/FirstOnlyList/controller.ts +11 -0
- package/packages/list/src/FirstOnlyVariedList/FirstOnlyVariedList.tsx +132 -0
- package/packages/list/src/FirstOnlyVariedList/config.ts +13 -0
- package/packages/list/src/FixedToEndList/FixedToEndList.tsx +125 -0
- package/packages/list/src/FixedToEndList/config.ts +13 -0
- package/packages/list/src/FixedToEndList/controller.ts +44 -0
- package/packages/list/src/UnifiedListController/UnifiedListController.ts +254 -0
- package/packages/list/src/UnifiedListController/UnifiedListControllerBase.ts +241 -0
- package/packages/list/src/UnifiedListController/UnifiedVariedListController.ts +241 -0
- package/packages/list/src/UnifiedListController/interface.ts +81 -0
- package/packages/list/src/__test__/utils.spec.ts +59 -0
- package/packages/list/src/animate.animated.ts +1 -0
- package/packages/list/src/animate.ts +1 -0
- package/packages/list/src/index.ts +1 -0
- package/packages/list/src/interface.ts +41 -0
- package/packages/list/src/mocks/index.tsx +55 -0
- package/packages/list/src/types.ts +120 -0
- package/packages/list/src/utils.ts +142 -0
- package/packages/logger/README.md +117 -0
- package/packages/logger/src/LoggerManager.ts +60 -0
- package/packages/logger/src/LoggerService.ts +43 -0
- package/packages/logger/src/index.ts +3 -0
- package/packages/logger/src/loggers/ConsoleLogger/ConsoleLogger.ts +51 -0
- package/packages/logger/src/loggers/ConsoleLogger/README.md +39 -0
- package/packages/logger/src/loggers/ConsoleLogger/index.ts +1 -0
- package/packages/logger/src/loggers/LoggerBase/LoggerBase.ts +67 -0
- package/packages/logger/src/loggers/LoggerBase/README.md +69 -0
- package/packages/logger/src/loggers/LoggerBase/index.ts +1 -0
- package/packages/logger/src/loggers/SentryLogger/README.md +98 -0
- package/packages/logger/src/loggers/SentryLogger/Sentry.ts +1 -0
- package/packages/logger/src/loggers/SentryLogger/SentryLogger.ts +179 -0
- package/packages/logger/src/loggers/SentryLogger/index.ts +2 -0
- package/packages/logger/src/loggers/index.ts +2 -0
- package/packages/logger/src/types.ts +46 -0
- package/packages/lottie-animations/README.md +217 -0
- package/packages/lottie-animations/src/LottieAnimation.tsx +125 -0
- package/packages/lottie-animations/src/index.ts +7 -0
- package/packages/menu/README.md +90 -0
- package/packages/menu/WhitelabelMenu/index.ts +1 -0
- package/packages/menu/WhitelabelMenu/interface.ts +2 -0
- package/packages/menu/WhitelabelMenu/styles.ts +2 -0
- package/packages/menu/interface.ts +3 -0
- package/packages/menu/src/MenuAndContentContainer/MenuAndContentContainer.tsx +166 -0
- package/packages/menu/src/MenuAndContentContainer/index.ts +1 -0
- package/packages/menu/src/MenuAndContentContainer/interface.ts +164 -0
- package/packages/menu/src/MenuAndContentContainer/service.ts +5 -0
- package/packages/menu/src/WhitelabelMenu/SideMenu.scss +41 -0
- package/packages/menu/src/WhitelabelMenu/SideMenu.styles.1080.scss +2 -0
- package/packages/menu/src/WhitelabelMenu/SideMenu.styles.animated.1080.scss +3 -0
- package/packages/menu/src/WhitelabelMenu/SideMenu.styles.animated.scss +3 -0
- package/packages/menu/src/WhitelabelMenu/SideMenu.styles.scss +2 -0
- package/packages/menu/src/WhitelabelMenu/SideMenu.tsx +248 -0
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.scss +56 -0
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.1080.scss +2 -0
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.animated.1080.scss +3 -0
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.animated.scss +3 -0
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.styles.scss +2 -0
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/SideMenuItem.tsx +78 -0
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/_animated.scss +12 -0
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/_sizes.1080.scss +17 -0
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/_sizes.scss +17 -0
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/index.ts +1 -0
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/interface.ts +49 -0
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/rtl.scss +12 -0
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/sizes.1080.ts +2 -0
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/sizes.ts +2 -0
- package/packages/menu/src/WhitelabelMenu/SideMenuItem/styles.ts +1 -0
- package/packages/menu/src/WhitelabelMenu/VisualController.animated.ts +48 -0
- package/packages/menu/src/WhitelabelMenu/VisualController.ts +20 -0
- package/packages/menu/src/WhitelabelMenu/VisualControllerBase.ts +71 -0
- package/packages/menu/src/WhitelabelMenu/_animated.scss +39 -0
- package/packages/menu/src/WhitelabelMenu/_sizes.1080.scss +14 -0
- package/packages/menu/src/WhitelabelMenu/_sizes.scss +14 -0
- package/packages/menu/src/WhitelabelMenu/assets/shadow.1080.png +0 -0
- package/packages/menu/src/WhitelabelMenu/assets/shadow.720.png +0 -0
- package/packages/menu/src/WhitelabelMenu/constants.animated.ts +1 -0
- package/packages/menu/src/WhitelabelMenu/constants.ts +1 -0
- package/packages/menu/src/WhitelabelMenu/index.ts +1 -0
- package/packages/menu/src/WhitelabelMenu/interface.ts +14 -0
- package/packages/menu/src/WhitelabelMenu/rtl.scss +22 -0
- package/packages/menu/src/WhitelabelMenu/sizes.1080.ts +1 -0
- package/packages/menu/src/WhitelabelMenu/sizes.ts +1 -0
- package/packages/menu/src/WhitelabelMenu/styles.ts +1 -0
- package/packages/menu/src/WhitelabelMenu/utils.ts +34 -0
- package/packages/menu/src/index.ts +2 -0
- package/packages/modal-service/README.md +48 -0
- package/packages/modal-service/src/IModal.ts +3 -0
- package/packages/modal-service/src/ModalService.scss +7 -0
- package/packages/modal-service/src/ModalService.styles.1080.scss +2 -0
- package/packages/modal-service/src/ModalService.styles.scss +2 -0
- package/packages/modal-service/src/ModalService.tsx +76 -0
- package/packages/modal-service/src/_sizes.1080.scss +2 -0
- package/packages/modal-service/src/_sizes.scss +2 -0
- package/packages/modal-service/src/index.ts +2 -0
- package/packages/mouse-navigation/README.md +105 -0
- package/packages/mouse-navigation/src/ArrowNavigation/Arrow.tsx +58 -0
- package/packages/mouse-navigation/src/ArrowNavigation/ArrowNavigation.tsx +95 -0
- package/packages/mouse-navigation/src/ArrowNavigation/__test__/Arrow.spec.tsx +35 -0
- package/packages/mouse-navigation/src/ArrowNavigation/__test__/ArrowNavigation.spec.tsx +45 -0
- package/packages/mouse-navigation/src/ArrowNavigation/index.tsx +1 -0
- package/packages/mouse-navigation/src/MouseElementWrapper.tsx +70 -0
- package/packages/mouse-navigation/src/MouseNavigation.tsx +139 -0
- package/packages/mouse-navigation/src/MouseNavigationInterface.ts +8 -0
- package/packages/mouse-navigation/src/__test__/MouseElementWrapper.spec.tsx +61 -0
- package/packages/mouse-navigation/src/__test__/MouseNavigation.spec.tsx +107 -0
- package/packages/mouse-navigation/src/index.ts +3 -0
- package/packages/numeric-zapper/README.md +153 -0
- package/packages/numeric-zapper/src/NumericZapper.scss +20 -0
- package/packages/numeric-zapper/src/NumericZapper.styles.1080.scss +2 -0
- package/packages/numeric-zapper/src/NumericZapper.styles.scss +2 -0
- package/packages/numeric-zapper/src/NumericZapper.tsx +256 -0
- package/packages/numeric-zapper/src/ZapperAllower.ts +15 -0
- package/packages/numeric-zapper/src/ZapperService.tsx +8 -0
- package/packages/numeric-zapper/src/_sizes.1080.scss +7 -0
- package/packages/numeric-zapper/src/_sizes.scss +7 -0
- package/packages/numeric-zapper/src/index.ts +4 -0
- package/packages/numeric-zapper/src/interface.ts +1 -0
- package/packages/numeric-zapper/src/styles.ts +1 -0
- package/packages/perf-utils/README.md +127 -0
- package/packages/perf-utils/src/array/filter.ts +54 -0
- package/packages/perf-utils/src/array/find.ts +43 -0
- package/packages/perf-utils/src/array/findIndex.ts +43 -0
- package/packages/perf-utils/src/array/forEach.ts +48 -0
- package/packages/perf-utils/src/array/includes.ts +41 -0
- package/packages/perf-utils/src/array/includesNaN.ts +32 -0
- package/packages/perf-utils/src/array/index.ts +7 -0
- package/packages/perf-utils/src/array/map.ts +52 -0
- package/packages/picker/README.md +70 -0
- package/packages/picker/src/DatePicker.tsx +55 -0
- package/packages/picker/src/ModalPicker/Checkbox.tsx +38 -0
- package/packages/picker/src/ModalPicker/PickerItem.tsx +86 -0
- package/packages/picker/src/ModalPicker/PickerModal.tsx +98 -0
- package/packages/picker/src/ModalPicker/index.ts +1 -0
- package/packages/picker/src/ModalPicker/modalPicker.tsx +48 -0
- package/packages/picker/src/Picker.tsx +127 -0
- package/packages/picker/src/index.ts +3 -0
- package/packages/picker/src/types.ts +25 -0
- package/packages/pin-input/README.md +55 -0
- package/packages/pin-input/src/PinInput.scss +5 -0
- package/packages/pin-input/src/PinInput.tsx +169 -0
- package/packages/pin-input/src/index.ts +1 -0
- package/packages/player-ui/README.md +207 -0
- package/packages/player-ui/src/BackwardButton.tsx +41 -0
- package/packages/player-ui/src/CurrentTime.tsx +56 -0
- package/packages/player-ui/src/Duration.tsx +60 -0
- package/packages/player-ui/src/ForwardButton.tsx +41 -0
- package/packages/player-ui/src/PauseButton.tsx +57 -0
- package/packages/player-ui/src/PlayButton.tsx +57 -0
- package/packages/player-ui/src/PlayPauseButton.tsx +63 -0
- package/packages/player-ui/src/PlayerInteractable.tsx +66 -0
- package/packages/player-ui/src/PlayerTime.tsx +55 -0
- package/packages/player-ui/src/PlayerUI.tsx +238 -0
- package/packages/player-ui/src/RemainingTime.tsx +74 -0
- package/packages/player-ui/src/Seekbar.tsx +184 -0
- package/packages/player-ui/src/Seeking.ts +122 -0
- package/packages/player-ui/src/StopButton.tsx +35 -0
- package/packages/player-ui/src/Subtitles.tsx +151 -0
- package/packages/player-ui/src/index.ts +14 -0
- package/packages/player-ui/src/mocks.ts +41 -0
- package/packages/player-ui/src/timeUtils.ts +139 -0
- package/packages/player-ui/src/types.ts +42 -0
- package/packages/progress-bar/README.md +31 -0
- package/packages/progress-bar/src/ProgressBar.tsx +41 -0
- package/packages/progress-bar/src/index.ts +1 -0
- package/packages/progress-bar/src/interface.ts +14 -0
- package/packages/qr-code/README.md +80 -0
- package/packages/qr-code/src/QRCode.tsx +39 -0
- package/packages/qr-code/src/index.ts +2 -0
- package/packages/qr-code/src/qrGenerator/__external__/constants.ts +23 -0
- package/packages/qr-code/src/qrGenerator/__external__/qrcode.d.ts +31 -0
- package/packages/qr-code/src/qrGenerator/__external__/qrcode.js +618 -0
- package/packages/qr-code/src/qrGenerator/generateQr.ts +7 -0
- package/packages/qr-code/src/qrGenerator/index.ts +3 -0
- package/packages/router/README.md +163 -0
- package/packages/router/src/Route.tsx +132 -0
- package/packages/router/src/Router.tsx +174 -0
- package/packages/router/src/focusActiveRoute.ts +5 -0
- package/packages/router/src/history.ts +24 -0
- package/packages/router/src/index.ts +5 -0
- package/packages/router/src/types.ts +13 -0
- package/packages/router/src/utils.ts +24 -0
- package/packages/runtime-config/README.md +37 -0
- package/packages/runtime-config/src/Config.ts +44 -0
- package/packages/runtime-config/src/index.ts +1 -0
- package/packages/sass-utils/README.md +197 -0
- package/packages/sass-utils/src/box-shadow.scss +5 -0
- package/packages/sass-utils/src/ellipsis.scss +15 -0
- package/packages/sass-utils/src/linear-gradient.scss +43 -0
- package/packages/sass-utils/src/prefix-property.scss +7 -0
- package/packages/sass-utils/src/prefix-value.scss +6 -0
- package/packages/sass-utils/src/prefix.scss +6 -0
- package/packages/sass-utils/src/scale.1080.scss +3 -0
- package/packages/sass-utils/src/scale.720.scss +5 -0
- package/packages/sass-utils/src/transform.scss +5 -0
- package/packages/sass-utils/src/transition.scss +6 -0
- package/packages/scheduler/README.md +55 -0
- package/packages/scheduler/src/Scheduler.ts +43 -0
- package/packages/scheduler/src/Task.ts +72 -0
- package/packages/scheduler/src/index.ts +4 -0
- package/packages/scheduler/src/timeProvider.ts +3 -0
- package/packages/scroll-text/README.md +78 -0
- package/packages/scroll-text/src/Base.tsx +141 -0
- package/packages/scroll-text/src/ScrollText.animated.tsx +80 -0
- package/packages/scroll-text/src/ScrollText.tsx +53 -0
- package/packages/scroll-text/src/ScrollTextBaseClass.tsx +86 -0
- package/packages/scroll-text/src/index.ts +1 -0
- package/packages/scroller/README.md +77 -0
- package/packages/scroller/src/Scroller.tsx +51 -0
- package/packages/scroller/src/index.ts +1 -0
- package/packages/splash/AnimatedSplash.ts +1 -0
- package/packages/splash/AnimatedSplashAnimated.ts +1 -0
- package/packages/splash/AnimatedSplashBasic.ts +1 -0
- package/packages/splash/AutomaticSplashAnimated.ts +1 -0
- package/packages/splash/AutomaticSplashBasic.ts +1 -0
- package/packages/splash/README.md +93 -0
- package/packages/splash/StaticSplash.ts +1 -0
- package/packages/splash/StaticSplashAnimated.ts +1 -0
- package/packages/splash/StaticSplashBasic.ts +1 -0
- package/packages/splash/src/AnimatedSplash.animated.tsx +78 -0
- package/packages/splash/src/AnimatedSplash.basic.tsx +37 -0
- package/packages/splash/src/AutomaticSplash.animated.tsx +20 -0
- package/packages/splash/src/AutomaticSplash.basic.tsx +20 -0
- package/packages/splash/src/Splash.scss +8 -0
- package/packages/splash/src/StaticSplash.animated.tsx +48 -0
- package/packages/splash/src/StaticSplash.basic.tsx +26 -0
- package/packages/splash/src/index.animated.ts +1 -0
- package/packages/splash/src/index.ts +1 -0
- package/packages/splash/src/styles.ts +1 -0
- package/packages/splash/src/types.ts +20 -0
- package/packages/storage/README.md +61 -0
- package/packages/storage/src/CookieStorage/CookieStorage.ts +57 -0
- package/packages/storage/src/CookieStorage/index.ts +1 -0
- package/packages/storage/src/LocalStorage/LocalStorage.ts +58 -0
- package/packages/storage/src/LocalStorage/index.ts +1 -0
- package/packages/storage/src/index.ts +2 -0
- package/packages/storage/src/shared.ts +41 -0
- package/packages/storage/src/types.ts +33 -0
- package/packages/throbber/README.md +53 -0
- package/packages/throbber/src/Throbber.scss +52 -0
- package/packages/throbber/src/Throbber.tsx +19 -0
- package/packages/throbber/src/ThrobberService.tsx +55 -0
- package/packages/throbber/src/controlsHandling.ts +14 -0
- package/packages/throbber/src/index.ts +2 -0
- package/packages/time/README.md +113 -0
- package/packages/time/src/Time.ts +245 -0
- package/packages/time/src/adapters/worldTimeApi.ts +74 -0
- package/packages/time/src/constants.ts +13 -0
- package/packages/time/src/index.ts +1 -0
- package/packages/time/src/services/worldTimeApi/index.ts +7 -0
- package/packages/time/src/services/worldTimeApi/types.ts +75 -0
- package/packages/time/src/services/worldTimeApi/worldTimeApi.ts +77 -0
- package/packages/time/src/types.ts +39 -0
- package/packages/time/src/utils.ts +79 -0
- package/packages/toast/README.md +116 -0
- package/packages/toast/src/Toast/IVisualController.ts +7 -0
- package/packages/toast/src/Toast/Toast.scss +22 -0
- package/packages/toast/src/Toast/Toast.styles.1080.scss +2 -0
- package/packages/toast/src/Toast/Toast.styles.scss +2 -0
- package/packages/toast/src/Toast/Toast.tsx +83 -0
- package/packages/toast/src/Toast/VisualController.animated.ts +20 -0
- package/packages/toast/src/Toast/VisualController.ts +9 -0
- package/packages/toast/src/Toast/_sizes.1080.scss +8 -0
- package/packages/toast/src/Toast/_sizes.scss +8 -0
- package/packages/toast/src/Toast/index.ts +2 -0
- package/packages/toast/src/Toast/styles.ts +1 -0
- package/packages/toast/src/ToastService.scss +7 -0
- package/packages/toast/src/ToastService.styles.1080.scss +2 -0
- package/packages/toast/src/ToastService.styles.scss +2 -0
- package/packages/toast/src/ToastService.tsx +48 -0
- package/packages/toast/src/_sizes.1080.scss +2 -0
- package/packages/toast/src/_sizes.scss +2 -0
- package/packages/toast/src/index.ts +4 -0
- package/packages/toast/src/types.ts +4 -0
- package/packages/types-bigscreen-jsx/README.md +11 -0
- package/packages/types-bigscreen-jsx/global.d.ts +155 -0
- package/packages/types-bigscreen-jsx/index.d.ts +3323 -0
- package/packages/types-bigscreen-jsx/index.js +0 -0
- package/packages/types-bigscreen-jsx/src/copyTypes.js +14 -0
- package/packages/volume-control/README.md +79 -0
- package/packages/volume-control/src/IVolumeControlUI.ts +26 -0
- package/packages/volume-control/src/VolumeControlService.tsx +110 -0
- package/packages/volume-control/src/VolumeControlUI/VisualController.animated.ts +28 -0
- package/packages/volume-control/src/VolumeControlUI/VisualController.ts +3 -0
- package/packages/volume-control/src/VolumeControlUI/VisualControllerBase.ts +26 -0
- package/packages/volume-control/src/VolumeControlUI/VolumeControl.scss +18 -0
- package/packages/volume-control/src/VolumeControlUI/VolumeControl.styles.animated.scss +2 -0
- package/packages/volume-control/src/VolumeControlUI/VolumeControl.styles.scss +1 -0
- package/packages/volume-control/src/VolumeControlUI/VolumeControlUI.tsx +80 -0
- package/packages/volume-control/src/VolumeControlUI/_animated.scss +8 -0
- package/packages/volume-control/src/VolumeControlUI/index.ts +1 -0
- package/packages/volume-control/src/index.ts +2 -0
- package/packages/zapping/README.md +88 -0
- package/packages/zapping/src/ChannelZapping.ts +134 -0
- package/packages/zapping/src/Zapping.tsx +105 -0
- package/packages/zapping/src/index.ts +1 -0
- package/packages/zapping/src/interface.ts +1 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { Reference, unwrapReference } from '@24i/bigscreen-sdk/jsx';
|
|
2
|
+
import { isElementFullyVisible } from '@24i/bigscreen-sdk/utils/elementUtils';
|
|
3
|
+
import { IFocusable } from './IFocusable';
|
|
4
|
+
|
|
5
|
+
type ICandidate = {
|
|
6
|
+
isMounted?: boolean;
|
|
7
|
+
} & IFocusable;
|
|
8
|
+
|
|
9
|
+
type FocusCandidate = ICandidate | Reference<ICandidate>;
|
|
10
|
+
|
|
11
|
+
const candidateStack: FocusCandidate[] = [];
|
|
12
|
+
|
|
13
|
+
let candidateFallback: FocusCandidate | undefined;
|
|
14
|
+
|
|
15
|
+
let nextCandidate: FocusCandidate | undefined;
|
|
16
|
+
|
|
17
|
+
const isCandidateAvailable = (candidate: ICandidate) => {
|
|
18
|
+
if (candidate instanceof HTMLElement) {
|
|
19
|
+
return isElementFullyVisible(candidate);
|
|
20
|
+
}
|
|
21
|
+
return Boolean(candidate.isMounted);
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
const unwrapFocusCandidate = (
|
|
25
|
+
candidate: FocusCandidate | undefined,
|
|
26
|
+
): ICandidate | undefined => {
|
|
27
|
+
if (candidate) return unwrapReference(candidate);
|
|
28
|
+
return undefined;
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
export const getCandidateStack = () => candidateStack;
|
|
32
|
+
|
|
33
|
+
export const clearCandidateStack = () => {
|
|
34
|
+
nextCandidate = undefined;
|
|
35
|
+
candidateStack.splice(0, candidateStack.length);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export const getLastCandidate = () => {
|
|
39
|
+
if (candidateStack.length) {
|
|
40
|
+
return candidateStack[candidateStack.length - 1];
|
|
41
|
+
}
|
|
42
|
+
return null;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export const setCandidateFallback = (fallback: FocusCandidate) => {
|
|
46
|
+
candidateFallback = fallback;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export const getCandidateFallback = () => candidateFallback;
|
|
50
|
+
|
|
51
|
+
const canPushNewCandidate = (candidate: FocusCandidate) => (
|
|
52
|
+
candidate !== document.body && getLastCandidate() !== candidate
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
export const setNextFocusCandidate = (candidate: FocusCandidate) => {
|
|
56
|
+
if (!canPushNewCandidate(candidate)) return;
|
|
57
|
+
nextCandidate = candidate;
|
|
58
|
+
candidateStack.push(candidate);
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export const setFocusCandidate = (candidate: FocusCandidate) => {
|
|
62
|
+
if (!canPushNewCandidate(candidate)) return;
|
|
63
|
+
nextCandidate = undefined;
|
|
64
|
+
candidateStack.push(candidate);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
export const setActiveElementAsFocusCandidate = () => {
|
|
68
|
+
setFocusCandidate(document.activeElement as HTMLElement);
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
export const focusCandidate = (options?: FocusOptions) => {
|
|
72
|
+
const lastFocused = document.activeElement as HTMLElement;
|
|
73
|
+
while (candidateStack.length) {
|
|
74
|
+
const lastCandidate = candidateStack.pop();
|
|
75
|
+
// statement #1
|
|
76
|
+
// currently popped candidate can't be nextCandidate
|
|
77
|
+
// because it would try to focus the current candidate
|
|
78
|
+
// this test is rather for candidates as whole components or References
|
|
79
|
+
if (lastCandidate !== nextCandidate) {
|
|
80
|
+
const candidate = unwrapFocusCandidate(lastCandidate);
|
|
81
|
+
// statement #2
|
|
82
|
+
// candidate needs to exist and be available
|
|
83
|
+
// and it can't be the last focused element
|
|
84
|
+
if (
|
|
85
|
+
candidate
|
|
86
|
+
&& isCandidateAvailable(candidate)
|
|
87
|
+
&& candidate !== lastFocused
|
|
88
|
+
) {
|
|
89
|
+
candidate.focus(options);
|
|
90
|
+
nextCandidate = undefined;
|
|
91
|
+
const newFocused = document.activeElement as HTMLElement;
|
|
92
|
+
// statement #3
|
|
93
|
+
// newly focused element needs to be fully visible
|
|
94
|
+
// and it can't be the same as the previously focused one
|
|
95
|
+
// if not, we need to focus another candidate from the stack
|
|
96
|
+
if (!isElementFullyVisible(newFocused)
|
|
97
|
+
|| newFocused === lastFocused) {
|
|
98
|
+
focusCandidate(options);
|
|
99
|
+
}
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
nextCandidate = undefined;
|
|
104
|
+
}
|
|
105
|
+
unwrapFocusCandidate(candidateFallback)?.focus(options);
|
|
106
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Reference } from '@24i/bigscreen-sdk/jsx';
|
|
2
|
+
import { IFocusable } from './IFocusable';
|
|
3
|
+
|
|
4
|
+
export const focusFirstExisting = (...toFocus: Reference<IFocusable>[]) => (
|
|
5
|
+
() => {
|
|
6
|
+
for (let i = 0; i < toFocus.length; i++) {
|
|
7
|
+
if (toFocus[i].current) {
|
|
8
|
+
toFocus[i].current!.focus();
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
);
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { Vertical } from './Layout/Vertical';
|
|
2
|
+
export { Horizontal } from './Layout/Horizontal';
|
|
3
|
+
export { Matrix, CircularDirection } from './Layout/Matrix';
|
|
4
|
+
export type { Index2D, Props as MatrixProps } from './Layout/Matrix';
|
|
5
|
+
export type { IFocusable } from './IFocusable';
|
|
6
|
+
export type { Props as HorizontalProps, Props as VerticalProps } from './Layout/Base';
|
|
7
|
+
export { safeFocus } from './safeFocus';
|
|
8
|
+
export {
|
|
9
|
+
setFocusCandidate,
|
|
10
|
+
setActiveElementAsFocusCandidate,
|
|
11
|
+
setNextFocusCandidate,
|
|
12
|
+
focusCandidate,
|
|
13
|
+
} from './candidate';
|
|
14
|
+
export { focusFirstExisting } from './focusFirstExisting';
|
|
15
|
+
export { refocusAfterHashChange } from './refocusAfterHashChange';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Reference } from '@24i/bigscreen-sdk/jsx';
|
|
2
|
+
import { isElementWrappedBy, runAsync } from '@24i/bigscreen-sdk/utils';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Refocus back to previously focused active element,
|
|
6
|
+
* because hash change steals focus (the browser will focus body).
|
|
7
|
+
* Focusing element again needs to be asynchronous, because focus
|
|
8
|
+
* to the body is triggered after the event.
|
|
9
|
+
* This util should be called inside the `hashchange` event handler.
|
|
10
|
+
* @param focusWrapperOrReference wrapper element in which focused element should be
|
|
11
|
+
*/
|
|
12
|
+
export const refocusAfterHashChange = (
|
|
13
|
+
focusWrapperOrReference: HTMLElement | Reference<HTMLElement>,
|
|
14
|
+
) => {
|
|
15
|
+
const activeElement = document.activeElement as HTMLElement;
|
|
16
|
+
if (isElementWrappedBy(activeElement, focusWrapperOrReference)) {
|
|
17
|
+
runAsync(() => activeElement.focus());
|
|
18
|
+
}
|
|
19
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Reference } from '@24i/bigscreen-sdk/jsx';
|
|
2
|
+
import { isElementWrappedBy } from '@24i/bigscreen-sdk/utils/elementUtils';
|
|
3
|
+
import { IFocusable } from './IFocusable';
|
|
4
|
+
|
|
5
|
+
export const safeFocus = (focusWrapperElement: Reference<HTMLElement> | HTMLElement) => (
|
|
6
|
+
(component: IFocusable, options?: FocusOptions) => {
|
|
7
|
+
const focusedElement = document.activeElement as HTMLElement;
|
|
8
|
+
if (
|
|
9
|
+
focusedElement === document.body
|
|
10
|
+
|| isElementWrappedBy(focusedElement, focusWrapperElement, true)
|
|
11
|
+
) {
|
|
12
|
+
component.focus(options);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
);
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: README
|
|
3
|
+
title: Gallup tracking
|
|
4
|
+
hide_title: true
|
|
5
|
+
sidebar_label: Gallup tracking
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Gallup tracking
|
|
9
|
+
Gallup class is a wrapper for [Gallup SDK](https://seer.kantargallup.dk/dpsdk).
|
|
10
|
+
|
|
11
|
+
# Usage
|
|
12
|
+
Gallup is initialized in constructor.
|
|
13
|
+
Then to start or stop tracking a stream just call gallup.start or gallup.stop respectively, examples below.
|
|
14
|
+
When exiting player call gallup.unload to make sure that all streams are stopped.
|
|
15
|
+
```typescript
|
|
16
|
+
const gallup = new Gallup(siteCode, player, playerDescription);
|
|
17
|
+
|
|
18
|
+
gallup.start(streamId, programId);
|
|
19
|
+
gallup.stop();
|
|
20
|
+
|
|
21
|
+
// Gallup needs to be destroyed afterwards
|
|
22
|
+
gallup.destroy();
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
# Updating SDK
|
|
26
|
+
In order to update Gallup SDK (SpringStreams) first copy new version of springstreams.js into src and replace the old one.
|
|
27
|
+
Afterwards make SpringStreams global by adding `window.SpringStreams = function SpringStreams(...` to beginning of the file, when using bundlers they make global variables local to modules.
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { PlayerBase } from '@24i/player-base';
|
|
2
|
+
import './__external__/SpringStreams';
|
|
3
|
+
|
|
4
|
+
const SECOND_IN_MS = 1000;
|
|
5
|
+
|
|
6
|
+
export class Gallup {
|
|
7
|
+
private sensors: SpringStreams;
|
|
8
|
+
|
|
9
|
+
private stream?: Stream;
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Initializes Gallup Spring Streams tracker
|
|
13
|
+
* @param siteCode - Site code given by Gallup.
|
|
14
|
+
* @param player - 24i universal player instance.
|
|
15
|
+
* @param playerName - Player name for tracking.
|
|
16
|
+
*/
|
|
17
|
+
constructor(
|
|
18
|
+
siteCode: string,
|
|
19
|
+
private readonly player: PlayerBase<any>,
|
|
20
|
+
private readonly playerName: string,
|
|
21
|
+
) {
|
|
22
|
+
this.sensors = new SpringStreams(siteCode);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Start tracking session.
|
|
27
|
+
* @param steamId - Gallup tracking string.
|
|
28
|
+
* @param programId - Program id.
|
|
29
|
+
*/
|
|
30
|
+
start(streamId: string, programId: string) {
|
|
31
|
+
this.stop();
|
|
32
|
+
this.stream = this.sensors.track(
|
|
33
|
+
{},
|
|
34
|
+
{ stream: streamId, cq: programId },
|
|
35
|
+
this.makeAdapter(),
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Stop tracking session.
|
|
41
|
+
*/
|
|
42
|
+
stop() {
|
|
43
|
+
if (this.stream) this.stream.stop();
|
|
44
|
+
this.stream = undefined;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Destroys the class, preventing any further tracking.
|
|
49
|
+
* Call when exiting player scene for example.
|
|
50
|
+
*/
|
|
51
|
+
unload() {
|
|
52
|
+
this.sensors.unload();
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Attaches a debugging function to the tracker
|
|
57
|
+
* @param monitorFn - Function for handling debug events
|
|
58
|
+
*/
|
|
59
|
+
attachMonitor(monitorFn: (v: any) => void) {
|
|
60
|
+
this.sensors.debug = monitorFn;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
private makeAdapter() {
|
|
64
|
+
const { player, playerName } = this;
|
|
65
|
+
return {
|
|
66
|
+
getDuration: () => Math.floor(player.duration / SECOND_IN_MS),
|
|
67
|
+
getPosition: () => Math.floor(player.currentTime / SECOND_IN_MS),
|
|
68
|
+
getMeta: () => {
|
|
69
|
+
const { width, height } = window.screen;
|
|
70
|
+
const { playerVersion } = player.getMediaInfo();
|
|
71
|
+
return {
|
|
72
|
+
pl: playerName,
|
|
73
|
+
plv: playerVersion || '',
|
|
74
|
+
sx: width,
|
|
75
|
+
sy: height,
|
|
76
|
+
};
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// @ts-ignore - must be overridden, projects don't recognize SpringStreams from .js file
|
|
2
|
+
declare class SpringStreams {
|
|
3
|
+
constructor(siteCode: string);
|
|
4
|
+
track(content: any, desc: Description, adapter: Adapter): Stream;
|
|
5
|
+
unload(): void;
|
|
6
|
+
debug(v: any): void;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
declare interface Adapter {
|
|
10
|
+
getDuration(): number;
|
|
11
|
+
getPosition(): number;
|
|
12
|
+
getMeta(): Meta;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
declare type Description = {
|
|
16
|
+
/** Stream name */
|
|
17
|
+
stream: string;
|
|
18
|
+
/** Stream duration, must be included if not present in adapter */
|
|
19
|
+
duration?: number;
|
|
20
|
+
/** Content type */
|
|
21
|
+
ct?: string;
|
|
22
|
+
/** Content quality */
|
|
23
|
+
cq?: string;
|
|
24
|
+
/** Size x, or width of the stream window */
|
|
25
|
+
sx?: number;
|
|
26
|
+
/** Size y, or height of the stream window */
|
|
27
|
+
sy?: number;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
declare type Meta = {
|
|
31
|
+
pl: string;
|
|
32
|
+
plv: string;
|
|
33
|
+
sx: number;
|
|
34
|
+
sy: number;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
declare interface Stream {
|
|
38
|
+
stop(): void;
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
window.SpringStreams = function SpringStreams(h){this.namespace="com.kantarmedia.sensors.javascript";this.version="2.5.6";var v="tns-gallup.dk";var ab="tns.dk";var f=200;var s=2000;var ai="default";var V=new Array();this.namespace="com.kma.springstreams";this.updateTimer=false;this.syncTimer=false;this.syncrate=20;this.pausesync=6;this.maxstates=50;this.workerRunning=false;var e=true;var F;var ae={"+":"%2B",",":"%2C",";":"%3B","=":"%3D","~":"%7E","*":"%2A","'":"%27","!":"%21","(":"%28",")":"%29"};var a=this;var af;M(t());if(h){ai=h}var T='onmessage = function (evt) {if(evt.data == "start"){postMessage("open");if(!self.updateTimer)self.updateTimer = setInterval(()=>{postMessage("update")},200);if(!self.syncTimer)self.syncTimer = setInterval(()=>postMessage("sync"),2000);}if(evt.data == "stop"){clearInterval(self.updateTimer);clearInterval(self.syncTimer);postMessage("close");self.close();}};';var ah=new Blob([T],{type:"text/javascript"});var l=URL.createObjectURL(ah);function J(){F=new Worker(l);a.workerRunning=true;F.onmessage=function(m){if(m.data=="open"){a.updateTimer=a.syncTimer=true}if(m.data=="sync"){x()}if(m.data=="update"){p()}if(m.data=="close"){a.workerRunning=false}};F.onerror=function(m){console.error(m.message)}}J();function k(m){console.debug(m)}function R(m){console.warn(m)}function t(){var m={"2cnt.net":{syncrates:[3,7,10,10,10,10,10,60]}};return m}function M(aj){var ak;if(aj){for(var m in aj){if(m===v&&ab==="barb"){ak=aj[m]}}if(ak){N(ak.syncrates)}}}function N(m){if(m){af=m}}function W(){return af}this.getSyncRates=W;function z(am,aj,al){E();var m=al;if(a.pageContext===undefined){if(!!window.cordova){if(device.platform==="browser"){a.debug("Detected cordova browser-mode falling back to HTML5 context / adapter");a.pageContext=a.defaultPageContext;m=this.HTML5Adapter}else{a.nlso=true;a.debug("Detected cordova context");a.pageContext=a.cordovaPageContext}}else{a.pageContext=a.defaultPageContext}}else{}if(a.pageContext.generateId!==undefined){a.pageContext.generateId()}if(!am){return}if(typeof(a.pageContext)!=="undefined"&&typeof(a.pageContext.initHooks)!=="undefined"){a.pageContext.initHooks()}var ak=new B(this,am,aj,m);V.push(ak);return ak}this.track=z;function E(){if(!a.workerRunning){J()}F.postMessage("start")}function b(){clearInterval(a.updateTimer);clearInterval(a.syncTimer);a.updateTimer=false;a.syncTimer=false;this.workerRunning=false;F.postMessage("stop");for(var m=0;m<V.length;++m){try{V[m].stop()}catch(aj){Q(aj)}}}this.unload=b;function p(ak){for(var m=0;m<V.length;++m){try{V[m].update(ak)}catch(aj){Q(aj)}}}this.doUpdate=p;function x(ak){for(var m=0;m<V.length;++m){try{V[m].sync()}catch(aj){Q(aj)}}}this.doSync=x;function Q(m){S("",m)}this.error=Q;function A(aj,m){return C([[aj,m]])}function U(m){if(m&&m.site!==undefined){return m.site}return ai}function G(m){console.debug(m)}this.debug=G;function r(m){console.warn(m)}this.warn=r;function q(){if(a.pageContext.getWindowLocationURL()===undefined){return"http://"}if("https"===a.pageContext.getWindowLocationURL().slice(0,5)){return"https://"}else{return"http://"}}function Y(){if(!a.nlso){try{var m="";var ak="i00";if(a.pageContext.getUniqueId!==undefined){ak=v}m=a.pageContext.getLocalStorageItem(ak);if(m){return"&c="+m}else{var aj="0000",am=aj+Math.ceil((new Date()).getTime()/1000).toString(16)+(32768|Math.random()*65535).toString(16)+aj;a.pageContext.setLocalStorageItem(ak,am)}}catch(al){a.warn("error"+al)}}return""}function S(ak,aj){if(typeof(a.pageContext.tracking)!="undefined"){e=a.pageContext.tracking}if(e){if(typeof(aj.stream)=="undefined"||aj.stream==""){a.warn("Stream is mandatory for measurement")}else{var m=q()+U(aj)+"."+v+"/j0="+A(ak,aj)+"?lt="+(new Date()).getTime().toString(36)+Y();a.pageContext.preloadImage(m);a.debug(m)}}}this.send=S;function C(al){var aj;var am;var ak;var m;var an=/[+&,;=~!*'()]/g;var ao;switch(typeof al){case"string":return an.test(al)?encodeURIComponent(al).replace(an,function(ap){var aq=ae[ap];if(aq){return aq}return ap}):encodeURIComponent(al);case"number":return isFinite(al)?al.toString():"null";case"boolean":case"null":return al.toString();case"object":if(!al){return"null"}aj=[];if(typeof al.length==="number"&&!(al.propertyIsEnumerable("length"))){m=al.length;for(am=0;am<m;am+=1){aj.push(C(al[am])||"null")}return","+aj.join("+")+";"}for(ak in al){if(typeof ak==="string"){if(ak!=="site"){ao=C(al[ak]);if(ao){aj.push(C(ak)+"="+ao)}}}}return","+aj.join("+")+";";default:}return""}function B(aH,aE,aF,aI){function aG(){var aO=Math.round((Math.random()*10000000000)).toString(36);var aP=new Date().getTime().toString(36);return aP+aO}var aB="";aB=aG();var ao=Math.round(new Date().getTime()/1000);var aw;var aM;var az;var au;var ap=[0,0,ao.toString(36)];var aq=0;var aN=0;var ar=true;var al=false;var aA;var an;var ak;var m;var aL=0;aw=aH;aM=aE;if(aI){aA=aI}else{aA=aw.HTML5Adapter}au=aC(aF);az=new Array();az.push(ap);m=0;an=aH.syncrate;ak=aH.getSyncRates();ay();function aJ(){return aB}function aC(aQ){var aO=new Object();for(var aP in aQ){aO[aP]=aQ[aP]}return aO}function aK(aO){if(az.length<aw.maxstates){az.push(aO)}}function am(aO){ap=[aO,aO,Math.round(new Date().getTime()/1000).toString(36)];aK(ap);ar=true;aq=0}function ay(){if(ak!=null){if(m<ak.length){an=ak[m++];aw.debug("switch syncrate to "+an)}}}function ax(aO){setTimeout(function(){if(aO==Math.round(aA.getPosition(aM))||aO+1==Math.round(aA.getPosition(aM))){aL++;if(aL>=5){aL=0;if(aO-ap[1]>1||ap[1]-aO>1){am(aO)}}}else{aL=0}},200)}function at(aR){if(al){return}var aO=ap[1];var aP=aO;try{aP=Math.round(aA.getPosition(aM))}catch(aS){}try{if(aO===aP){if(aq>=0){aq++;if(aq===aw.pausesync){ar=true}}return}if(aq>=aw.pausesync){am(aP)}else{if(aO<aP-1||aO>aP){ax(aP)}else{ap[1]=aP;if(ap[1]-ap[0]>=an&&aP-aN>=an){ar=true;ay()}aq=0}}}catch(aQ){Q=true;aw.error(aQ)}}this.update=at;function aD(){if(al){return}ar=true;al=true;av(null)}this.stop=aD;function av(){if(a.pageContext.getSerialNumber!==undefined){a.pageContext.getSerialNumber(aj)}else{aj()}}this.sync=av;function aj(){if(ar){try{if(aM.width){au.sx=aM.width}if(aM.videoWidth){au.sx=aM.videoWidth}if(aM.height){au.sy=aM.height}if(aM.videoHeight){au.sy=aM.videoHeight}}catch(aP){}if(a.pageContext.getUniqueId!==undefined){au.psid=a.pageContext.getUniqueId()}au.uid=aB;au.pst=az;var aO;try{if(!au.dur||au.dur===0){au.dur=aA.getDuration(aM)}}catch(aP){}try{aO=aA.getMeta(aM);if(a.pageContext.getDeviceID!==undefined&&a.pageContext.getDeviceID()!==undefined){aO[a.pageContext.getDeviceID()["id_name"]]=a.pageContext.getDeviceID()["id_value"]}}catch(aP){}if(aO.v===undefined){aO.v="js "+a.version}au.vt=(Math.round(new Date().getTime()/1000))-ao;if(typeof(a.pageContext)!=="undefined"&&typeof(a.pageContext.addElectronParameters)!=="undefined"){a.pageContext.addElectronParameters(au);aO.v="E "+a.version}if(typeof(a.pageContext)!=="undefined"&&typeof a.pageContext.isCasting!=="undefined"){a.pageContext.isCasting()}if(typeof(a.pageContext)!=="undefined"&&typeof a.pageContext.getChromecastID!=="undefined"){aO.v="C "+a.version;aO.cid=a.pageContext.getChromecastID()}aw.send(aO,au);aN=ap[1]}ar=false}}this.defaultPageContext={getLocalStorageItem:j,setLocalStorageItem:c,preloadImage:K,getWindowLocationURL:d,initHooks:g};this.cordovaPageContext={getLocalStorageItem:j,setLocalStorageItem:c,preloadImage:H,getWindowLocationURL:D,initHooks:ac};this.HTML5Adapter={getMeta:L,getPosition:w,getDuration:u};this.DefaultAdapter={getMeta:o,getPosition:aa,getDuration:ad};this.WMStreamAdapter={getMeta:y,getPosition:n,getDuration:i};this.RVStreamAdapter={getMeta:ag,getPosition:Z,getDuration:X};function L(m){return{pl:"HTML 5 Video",plv:"HTML 5",sx:screen.width,sy:screen.height}}function u(m){return Math.round(m.duration)}function w(m){return m.currentTime}this.HTML5CordovaAdapter={getMeta:P,getPosition:O,getDuration:I};function P(aj){var m="CDV "+a.version;if(a.cordovaAppName===undefined){a.cordovaAppName="";cordova.getAppVersion.getAppName().then(function(ak){a.cordovaAppName=ak})}if(a.cordovaAppVersion===undefined){a.cordovaAppVersion="";cordova.getAppVersion.getVersionNumber().then(function(ak){a.cordovaAppVersion=ak})}if(device.platform=="Android"){a.cordovaGID=md5(device.uuid).substring(0,16);if(a.cordovaAID===undefined){a.cordovaAID="";if(cordova.plugins.idfa!==undefined){cordova.plugins.idfa.getInfo().then(function(ak){a.cordovaAID=md5(ak.aaid).substring(0,16);a.cordovaLimitAdTracking=ak.limitAdTracking})}}return{pl:"HTML 5 Video",plv:"HTML 5",v:m,sx:screen.width,sy:screen.height,aid:a.cordovaAID,gid:a.cordovaGID,os:device.platform,osv:device.version,av:a.cordovaAppVersion,an:a.cordovaAppName,app:a.cordovaAppName}}else{if(device.platform=="iOS"){a.cordovaIFV=md5(device.uuid).substring(0,16);return{pl:"HTML 5 Video",plv:"HTML 5",v:m,sx:screen.width,sy:screen.height,ifv:a.cordovaIFV,os:device.platform,osv:device.version,av:a.cordovaAppVersion,an:a.cordovaAppName,app:a.cordovaAppName}}else{return{pl:"HTML 5 Video",plv:"HTML 5",v:m,sx:screen.width,sy:screen.height,os:device.platform,osv:device.version,an:a.cordovaAppName,av:a.cordovaAppVersion}}}}function I(m){return Math.round(m.duration)}function O(m){return m.currentTime}function o(m){return{pl:"DEF",plv:version,sx:screen.width,sy:screen.height}}function aa(m){return new Date().getTime()/1000}function ad(m){return 0}function y(m){return{pl:"MSWM",plv:m.versionInfo,sx:screen.width,sy:screen.height}}function n(m){if(m.CurrentPosition){return m.CurrentPosition}if(m.currentPosition){return m.currentPosition}if(m.controls&&m.controls.currentPosition){return m.controls.currentPosition}if(m.Controls&&m.Controls.currentPosition){return m.Controls.currentPosition}return 0}function i(m){if(m.currentMedia){if(m.currentMedia.Duration){return m.currentMedia.Duration}if(m.currentMedia.duration){return m.currentMedia.duration}}else{if(m.CurrentMedia){if(m.CurrentMedia.duration){return m.CurrentMedia.duration}if(m.CurrentMedia.Duration){return m.CurrentMedia.Duration}}}}function ag(m){return{pl:"RV",plv:m.GetVersionInfo(),sx:screen.width,sy:screen.height}}function Z(m){return(m.GetPosition()/1000)}function X(m){return(m.GetLength()/1000)}function c(m,aj){localStorage.setItem(m,aj)}function j(m){return localStorage.getItem(m)}function K(m){(new Image()).src=m}function g(){}function ac(){if(a.cordovaSetCloseHook==undefined){a.cordovaSetCloseHook==true;document.addEventListener("pause",m,false);function m(){b()}}}function D(){return"https://"}function H(ak){const aj={method:"get"};var m="Cordova <"+device.platform+" "+device.version+">";cordova.plugin.http.setHeader("User-Agent",m);cordova.plugin.http.sendRequest(ak,aj,function(al){a.debug("Request respopnse: "+al.status)},function(al){a.warn("Request respopnse: "+al.status+":"+al.error)})}function d(){return document.location.href}};SpringStreams.prototype.setPageContext=function(a){this.pageContext=a};function md5(D){var E;var y=function(b,a){return(b<<a)|(b>>>(32-a))};var I=function(k,b){var W,a,d,x,c;d=(k&2147483648);x=(b&2147483648);W=(k&1073741824);a=(b&1073741824);c=(k&1073741823)+(b&1073741823);if(W&a){return(c^2147483648^d^x)}if(W|a){if(c&1073741824){return(c^3221225472^d^x)}else{return(c^1073741824^d^x)}}else{return(c^d^x)}};var r=function(a,c,b){return(a&c)|((~a)&b)};var q=function(a,c,b){return(a&b)|(c&(~b))};var p=function(a,c,b){return(a^c^b)};var n=function(a,c,b){return(c^(a|(~b)))};var v=function(X,W,ab,aa,k,Y,Z){X=I(X,I(I(r(W,ab,aa),k),Z));return I(y(X,Y),W)};var f=function(X,W,ab,aa,k,Y,Z){X=I(X,I(I(q(W,ab,aa),k),Z));return I(y(X,Y),W)};var G=function(X,W,ab,aa,k,Y,Z){X=I(X,I(I(p(W,ab,aa),k),Z));return I(y(X,Y),W)};var u=function(X,W,ab,aa,k,Y,Z){X=I(X,I(I(n(W,ab,aa),k),Z));return I(y(X,Y),W)};var e=function(W){var X;var d=W.length;var c=d+8;var b=(c-(c%64))/64;var x=(b+1)*16;var Y=new Array(x-1);var a=0;var k=0;while(k<d){X=(k-(k%4))/4;a=(k%4)*8;Y[X]=(Y[X]|(W.charCodeAt(k)<<a));k++}X=(k-(k%4))/4;a=(k%4)*8;Y[X]=Y[X]|(128<<a);Y[x-2]=d<<3;Y[x-1]=d>>>29;return Y};var s=function(d){var a="",b="",k,c;for(c=0;c<=3;c++){k=(d>>>(c*8))&255;b="0"+k.toString(16);a=a+b.substr(b.length-2,2)}return a};var t=function(d){d=(d+"").replace(/\r\n/g,"\n").replace(/\r/g,"\n");var b="";var X,a;var x=0;X=a=0;x=d.length;for(var W=0;W<x;W++){var k=d.charCodeAt(W);var c=null;if(k<128){a++}else{if((k>127)&&(k<2048)){c=String.fromCharCode((k>>6)|192)+String.fromCharCode((k&63)|128)}else{c=String.fromCharCode((k>>12)|224)+String.fromCharCode(((k>>6)&63)|128)+String.fromCharCode((k&63)|128)}}if(c!=null){if(a>X){b+=d.substring(X,a)}b+=c;X=a=W+1}}if(a>X){b+=d.substring(X,d.length)}return b};var F=[],M,h,H,w,g,V,U,T,S,P=7,N=12,K=17,J=22,C=5,B=9,A=14,z=20,o=4,m=11,l=16,j=23,R=6,Q=10,O=15,L=21;D=t(D);F=e(D);V=1732584193;U=4023233417;T=2562383102;S=271733878;E=F.length;for(M=0;M<E;M+=16){h=V;H=U;w=T;g=S;V=v(V,U,T,S,F[M+0],P,3614090360);S=v(S,V,U,T,F[M+1],N,3905402710);T=v(T,S,V,U,F[M+2],K,606105819);U=v(U,T,S,V,F[M+3],J,3250441966);V=v(V,U,T,S,F[M+4],P,4118548399);S=v(S,V,U,T,F[M+5],N,1200080426);T=v(T,S,V,U,F[M+6],K,2821735955);U=v(U,T,S,V,F[M+7],J,4249261313);V=v(V,U,T,S,F[M+8],P,1770035416);S=v(S,V,U,T,F[M+9],N,2336552879);T=v(T,S,V,U,F[M+10],K,4294925233);U=v(U,T,S,V,F[M+11],J,2304563134);V=v(V,U,T,S,F[M+12],P,1804603682);S=v(S,V,U,T,F[M+13],N,4254626195);T=v(T,S,V,U,F[M+14],K,2792965006);U=v(U,T,S,V,F[M+15],J,1236535329);V=f(V,U,T,S,F[M+1],C,4129170786);S=f(S,V,U,T,F[M+6],B,3225465664);T=f(T,S,V,U,F[M+11],A,643717713);U=f(U,T,S,V,F[M+0],z,3921069994);V=f(V,U,T,S,F[M+5],C,3593408605);S=f(S,V,U,T,F[M+10],B,38016083);T=f(T,S,V,U,F[M+15],A,3634488961);U=f(U,T,S,V,F[M+4],z,3889429448);V=f(V,U,T,S,F[M+9],C,568446438);S=f(S,V,U,T,F[M+14],B,3275163606);T=f(T,S,V,U,F[M+3],A,4107603335);U=f(U,T,S,V,F[M+8],z,1163531501);V=f(V,U,T,S,F[M+13],C,2850285829);S=f(S,V,U,T,F[M+2],B,4243563512);T=f(T,S,V,U,F[M+7],A,1735328473);U=f(U,T,S,V,F[M+12],z,2368359562);V=G(V,U,T,S,F[M+5],o,4294588738);S=G(S,V,U,T,F[M+8],m,2272392833);T=G(T,S,V,U,F[M+11],l,1839030562);U=G(U,T,S,V,F[M+14],j,4259657740);V=G(V,U,T,S,F[M+1],o,2763975236);S=G(S,V,U,T,F[M+4],m,1272893353);T=G(T,S,V,U,F[M+7],l,4139469664);U=G(U,T,S,V,F[M+10],j,3200236656);V=G(V,U,T,S,F[M+13],o,681279174);S=G(S,V,U,T,F[M+0],m,3936430074);T=G(T,S,V,U,F[M+3],l,3572445317);U=G(U,T,S,V,F[M+6],j,76029189);V=G(V,U,T,S,F[M+9],o,3654602809);S=G(S,V,U,T,F[M+12],m,3873151461);T=G(T,S,V,U,F[M+15],l,530742520);U=G(U,T,S,V,F[M+2],j,3299628645);V=u(V,U,T,S,F[M+0],R,4096336452);S=u(S,V,U,T,F[M+7],Q,1126891415);T=u(T,S,V,U,F[M+14],O,2878612391);U=u(U,T,S,V,F[M+5],L,4237533241);V=u(V,U,T,S,F[M+12],R,1700485571);S=u(S,V,U,T,F[M+3],Q,2399980690);T=u(T,S,V,U,F[M+10],O,4293915773);U=u(U,T,S,V,F[M+1],L,2240044497);V=u(V,U,T,S,F[M+8],R,1873313359);S=u(S,V,U,T,F[M+15],Q,4264355552);T=u(T,S,V,U,F[M+6],O,2734768916);U=u(U,T,S,V,F[M+13],L,1309151649);V=u(V,U,T,S,F[M+4],R,4149444226);S=u(S,V,U,T,F[M+11],Q,3174756917);T=u(T,S,V,U,F[M+2],O,718787259);U=u(U,T,S,V,F[M+9],L,3951481745);V=I(V,h);U=I(U,H);T=I(T,w);S=I(S,g)}var i=s(V)+s(U)+s(T)+s(S);return i.toLowerCase()};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Gallup } from './Gallup';
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: README
|
|
3
|
+
title: BasicGrid
|
|
4
|
+
hide_title: true
|
|
5
|
+
sidebar_label: BasicGrid
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# BasicGrid
|
|
9
|
+
Basic Grid is a type of grid that prefers moving the focus first and only after the focus reaches the last fully visible item or a group of items
|
|
10
|
+
it starts scrolling and keeping the focus at the same position ( on the edge).
|
|
11
|
+
|
|
12
|
+
## Grid Specific Props
|
|
13
|
+
- `firstScrollStep` - value in pixels to move on the first scroll
|
|
14
|
+
- `scrollStep` - value to move on other scrolls (should be equal to item width/height + its spacing)
|
|
15
|
+
|
|
16
|
+
## Default Animation Configuration
|
|
17
|
+
- normal: 700ms with easeOutQuart
|
|
18
|
+
- fast: 100ms with easeOutQuart
|
|
19
|
+
- normalToFast: after 2 items with 0.65 sensitivity
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
Most of the use cases of the Basic Grid are that you have an N amount of fully visible rows/columns.
|
|
24
|
+
Then you also have 2 partially visible rows/columns (1 on each side) to indicate the possibility to scroll in that direction.
|
|
25
|
+
|
|
26
|
+
Therefore you usually set visible rows/columns to the number of fully visible (=== navigatable) rows/columns + 2.
|
|
27
|
+
|
|
28
|
+
There can be cases when you do not indicate the possibility to scroll with a partial row/column but with some other technique (e.g. an arrow).
|
|
29
|
+
For this case see Example 2
|
|
30
|
+
|
|
31
|
+
## Examples
|
|
32
|
+
|
|
33
|
+
### Example 1
|
|
34
|
+
Probably the most common usage of the BasicList.
|
|
35
|
+
- `firstScrollStep` is slighlty smaller to keep the first row partially visible.
|
|
36
|
+
- `scrollStep` is equal to an row height + the space between two rows.
|
|
37
|
+
- `visibleRows` is set to 4 because there can be 4 visible rows (2 fully visible and navigatable and 2 partially visible)
|
|
38
|
+
- `columns` is set to 4 as the grid has 4 columns
|
|
39
|
+
```tsx
|
|
40
|
+
<BasicGrid
|
|
41
|
+
data={nItems(20)}
|
|
42
|
+
renderItem={(item, index, ref) => (
|
|
43
|
+
<Item title={item} ref={ref} />
|
|
44
|
+
)}
|
|
45
|
+
visibleRows={4}
|
|
46
|
+
columns={4}
|
|
47
|
+
firstScrollStep={100}
|
|
48
|
+
scrollStep={200}
|
|
49
|
+
/>
|
|
50
|
+
```
|
|
51
|
+

|
|
52
|
+
|
|
53
|
+
### Example 2
|
|
54
|
+
This example show how to use BasicGrid when you have some other way to indicate scrolling.
|
|
55
|
+
- `firstScrollStep` is equal to `scrollStep`
|
|
56
|
+
- `scrollStep` is equal to a column width + the space between two columns
|
|
57
|
+
- `visibleColumns` is set to 6 (4 fully visible and navigatable + 2)
|
|
58
|
+
- `rows` is set to 2 as the grid has 2 rows
|
|
59
|
+
```tsx
|
|
60
|
+
<BasicGrid
|
|
61
|
+
data={nItems(14)}
|
|
62
|
+
renderItem={(item, index, ref) => (
|
|
63
|
+
<Item title={item} ref={ref} />
|
|
64
|
+
)}
|
|
65
|
+
visibleColumns={6}
|
|
66
|
+
rows={2}
|
|
67
|
+
firstScrollStep={316}
|
|
68
|
+
scrollStep={316}
|
|
69
|
+
horizontal
|
|
70
|
+
/>
|
|
71
|
+
```
|
|
72
|
+

|
|
73
|
+
|
|
74
|
+
## Interface
|
|
75
|
+
**Controlling focus / scroll programmatically**
|
|
76
|
+
You can use following method on class instance in your reference:
|
|
77
|
+
- `focusToIndex(index: number, animated?: boolean): void`
|
|
78
|
+
programmatically move focus / scroll to desired item index, 2nd argument is only used in animated version and determines if the focus change should be animated
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { BasicGrid } from '../src/BasicGrid/BasicGrid';
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: README
|
|
3
|
+
title: FirstOnlyGrid
|
|
4
|
+
hide_title: true
|
|
5
|
+
sidebar_label: FirstOnlyGrid
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# FirstOnlyGrid
|
|
9
|
+
First Only Grid is a type of grid that only scrolls and keeps the focus on the first line or in the
|
|
10
|
+
first column.
|
|
11
|
+
|
|
12
|
+
## Grid Specific Props
|
|
13
|
+
- `scrollStep` - value to move on scroll
|
|
14
|
+
|
|
15
|
+
## Default Animation Configuration
|
|
16
|
+
- normal: 700ms with easeOutQuart
|
|
17
|
+
- fast: 100ms with easeOutQuart
|
|
18
|
+
- normalToFast: after 2 items with 0.65 sensitivity
|
|
19
|
+
|
|
20
|
+
## Usage
|
|
21
|
+
FirstOnly grid is most often used for See All scenes that similar to Netflix keep the focus on the
|
|
22
|
+
first line.
|
|
23
|
+
|
|
24
|
+
## Examples
|
|
25
|
+
|
|
26
|
+
### Example 1
|
|
27
|
+
Probably the most common usage of the FirstOnlyGrid.
|
|
28
|
+
Similar to BasicGrid it also counts with two partially visible rows/columns on each end.
|
|
29
|
+
Therefore `visibleRows`/`visibleColumns` is equal to fully visible/navigatable rows/columns + 2.
|
|
30
|
+
`scrollStep` is equal to row/column height/width + the space between two rows/coumns.
|
|
31
|
+
```tsx
|
|
32
|
+
<FirstOnlyGrid
|
|
33
|
+
data={}
|
|
34
|
+
renderItem={(item, index, ref) => (
|
|
35
|
+
<Item title={item} ref={ref} />
|
|
36
|
+
)}
|
|
37
|
+
visibleColumns={8}
|
|
38
|
+
rows={2}
|
|
39
|
+
scrollStep={150}
|
|
40
|
+
horizontal
|
|
41
|
+
/>
|
|
42
|
+
```
|
|
43
|
+

|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FirstOnlyGrid } from '../src/FirstOnlyGrid/FirstOnlyGrid';
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: README
|
|
3
|
+
title: FixedToEndGrid
|
|
4
|
+
hide_title: true
|
|
5
|
+
sidebar_label: FixedToEndGrid
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# FixedToEndGrid
|
|
9
|
+
Fixed To End Grid is a type of grid that prefers scrolling before moving the focus.
|
|
10
|
+
First, the focus remains at the same position. Only after the last row/column is fully visible it starts moving the focus to the end of the grid.
|
|
11
|
+
Going back it first moves the focus to the first position and then scrolls to the start.
|
|
12
|
+
|
|
13
|
+
## Grid Specific Props
|
|
14
|
+
- `scrollStep` - value to move on scroll
|
|
15
|
+
|
|
16
|
+
## Default Animation Configuration
|
|
17
|
+
- normal: 700ms with easeOutQuart
|
|
18
|
+
- fast: 100ms with easeOutQuart
|
|
19
|
+
- normalToFast: after 2 items with 0.65 sensitivity
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
FixedToEnd grid is most often used for portrait Packshots in apps that want to have similar behaviour as Netflix.
|
|
23
|
+
|
|
24
|
+
Unlike Netflix's list, it does not scroll until the last item. Rather it starts moving the focus once it reaches the last item.
|
|
25
|
+
|
|
26
|
+
## Examples
|
|
27
|
+
|
|
28
|
+
### Example 1
|
|
29
|
+
Probably the most common usage of the FixedToEndGrid.
|
|
30
|
+
Similar to BasicGrid it also counts with two partially visible rows/columns on each end.
|
|
31
|
+
Therefore `visibleRows`/`visibleColumns` is equal to fully visible/navigatable rows/columns + 2.
|
|
32
|
+
`scrollStep` is equal to row/column height/width + the space between two rows/coumns.
|
|
33
|
+
```tsx
|
|
34
|
+
<FixedToEndGrid
|
|
35
|
+
data={}
|
|
36
|
+
renderItem={(item, index, ref) => (
|
|
37
|
+
<Item title={item} ref={ref} />
|
|
38
|
+
)}
|
|
39
|
+
visibleColumns={8}
|
|
40
|
+
rows={2}
|
|
41
|
+
scrollStep={150}
|
|
42
|
+
horizontal
|
|
43
|
+
/>
|
|
44
|
+
```
|
|
45
|
+

|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FixedToEndGrid } from '../src/FixedToEndGrid/FixedToEndGrid';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { Item } from '../src/types';
|