@nativescript/core 9.0.0-next-07-26-2025-16544379102 → 9.0.0-preview.1
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/accessibility/accessibility-common.d.ts +264 -0
- package/accessibility/accessibility-common.js +352 -0
- package/accessibility/accessibility-common.js.map +1 -1
- package/accessibility/accessibility-properties.d.ts +1 -1
- package/accessibility/accessibility-properties.js +2 -2
- package/accessibility/accessibility-properties.js.map +1 -1
- package/accessibility/index.d.ts +0 -36
- package/accessibility/index.js +2 -0
- package/accessibility/index.js.map +1 -0
- package/application/application-common.d.ts +6 -8
- package/application/application-common.js +21 -14
- package/application/application-common.js.map +1 -1
- package/application/application-interfaces.d.ts +2 -3
- package/application/application.android.d.ts +14 -7
- package/application/application.android.js +754 -75
- package/application/application.android.js.map +1 -1
- package/application/application.d.ts +25 -0
- package/application/application.ios.d.ts +16 -18
- package/application/application.ios.js +455 -45
- package/application/application.ios.js.map +1 -1
- package/application/helpers-common.d.ts +50 -0
- package/application/helpers-common.js +153 -0
- package/application/helpers-common.js.map +1 -0
- package/application/helpers.android.d.ts +17 -0
- package/application/helpers.android.js +173 -0
- package/application/helpers.android.js.map +1 -0
- package/application/helpers.d.ts +25 -0
- package/application/helpers.ios.d.ts +27 -0
- package/application/helpers.ios.js +62 -0
- package/application/helpers.ios.js.map +1 -0
- package/application-settings/index.android.js +2 -2
- package/application-settings/index.android.js.map +1 -1
- package/color/color-common.d.ts +18 -19
- package/color/color-common.js +13 -14
- package/color/color-common.js.map +1 -1
- package/color/color-types.d.ts +49 -0
- package/color/color-types.js +3 -0
- package/color/color-types.js.map +1 -0
- package/color/index.ios.d.ts +2 -1
- package/color/index.ios.js.map +1 -1
- package/connectivity/index.android.js +5 -4
- package/connectivity/index.android.js.map +1 -1
- package/core-types/animation-types.d.ts +11 -0
- package/{ui/animation/animation-interfaces.js → core-types/animation-types.js} +1 -1
- package/core-types/animation-types.js.map +1 -0
- package/core-types/index.d.ts +1 -1
- package/core-types/index.js +2 -2
- package/core-types/index.js.map +1 -1
- package/core-types/validators.d.ts +2 -0
- package/core-types/validators.js +18 -0
- package/core-types/validators.js.map +1 -0
- package/css/css-tree-parser.js +17 -21
- package/css/css-tree-parser.js.map +1 -1
- package/css/lib/parse/index.d.ts +1 -0
- package/css/lib/parse/index.js +475 -577
- package/css/lib/parse/index.js.map +1 -0
- package/css/reworkcss.d.ts +25 -28
- package/css/reworkcss.js +5 -1
- package/css/reworkcss.js.map +1 -0
- package/css-mediaquery/index.js +1 -1
- package/css-mediaquery/index.js.map +1 -1
- package/css-value/reworkcss-value.d.ts +31 -8
- package/css-value/reworkcss-value.js +89 -111
- package/css-value/reworkcss-value.js.map +1 -0
- package/debugger/devtools-elements-interfaces.d.ts +1 -1
- package/debugger/devtools-elements.common.js +17 -8
- package/debugger/devtools-elements.common.js.map +1 -1
- package/debugger/devtools-elements.js +1 -1
- package/debugger/devtools-elements.js.map +1 -1
- package/debugger/dom-types.d.ts +24 -0
- package/debugger/{dom-node.js → dom-types.js} +11 -9
- package/debugger/dom-types.js.map +1 -0
- package/debugger/webinspector-css.d.ts +18 -18
- package/debugger/webinspector-css.js +1 -1
- package/debugger/webinspector-css.js.map +1 -1
- package/debugger/webinspector-dom.d.ts +15 -15
- package/debugger/webinspector-dom.js +1 -1
- package/debugger/webinspector-dom.js.map +1 -1
- package/debugger/webinspector-network.android.d.ts +9 -9
- package/debugger/webinspector-network.android.js +3 -3
- package/debugger/webinspector-network.android.js.map +1 -1
- package/debugger/webinspector-network.ios.d.ts +9 -9
- package/debugger/webinspector-network.ios.js +1 -1
- package/debugger/webinspector-network.ios.js.map +1 -1
- package/fetch/index.d.ts +72 -0
- package/fetch/index.js +448 -458
- package/fetch/index.js.map +1 -0
- package/file-system/file-system-access.android.js +32 -39
- package/file-system/file-system-access.android.js.map +1 -1
- package/file-system/file-system-access.ios.js +2 -15
- package/file-system/file-system-access.ios.js.map +1 -1
- package/file-system/index.d.ts +2 -2
- package/file-system/index.js +4 -11
- package/file-system/index.js.map +1 -1
- package/fps-meter/fps-native.android.d.ts +1 -2
- package/fps-meter/fps-native.android.js.map +1 -1
- package/fps-meter/fps-native.ios.d.ts +1 -2
- package/fps-meter/fps-native.ios.js.map +1 -1
- package/global-types.d.ts +7 -8
- package/globals/global-utils.d.ts +27 -0
- package/globals/global-utils.js +67 -0
- package/globals/global-utils.js.map +1 -0
- package/globals/index.d.ts +3 -7
- package/globals/index.js +276 -281
- package/globals/index.js.map +1 -1
- package/http/http-interfaces.d.ts +84 -0
- package/http/http-interfaces.js +6 -0
- package/http/http-interfaces.js.map +1 -0
- package/http/http-request/http-request-common.js +2 -2
- package/http/http-request/http-request-common.js.map +1 -1
- package/http/http-request/index.android.d.ts +3 -7
- package/http/http-request/index.android.js +6 -22
- package/http/http-request/index.android.js.map +1 -1
- package/http/http-request/index.d.ts +5 -1
- package/http/http-request/index.ios.d.ts +3 -7
- package/http/http-request/index.ios.js +6 -22
- package/http/http-request/index.ios.js.map +1 -1
- package/http/http-shared.d.ts +5 -0
- package/http/http-shared.js +14 -0
- package/http/http-shared.js.map +1 -0
- package/http/index.d.ts +6 -105
- package/http/index.js +10 -12
- package/http/index.js.map +1 -1
- package/image-asset/index.android.js +3 -3
- package/image-asset/index.android.js.map +1 -1
- package/image-source/index.android.d.ts +1 -1
- package/image-source/index.android.js +5 -23
- package/image-source/index.android.js.map +1 -1
- package/image-source/index.ios.js +2 -9
- package/image-source/index.ios.js.map +1 -1
- package/index.d.ts +12 -8
- package/index.js +6 -3
- package/index.js.map +1 -1
- package/inspector_modules.d.ts +11 -0
- package/inspector_modules.js +111 -3
- package/inspector_modules.js.map +1 -1
- package/js-libs/easysax/easysax.js +5 -3
- package/media-query-list/index.js +7 -17
- package/media-query-list/index.js.map +1 -1
- package/module-name-resolver/helpers.d.ts +14 -0
- package/module-name-resolver/helpers.js +27 -0
- package/module-name-resolver/helpers.js.map +1 -0
- package/module-name-resolver/index.d.ts +12 -22
- package/module-name-resolver/index.js +6 -18
- package/module-name-resolver/index.js.map +1 -1
- package/module-name-resolver/non-bundle-workflow-compat.js +32 -23
- package/module-name-resolver/non-bundle-workflow-compat.js.map +1 -1
- package/module-name-resolver/qualifier-matcher/index.d.ts +6 -12
- package/module-name-resolver/qualifier-matcher/index.js +5 -5
- package/module-name-resolver/qualifier-matcher/index.js.map +1 -1
- package/package.json +5 -2
- package/platform/device/index.android.js +2 -2
- package/platform/device/index.android.js.map +1 -1
- package/platform/screen/index.android.js +2 -2
- package/platform/screen/index.android.js.map +1 -1
- package/platform/screen/index.ios.js +2 -2
- package/platform/screen/index.ios.js.map +1 -1
- package/profiling/index.js +2 -1
- package/profiling/index.js.map +1 -1
- package/ui/action-bar/action-bar-common.js +4 -2
- package/ui/action-bar/action-bar-common.js.map +1 -1
- package/ui/action-bar/index.android.js +7 -6
- package/ui/action-bar/index.android.js.map +1 -1
- package/ui/action-bar/index.ios.js +10 -11
- package/ui/action-bar/index.ios.js.map +1 -1
- package/ui/activity-indicator/index.ios.js +3 -4
- package/ui/activity-indicator/index.ios.js.map +1 -1
- package/ui/animation/animation-common.d.ts +4 -4
- package/ui/animation/animation-common.js +2 -3
- package/ui/animation/animation-common.js.map +1 -1
- package/ui/animation/{animation-interfaces.d.ts → animation-shared.d.ts} +39 -31
- package/ui/animation/animation-shared.js +4 -0
- package/ui/animation/animation-shared.js.map +1 -0
- package/ui/animation/animation-types.d.ts +1 -0
- package/ui/animation/animation-types.js +3 -0
- package/ui/animation/animation-types.js.map +1 -0
- package/ui/animation/index.android.d.ts +1 -2
- package/ui/animation/index.android.js +5 -5
- package/ui/animation/index.android.js.map +1 -1
- package/ui/animation/index.d.ts +2 -138
- package/ui/animation/index.ios.d.ts +1 -2
- package/ui/animation/index.ios.js +3 -3
- package/ui/animation/index.ios.js.map +1 -1
- package/ui/animation/keyframe-animation.d.ts +67 -118
- package/ui/animation/keyframe-animation.js +2 -2
- package/ui/animation/keyframe-animation.js.map +1 -1
- package/ui/builder/binding-builder.d.ts +12 -15
- package/ui/builder/component-builder/index.js +5 -5
- package/ui/builder/component-builder/index.js.map +1 -1
- package/ui/builder/index.d.ts +179 -59
- package/ui/builder/index.js +450 -10
- package/ui/builder/index.js.map +1 -1
- package/ui/button/index.android.js +2 -1
- package/ui/button/index.android.js.map +1 -1
- package/ui/core/bindable/bindable-types.d.ts +37 -0
- package/ui/core/bindable/bindable-types.js +3 -0
- package/ui/core/bindable/bindable-types.js.map +1 -0
- package/ui/core/bindable/index.d.ts +2 -38
- package/ui/core/bindable/index.js +1 -2
- package/ui/core/bindable/index.js.map +1 -1
- package/ui/core/properties/index.d.ts +4 -37
- package/ui/core/properties/index.js +6 -35
- package/ui/core/properties/index.js.map +1 -1
- package/ui/core/properties/property-shared.d.ts +35 -0
- package/ui/core/properties/property-shared.js +16 -0
- package/ui/core/properties/property-shared.js.map +1 -0
- package/ui/core/view/index.android.d.ts +2 -2
- package/ui/core/view/index.android.js +13 -10
- package/ui/core/view/index.android.js.map +1 -1
- package/ui/core/view/index.d.ts +1 -61
- package/ui/core/view/index.ios.d.ts +3 -3
- package/ui/core/view/index.ios.js +11 -11
- package/ui/core/view/index.ios.js.map +1 -1
- package/ui/core/view/view-common.d.ts +19 -16
- package/ui/core/view/view-common.js +12 -14
- package/ui/core/view/view-common.js.map +1 -1
- package/ui/core/view/view-helper/index.ios.d.ts +2 -1
- package/ui/core/view/view-helper/index.ios.js +3 -4
- package/ui/core/view/view-helper/index.ios.js.map +1 -1
- package/ui/core/view/view-helper/view-helper-common.js +1 -3
- package/ui/core/view/view-helper/view-helper-common.js.map +1 -1
- package/ui/core/view/view-helper/view-helper-shared.d.ts +5 -0
- package/ui/core/view/view-helper/view-helper-shared.js +6 -0
- package/ui/core/view/view-helper/view-helper-shared.js.map +1 -0
- package/ui/core/view/view-interfaces.d.ts +54 -0
- package/ui/core/view/view-interfaces.js +2 -0
- package/ui/core/view/view-interfaces.js.map +1 -0
- package/ui/core/view-base/index.d.ts +22 -24
- package/ui/core/view-base/index.js +9 -30
- package/ui/core/view-base/index.js.map +1 -1
- package/ui/core/view-base/utils.d.ts +1 -0
- package/ui/core/view-base/utils.js +9 -0
- package/ui/core/view-base/utils.js.map +1 -0
- package/ui/dialogs/dialogs-common.js +3 -3
- package/ui/dialogs/dialogs-common.js.map +1 -1
- package/ui/dialogs/index.android.js +8 -7
- package/ui/dialogs/index.android.js.map +1 -1
- package/ui/dialogs/index.ios.js +2 -2
- package/ui/dialogs/index.ios.js.map +1 -1
- package/ui/embedding/index.android.d.ts +1 -1
- package/ui/embedding/index.d.ts +1 -1
- package/ui/frame/fragment.android.js +3 -2
- package/ui/frame/fragment.android.js.map +1 -1
- package/ui/frame/fragment.transitions.android.js.map +1 -1
- package/ui/frame/frame-common.d.ts +3 -3
- package/ui/frame/frame-common.js.map +1 -1
- package/ui/frame/{callbacks/fragment-callbacks.d.ts → frame-helper-for-android.d.ts} +20 -1
- package/ui/frame/{callbacks/fragment-callbacks.js → frame-helper-for-android.js} +52 -38
- package/ui/frame/frame-helper-for-android.js.map +1 -0
- package/ui/frame/frame-interfaces.d.ts +30 -4
- package/ui/frame/frame-interfaces.js.map +1 -1
- package/ui/frame/frame-stack.js.map +1 -1
- package/ui/frame/index.android.d.ts +21 -5
- package/ui/frame/index.android.js +296 -19
- package/ui/frame/index.android.js.map +1 -1
- package/ui/frame/index.d.ts +19 -60
- package/ui/frame/index.ios.d.ts +3 -2
- package/ui/frame/index.ios.js +5 -4
- package/ui/frame/index.ios.js.map +1 -1
- package/ui/gestures/gestures-common.d.ts +4 -273
- package/ui/gestures/gestures-common.js +3 -146
- package/ui/gestures/gestures-common.js.map +1 -1
- package/ui/gestures/gestures-types.d.ts +108 -0
- package/ui/gestures/gestures-types.js +40 -0
- package/ui/gestures/gestures-types.js.map +1 -0
- package/ui/gestures/index.android.d.ts +29 -1
- package/ui/gestures/index.android.js +4 -2
- package/ui/gestures/index.android.js.map +1 -1
- package/ui/gestures/index.d.ts +35 -0
- package/ui/gestures/index.ios.d.ts +35 -1
- package/ui/gestures/index.ios.js +3 -3
- package/ui/gestures/index.ios.js.map +1 -1
- package/ui/gestures/touch-manager.d.ts +1 -1
- package/ui/html-view/index.ios.js +3 -3
- package/ui/html-view/index.ios.js.map +1 -1
- package/ui/image/image-common.js +1 -1
- package/ui/image/image-common.js.map +1 -1
- package/ui/image/index.android.js +1 -1
- package/ui/image/index.android.js.map +1 -1
- package/ui/image-cache/index.ios.js +5 -11
- package/ui/image-cache/index.ios.js.map +1 -1
- package/ui/index.d.ts +10 -5
- package/ui/index.js +18 -3
- package/ui/index.js.map +1 -1
- package/ui/label/index.ios.js.map +1 -1
- package/ui/layouts/absolute-layout/absolute-layout-common.js +1 -1
- package/ui/layouts/absolute-layout/absolute-layout-common.js.map +1 -1
- package/ui/layouts/absolute-layout/index.android.js +1 -1
- package/ui/layouts/absolute-layout/index.android.js.map +1 -1
- package/ui/layouts/absolute-layout/index.d.ts +1 -1
- package/ui/layouts/absolute-layout/index.ios.js.map +1 -1
- package/ui/layouts/flexbox-layout/flexbox-layout-common.js +2 -1
- package/ui/layouts/flexbox-layout/flexbox-layout-common.js.map +1 -1
- package/ui/layouts/flexbox-layout/index.android.js +1 -1
- package/ui/layouts/flexbox-layout/index.android.js.map +1 -1
- package/ui/layouts/flexbox-layout/index.ios.js.map +1 -1
- package/ui/layouts/layout-base.android.js +2 -1
- package/ui/layouts/layout-base.android.js.map +1 -1
- package/ui/layouts/stack-layout/index.ios.js.map +1 -1
- package/ui/layouts/wrap-layout/index.android.js +1 -1
- package/ui/layouts/wrap-layout/index.android.js.map +1 -1
- package/ui/layouts/wrap-layout/index.d.ts +1 -1
- package/ui/layouts/wrap-layout/wrap-layout-common.js +1 -1
- package/ui/layouts/wrap-layout/wrap-layout-common.js.map +1 -1
- package/ui/list-view/index.android.d.ts +17 -1
- package/ui/list-view/index.android.js +402 -32
- package/ui/list-view/index.android.js.map +1 -1
- package/ui/list-view/index.d.ts +66 -1
- package/ui/list-view/index.ios.d.ts +24 -2
- package/ui/list-view/index.ios.js +385 -10
- package/ui/list-view/index.ios.js.map +1 -1
- package/ui/list-view/list-view-common.d.ts +15 -0
- package/ui/list-view/list-view-common.js +73 -1
- package/ui/list-view/list-view-common.js.map +1 -1
- package/ui/page/events.d.ts +6 -0
- package/ui/page/events.js +7 -0
- package/ui/page/events.js.map +1 -0
- package/ui/page/index.android.js +2 -1
- package/ui/page/index.android.js.map +1 -1
- package/ui/page/index.d.ts +1 -1
- package/ui/page/index.ios.js +4 -5
- package/ui/page/index.ios.js.map +1 -1
- package/ui/page/page-common.d.ts +3 -2
- package/ui/page/page-common.js +5 -4
- package/ui/page/page-common.js.map +1 -1
- package/ui/scroll-view/index.ios.js +3 -3
- package/ui/scroll-view/index.ios.js.map +1 -1
- package/ui/styling/background-common.js +0 -1
- package/ui/styling/background-common.js.map +1 -1
- package/ui/styling/background.android.d.ts +0 -6
- package/ui/styling/background.android.js +1 -53
- package/ui/styling/background.android.js.map +1 -1
- package/ui/styling/background.ios.js +2 -1
- package/ui/styling/background.ios.js.map +1 -1
- package/ui/styling/converters.d.ts +2 -2
- package/ui/styling/css-shadow.js.map +1 -1
- package/ui/styling/css-stroke.js.map +1 -1
- package/ui/styling/css-transform.d.ts +1 -1
- package/ui/styling/css-utils.js +1 -1
- package/ui/styling/css-utils.js.map +1 -1
- package/ui/styling/font.android.js +2 -2
- package/ui/styling/font.android.js.map +1 -1
- package/ui/styling/font.ios.js +10 -10
- package/ui/styling/font.ios.js.map +1 -1
- package/ui/styling/length-shared.d.ts +52 -0
- package/ui/styling/length-shared.js +173 -0
- package/ui/styling/length-shared.js.map +1 -0
- package/ui/styling/style/index.d.ts +1 -1
- package/ui/styling/style-properties.d.ts +58 -112
- package/ui/styling/style-properties.js +7 -93
- package/ui/styling/style-properties.js.map +1 -1
- package/ui/styling/style-scope.d.ts +85 -48
- package/ui/styling/style-scope.js +30 -36
- package/ui/styling/style-scope.js.map +1 -1
- package/ui/styling/styling-profile.d.ts +1 -0
- package/ui/styling/styling-profile.js +4 -0
- package/ui/styling/styling-profile.js.map +1 -0
- package/ui/styling/styling-shared.d.ts +3 -0
- package/ui/styling/styling-shared.js +6 -0
- package/ui/styling/styling-shared.js.map +1 -0
- package/ui/switch/index.ios.js +5 -5
- package/ui/switch/index.ios.js.map +1 -1
- package/ui/tab-view/index.android.js +6 -6
- package/ui/tab-view/index.android.js.map +1 -1
- package/ui/text-base/index.android.d.ts +1 -1
- package/ui/text-base/index.android.js +4 -4
- package/ui/text-base/index.android.js.map +1 -1
- package/ui/text-base/index.d.ts +1 -1
- package/ui/text-base/index.ios.js +5 -4
- package/ui/text-base/index.ios.js.map +1 -1
- package/ui/text-view/index.ios.js.map +1 -1
- package/ui/transition/fade-transition.ios.js +1 -1
- package/ui/transition/fade-transition.ios.js.map +1 -1
- package/ui/transition/index.ios.js +1 -1
- package/ui/transition/index.ios.js.map +1 -1
- package/ui/transition/modal-transition.ios.js +1 -1
- package/ui/transition/modal-transition.ios.js.map +1 -1
- package/ui/transition/page-transition.android.d.ts +1 -1
- package/ui/transition/page-transition.android.js +4 -4
- package/ui/transition/page-transition.android.js.map +1 -1
- package/ui/transition/page-transition.ios.js +1 -1
- package/ui/transition/page-transition.ios.js.map +1 -1
- package/ui/transition/shared-transition-helper.ios.js +1 -1
- package/ui/transition/shared-transition-helper.ios.js.map +1 -1
- package/ui/transition/shared-transition.js +2 -1
- package/ui/transition/shared-transition.js.map +1 -1
- package/ui/transition/slide-transition.ios.js +2 -2
- package/ui/transition/slide-transition.ios.js.map +1 -1
- package/utils/animation-helpers.d.ts +27 -0
- package/utils/animation-helpers.js +48 -0
- package/utils/animation-helpers.js.map +1 -0
- package/utils/common.d.ts +1 -38
- package/utils/common.js +2 -112
- package/utils/common.js.map +1 -1
- package/utils/debug-source.d.ts +19 -0
- package/utils/debug-source.js +78 -0
- package/utils/debug-source.js.map +1 -0
- package/utils/debug.js +1 -59
- package/utils/debug.js.map +1 -1
- package/utils/index.android.d.ts +3 -1
- package/utils/index.android.js +37 -11
- package/utils/index.android.js.map +1 -1
- package/utils/index.d.ts +2 -14
- package/utils/index.ios.d.ts +4 -1
- package/utils/index.ios.js +32 -5
- package/utils/index.ios.js.map +1 -1
- package/utils/layout-helper/index.android.js +4 -4
- package/utils/layout-helper/index.android.js.map +1 -1
- package/utils/layout-helper/index.d.ts +6 -4
- package/utils/layout-helper/index.ios.js +5 -5
- package/utils/layout-helper/index.ios.js.map +1 -1
- package/utils/layout-helper/layout-helper-common.d.ts +0 -9
- package/utils/layout-helper/layout-helper-common.js +1 -9
- package/utils/layout-helper/layout-helper-common.js.map +1 -1
- package/utils/layout-helper/layout-helper-shared.d.ts +9 -0
- package/utils/layout-helper/layout-helper-shared.js +13 -0
- package/utils/layout-helper/layout-helper-shared.js.map +1 -0
- package/utils/{android/index.d.ts → native-helper-for-android.d.ts} +4 -2
- package/utils/native-helper-for-android.js +273 -0
- package/utils/native-helper-for-android.js.map +1 -0
- package/utils/native-helper.android.d.ts +29 -5
- package/utils/native-helper.android.js +18 -131
- package/utils/native-helper.android.js.map +1 -1
- package/utils/native-helper.d.ts +206 -258
- package/utils/native-helper.ios.d.ts +72 -3
- package/utils/native-helper.ios.js +250 -3
- package/utils/native-helper.ios.js.map +1 -1
- package/utils/shared.d.ts +17 -0
- package/utils/shared.js +40 -0
- package/utils/shared.js.map +1 -0
- package/utils/utils-shared.d.ts +1 -0
- package/utils/utils-shared.js +8 -0
- package/utils/utils-shared.js.map +1 -0
- package/xhr/index.js +12 -13
- package/xhr/index.js.map +1 -1
- package/xml/index.d.ts +94 -98
- package/xml/index.js +58 -2
- package/xml/index.js.map +1 -1
- package/accessibility/accessibility-css-helper.d.ts +0 -1
- package/accessibility/accessibility-css-helper.js +0 -101
- package/accessibility/accessibility-css-helper.js.map +0 -1
- package/accessibility/accessibility-service-common.d.ts +0 -8
- package/accessibility/accessibility-service-common.js +0 -26
- package/accessibility/accessibility-service-common.js.map +0 -1
- package/accessibility/accessibility-service.android.d.ts +0 -6
- package/accessibility/accessibility-service.android.js +0 -103
- package/accessibility/accessibility-service.android.js.map +0 -1
- package/accessibility/accessibility-service.d.ts +0 -10
- package/accessibility/accessibility-service.ios.d.ts +0 -6
- package/accessibility/accessibility-service.ios.js +0 -61
- package/accessibility/accessibility-service.ios.js.map +0 -1
- package/accessibility/accessibility-types.d.ts +0 -224
- package/accessibility/accessibility-types.js +0 -222
- package/accessibility/accessibility-types.js.map +0 -1
- package/accessibility/font-scale-common.d.ts +0 -7
- package/accessibility/font-scale-common.js +0 -14
- package/accessibility/font-scale-common.js.map +0 -1
- package/accessibility/font-scale.android.d.ts +0 -5
- package/accessibility/font-scale.android.js +0 -55
- package/accessibility/font-scale.android.js.map +0 -1
- package/accessibility/font-scale.d.ts +0 -9
- package/accessibility/font-scale.ios.d.ts +0 -5
- package/accessibility/font-scale.ios.js +0 -89
- package/accessibility/font-scale.ios.js.map +0 -1
- package/accessibility/index.android.d.ts +0 -10
- package/accessibility/index.android.js +0 -577
- package/accessibility/index.android.js.map +0 -1
- package/accessibility/index.ios.d.ts +0 -9
- package/accessibility/index.ios.js +0 -229
- package/accessibility/index.ios.js.map +0 -1
- package/css/package.json +0 -36
- package/css-value/package.json +0 -23
- package/debugger/dom-node.d.ts +0 -27
- package/debugger/dom-node.js.map +0 -1
- package/ui/animation/animation-interfaces.js.map +0 -1
- package/ui/builder/xml2ui.d.ts +0 -134
- package/ui/builder/xml2ui.js +0 -397
- package/ui/builder/xml2ui.js.map +0 -1
- package/ui/frame/callbacks/activity-callbacks.d.ts +0 -19
- package/ui/frame/callbacks/activity-callbacks.js +0 -301
- package/ui/frame/callbacks/activity-callbacks.js.map +0 -1
- package/ui/frame/callbacks/fragment-callbacks.js.map +0 -1
- package/utils/android/index.js +0 -160
- package/utils/android/index.js.map +0 -1
- package/utils/ios/index.d.ts +0 -39
- package/utils/ios/index.js +0 -229
- package/utils/ios/index.js.map +0 -1
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { Application } from '../application';
|
|
2
|
-
import { FontScaleCategory, getClosestValidFontScale } from './font-scale-common';
|
|
3
|
-
export * from './font-scale-common';
|
|
4
|
-
let currentFontScale = null;
|
|
5
|
-
function fontScaleChanged(origFontScale) {
|
|
6
|
-
const oldValue = currentFontScale;
|
|
7
|
-
currentFontScale = getClosestValidFontScale(origFontScale);
|
|
8
|
-
if (oldValue !== currentFontScale) {
|
|
9
|
-
Application.notify({
|
|
10
|
-
eventName: Application.fontScaleChangedEvent,
|
|
11
|
-
object: Application,
|
|
12
|
-
newValue: currentFontScale,
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
export function getCurrentFontScale() {
|
|
17
|
-
setupConfigListener();
|
|
18
|
-
return currentFontScale;
|
|
19
|
-
}
|
|
20
|
-
export function getFontScaleCategory() {
|
|
21
|
-
if (currentFontScale < 0.85) {
|
|
22
|
-
return FontScaleCategory.ExtraSmall;
|
|
23
|
-
}
|
|
24
|
-
if (currentFontScale > 1.5) {
|
|
25
|
-
return FontScaleCategory.ExtraLarge;
|
|
26
|
-
}
|
|
27
|
-
return FontScaleCategory.Medium;
|
|
28
|
-
}
|
|
29
|
-
const sizeMap = new Map([
|
|
30
|
-
[UIContentSizeCategoryExtraSmall, 0.5],
|
|
31
|
-
[UIContentSizeCategorySmall, 0.7],
|
|
32
|
-
[UIContentSizeCategoryMedium, 0.85],
|
|
33
|
-
[UIContentSizeCategoryLarge, 1],
|
|
34
|
-
[UIContentSizeCategoryExtraLarge, 1.15],
|
|
35
|
-
[UIContentSizeCategoryExtraExtraLarge, 1.3],
|
|
36
|
-
[UIContentSizeCategoryExtraExtraExtraLarge, 1.5],
|
|
37
|
-
[UIContentSizeCategoryAccessibilityMedium, 2],
|
|
38
|
-
[UIContentSizeCategoryAccessibilityLarge, 2.5],
|
|
39
|
-
[UIContentSizeCategoryAccessibilityExtraLarge, 3],
|
|
40
|
-
[UIContentSizeCategoryAccessibilityExtraExtraLarge, 3.5],
|
|
41
|
-
[UIContentSizeCategoryAccessibilityExtraExtraExtraLarge, 4],
|
|
42
|
-
]);
|
|
43
|
-
function contentSizeUpdated(fontSize) {
|
|
44
|
-
if (sizeMap.has(fontSize)) {
|
|
45
|
-
fontScaleChanged(sizeMap.get(fontSize));
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
fontScaleChanged(1);
|
|
49
|
-
}
|
|
50
|
-
function useIOSFontScale() {
|
|
51
|
-
if (Application.ios.nativeApp) {
|
|
52
|
-
contentSizeUpdated(Application.ios.nativeApp.preferredContentSizeCategory);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
fontScaleChanged(1);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
let fontSizeObserver;
|
|
59
|
-
function setupConfigListener(attempt = 0) {
|
|
60
|
-
if (fontSizeObserver) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
if (!Application.ios.nativeApp) {
|
|
64
|
-
if (attempt > 100) {
|
|
65
|
-
fontScaleChanged(1);
|
|
66
|
-
return;
|
|
67
|
-
}
|
|
68
|
-
// Couldn't get launchEvent to trigger.
|
|
69
|
-
setTimeout(() => setupConfigListener(attempt + 1), 1);
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
fontSizeObserver = Application.ios.addNotificationObserver(UIContentSizeCategoryDidChangeNotification, (args) => {
|
|
73
|
-
const fontSize = args.userInfo.valueForKey(UIContentSizeCategoryNewValueKey);
|
|
74
|
-
contentSizeUpdated(fontSize);
|
|
75
|
-
});
|
|
76
|
-
Application.on(Application.exitEvent, () => {
|
|
77
|
-
if (fontSizeObserver) {
|
|
78
|
-
Application.ios.removeNotificationObserver(fontSizeObserver, UIContentSizeCategoryDidChangeNotification);
|
|
79
|
-
fontSizeObserver = null;
|
|
80
|
-
}
|
|
81
|
-
Application.off(Application.resumeEvent, useIOSFontScale);
|
|
82
|
-
});
|
|
83
|
-
Application.on(Application.resumeEvent, useIOSFontScale);
|
|
84
|
-
useIOSFontScale();
|
|
85
|
-
}
|
|
86
|
-
export function initAccessibilityFontScale() {
|
|
87
|
-
setupConfigListener();
|
|
88
|
-
}
|
|
89
|
-
//# sourceMappingURL=font-scale.ios.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"font-scale.ios.js","sourceRoot":"","sources":["../../../../packages/core/accessibility/font-scale.ios.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { View } from '../ui/core/view';
|
|
2
|
-
import { AndroidAccessibilityEvent } from './accessibility-types';
|
|
3
|
-
export * from './accessibility-common';
|
|
4
|
-
export * from './accessibility-types';
|
|
5
|
-
export * from './font-scale';
|
|
6
|
-
export declare function isAccessibilityServiceEnabled(): boolean;
|
|
7
|
-
export declare function setupAccessibleView(view: View): void;
|
|
8
|
-
export declare function updateAccessibilityProperties(view: View): void;
|
|
9
|
-
export declare function sendAccessibilityEvent(view: View, eventType: AndroidAccessibilityEvent, text?: string): void;
|
|
10
|
-
export declare function updateContentDescription(view: View, forceUpdate?: boolean): string | null;
|
|
@@ -1,577 +0,0 @@
|
|
|
1
|
-
import { Application } from '../application';
|
|
2
|
-
import { Trace } from '../trace';
|
|
3
|
-
import { SDK_VERSION } from '../utils/constants';
|
|
4
|
-
import { resources } from '../utils/android';
|
|
5
|
-
import { GestureTypes } from '../ui/gestures';
|
|
6
|
-
import { notifyAccessibilityFocusState } from './accessibility-common';
|
|
7
|
-
import { getAndroidAccessibilityManager } from './accessibility-service';
|
|
8
|
-
import { AccessibilityRole, AccessibilityState, AndroidAccessibilityEvent } from './accessibility-types';
|
|
9
|
-
export * from './accessibility-common';
|
|
10
|
-
export * from './accessibility-types';
|
|
11
|
-
export * from './font-scale';
|
|
12
|
-
let clickableRolesMap = new Set();
|
|
13
|
-
let lastFocusedView;
|
|
14
|
-
function accessibilityEventHelper(view, eventType) {
|
|
15
|
-
const eventName = accessibilityEventTypeMap.get(eventType);
|
|
16
|
-
if (!isAccessibilityServiceEnabled()) {
|
|
17
|
-
if (Trace.isEnabled()) {
|
|
18
|
-
Trace.write(`accessibilityEventHelper: Service not active`, Trace.categories.Accessibility);
|
|
19
|
-
}
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
if (!eventName) {
|
|
23
|
-
Trace.write(`accessibilityEventHelper: unknown eventType: ${eventType}`, Trace.categories.Accessibility, Trace.messageType.error);
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
if (!view) {
|
|
27
|
-
if (Trace.isEnabled()) {
|
|
28
|
-
Trace.write(`accessibilityEventHelper: no owner: ${eventName}`, Trace.categories.Accessibility);
|
|
29
|
-
}
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
const androidView = view.nativeViewProtected;
|
|
33
|
-
if (!androidView) {
|
|
34
|
-
if (Trace.isEnabled()) {
|
|
35
|
-
Trace.write(`accessibilityEventHelper: no nativeView`, Trace.categories.Accessibility);
|
|
36
|
-
}
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
switch (eventType) {
|
|
40
|
-
case android.view.accessibility.AccessibilityEvent.TYPE_VIEW_CLICKED: {
|
|
41
|
-
/**
|
|
42
|
-
* Android API >= 26 handles accessibility tap-events by converting them to TYPE_VIEW_CLICKED
|
|
43
|
-
* These aren't triggered for custom tap events in NativeScript.
|
|
44
|
-
*/
|
|
45
|
-
if (SDK_VERSION >= 26) {
|
|
46
|
-
// Find all tap gestures and trigger them.
|
|
47
|
-
for (const tapGesture of view.getGestureObservers(GestureTypes.tap) ?? []) {
|
|
48
|
-
tapGesture.callback({
|
|
49
|
-
android: view.android,
|
|
50
|
-
eventName: 'tap',
|
|
51
|
-
ios: null,
|
|
52
|
-
object: view,
|
|
53
|
-
type: GestureTypes.tap,
|
|
54
|
-
view: view,
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
case android.view.accessibility.AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED: {
|
|
61
|
-
const lastView = lastFocusedView?.get();
|
|
62
|
-
if (lastView && view !== lastView) {
|
|
63
|
-
const lastAndroidView = lastView.nativeViewProtected;
|
|
64
|
-
if (lastAndroidView) {
|
|
65
|
-
lastAndroidView.clearFocus();
|
|
66
|
-
lastFocusedView = null;
|
|
67
|
-
notifyAccessibilityFocusState(lastView, false, true);
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
lastFocusedView = new WeakRef(view);
|
|
71
|
-
notifyAccessibilityFocusState(view, true, false);
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
case android.view.accessibility.AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED: {
|
|
75
|
-
const lastView = lastFocusedView?.get();
|
|
76
|
-
if (lastView && view === lastView) {
|
|
77
|
-
lastFocusedView = null;
|
|
78
|
-
androidView.clearFocus();
|
|
79
|
-
}
|
|
80
|
-
notifyAccessibilityFocusState(view, false, true);
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
let TNSAccessibilityDelegate;
|
|
86
|
-
const androidViewToTNSView = new WeakMap();
|
|
87
|
-
let accessibilityEventMap;
|
|
88
|
-
let accessibilityEventTypeMap;
|
|
89
|
-
function ensureNativeClasses() {
|
|
90
|
-
if (TNSAccessibilityDelegate) {
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
// WORKAROUND: Typing refers to android.view.View.androidviewViewAccessibilityDelegate but it is called android.view.View.AccessibilityDelegate at runtime
|
|
94
|
-
const AccessibilityDelegate = android.view.View['AccessibilityDelegate'];
|
|
95
|
-
const RoleTypeMap = new Map([
|
|
96
|
-
[AccessibilityRole.Button, android.widget.Button.class.getName()],
|
|
97
|
-
[AccessibilityRole.Search, android.widget.EditText.class.getName()],
|
|
98
|
-
[AccessibilityRole.Image, android.widget.ImageView.class.getName()],
|
|
99
|
-
[AccessibilityRole.ImageButton, android.widget.ImageButton.class.getName()],
|
|
100
|
-
[AccessibilityRole.KeyboardKey, android.inputmethodservice.Keyboard.Key.class.getName()],
|
|
101
|
-
[AccessibilityRole.StaticText, android.widget.TextView.class.getName()],
|
|
102
|
-
[AccessibilityRole.Adjustable, android.widget.SeekBar.class.getName()],
|
|
103
|
-
[AccessibilityRole.Checkbox, android.widget.CheckBox.class.getName()],
|
|
104
|
-
[AccessibilityRole.RadioButton, android.widget.RadioButton.class.getName()],
|
|
105
|
-
[AccessibilityRole.SpinButton, android.widget.Spinner.class.getName()],
|
|
106
|
-
[AccessibilityRole.Switch, android.widget.Switch.class.getName()],
|
|
107
|
-
[AccessibilityRole.ProgressBar, android.widget.ProgressBar.class.getName()],
|
|
108
|
-
]);
|
|
109
|
-
clickableRolesMap = new Set([AccessibilityRole.Button, AccessibilityRole.ImageButton]);
|
|
110
|
-
const ignoreRoleTypesForTrace = new Set([AccessibilityRole.Header, AccessibilityRole.Link, AccessibilityRole.None, AccessibilityRole.Summary]);
|
|
111
|
-
var TNSAccessibilityDelegateImpl = /** @class */ (function (_super) {
|
|
112
|
-
__extends(TNSAccessibilityDelegateImpl, _super);
|
|
113
|
-
function TNSAccessibilityDelegateImpl() {
|
|
114
|
-
var _this = _super.call(this) || this;
|
|
115
|
-
return global.__native(_this);
|
|
116
|
-
}
|
|
117
|
-
TNSAccessibilityDelegateImpl.prototype.getTnsView = function (androidView) {
|
|
118
|
-
var _a;
|
|
119
|
-
var view = (_a = androidViewToTNSView.get(androidView)) === null || _a === void 0 ? void 0 : _a.get();
|
|
120
|
-
if (!view) {
|
|
121
|
-
androidViewToTNSView.delete(androidView);
|
|
122
|
-
return null;
|
|
123
|
-
}
|
|
124
|
-
return view;
|
|
125
|
-
};
|
|
126
|
-
TNSAccessibilityDelegateImpl.prototype.onInitializeAccessibilityNodeInfo = function (host, info) {
|
|
127
|
-
_super.prototype.onInitializeAccessibilityNodeInfo.call(this, host, info);
|
|
128
|
-
var view = this.getTnsView(host);
|
|
129
|
-
if (!view) {
|
|
130
|
-
if (Trace.isEnabled()) {
|
|
131
|
-
Trace.write("onInitializeAccessibilityNodeInfo ".concat(host, " ").concat(info, " no tns-view"), Trace.categories.Accessibility);
|
|
132
|
-
}
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
// Set resource id that can be used with test frameworks without polluting the content description.
|
|
136
|
-
var id = host.getTag(resources.getId(":id/nativescript_accessibility_id"));
|
|
137
|
-
if (id != null) {
|
|
138
|
-
info.setViewIdResourceName(id);
|
|
139
|
-
}
|
|
140
|
-
var accessibilityRole = view.accessibilityRole;
|
|
141
|
-
if (accessibilityRole) {
|
|
142
|
-
var androidClassName = RoleTypeMap.get(accessibilityRole);
|
|
143
|
-
if (androidClassName) {
|
|
144
|
-
var oldClassName = info.getClassName() || (SDK_VERSION >= 28 && host.getAccessibilityClassName()) || null;
|
|
145
|
-
info.setClassName(androidClassName);
|
|
146
|
-
if (Trace.isEnabled()) {
|
|
147
|
-
Trace.write("".concat(view, ".accessibilityRole = \"").concat(accessibilityRole, "\" is mapped to \"").concat(androidClassName, "\" (was ").concat(oldClassName, "). ").concat(info.getClassName()), Trace.categories.Accessibility);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
else if (!ignoreRoleTypesForTrace.has(accessibilityRole)) {
|
|
151
|
-
if (Trace.isEnabled()) {
|
|
152
|
-
Trace.write("".concat(view, ".accessibilityRole = \"").concat(accessibilityRole, "\" is unknown"), Trace.categories.Accessibility);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
if (clickableRolesMap.has(accessibilityRole)) {
|
|
156
|
-
if (Trace.isEnabled()) {
|
|
157
|
-
Trace.write("onInitializeAccessibilityNodeInfo ".concat(view, " - set clickable role=").concat(accessibilityRole), Trace.categories.Accessibility);
|
|
158
|
-
}
|
|
159
|
-
info.setClickable(true);
|
|
160
|
-
}
|
|
161
|
-
if (SDK_VERSION >= 28) {
|
|
162
|
-
if (accessibilityRole === AccessibilityRole.Header) {
|
|
163
|
-
if (Trace.isEnabled()) {
|
|
164
|
-
Trace.write("onInitializeAccessibilityNodeInfo ".concat(view, " - set heading role=").concat(accessibilityRole), Trace.categories.Accessibility);
|
|
165
|
-
}
|
|
166
|
-
info.setHeading(true);
|
|
167
|
-
}
|
|
168
|
-
else if (host.isAccessibilityHeading()) {
|
|
169
|
-
if (Trace.isEnabled()) {
|
|
170
|
-
Trace.write("onInitializeAccessibilityNodeInfo ".concat(view, " - set heading from host"), Trace.categories.Accessibility);
|
|
171
|
-
}
|
|
172
|
-
info.setHeading(true);
|
|
173
|
-
}
|
|
174
|
-
else {
|
|
175
|
-
if (Trace.isEnabled()) {
|
|
176
|
-
Trace.write("onInitializeAccessibilityNodeInfo ".concat(view, " - set not heading"), Trace.categories.Accessibility);
|
|
177
|
-
}
|
|
178
|
-
info.setHeading(false);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
switch (accessibilityRole) {
|
|
182
|
-
case AccessibilityRole.Switch:
|
|
183
|
-
case AccessibilityRole.RadioButton:
|
|
184
|
-
case AccessibilityRole.Checkbox: {
|
|
185
|
-
if (Trace.isEnabled()) {
|
|
186
|
-
Trace.write("onInitializeAccessibilityNodeInfo ".concat(view, " - set checkable and check=").concat(view.accessibilityState === AccessibilityState.Checked), Trace.categories.Accessibility);
|
|
187
|
-
}
|
|
188
|
-
info.setCheckable(true);
|
|
189
|
-
info.setChecked(view.accessibilityState === AccessibilityState.Checked);
|
|
190
|
-
break;
|
|
191
|
-
}
|
|
192
|
-
default: {
|
|
193
|
-
if (Trace.isEnabled()) {
|
|
194
|
-
Trace.write("onInitializeAccessibilityNodeInfo ".concat(view, " - set enabled=").concat(view.accessibilityState !== AccessibilityState.Disabled, " and selected=").concat(view.accessibilityState === AccessibilityState.Selected), Trace.categories.Accessibility);
|
|
195
|
-
}
|
|
196
|
-
info.setEnabled(view.accessibilityState !== AccessibilityState.Disabled);
|
|
197
|
-
info.setSelected(view.accessibilityState === AccessibilityState.Selected);
|
|
198
|
-
break;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
if (view.accessible) {
|
|
203
|
-
info.setFocusable(true);
|
|
204
|
-
}
|
|
205
|
-
};
|
|
206
|
-
TNSAccessibilityDelegateImpl.prototype.sendAccessibilityEvent = function (host, eventType) {
|
|
207
|
-
_super.prototype.sendAccessibilityEvent.call(this, host, eventType);
|
|
208
|
-
var view = this.getTnsView(host);
|
|
209
|
-
if (!view) {
|
|
210
|
-
console.log("skip - ".concat(host, " - ").concat(accessibilityEventTypeMap.get(eventType)));
|
|
211
|
-
return;
|
|
212
|
-
}
|
|
213
|
-
try {
|
|
214
|
-
accessibilityEventHelper(view, eventType);
|
|
215
|
-
}
|
|
216
|
-
catch (err) {
|
|
217
|
-
console.error(err);
|
|
218
|
-
}
|
|
219
|
-
};
|
|
220
|
-
return TNSAccessibilityDelegateImpl;
|
|
221
|
-
}(AccessibilityDelegate));
|
|
222
|
-
TNSAccessibilityDelegate = new TNSAccessibilityDelegateImpl();
|
|
223
|
-
accessibilityEventMap = new Map([
|
|
224
|
-
/**
|
|
225
|
-
* Invalid selection/focus position.
|
|
226
|
-
*/
|
|
227
|
-
[AndroidAccessibilityEvent.INVALID_POSITION, android.view.accessibility.AccessibilityEvent.INVALID_POSITION],
|
|
228
|
-
/**
|
|
229
|
-
* Maximum length of the text fields.
|
|
230
|
-
*/
|
|
231
|
-
[AndroidAccessibilityEvent.MAX_TEXT_LENGTH, android.view.accessibility.AccessibilityEvent.MAX_TEXT_LENGTH],
|
|
232
|
-
/**
|
|
233
|
-
* Represents the event of clicking on a android.view.View like android.widget.Button, android.widget.CompoundButton, etc.
|
|
234
|
-
*/
|
|
235
|
-
[AndroidAccessibilityEvent.VIEW_CLICKED, android.view.accessibility.AccessibilityEvent.TYPE_VIEW_CLICKED],
|
|
236
|
-
/**
|
|
237
|
-
* Represents the event of long clicking on a android.view.View like android.widget.Button, android.widget.CompoundButton, etc.
|
|
238
|
-
*/
|
|
239
|
-
[AndroidAccessibilityEvent.VIEW_LONG_CLICKED, android.view.accessibility.AccessibilityEvent.TYPE_VIEW_LONG_CLICKED],
|
|
240
|
-
/**
|
|
241
|
-
* Represents the event of selecting an item usually in the context of an android.widget.AdapterView.
|
|
242
|
-
*/
|
|
243
|
-
[AndroidAccessibilityEvent.VIEW_SELECTED, android.view.accessibility.AccessibilityEvent.TYPE_VIEW_SELECTED],
|
|
244
|
-
/**
|
|
245
|
-
* Represents the event of setting input focus of a android.view.View.
|
|
246
|
-
*/
|
|
247
|
-
[AndroidAccessibilityEvent.VIEW_FOCUSED, android.view.accessibility.AccessibilityEvent.TYPE_VIEW_FOCUSED],
|
|
248
|
-
/**
|
|
249
|
-
* Represents the event of changing the text of an android.widget.EditText.
|
|
250
|
-
*/
|
|
251
|
-
[AndroidAccessibilityEvent.VIEW_TEXT_CHANGED, android.view.accessibility.AccessibilityEvent.TYPE_VIEW_TEXT_CHANGED],
|
|
252
|
-
/**
|
|
253
|
-
* Represents the event of opening a android.widget.PopupWindow, android.view.Menu, android.app.Dialog, etc.
|
|
254
|
-
*/
|
|
255
|
-
[AndroidAccessibilityEvent.WINDOW_STATE_CHANGED, android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_STATE_CHANGED],
|
|
256
|
-
/**
|
|
257
|
-
* Represents the event showing a android.app.Notification.
|
|
258
|
-
*/
|
|
259
|
-
[AndroidAccessibilityEvent.NOTIFICATION_STATE_CHANGED, android.view.accessibility.AccessibilityEvent.TYPE_NOTIFICATION_STATE_CHANGED],
|
|
260
|
-
/**
|
|
261
|
-
* Represents the event of a hover enter over a android.view.View.
|
|
262
|
-
*/
|
|
263
|
-
[AndroidAccessibilityEvent.VIEW_HOVER_ENTER, android.view.accessibility.AccessibilityEvent.TYPE_VIEW_HOVER_ENTER],
|
|
264
|
-
/**
|
|
265
|
-
* Represents the event of a hover exit over a android.view.View.
|
|
266
|
-
*/
|
|
267
|
-
[AndroidAccessibilityEvent.VIEW_HOVER_EXIT, android.view.accessibility.AccessibilityEvent.TYPE_VIEW_HOVER_EXIT],
|
|
268
|
-
/**
|
|
269
|
-
* Represents the event of starting a touch exploration gesture.
|
|
270
|
-
*/
|
|
271
|
-
[AndroidAccessibilityEvent.TOUCH_EXPLORATION_GESTURE_START, android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_START],
|
|
272
|
-
/**
|
|
273
|
-
* Represents the event of ending a touch exploration gesture.
|
|
274
|
-
*/
|
|
275
|
-
[AndroidAccessibilityEvent.TOUCH_EXPLORATION_GESTURE_END, android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_EXPLORATION_GESTURE_END],
|
|
276
|
-
/**
|
|
277
|
-
* Represents the event of changing the content of a window and more specifically the sub-tree rooted at the event's source.
|
|
278
|
-
*/
|
|
279
|
-
[AndroidAccessibilityEvent.WINDOW_CONTENT_CHANGED, android.view.accessibility.AccessibilityEvent.TYPE_WINDOW_CONTENT_CHANGED],
|
|
280
|
-
/**
|
|
281
|
-
* Represents the event of scrolling a view.
|
|
282
|
-
*/
|
|
283
|
-
[AndroidAccessibilityEvent.VIEW_SCROLLED, android.view.accessibility.AccessibilityEvent.TYPE_VIEW_SCROLLED],
|
|
284
|
-
/**
|
|
285
|
-
* Represents the event of changing the selection in an android.widget.EditText.
|
|
286
|
-
*/
|
|
287
|
-
[AndroidAccessibilityEvent.VIEW_TEXT_SELECTION_CHANGED, android.view.accessibility.AccessibilityEvent.TYPE_VIEW_TEXT_SELECTION_CHANGED],
|
|
288
|
-
/**
|
|
289
|
-
* Represents the event of an application making an announcement.
|
|
290
|
-
*/
|
|
291
|
-
[AndroidAccessibilityEvent.ANNOUNCEMENT, android.view.accessibility.AccessibilityEvent.TYPE_ANNOUNCEMENT],
|
|
292
|
-
/**
|
|
293
|
-
* Represents the event of gaining accessibility focus.
|
|
294
|
-
*/
|
|
295
|
-
[AndroidAccessibilityEvent.VIEW_ACCESSIBILITY_FOCUSED, android.view.accessibility.AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED],
|
|
296
|
-
/**
|
|
297
|
-
* Represents the event of clearing accessibility focus.
|
|
298
|
-
*/
|
|
299
|
-
[AndroidAccessibilityEvent.VIEW_ACCESSIBILITY_FOCUS_CLEARED, android.view.accessibility.AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUS_CLEARED],
|
|
300
|
-
/**
|
|
301
|
-
* Represents the event of traversing the text of a view at a given movement granularity.
|
|
302
|
-
*/
|
|
303
|
-
[AndroidAccessibilityEvent.VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY, android.view.accessibility.AccessibilityEvent.TYPE_VIEW_TEXT_TRAVERSED_AT_MOVEMENT_GRANULARITY],
|
|
304
|
-
/**
|
|
305
|
-
* Represents the event of beginning gesture detection.
|
|
306
|
-
*/
|
|
307
|
-
[AndroidAccessibilityEvent.GESTURE_DETECTION_START, android.view.accessibility.AccessibilityEvent.TYPE_GESTURE_DETECTION_START],
|
|
308
|
-
/**
|
|
309
|
-
* Represents the event of ending gesture detection.
|
|
310
|
-
*/
|
|
311
|
-
[AndroidAccessibilityEvent.GESTURE_DETECTION_END, android.view.accessibility.AccessibilityEvent.TYPE_GESTURE_DETECTION_END],
|
|
312
|
-
/**
|
|
313
|
-
* Represents the event of the user starting to touch the screen.
|
|
314
|
-
*/
|
|
315
|
-
[AndroidAccessibilityEvent.TOUCH_INTERACTION_START, android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_INTERACTION_START],
|
|
316
|
-
/**
|
|
317
|
-
* Represents the event of the user ending to touch the screen.
|
|
318
|
-
*/
|
|
319
|
-
[AndroidAccessibilityEvent.TOUCH_INTERACTION_END, android.view.accessibility.AccessibilityEvent.TYPE_TOUCH_INTERACTION_END],
|
|
320
|
-
/**
|
|
321
|
-
* Mask for AccessibilityEvent all types.
|
|
322
|
-
*/
|
|
323
|
-
[AndroidAccessibilityEvent.ALL_MASK, android.view.accessibility.AccessibilityEvent.TYPES_ALL_MASK],
|
|
324
|
-
]);
|
|
325
|
-
accessibilityEventTypeMap = new Map([...accessibilityEventMap].map(([k, v]) => [v, k]));
|
|
326
|
-
}
|
|
327
|
-
let accessibilityStateChangeListener;
|
|
328
|
-
let touchExplorationStateChangeListener;
|
|
329
|
-
function updateAccessibilityServiceState() {
|
|
330
|
-
const accessibilityManager = getAndroidAccessibilityManager();
|
|
331
|
-
if (!accessibilityManager) {
|
|
332
|
-
return;
|
|
333
|
-
}
|
|
334
|
-
accessibilityServiceEnabled = !!accessibilityManager.isEnabled() && !!accessibilityManager.isTouchExplorationEnabled();
|
|
335
|
-
}
|
|
336
|
-
let accessibilityServiceEnabled;
|
|
337
|
-
export function isAccessibilityServiceEnabled() {
|
|
338
|
-
if (typeof accessibilityServiceEnabled === 'boolean') {
|
|
339
|
-
return accessibilityServiceEnabled;
|
|
340
|
-
}
|
|
341
|
-
const accessibilityManager = getAndroidAccessibilityManager();
|
|
342
|
-
accessibilityStateChangeListener = new androidx.core.view.accessibility.AccessibilityManagerCompat.AccessibilityStateChangeListener({
|
|
343
|
-
onAccessibilityStateChanged(enabled) {
|
|
344
|
-
updateAccessibilityServiceState();
|
|
345
|
-
if (Trace.isEnabled()) {
|
|
346
|
-
Trace.write(`AccessibilityStateChangeListener state changed to: ${!!enabled}`, Trace.categories.Accessibility);
|
|
347
|
-
}
|
|
348
|
-
},
|
|
349
|
-
});
|
|
350
|
-
touchExplorationStateChangeListener = new androidx.core.view.accessibility.AccessibilityManagerCompat.TouchExplorationStateChangeListener({
|
|
351
|
-
onTouchExplorationStateChanged(enabled) {
|
|
352
|
-
updateAccessibilityServiceState();
|
|
353
|
-
if (Trace.isEnabled()) {
|
|
354
|
-
Trace.write(`TouchExplorationStateChangeListener state changed to: ${!!enabled}`, Trace.categories.Accessibility);
|
|
355
|
-
}
|
|
356
|
-
},
|
|
357
|
-
});
|
|
358
|
-
androidx.core.view.accessibility.AccessibilityManagerCompat.addAccessibilityStateChangeListener(accessibilityManager, accessibilityStateChangeListener);
|
|
359
|
-
androidx.core.view.accessibility.AccessibilityManagerCompat.addTouchExplorationStateChangeListener(accessibilityManager, touchExplorationStateChangeListener);
|
|
360
|
-
updateAccessibilityServiceState();
|
|
361
|
-
Application.on(Application.exitEvent, (args) => {
|
|
362
|
-
const activity = args.android;
|
|
363
|
-
if (activity && !activity.isFinishing()) {
|
|
364
|
-
return;
|
|
365
|
-
}
|
|
366
|
-
const accessibilityManager = getAndroidAccessibilityManager();
|
|
367
|
-
if (accessibilityManager) {
|
|
368
|
-
if (accessibilityStateChangeListener) {
|
|
369
|
-
androidx.core.view.accessibility.AccessibilityManagerCompat.removeAccessibilityStateChangeListener(accessibilityManager, accessibilityStateChangeListener);
|
|
370
|
-
}
|
|
371
|
-
if (touchExplorationStateChangeListener) {
|
|
372
|
-
androidx.core.view.accessibility.AccessibilityManagerCompat.removeTouchExplorationStateChangeListener(accessibilityManager, touchExplorationStateChangeListener);
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
accessibilityStateChangeListener = null;
|
|
376
|
-
touchExplorationStateChangeListener = null;
|
|
377
|
-
Application.off(Application.resumeEvent, updateAccessibilityServiceState);
|
|
378
|
-
});
|
|
379
|
-
Application.on(Application.resumeEvent, updateAccessibilityServiceState);
|
|
380
|
-
return accessibilityServiceEnabled;
|
|
381
|
-
}
|
|
382
|
-
export function setupAccessibleView(view) {
|
|
383
|
-
updateAccessibilityProperties(view);
|
|
384
|
-
}
|
|
385
|
-
let updateAccessibilityPropertiesMicroTask;
|
|
386
|
-
let pendingViews = new Set();
|
|
387
|
-
export function updateAccessibilityProperties(view) {
|
|
388
|
-
if (!view.nativeViewProtected) {
|
|
389
|
-
return;
|
|
390
|
-
}
|
|
391
|
-
pendingViews.add(view);
|
|
392
|
-
if (updateAccessibilityPropertiesMicroTask)
|
|
393
|
-
return;
|
|
394
|
-
updateAccessibilityPropertiesMicroTask = true;
|
|
395
|
-
Promise.resolve().then(() => {
|
|
396
|
-
updateAccessibilityPropertiesMicroTask = false;
|
|
397
|
-
let _pendingViews = Array.from(pendingViews);
|
|
398
|
-
pendingViews = new Set();
|
|
399
|
-
for (const view of _pendingViews) {
|
|
400
|
-
if (!view.nativeViewProtected)
|
|
401
|
-
continue;
|
|
402
|
-
setAccessibilityDelegate(view);
|
|
403
|
-
applyContentDescription(view);
|
|
404
|
-
}
|
|
405
|
-
_pendingViews = [];
|
|
406
|
-
});
|
|
407
|
-
}
|
|
408
|
-
export function sendAccessibilityEvent(view, eventType, text) {
|
|
409
|
-
if (!isAccessibilityServiceEnabled()) {
|
|
410
|
-
return;
|
|
411
|
-
}
|
|
412
|
-
const cls = `sendAccessibilityEvent(${view}, ${eventType}, ${text})`;
|
|
413
|
-
const androidView = view.nativeViewProtected;
|
|
414
|
-
if (!androidView) {
|
|
415
|
-
if (Trace.isEnabled()) {
|
|
416
|
-
Trace.write(`${cls}: no nativeView`, Trace.categories.Accessibility);
|
|
417
|
-
}
|
|
418
|
-
return;
|
|
419
|
-
}
|
|
420
|
-
if (!eventType) {
|
|
421
|
-
if (Trace.isEnabled()) {
|
|
422
|
-
Trace.write(`${cls}: no eventName provided`, Trace.categories.Accessibility);
|
|
423
|
-
}
|
|
424
|
-
return;
|
|
425
|
-
}
|
|
426
|
-
if (!isAccessibilityServiceEnabled()) {
|
|
427
|
-
if (Trace.isEnabled()) {
|
|
428
|
-
Trace.write(`${cls} - TalkBack not enabled`, Trace.categories.Accessibility);
|
|
429
|
-
}
|
|
430
|
-
return;
|
|
431
|
-
}
|
|
432
|
-
const accessibilityManager = getAndroidAccessibilityManager();
|
|
433
|
-
if (!accessibilityManager?.isEnabled()) {
|
|
434
|
-
if (Trace.isEnabled()) {
|
|
435
|
-
Trace.write(`${cls} - accessibility service not enabled`, Trace.categories.Accessibility);
|
|
436
|
-
}
|
|
437
|
-
return;
|
|
438
|
-
}
|
|
439
|
-
if (!accessibilityEventMap.has(eventType)) {
|
|
440
|
-
if (Trace.isEnabled()) {
|
|
441
|
-
Trace.write(`${cls} - unknown event`, Trace.categories.Accessibility);
|
|
442
|
-
}
|
|
443
|
-
return;
|
|
444
|
-
}
|
|
445
|
-
const eventInt = accessibilityEventMap.get(eventType);
|
|
446
|
-
if (!text) {
|
|
447
|
-
return androidView.sendAccessibilityEvent(eventInt);
|
|
448
|
-
}
|
|
449
|
-
const accessibilityEvent = android.view.accessibility.AccessibilityEvent.obtain(eventInt);
|
|
450
|
-
accessibilityEvent.setSource(androidView);
|
|
451
|
-
accessibilityEvent.getText().clear();
|
|
452
|
-
if (!text) {
|
|
453
|
-
applyContentDescription(view);
|
|
454
|
-
text = androidView.getContentDescription() || view['title'];
|
|
455
|
-
if (Trace.isEnabled()) {
|
|
456
|
-
Trace.write(`${cls} - text not provided use androidView.getContentDescription() - ${text}`, Trace.categories.Accessibility);
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
if (Trace.isEnabled()) {
|
|
460
|
-
Trace.write(`${cls}: send event with text: '${JSON.stringify(text)}'`, Trace.categories.Accessibility);
|
|
461
|
-
}
|
|
462
|
-
if (text) {
|
|
463
|
-
accessibilityEvent.getText().add(text);
|
|
464
|
-
}
|
|
465
|
-
accessibilityManager.sendAccessibilityEvent(accessibilityEvent);
|
|
466
|
-
}
|
|
467
|
-
export function updateContentDescription(view, forceUpdate) {
|
|
468
|
-
if (!view.nativeViewProtected) {
|
|
469
|
-
return;
|
|
470
|
-
}
|
|
471
|
-
return applyContentDescription(view, forceUpdate);
|
|
472
|
-
}
|
|
473
|
-
function setAccessibilityDelegate(view) {
|
|
474
|
-
if (!view.nativeViewProtected) {
|
|
475
|
-
return;
|
|
476
|
-
}
|
|
477
|
-
ensureNativeClasses();
|
|
478
|
-
const androidView = view.nativeViewProtected;
|
|
479
|
-
if (!androidView || !androidView.setAccessibilityDelegate) {
|
|
480
|
-
return;
|
|
481
|
-
}
|
|
482
|
-
androidViewToTNSView.set(androidView, new WeakRef(view));
|
|
483
|
-
let hasOldDelegate = false;
|
|
484
|
-
if (typeof androidView.getAccessibilityDelegate === 'function') {
|
|
485
|
-
hasOldDelegate = androidView.getAccessibilityDelegate() === TNSAccessibilityDelegate;
|
|
486
|
-
}
|
|
487
|
-
if (hasOldDelegate) {
|
|
488
|
-
return;
|
|
489
|
-
}
|
|
490
|
-
androidView.setAccessibilityDelegate(TNSAccessibilityDelegate);
|
|
491
|
-
}
|
|
492
|
-
function applyContentDescription(view, forceUpdate) {
|
|
493
|
-
let androidView = view.nativeViewProtected;
|
|
494
|
-
if (!androidView || (androidView instanceof android.widget.TextView && !view._androidContentDescriptionUpdated)) {
|
|
495
|
-
return null;
|
|
496
|
-
}
|
|
497
|
-
if (androidView instanceof androidx.appcompat.widget.Toolbar) {
|
|
498
|
-
const numChildren = androidView.getChildCount();
|
|
499
|
-
for (let i = 0; i < numChildren; i += 1) {
|
|
500
|
-
const childAndroidView = androidView.getChildAt(i);
|
|
501
|
-
if (childAndroidView instanceof androidx.appcompat.widget.AppCompatTextView) {
|
|
502
|
-
androidView = childAndroidView;
|
|
503
|
-
break;
|
|
504
|
-
}
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
const cls = `applyContentDescription(${view})`;
|
|
508
|
-
const titleValue = view['title'];
|
|
509
|
-
const textValue = view['text'];
|
|
510
|
-
if (!forceUpdate && view._androidContentDescriptionUpdated === false && textValue === view['_lastText'] && titleValue === view['_lastTitle']) {
|
|
511
|
-
// prevent updating this too much
|
|
512
|
-
return androidView.getContentDescription();
|
|
513
|
-
}
|
|
514
|
-
const contentDescriptionBuilder = new Array();
|
|
515
|
-
// Workaround: TalkBack won't read the checked state for fake Switch.
|
|
516
|
-
if (view.accessibilityRole === AccessibilityRole.Switch) {
|
|
517
|
-
const androidSwitch = new android.widget.Switch(Application.android.context);
|
|
518
|
-
if (view.accessibilityState === AccessibilityState.Checked) {
|
|
519
|
-
contentDescriptionBuilder.push(androidSwitch.getTextOn());
|
|
520
|
-
}
|
|
521
|
-
else {
|
|
522
|
-
contentDescriptionBuilder.push(androidSwitch.getTextOff());
|
|
523
|
-
}
|
|
524
|
-
}
|
|
525
|
-
if (view.accessibilityLabel) {
|
|
526
|
-
if (Trace.isEnabled()) {
|
|
527
|
-
Trace.write(`${cls} - have accessibilityLabel`, Trace.categories.Accessibility);
|
|
528
|
-
}
|
|
529
|
-
contentDescriptionBuilder.push(`${view.accessibilityLabel}`);
|
|
530
|
-
}
|
|
531
|
-
if (view.accessibilityValue) {
|
|
532
|
-
if (Trace.isEnabled()) {
|
|
533
|
-
Trace.write(`${cls} - have accessibilityValue`, Trace.categories.Accessibility);
|
|
534
|
-
}
|
|
535
|
-
contentDescriptionBuilder.push(`${view.accessibilityValue}`);
|
|
536
|
-
}
|
|
537
|
-
else if (textValue) {
|
|
538
|
-
if (textValue !== view.accessibilityLabel) {
|
|
539
|
-
if (Trace.isEnabled()) {
|
|
540
|
-
Trace.write(`${cls} - don't have accessibilityValue - use 'text' value`, Trace.categories.Accessibility);
|
|
541
|
-
}
|
|
542
|
-
contentDescriptionBuilder.push(`${textValue}`);
|
|
543
|
-
}
|
|
544
|
-
}
|
|
545
|
-
else if (titleValue) {
|
|
546
|
-
if (titleValue !== view.accessibilityLabel) {
|
|
547
|
-
if (Trace.isEnabled()) {
|
|
548
|
-
Trace.write(`${cls} - don't have accessibilityValue - use 'title' value`, Trace.categories.Accessibility);
|
|
549
|
-
}
|
|
550
|
-
contentDescriptionBuilder.push(`${titleValue}`);
|
|
551
|
-
}
|
|
552
|
-
}
|
|
553
|
-
if (view.accessibilityHint) {
|
|
554
|
-
if (Trace.isEnabled()) {
|
|
555
|
-
Trace.write(`${cls} - have accessibilityHint`, Trace.categories.Accessibility);
|
|
556
|
-
}
|
|
557
|
-
contentDescriptionBuilder.push(`${view.accessibilityHint}`);
|
|
558
|
-
}
|
|
559
|
-
const contentDescription = contentDescriptionBuilder.join('. ').trim().replace(/^\.$/, '');
|
|
560
|
-
if (contentDescription) {
|
|
561
|
-
if (Trace.isEnabled()) {
|
|
562
|
-
Trace.write(`${cls} - set to "${contentDescription}"`, Trace.categories.Accessibility);
|
|
563
|
-
}
|
|
564
|
-
androidView.setContentDescription(contentDescription);
|
|
565
|
-
}
|
|
566
|
-
else {
|
|
567
|
-
if (Trace.isEnabled()) {
|
|
568
|
-
Trace.write(`${cls} - remove value`, Trace.categories.Accessibility);
|
|
569
|
-
}
|
|
570
|
-
androidView.setContentDescription(null);
|
|
571
|
-
}
|
|
572
|
-
view['_lastTitle'] = titleValue;
|
|
573
|
-
view['_lastText'] = textValue;
|
|
574
|
-
view._androidContentDescriptionUpdated = false;
|
|
575
|
-
return contentDescription;
|
|
576
|
-
}
|
|
577
|
-
//# sourceMappingURL=index.android.js.map
|