@tma.js/sdk 0.13.3 → 1.0.0
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/dist/dts/{components/BackButton → back-button}/BackButton.d.ts +12 -9
- package/dist/dts/back-button/index.d.ts +2 -0
- package/dist/dts/{components/BackButton → back-button}/types.d.ts +3 -2
- package/dist/dts/bridge/env/hasExternalNotify.d.ts +12 -0
- package/dist/dts/bridge/env/hasWebviewProxy.d.ts +12 -0
- package/dist/dts/bridge/env/index.d.ts +3 -0
- package/dist/dts/bridge/env/isIframe.d.ts +5 -0
- package/dist/dts/bridge/errors/MethodUnsupportedError.d.ts +8 -0
- package/dist/dts/bridge/errors/ParameterUnsupportedError.d.ts +8 -0
- package/dist/dts/bridge/errors/index.d.ts +2 -0
- package/dist/dts/bridge/events/createEmitter.d.ts +6 -0
- package/dist/dts/bridge/events/events.d.ts +130 -0
- package/dist/dts/bridge/events/index.d.ts +9 -0
- package/dist/dts/bridge/events/off.d.ts +7 -0
- package/dist/dts/bridge/events/on.d.ts +10 -0
- package/dist/dts/bridge/events/onTelegramEvent.d.ts +7 -0
- package/dist/dts/bridge/events/once.d.ts +9 -0
- package/dist/dts/bridge/events/parsers/clipboardTextReceived.d.ts +13 -0
- package/dist/dts/bridge/events/parsers/customMethodInvoked.d.ts +16 -0
- package/dist/dts/bridge/events/parsers/index.d.ts +9 -0
- package/dist/dts/bridge/events/parsers/invoiceClosed.d.ts +12 -0
- package/dist/dts/bridge/events/parsers/phoneRequested.d.ts +8 -0
- package/dist/dts/bridge/events/parsers/popupClosed.d.ts +8 -0
- package/dist/dts/bridge/events/parsers/qrTextReceived.d.ts +7 -0
- package/dist/dts/bridge/events/parsers/theme-changed.d.ts +42 -0
- package/dist/dts/bridge/events/parsers/viewportChanged.d.ts +19 -0
- package/dist/dts/bridge/events/parsers/writeAccessRequested.d.ts +8 -0
- package/dist/dts/bridge/events/singletonEmitter.d.ts +6 -0
- package/dist/dts/bridge/events/subscribe.d.ts +9 -0
- package/dist/dts/bridge/events/unsubscribe.d.ts +6 -0
- package/dist/dts/bridge/index.d.ts +5 -0
- package/dist/dts/bridge/methods/createPostEvent.d.ts +10 -0
- package/dist/dts/bridge/methods/haptic.d.ts +40 -0
- package/dist/dts/bridge/methods/index.d.ts +6 -0
- package/dist/dts/bridge/methods/invoke-custom-method.d.ts +24 -0
- package/dist/dts/bridge/methods/methods.d.ts +329 -0
- package/dist/dts/bridge/methods/popup.d.ts +49 -0
- package/dist/dts/bridge/methods/postEvent.d.ts +29 -0
- package/dist/dts/bridge/request.d.ts +65 -0
- package/dist/dts/classnames/classNames.d.ts +10 -0
- package/dist/dts/classnames/index.d.ts +2 -0
- package/dist/dts/classnames/mergeClassNames.d.ts +32 -0
- package/dist/dts/{components/ClosingBehaviour/ClosingBehaviour.d.ts → closing-behavior/ClosingBehavior.d.ts} +5 -4
- package/dist/dts/closing-behavior/index.d.ts +2 -0
- package/dist/dts/closing-behavior/types.d.ts +7 -0
- package/dist/dts/{components/CloudStorage → cloud-storage}/CloudStorage.d.ts +19 -11
- package/dist/dts/colors/index.d.ts +5 -0
- package/dist/dts/colors/isColorDark.d.ts +6 -0
- package/dist/dts/colors/isRGB.d.ts +6 -0
- package/dist/dts/colors/isRGBShort.d.ts +6 -0
- package/dist/dts/colors/toRGB.d.ts +11 -0
- package/dist/dts/colors/types.d.ts +8 -0
- package/dist/dts/event-emitter/EventEmitter.d.ts +64 -0
- package/dist/dts/event-emitter/index.d.ts +2 -0
- package/dist/dts/event-emitter/types.d.ts +44 -0
- package/dist/dts/globals.d.ts +22 -0
- package/dist/dts/{components/HapticFeedback → haptic-feedback}/HapticFeedback.d.ts +3 -3
- package/dist/dts/index.d.ts +24 -6
- package/dist/dts/init/catchCustomStyles.d.ts +4 -0
- package/dist/dts/init/creators/createBackButton.d.ts +2 -2
- package/dist/dts/init/creators/createClosingBehavior.d.ts +3 -3
- package/dist/dts/init/creators/createMainButton.d.ts +3 -3
- package/dist/dts/init/creators/createMiniApp.d.ts +14 -0
- package/dist/dts/init/creators/createRequestIdGenerator.d.ts +1 -1
- package/dist/dts/init/creators/createThemeParams.d.ts +2 -3
- package/dist/dts/init/creators/createViewport.d.ts +16 -9
- package/dist/dts/init/creators/index.d.ts +1 -1
- package/dist/dts/init/css/bindMiniAppCSSVars.d.ts +16 -0
- package/dist/dts/init/css/bindThemeCSSVars.d.ts +12 -0
- package/dist/dts/init/css/bindViewportCSSVars.d.ts +20 -0
- package/dist/dts/init/css/index.d.ts +1 -0
- package/dist/dts/init/css/processCSSVarsOption.d.ts +12 -0
- package/dist/dts/init/css/setCSSVar.d.ts +6 -0
- package/dist/dts/init/init.d.ts +5 -5
- package/dist/dts/init/types.d.ts +42 -69
- package/dist/dts/init-data/InitData.d.ts +53 -0
- package/dist/dts/init-data/chatParser.d.ts +5 -0
- package/dist/dts/init-data/index.d.ts +6 -0
- package/dist/dts/init-data/initDataParser.d.ts +5 -0
- package/dist/dts/init-data/parseInitData.d.ts +6 -0
- package/dist/dts/init-data/types.d.ts +133 -0
- package/dist/dts/init-data/userParser.d.ts +5 -0
- package/dist/dts/invoice/Invoice.d.ts +43 -0
- package/dist/dts/invoice/index.d.ts +2 -0
- package/dist/dts/invoice/types.d.ts +7 -0
- package/dist/dts/launch-params/computeLaunchData.d.ts +6 -0
- package/dist/dts/launch-params/computePageReload.d.ts +6 -0
- package/dist/dts/launch-params/getFirstNavigationEntry.d.ts +6 -0
- package/dist/dts/launch-params/index.d.ts +12 -0
- package/dist/dts/launch-params/launchParamsParser.d.ts +5 -0
- package/dist/dts/launch-params/parseLaunchParams.d.ts +6 -0
- package/dist/dts/launch-params/retrieveCurrent.d.ts +5 -0
- package/dist/dts/launch-params/retrieveFromLocation.d.ts +6 -0
- package/dist/dts/launch-params/retrieveFromPerformance.d.ts +8 -0
- package/dist/dts/launch-params/retrieveLaunchData.d.ts +6 -0
- package/dist/dts/launch-params/serializeLaunchParams.d.ts +6 -0
- package/dist/dts/launch-params/storage.d.ts +13 -0
- package/dist/dts/launch-params/types.d.ts +48 -0
- package/dist/dts/logger/Logger.d.ts +38 -0
- package/dist/dts/logger/index.d.ts +1 -0
- package/dist/dts/main-button/MainButton.d.ts +104 -0
- package/dist/dts/main-button/index.d.ts +2 -0
- package/dist/dts/main-button/types.d.ts +20 -0
- package/dist/dts/mini-app/MiniApp.d.ts +99 -0
- package/dist/dts/mini-app/index.d.ts +2 -0
- package/dist/dts/mini-app/types.d.ts +19 -0
- package/dist/dts/misc/index.d.ts +2 -0
- package/dist/dts/misc/isRecord.d.ts +5 -0
- package/dist/dts/misc/isTMA.d.ts +4 -0
- package/dist/dts/navigation/HashNavigator/HashNavigator.d.ts +43 -0
- package/dist/dts/navigation/HashNavigator/drop.d.ts +4 -0
- package/dist/dts/navigation/HashNavigator/go.d.ts +5 -0
- package/dist/dts/navigation/HashNavigator/index.d.ts +2 -0
- package/dist/dts/navigation/HashNavigator/types.d.ts +34 -0
- package/dist/dts/navigation/Navigator/Navigator.d.ts +104 -0
- package/dist/dts/navigation/Navigator/index.d.ts +2 -0
- package/dist/dts/navigation/Navigator/types.d.ts +44 -0
- package/dist/dts/navigation/ensurePrefix.d.ts +7 -0
- package/dist/dts/navigation/getHash.d.ts +14 -0
- package/dist/dts/navigation/index.d.ts +4 -0
- package/dist/dts/parsing/ArrayValueParser.d.ts +18 -0
- package/dist/dts/parsing/ParseError.d.ts +22 -0
- package/dist/dts/parsing/ParseSchemaFieldError.d.ts +17 -0
- package/dist/dts/parsing/ValueParser.d.ts +36 -0
- package/dist/dts/parsing/createValueParserGenerator.d.ts +9 -0
- package/dist/dts/parsing/index.d.ts +10 -0
- package/dist/dts/parsing/parseBySchema.d.ts +8 -0
- package/dist/dts/parsing/parsers/array.d.ts +6 -0
- package/dist/dts/parsing/parsers/boolean.d.ts +4 -0
- package/dist/dts/parsing/parsers/date.d.ts +4 -0
- package/dist/dts/parsing/parsers/index.d.ts +8 -0
- package/dist/dts/parsing/parsers/json.d.ts +8 -0
- package/dist/dts/parsing/parsers/number.d.ts +4 -0
- package/dist/dts/parsing/parsers/rgb.d.ts +4 -0
- package/dist/dts/parsing/parsers/searchParams.d.ts +8 -0
- package/dist/dts/parsing/parsers/string.d.ts +4 -0
- package/dist/dts/parsing/toRecord.d.ts +7 -0
- package/dist/dts/parsing/types.d.ts +30 -0
- package/dist/dts/parsing/unexpectedTypeError.d.ts +4 -0
- package/dist/dts/{components/Popup → popup}/Popup.d.ts +10 -9
- package/dist/dts/popup/index.d.ts +2 -0
- package/dist/dts/popup/preparePopupParams.d.ts +7 -0
- package/dist/dts/{components/Popup → popup}/types.d.ts +4 -4
- package/dist/dts/{components/QRScanner → qr-scanner}/QRScanner.d.ts +6 -5
- package/dist/dts/qr-scanner/index.d.ts +2 -0
- package/dist/dts/{components/QRScanner → qr-scanner}/types.d.ts +1 -1
- package/dist/dts/state/State.d.ts +19 -7
- package/dist/dts/state/types.d.ts +4 -7
- package/dist/dts/storage.d.ts +4 -4
- package/dist/dts/supports/createSupportsFunc.d.ts +10 -0
- package/dist/dts/supports/createSupportsParamFunc.d.ts +15 -0
- package/dist/dts/supports/index.d.ts +4 -0
- package/dist/dts/supports/supports.d.ts +15 -0
- package/dist/dts/supports/types.d.ts +1 -0
- package/dist/dts/theme-params/ThemeParams.d.ts +62 -0
- package/dist/dts/theme-params/index.d.ts +6 -0
- package/dist/dts/theme-params/keys.d.ts +11 -0
- package/dist/dts/theme-params/parseThemeParams.d.ts +6 -0
- package/dist/dts/theme-params/requestThemeParams.d.ts +7 -0
- package/dist/dts/theme-params/serializeThemeParams.d.ts +5 -0
- package/dist/dts/theme-params/themeParamsParser.d.ts +2 -0
- package/dist/dts/theme-params/types.d.ts +14 -0
- package/dist/dts/timeout/TimeoutError.d.ts +3 -0
- package/dist/dts/timeout/index.d.ts +3 -0
- package/dist/dts/timeout/isTimeoutError.d.ts +6 -0
- package/dist/dts/timeout/withTimeout.d.ts +14 -0
- package/dist/dts/types/index.d.ts +3 -0
- package/dist/dts/types/platform.d.ts +4 -0
- package/dist/dts/types/request-id.d.ts +9 -0
- package/dist/dts/types/utils.d.ts +36 -0
- package/dist/dts/utils/Utils.d.ts +45 -0
- package/dist/dts/utils/index.d.ts +1 -0
- package/dist/dts/version/compareVersions.d.ts +8 -0
- package/dist/dts/version/index.d.ts +2 -0
- package/dist/dts/version/types.d.ts +4 -0
- package/dist/dts/{components/Viewport → viewport}/Viewport.d.ts +16 -38
- package/dist/dts/viewport/index.d.ts +3 -0
- package/dist/dts/viewport/requestViewport.d.ts +12 -0
- package/dist/dts/{components/Viewport → viewport}/types.d.ts +9 -1
- package/dist/dts/viewport/utils.d.ts +5 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.iife.js +1 -1
- package/dist/index.iife.js.map +1 -1
- package/dist/index.mjs +2245 -1025
- package/dist/index.mjs.map +1 -1
- package/package.json +7 -16
- package/src/{components/BackButton → back-button}/BackButton.ts +23 -21
- package/src/back-button/index.ts +2 -0
- package/src/{components/BackButton → back-button}/types.ts +3 -2
- package/src/bridge/env/hasExternalNotify.ts +19 -0
- package/src/bridge/env/hasWebviewProxy.ts +19 -0
- package/src/bridge/env/index.ts +3 -0
- package/src/bridge/env/isIframe.ts +11 -0
- package/src/bridge/errors/MethodUnsupportedError.ts +13 -0
- package/src/bridge/errors/ParameterUnsupportedError.ts +13 -0
- package/src/bridge/errors/index.ts +2 -0
- package/src/bridge/events/createEmitter.ts +108 -0
- package/src/bridge/events/events.ts +170 -0
- package/src/bridge/events/index.ts +9 -0
- package/src/bridge/events/off.ts +14 -0
- package/src/bridge/events/on.ts +19 -0
- package/src/bridge/events/onTelegramEvent.ts +83 -0
- package/src/bridge/events/once.ts +18 -0
- package/src/bridge/events/parsers/clipboardTextReceived.ts +26 -0
- package/src/bridge/events/parsers/customMethodInvoked.ts +25 -0
- package/src/bridge/events/parsers/index.ts +9 -0
- package/src/bridge/events/parsers/invoiceClosed.ts +26 -0
- package/src/bridge/events/parsers/phoneRequested.ts +14 -0
- package/src/bridge/events/parsers/popupClosed.ts +19 -0
- package/src/bridge/events/parsers/qrTextReceived.ts +14 -0
- package/src/bridge/events/parsers/theme-changed.ts +58 -0
- package/src/bridge/events/parsers/viewportChanged.ts +33 -0
- package/src/bridge/events/parsers/writeAccessRequested.ts +14 -0
- package/src/bridge/events/singletonEmitter.ts +19 -0
- package/src/bridge/events/subscribe.ts +15 -0
- package/src/bridge/events/unsubscribe.ts +10 -0
- package/src/bridge/index.ts +5 -0
- package/src/bridge/methods/createPostEvent.ts +40 -0
- package/src/bridge/methods/haptic.ts +52 -0
- package/src/bridge/methods/index.ts +6 -0
- package/src/bridge/methods/invoke-custom-method.ts +25 -0
- package/src/bridge/methods/methods.ts +372 -0
- package/src/bridge/methods/popup.ts +53 -0
- package/src/bridge/methods/postEvent.ts +101 -0
- package/src/bridge/request.ts +185 -0
- package/src/classnames/classNames.ts +34 -0
- package/src/classnames/index.ts +2 -0
- package/src/classnames/mergeClassNames.ts +68 -0
- package/src/{components/ClosingBehaviour/ClosingBehaviour.ts → closing-behavior/ClosingBehavior.ts} +12 -10
- package/src/closing-behavior/index.ts +2 -0
- package/src/closing-behavior/types.ts +12 -0
- package/src/{components/CloudStorage → cloud-storage}/CloudStorage.ts +50 -28
- package/src/colors/index.ts +5 -0
- package/src/colors/isColorDark.ts +22 -0
- package/src/colors/isRGB.ts +9 -0
- package/src/colors/isRGBShort.ts +9 -0
- package/src/colors/toRGB.ts +49 -0
- package/src/colors/types.ts +9 -0
- package/src/event-emitter/EventEmitter.ts +146 -0
- package/src/event-emitter/index.ts +2 -0
- package/src/event-emitter/types.ts +60 -0
- package/src/globals.ts +38 -0
- package/src/{components/HapticFeedback → haptic-feedback}/HapticFeedback.ts +16 -8
- package/src/index.ts +171 -6
- package/src/init/catchCustomStyles.ts +17 -0
- package/src/init/creators/createBackButton.ts +4 -6
- package/src/init/creators/createClosingBehavior.ts +6 -8
- package/src/init/creators/createMainButton.ts +13 -20
- package/src/init/creators/createMiniApp.ts +44 -0
- package/src/init/creators/createRequestIdGenerator.ts +1 -1
- package/src/init/creators/createThemeParams.ts +3 -6
- package/src/init/creators/createViewport.ts +92 -42
- package/src/init/creators/index.ts +1 -1
- package/src/init/css/bindMiniAppCSSVars.ts +48 -0
- package/src/init/css/bindThemeCSSVars.ts +31 -0
- package/src/init/css/bindViewportCSSVars.ts +36 -0
- package/src/init/css/index.ts +1 -0
- package/src/init/css/processCSSVarsOption.ts +57 -0
- package/src/init/css/setCSSVar.ts +8 -0
- package/src/init/init.ts +96 -138
- package/src/init/types.ts +42 -87
- package/src/init-data/InitData.ts +96 -0
- package/src/init-data/chatParser.ts +19 -0
- package/src/init-data/index.ts +6 -0
- package/src/init-data/initDataParser.ts +41 -0
- package/src/init-data/parseInitData.ts +10 -0
- package/src/init-data/types.ts +164 -0
- package/src/init-data/userParser.ts +45 -0
- package/src/invoice/Invoice.ts +123 -0
- package/src/invoice/index.ts +2 -0
- package/src/invoice/types.ts +11 -0
- package/src/launch-params/computeLaunchData.ts +81 -0
- package/src/launch-params/computePageReload.ts +13 -0
- package/src/launch-params/getFirstNavigationEntry.ts +10 -0
- package/src/launch-params/index.ts +12 -0
- package/src/launch-params/launchParamsParser.ts +41 -0
- package/src/launch-params/parseLaunchParams.ts +10 -0
- package/src/launch-params/retrieveCurrent.ts +27 -0
- package/src/launch-params/retrieveFromLocation.ts +10 -0
- package/src/launch-params/retrieveFromPerformance.ts +23 -0
- package/src/launch-params/retrieveLaunchData.ts +30 -0
- package/src/launch-params/serializeLaunchParams.ts +37 -0
- package/src/launch-params/storage.ts +33 -0
- package/src/launch-params/types.ts +57 -0
- package/src/logger/Logger.ts +72 -0
- package/src/logger/index.ts +1 -0
- package/src/main-button/MainButton.ts +239 -0
- package/src/main-button/index.ts +2 -0
- package/src/main-button/types.ts +26 -0
- package/src/mini-app/MiniApp.ts +237 -0
- package/src/mini-app/index.ts +2 -0
- package/src/mini-app/types.ts +25 -0
- package/src/misc/index.ts +2 -0
- package/src/misc/isRecord.ts +7 -0
- package/src/misc/isTMA.ts +13 -0
- package/src/navigation/HashNavigator/HashNavigator.ts +220 -0
- package/src/navigation/HashNavigator/drop.ts +36 -0
- package/src/navigation/HashNavigator/go.ts +28 -0
- package/src/navigation/HashNavigator/index.ts +2 -0
- package/src/navigation/HashNavigator/types.ts +41 -0
- package/src/navigation/Navigator/Navigator.ts +282 -0
- package/src/navigation/Navigator/index.ts +2 -0
- package/src/navigation/Navigator/types.ts +55 -0
- package/src/navigation/ensurePrefix.ts +9 -0
- package/src/navigation/getHash.ts +17 -0
- package/src/navigation/index.ts +4 -0
- package/src/parsing/ArrayValueParser.ts +79 -0
- package/src/parsing/ParseError.ts +27 -0
- package/src/parsing/ParseSchemaFieldError.ts +21 -0
- package/src/parsing/ValueParser.ts +71 -0
- package/src/parsing/createValueParserGenerator.ts +16 -0
- package/src/parsing/index.ts +10 -0
- package/src/parsing/parseBySchema.ts +65 -0
- package/src/parsing/parsers/array.ts +9 -0
- package/src/parsing/parsers/boolean.ts +22 -0
- package/src/parsing/parsers/date.ts +13 -0
- package/src/parsing/parsers/index.ts +8 -0
- package/src/parsing/parsers/json.ts +17 -0
- package/src/parsing/parsers/number.ts +21 -0
- package/src/parsing/parsers/rgb.ts +12 -0
- package/src/parsing/parsers/searchParams.ts +24 -0
- package/src/parsing/parsers/string.ts +12 -0
- package/src/parsing/toRecord.ts +27 -0
- package/src/parsing/types.ts +32 -0
- package/src/parsing/unexpectedTypeError.ts +6 -0
- package/src/{components/Popup → popup}/Popup.ts +38 -28
- package/src/popup/index.ts +2 -0
- package/src/{components/Popup/utils.ts → popup/preparePopupParams.ts} +3 -3
- package/src/{components/Popup → popup}/types.ts +4 -4
- package/src/{components/QRScanner → qr-scanner}/QRScanner.ts +18 -10
- package/src/qr-scanner/index.ts +2 -0
- package/src/{components/QRScanner → qr-scanner}/types.ts +1 -1
- package/src/state/State.ts +31 -21
- package/src/state/types.ts +5 -8
- package/src/storage.ts +6 -4
- package/src/supports/createSupportsFunc.ts +18 -0
- package/src/supports/createSupportsParamFunc.ts +27 -0
- package/src/supports/index.ts +4 -0
- package/src/supports/supports.ts +84 -0
- package/src/supports/types.ts +1 -0
- package/src/theme-params/ThemeParams.ts +131 -0
- package/src/theme-params/index.ts +6 -0
- package/src/theme-params/keys.ts +24 -0
- package/src/theme-params/parseThemeParams.ts +10 -0
- package/src/theme-params/requestThemeParams.ts +13 -0
- package/src/theme-params/serializeThemeParams.ts +20 -0
- package/src/theme-params/themeParamsParser.ts +20 -0
- package/src/theme-params/types.ts +33 -0
- package/src/timeout/TimeoutError.ts +6 -0
- package/src/timeout/index.ts +3 -0
- package/src/timeout/isTimeoutError.ts +9 -0
- package/src/timeout/withTimeout.ts +36 -0
- package/src/types/index.ts +3 -0
- package/src/types/platform.ts +14 -0
- package/src/types/request-id.ts +10 -0
- package/src/types/utils.ts +50 -0
- package/src/utils/Utils.ts +107 -0
- package/src/utils/index.ts +1 -0
- package/src/version/compareVersions.ts +28 -0
- package/src/version/index.ts +2 -0
- package/src/version/types.ts +4 -0
- package/src/{components/Viewport → viewport}/Viewport.ts +72 -98
- package/src/viewport/index.ts +3 -0
- package/src/viewport/requestViewport.ts +23 -0
- package/src/{components/Viewport → viewport}/types.ts +10 -1
- package/src/viewport/utils.ts +7 -0
- package/dist/dts/components/BackButton/index.d.ts +0 -2
- package/dist/dts/components/ClosingBehaviour/index.d.ts +0 -2
- package/dist/dts/components/ClosingBehaviour/types.d.ts +0 -7
- package/dist/dts/components/InitData/InitData.d.ts +0 -60
- package/dist/dts/components/InitData/index.d.ts +0 -1
- package/dist/dts/components/MainButton/MainButton.d.ts +0 -114
- package/dist/dts/components/MainButton/index.d.ts +0 -2
- package/dist/dts/components/MainButton/types.d.ts +0 -15
- package/dist/dts/components/Popup/index.d.ts +0 -2
- package/dist/dts/components/Popup/utils.d.ts +0 -7
- package/dist/dts/components/QRScanner/index.d.ts +0 -2
- package/dist/dts/components/ThemeParams/ThemeParams.d.ts +0 -85
- package/dist/dts/components/ThemeParams/index.d.ts +0 -2
- package/dist/dts/components/ThemeParams/types.d.ts +0 -6
- package/dist/dts/components/Viewport/index.d.ts +0 -2
- package/dist/dts/components/WebApp/WebApp.d.ts +0 -146
- package/dist/dts/components/WebApp/index.d.ts +0 -2
- package/dist/dts/components/WebApp/types.d.ts +0 -11
- package/dist/dts/components/index.d.ts +0 -11
- package/dist/dts/env.d.ts +0 -10
- package/dist/dts/errors/MethodNotSupportedError.d.ts +0 -6
- package/dist/dts/errors/ParameterNotSupportedError.d.ts +0 -6
- package/dist/dts/errors/index.d.ts +0 -2
- package/dist/dts/init/creators/createWebApp.d.ts +0 -16
- package/dist/dts/init/css.d.ts +0 -50
- package/dist/dts/supports.d.ts +0 -22
- package/dist/dts/types.d.ts +0 -10
- package/dist/dts/url.d.ts +0 -7
- package/src/components/BackButton/index.ts +0 -2
- package/src/components/ClosingBehaviour/index.ts +0 -6
- package/src/components/ClosingBehaviour/types.ts +0 -12
- package/src/components/InitData/InitData.ts +0 -139
- package/src/components/InitData/index.ts +0 -1
- package/src/components/MainButton/MainButton.ts +0 -242
- package/src/components/MainButton/index.ts +0 -2
- package/src/components/MainButton/types.ts +0 -20
- package/src/components/Popup/index.ts +0 -8
- package/src/components/QRScanner/index.ts +0 -2
- package/src/components/ThemeParams/ThemeParams.ts +0 -168
- package/src/components/ThemeParams/index.ts +0 -2
- package/src/components/ThemeParams/types.ts +0 -11
- package/src/components/Viewport/index.ts +0 -2
- package/src/components/WebApp/WebApp.ts +0 -311
- package/src/components/WebApp/index.ts +0 -2
- package/src/components/WebApp/types.ts +0 -17
- package/src/components/index.ts +0 -11
- package/src/env.ts +0 -22
- package/src/errors/MethodNotSupportedError.ts +0 -9
- package/src/errors/ParameterNotSupportedError.ts +0 -9
- package/src/errors/index.ts +0 -2
- package/src/init/creators/createWebApp.ts +0 -52
- package/src/init/css.ts +0 -142
- package/src/supports.ts +0 -44
- package/src/types.ts +0 -13
- package/src/url.ts +0 -23
- /package/dist/dts/{components/CloudStorage → cloud-storage}/index.d.ts +0 -0
- /package/dist/dts/{components/HapticFeedback → haptic-feedback}/index.d.ts +0 -0
- /package/src/{components/CloudStorage → cloud-storage}/index.ts +0 -0
- /package/src/{components/HapticFeedback → haptic-feedback}/index.ts +0 -0
|
@@ -1,139 +0,0 @@
|
|
|
1
|
-
import type { HasUndefined, If } from '@tma.js/util-types';
|
|
2
|
-
import type {
|
|
3
|
-
Chat,
|
|
4
|
-
ChatType,
|
|
5
|
-
InitData as InitDataType,
|
|
6
|
-
User,
|
|
7
|
-
} from '@tma.js/init-data';
|
|
8
|
-
|
|
9
|
-
import { State } from '../../state/index.js';
|
|
10
|
-
|
|
11
|
-
type InitDataState = {
|
|
12
|
-
[K in keyof InitDataType]-?: 'canSendAfter' extends K
|
|
13
|
-
? Date | null
|
|
14
|
-
: If<
|
|
15
|
-
HasUndefined<InitDataType[K]>,
|
|
16
|
-
Exclude<InitDataType[K], undefined> | null,
|
|
17
|
-
InitDataType[K]
|
|
18
|
-
>;
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Class which is responsible for displaying Mini Apps init data.
|
|
23
|
-
*/
|
|
24
|
-
export class InitData {
|
|
25
|
-
private readonly state: State<InitDataState>;
|
|
26
|
-
|
|
27
|
-
constructor(
|
|
28
|
-
authDate: Date,
|
|
29
|
-
hash: string,
|
|
30
|
-
options: Omit<InitDataType, 'authDate' | 'hash'> = {},
|
|
31
|
-
) {
|
|
32
|
-
const {
|
|
33
|
-
chat = null,
|
|
34
|
-
canSendAfter = null,
|
|
35
|
-
chatType = null,
|
|
36
|
-
chatInstance = null,
|
|
37
|
-
user = null,
|
|
38
|
-
queryId = null,
|
|
39
|
-
receiver = null,
|
|
40
|
-
startParam = null,
|
|
41
|
-
} = options;
|
|
42
|
-
this.state = new State({
|
|
43
|
-
authDate,
|
|
44
|
-
canSendAfter: canSendAfter === null
|
|
45
|
-
? null
|
|
46
|
-
: new Date(authDate.getTime() + canSendAfter * 1000),
|
|
47
|
-
chat,
|
|
48
|
-
chatType,
|
|
49
|
-
chatInstance,
|
|
50
|
-
user,
|
|
51
|
-
queryId,
|
|
52
|
-
receiver,
|
|
53
|
-
startParam,
|
|
54
|
-
hash,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Init data generation date.
|
|
60
|
-
*/
|
|
61
|
-
get authDate(): Date {
|
|
62
|
-
return this.state.get('authDate');
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Date after which a message can be sent via the
|
|
67
|
-
* [answerWebAppQuery](https://core.telegram.org/bots/api#answerwebappquery) method.
|
|
68
|
-
*/
|
|
69
|
-
get canSendAfter(): Date | null {
|
|
70
|
-
return this.state.get('canSendAfter');
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
* An object containing data about the chat where the bot was launched via the attachment
|
|
75
|
-
* menu. Returned for supergroups, channels and group chats – only for Mini Apps launched via
|
|
76
|
-
* the attachment menu.
|
|
77
|
-
*/
|
|
78
|
-
get chat(): Chat | null {
|
|
79
|
-
return this.state.get('chat');
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* The type of chat from which Mini App was opened.
|
|
84
|
-
*/
|
|
85
|
-
get chatType(): ChatType | null {
|
|
86
|
-
return this.state.get('chatType');
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* A global identifier indicating the chat from which Mini App was opened. Returned only for
|
|
91
|
-
* applications opened by direct link.
|
|
92
|
-
*/
|
|
93
|
-
get chatInstance(): string | null {
|
|
94
|
-
return this.state.get('chatInstance');
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* A hash of all passed parameters, which the bot server can use to
|
|
99
|
-
* check their validity.
|
|
100
|
-
* @see https://core.telegram.org/bots/webapps#validating-data-received-via-the-web-app
|
|
101
|
-
*/
|
|
102
|
-
get hash(): string {
|
|
103
|
-
return this.state.get('hash');
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* A unique identifier for the Mini App session, required for sending
|
|
108
|
-
* messages via the `answerWebAppQuery` method.
|
|
109
|
-
* @see https://core.telegram.org/bots/api#answerwebappquery
|
|
110
|
-
*/
|
|
111
|
-
get queryId(): string | null {
|
|
112
|
-
return this.state.get('queryId');
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* An object containing data about the chat partner of the current
|
|
117
|
-
* user in the chat where the bot was launched via the attachment menu.
|
|
118
|
-
* Returned only for private chats and only for Mini Apps launched
|
|
119
|
-
* via the attachment menu.
|
|
120
|
-
*/
|
|
121
|
-
get receiver(): User | null {
|
|
122
|
-
return this.state.get('receiver');
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
/**
|
|
126
|
-
* The value of the `startattach` parameter, passed via link. Only
|
|
127
|
-
* returned for Mini Apps when launched from the attachment menu via link.
|
|
128
|
-
*/
|
|
129
|
-
get startParam(): string | null {
|
|
130
|
-
return this.state.get('startParam');
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* An object containing data about the current user.
|
|
135
|
-
*/
|
|
136
|
-
get user(): User | null {
|
|
137
|
-
return this.state.get('user');
|
|
138
|
-
}
|
|
139
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './InitData.js';
|
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@tma.js/event-emitter';
|
|
2
|
-
import { on, off, postEvent as defaultPostEvent, type PostEvent } from '@tma.js/bridge';
|
|
3
|
-
|
|
4
|
-
import type { RGB } from '@tma.js/colors';
|
|
5
|
-
|
|
6
|
-
import { State } from '../../state/index.js';
|
|
7
|
-
|
|
8
|
-
import type { MainButtonEventListener, MainButtonEvents, MainButtonState } from './types.js';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Controls the main button, which is displayed at the bottom
|
|
12
|
-
* of the Mini App in the Telegram interface.
|
|
13
|
-
*/
|
|
14
|
-
export class MainButton {
|
|
15
|
-
private readonly ee = new EventEmitter<MainButtonEvents>();
|
|
16
|
-
|
|
17
|
-
private readonly state: State<MainButtonState>;
|
|
18
|
-
|
|
19
|
-
constructor(
|
|
20
|
-
backgroundColor: RGB,
|
|
21
|
-
isEnabled: boolean,
|
|
22
|
-
isVisible: boolean,
|
|
23
|
-
isProgressVisible: boolean,
|
|
24
|
-
text: string,
|
|
25
|
-
textColor: RGB,
|
|
26
|
-
private readonly postEvent: PostEvent = defaultPostEvent,
|
|
27
|
-
) {
|
|
28
|
-
this.state = new State({
|
|
29
|
-
backgroundColor,
|
|
30
|
-
isEnabled,
|
|
31
|
-
isVisible,
|
|
32
|
-
isProgressVisible,
|
|
33
|
-
text,
|
|
34
|
-
textColor,
|
|
35
|
-
}, this.ee);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
private set isEnabled(value: boolean) {
|
|
39
|
-
this.state.set('isEnabled', value);
|
|
40
|
-
this.commit();
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Returns true in case, MainButton is currently enabled.
|
|
45
|
-
*/
|
|
46
|
-
get isEnabled(): boolean {
|
|
47
|
-
return this.state.get('isEnabled');
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
private set isProgressVisible(value: boolean) {
|
|
51
|
-
this.state.set('isProgressVisible', value);
|
|
52
|
-
this.commit();
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Returns true in case, MainButton loading progress is currently visible.
|
|
57
|
-
*/
|
|
58
|
-
get isProgressVisible(): boolean {
|
|
59
|
-
return this.state.get('isProgressVisible');
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
private set isVisible(value: boolean) {
|
|
63
|
-
this.state.set('isVisible', value);
|
|
64
|
-
this.commit();
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Returns true in case, MainButton is currently visible.
|
|
69
|
-
*/
|
|
70
|
-
get isVisible(): boolean {
|
|
71
|
-
return this.state.get('isVisible');
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Sends current local button state to Telegram application.
|
|
76
|
-
*/
|
|
77
|
-
private commit(): void {
|
|
78
|
-
// We should not commit changes until payload is correct. We could
|
|
79
|
-
// have some invalid values in case, button instance was created
|
|
80
|
-
// with empty values. Otherwise, an unexpected behaviour could be received.
|
|
81
|
-
if (this.text === '') {
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
this.postEvent('web_app_setup_main_button', {
|
|
86
|
-
is_visible: this.isVisible,
|
|
87
|
-
is_active: this.isEnabled,
|
|
88
|
-
is_progress_visible: this.isProgressVisible,
|
|
89
|
-
text: this.text,
|
|
90
|
-
color: this.backgroundColor,
|
|
91
|
-
text_color: this.textColor,
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Returns current main button background color.
|
|
97
|
-
*/
|
|
98
|
-
get backgroundColor(): RGB {
|
|
99
|
-
return this.state.get('backgroundColor');
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Returns current main button text.
|
|
104
|
-
*/
|
|
105
|
-
get text(): string {
|
|
106
|
-
return this.state.get('text');
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
/**
|
|
110
|
-
* Returns current main button text color.
|
|
111
|
-
*/
|
|
112
|
-
get textColor(): RGB {
|
|
113
|
-
return this.state.get('textColor');
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
/**
|
|
117
|
-
* Disables button. Returns current button instance for chaining.
|
|
118
|
-
*/
|
|
119
|
-
disable(): this {
|
|
120
|
-
// FIXME: This method does not work on Android. Event "main_button_pressed"
|
|
121
|
-
// keeps getting received even in case, button is disabled.
|
|
122
|
-
// Issue: https://github.com/Telegram-Mini-Apps/documentation/issues/1
|
|
123
|
-
this.isEnabled = false;
|
|
124
|
-
return this;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Enables button. Returns current button instance for chaining.
|
|
129
|
-
*/
|
|
130
|
-
enable(): this {
|
|
131
|
-
this.isEnabled = true;
|
|
132
|
-
return this;
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
/**
|
|
136
|
-
* Hides button. Returns current button instance for chaining.
|
|
137
|
-
*/
|
|
138
|
-
hide(): this {
|
|
139
|
-
this.isVisible = false;
|
|
140
|
-
return this;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Hides button progress. Returns current button instance for chaining.
|
|
145
|
-
*/
|
|
146
|
-
hideProgress(): this {
|
|
147
|
-
this.isProgressVisible = false;
|
|
148
|
-
return this;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
/**
|
|
152
|
-
* Adds new event listener.
|
|
153
|
-
* FIXME: Event 'main_button_pressed' is still being received on Android
|
|
154
|
-
* even if the main button is disabled.
|
|
155
|
-
* Issue: https://github.com/Telegram-Mini-Apps/tma.js/issues/3
|
|
156
|
-
* @param event - event name.
|
|
157
|
-
* @param listener - event listener.
|
|
158
|
-
*/
|
|
159
|
-
on: typeof this.ee.on = (event, listener) => (
|
|
160
|
-
event === 'click'
|
|
161
|
-
? on('main_button_pressed', listener as MainButtonEventListener<'click'>)
|
|
162
|
-
: this.ee.on(event, listener)
|
|
163
|
-
);
|
|
164
|
-
|
|
165
|
-
/**
|
|
166
|
-
* Removes event listener.
|
|
167
|
-
* @param event - event name.
|
|
168
|
-
* @param listener - event listener.
|
|
169
|
-
*/
|
|
170
|
-
off: typeof this.ee.off = (event, listener) => {
|
|
171
|
-
if (event === 'click') {
|
|
172
|
-
return off('main_button_pressed', listener as MainButtonEventListener<'click'>);
|
|
173
|
-
}
|
|
174
|
-
this.ee.off(event, listener);
|
|
175
|
-
};
|
|
176
|
-
|
|
177
|
-
/**
|
|
178
|
-
* Shows the button. Note that opening the Mini App from the attachment
|
|
179
|
-
* menu hides the main button until the user interacts with the Mini App
|
|
180
|
-
* interface.
|
|
181
|
-
*
|
|
182
|
-
* Returns current button instance for chaining.
|
|
183
|
-
*/
|
|
184
|
-
show(): this {
|
|
185
|
-
this.isVisible = true;
|
|
186
|
-
return this;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* A method to show a loading indicator on the button.
|
|
191
|
-
* It is recommended to display loading progress if the action tied to the
|
|
192
|
-
* button may take a long time.
|
|
193
|
-
*
|
|
194
|
-
* Returns current button instance for chaining.
|
|
195
|
-
*/
|
|
196
|
-
showProgress(): this {
|
|
197
|
-
this.isProgressVisible = true;
|
|
198
|
-
return this;
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Sets new main button text. Returns current button instance for chaining.
|
|
203
|
-
* Minimal length for text is 1 symbol, and maximum is 64 symbols.
|
|
204
|
-
*
|
|
205
|
-
* Returns current button instance for chaining.
|
|
206
|
-
* @param value - new text.
|
|
207
|
-
*/
|
|
208
|
-
setText(value: string): this {
|
|
209
|
-
this.state.set('text', value);
|
|
210
|
-
this.commit();
|
|
211
|
-
|
|
212
|
-
return this;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
/**
|
|
216
|
-
* Sets new main button text color. Returns current button instance for
|
|
217
|
-
* chaining.
|
|
218
|
-
*
|
|
219
|
-
* Returns current button instance for chaining.
|
|
220
|
-
* @param value - new text color.
|
|
221
|
-
*/
|
|
222
|
-
setTextColor(value: RGB): this {
|
|
223
|
-
this.state.set('textColor', value);
|
|
224
|
-
this.commit();
|
|
225
|
-
|
|
226
|
-
return this;
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
/**
|
|
230
|
-
* Updates current button color. Returns current button instance for
|
|
231
|
-
* chaining.
|
|
232
|
-
*
|
|
233
|
-
* Returns current button instance for chaining.
|
|
234
|
-
* @param value - color to set.
|
|
235
|
-
*/
|
|
236
|
-
setBackgroundColor(value: RGB): this {
|
|
237
|
-
this.state.set('backgroundColor', value);
|
|
238
|
-
this.commit();
|
|
239
|
-
|
|
240
|
-
return this;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import type { RGB } from '@tma.js/colors';
|
|
2
|
-
|
|
3
|
-
import type { StateEvents } from '../../state/index.js';
|
|
4
|
-
|
|
5
|
-
export interface MainButtonState {
|
|
6
|
-
backgroundColor: RGB;
|
|
7
|
-
isEnabled: boolean;
|
|
8
|
-
isVisible: boolean;
|
|
9
|
-
isProgressVisible: boolean;
|
|
10
|
-
text: string;
|
|
11
|
-
textColor: RGB;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
export interface MainButtonEvents extends StateEvents<MainButtonState> {
|
|
15
|
-
click: () => void;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export type MainButtonEventName = keyof MainButtonEvents;
|
|
19
|
-
|
|
20
|
-
export type MainButtonEventListener<E extends MainButtonEventName> = MainButtonEvents[E];
|
|
@@ -1,168 +0,0 @@
|
|
|
1
|
-
import { EventEmitter } from '@tma.js/event-emitter';
|
|
2
|
-
import { parse, type ThemeParams as ThemeParamsType } from '@tma.js/theme-params';
|
|
3
|
-
import { on, request, type RequestOptions } from '@tma.js/bridge';
|
|
4
|
-
import { isColorDark } from '@tma.js/colors';
|
|
5
|
-
|
|
6
|
-
import type { RGB } from '@tma.js/colors';
|
|
7
|
-
|
|
8
|
-
import { State } from '../../state/index.js';
|
|
9
|
-
|
|
10
|
-
import type { ThemeParamsEvents, ThemeParamsState } from './types.js';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Contains information about currently used theme by application.
|
|
14
|
-
* @see https://core.telegram.org/bots/webapps#themeparams
|
|
15
|
-
*/
|
|
16
|
-
export class ThemeParams {
|
|
17
|
-
/**
|
|
18
|
-
* Requests fresh information about current theme.
|
|
19
|
-
* FIXME: Be careful using this function in desktop version of Telegram as
|
|
20
|
-
* long as method web_app_request_theme does not work on `macos` platform.
|
|
21
|
-
* @param options - method options.
|
|
22
|
-
*/
|
|
23
|
-
static async request(options: RequestOptions = {}): Promise<ThemeParamsType> {
|
|
24
|
-
const { timeout = 1000, ...restOptions } = options;
|
|
25
|
-
const result = await request('web_app_request_theme', 'theme_changed', {
|
|
26
|
-
...restOptions,
|
|
27
|
-
timeout,
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
return parse(result.theme_params);
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Synchronizes specified instance of ThemeParams with the actual value in the native
|
|
35
|
-
* application.
|
|
36
|
-
* @param themeParams - ThemeParams instance.
|
|
37
|
-
*/
|
|
38
|
-
static sync(themeParams: ThemeParams): void {
|
|
39
|
-
on('theme_changed', (event) => {
|
|
40
|
-
themeParams.state.set(parse(event.theme_params));
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Returns instance of ThemeParams which is synchronized with external
|
|
46
|
-
* environment.
|
|
47
|
-
* @param options - method options.
|
|
48
|
-
*/
|
|
49
|
-
static async synced(options?: RequestOptions): Promise<ThemeParams> {
|
|
50
|
-
const params = await this.request(options);
|
|
51
|
-
const tp = new ThemeParams(params);
|
|
52
|
-
|
|
53
|
-
this.sync(tp);
|
|
54
|
-
|
|
55
|
-
return tp;
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
private readonly ee = new EventEmitter<ThemeParamsEvents>();
|
|
59
|
-
|
|
60
|
-
private readonly state: State<ThemeParamsState>;
|
|
61
|
-
|
|
62
|
-
constructor(params: ThemeParamsType) {
|
|
63
|
-
this.state = new State(params, this.ee);
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
get accentTextColor(): RGB | null {
|
|
67
|
-
return this.get('accentTextColor');
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Returns background color.
|
|
72
|
-
*/
|
|
73
|
-
get backgroundColor(): RGB | null {
|
|
74
|
-
return this.get('backgroundColor');
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Returns button color.
|
|
79
|
-
*/
|
|
80
|
-
get buttonColor(): RGB | null {
|
|
81
|
-
return this.get('buttonColor');
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Returns button text color.
|
|
86
|
-
*/
|
|
87
|
-
get buttonTextColor(): RGB | null {
|
|
88
|
-
return this.get('buttonTextColor');
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
get destructiveTextColor(): RGB | null {
|
|
92
|
-
return this.get('destructiveTextColor');
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Retrieves palette color value by its name.
|
|
97
|
-
* @param key - palette key name.
|
|
98
|
-
*/
|
|
99
|
-
get(key: keyof ThemeParamsType): RGB | null {
|
|
100
|
-
return this.state.get(key) || null;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
getState(): ThemeParamsType {
|
|
104
|
-
return this.state.getState();
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
get headerBackgroundColor(): RGB | null {
|
|
108
|
-
return this.get('headerBackgroundColor');
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
/**
|
|
112
|
-
* Returns hint color.
|
|
113
|
-
*/
|
|
114
|
-
get hintColor(): RGB | null {
|
|
115
|
-
return this.get('hintColor');
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Returns true in case, current color scheme is recognized as dark. This
|
|
120
|
-
* value is calculated according to theme background color.
|
|
121
|
-
*/
|
|
122
|
-
get isDark(): boolean {
|
|
123
|
-
return this.backgroundColor === null || isColorDark(this.backgroundColor);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Returns current link color.
|
|
128
|
-
*/
|
|
129
|
-
get linkColor(): RGB | null {
|
|
130
|
-
return this.get('linkColor');
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/**
|
|
134
|
-
* Adds new event listener.
|
|
135
|
-
*/
|
|
136
|
-
on = this.ee.on.bind(this.ee);
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Removes event listener.
|
|
140
|
-
*/
|
|
141
|
-
off = this.ee.off.bind(this.ee);
|
|
142
|
-
|
|
143
|
-
/**
|
|
144
|
-
* Returns secondary background color.
|
|
145
|
-
*/
|
|
146
|
-
get secondaryBackgroundColor(): RGB | null {
|
|
147
|
-
return this.get('secondaryBackgroundColor');
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
get sectionBackgroundColor(): RGB | null {
|
|
151
|
-
return this.get('sectionBackgroundColor');
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
get sectionHeaderTextColor(): RGB | null {
|
|
155
|
-
return this.get('sectionHeaderTextColor');
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
get subtitleTextColor(): RGB | null {
|
|
159
|
-
return this.get('subtitleTextColor');
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* Returns text color.
|
|
164
|
-
*/
|
|
165
|
-
get textColor(): RGB | null {
|
|
166
|
-
return this.get('textColor');
|
|
167
|
-
}
|
|
168
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ThemeParams } from '@tma.js/theme-params';
|
|
2
|
-
|
|
3
|
-
import type { StateEvents } from '../../state/index.js';
|
|
4
|
-
|
|
5
|
-
export type ThemeParamsState = ThemeParams;
|
|
6
|
-
|
|
7
|
-
export type ThemeParamsEvents = StateEvents<ThemeParamsState>;
|
|
8
|
-
|
|
9
|
-
export type ThemeParamsEventName = keyof ThemeParamsEvents;
|
|
10
|
-
|
|
11
|
-
export type ThemeParamsEventListener<E extends ThemeParamsEventName> = ThemeParamsEvents[E];
|