@nativescript/core 8.9.0-napi-es5.0 → 8.9.0-napi.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/abortcontroller/abortsignal.js +16 -23
- package/abortcontroller/abortsignal.js.map +1 -1
- package/abortcontroller/index.js +14 -20
- package/abortcontroller/index.js.map +1 -1
- package/accessibility/accessibility-common.js +8 -8
- package/accessibility/accessibility-common.js.map +1 -1
- package/accessibility/accessibility-css-helper.js +27 -27
- package/accessibility/accessibility-css-helper.js.map +1 -1
- package/accessibility/accessibility-properties.js +22 -23
- package/accessibility/accessibility-properties.js.map +1 -1
- package/accessibility/accessibility-service-common.js +12 -22
- package/accessibility/accessibility-service-common.js.map +1 -1
- package/accessibility/accessibility-service.android.js +27 -39
- package/accessibility/accessibility-service.android.js.map +1 -1
- package/accessibility/accessibility-service.ios.js +14 -17
- package/accessibility/accessibility-service.ios.js.map +1 -1
- package/accessibility/font-scale-common.js +2 -2
- package/accessibility/font-scale-common.js.map +1 -1
- package/accessibility/font-scale.android.js +7 -8
- package/accessibility/font-scale.android.js.map +1 -1
- package/accessibility/font-scale.ios.js +9 -10
- package/accessibility/font-scale.ios.js.map +1 -1
- package/accessibility/index.android.js +77 -83
- package/accessibility/index.android.js.map +1 -1
- package/accessibility/index.ios.js +34 -36
- package/accessibility/index.ios.js.map +1 -1
- package/animation-frame/animation-native.ios.js +1 -1
- package/animation-frame/animation-native.ios.js.map +1 -1
- package/animation-frame/index.js +16 -16
- package/animation-frame/index.js.map +1 -1
- package/application/application-common.js +196 -214
- package/application/application-common.js.map +1 -1
- package/application/application-shims.js +39 -39
- package/application/application-shims.js.map +1 -1
- package/application/application.android.js +110 -149
- package/application/application.android.js.map +1 -1
- package/application/application.ios.js +162 -197
- package/application/application.ios.js.map +1 -1
- package/application-settings/index.android.js +11 -11
- package/application-settings/index.android.js.map +1 -1
- package/application-settings/index.ios.js +1 -1
- package/application-settings/index.ios.js.map +1 -1
- package/bundle-entry-points.js +1 -1
- package/bundle-entry-points.js.map +1 -1
- package/color/color-common.js +157 -200
- package/color/color-common.js.map +1 -1
- package/color/index.android.js +4 -14
- package/color/index.android.js.map +1 -1
- package/color/index.ios.js +14 -24
- package/color/index.ios.js.map +1 -1
- package/color/known-colors.js +144 -144
- package/color/known-colors.js.map +1 -1
- package/connectivity/index.android.js +23 -23
- package/connectivity/index.android.js.map +1 -1
- package/connectivity/index.ios.js +25 -25
- package/connectivity/index.ios.js.map +1 -1
- package/console/index.js +20 -24
- package/console/index.js.map +1 -1
- package/core-types/index.js +38 -38
- package/core-types/index.js.map +1 -1
- package/css/CSS3Parser.js +104 -106
- package/css/CSS3Parser.js.map +1 -1
- package/css/CSSNativeScript.js +29 -34
- package/css/CSSNativeScript.js.map +1 -1
- package/css/css-tree-parser.js.map +1 -1
- package/css/parser.js +158 -178
- package/css/parser.js.map +1 -1
- package/css/system-classes.js +9 -9
- package/css/system-classes.js.map +1 -1
- package/css-mediaquery/index.js +27 -29
- package/css-mediaquery/index.js.map +1 -1
- package/data/observable/index.js +115 -124
- package/data/observable/index.js.map +1 -1
- package/data/observable-array/index.js +119 -176
- package/data/observable-array/index.js.map +1 -1
- package/data/virtual-array/index.js +61 -74
- package/data/virtual-array/index.js.map +1 -1
- package/debugger/InspectorBackendCommands.js +137 -161
- package/debugger/InspectorBackendCommands.js.map +1 -1
- package/debugger/devtools-elements.common.js +20 -20
- package/debugger/devtools-elements.common.js.map +1 -1
- package/debugger/devtools-elements.js +2 -2
- package/debugger/devtools-elements.js.map +1 -1
- package/debugger/dom-node.js +61 -73
- package/debugger/dom-node.js.map +1 -1
- package/debugger/index.js +19 -19
- package/debugger/index.js.map +1 -1
- package/debugger/webinspector-css.js +25 -30
- package/debugger/webinspector-css.js.map +1 -1
- package/debugger/webinspector-dom.js +38 -43
- package/debugger/webinspector-dom.js.map +1 -1
- package/debugger/webinspector-network.android.js +103 -132
- package/debugger/webinspector-network.android.js.map +1 -1
- package/debugger/webinspector-network.ios.js +100 -128
- package/debugger/webinspector-network.ios.js.map +1 -1
- package/file-system/file-system-access.android.js +414 -421
- package/file-system/file-system-access.android.js.map +1 -1
- package/file-system/file-system-access.ios.js +203 -213
- package/file-system/file-system-access.ios.js.map +1 -1
- package/file-system/index.js +294 -372
- package/file-system/index.js.map +1 -1
- package/fps-meter/fps-native.android.js +15 -18
- package/fps-meter/fps-native.android.js.map +1 -1
- package/fps-meter/fps-native.ios.js +9 -11
- package/fps-meter/fps-native.ios.js.map +1 -1
- package/fps-meter/index.js +11 -11
- package/fps-meter/index.js.map +1 -1
- package/globals/index.js +88 -112
- package/globals/index.js.map +1 -1
- package/http/http-request/http-request-common.js +5 -5
- package/http/http-request/http-request-common.js.map +1 -1
- package/http/http-request/index.android.js +53 -54
- package/http/http-request/index.android.js.map +1 -1
- package/http/http-request/index.ios.js +56 -58
- package/http/http-request/index.ios.js.map +1 -1
- package/http/index.js +19 -19
- package/http/index.js.map +1 -1
- package/image-asset/image-asset-common.js +25 -37
- package/image-asset/image-asset-common.js.map +1 -1
- package/image-asset/index.android.js +17 -25
- package/image-asset/index.android.js.map +1 -1
- package/image-asset/index.ios.js +25 -35
- package/image-asset/index.ios.js.map +1 -1
- package/image-source/image-source-common.js +2 -2
- package/image-source/image-source-common.js.map +1 -1
- package/image-source/index.android.js +152 -178
- package/image-source/index.android.js.map +1 -1
- package/image-source/index.ios.js +177 -203
- package/image-source/index.ios.js.map +1 -1
- package/index.js +4 -8
- package/index.js.map +1 -1
- package/matrix/index.js +17 -27
- package/matrix/index.js.map +1 -1
- package/media-query-list/index.js +61 -87
- package/media-query-list/index.js.map +1 -1
- package/module-name-resolver/index.js +21 -24
- package/module-name-resolver/index.js.map +1 -1
- package/module-name-resolver/non-bundle-workflow-compat.js +24 -24
- package/module-name-resolver/non-bundle-workflow-compat.js.map +1 -1
- package/module-name-resolver/qualifier-matcher/index.js +46 -46
- package/module-name-resolver/qualifier-matcher/index.js.map +1 -1
- package/package.json +1 -1
- package/platform/common.js +5 -5
- package/platform/common.js.map +1 -1
- package/platform/device/index.android.js +68 -107
- package/platform/device/index.android.js.map +1 -1
- package/platform/device/index.ios.js +62 -101
- package/platform/device/index.ios.js.map +1 -1
- package/platform/screen/index.android.js +32 -63
- package/platform/screen/index.android.js.map +1 -1
- package/platform/screen/index.ios.js +29 -60
- package/platform/screen/index.ios.js.map +1 -1
- package/profiling/index.js +40 -47
- package/profiling/index.js.map +1 -1
- package/text/text-common.js +36 -49
- package/text/text-common.js.map +1 -1
- package/timer/index.android.js +20 -30
- package/timer/index.android.js.map +1 -1
- package/timer/index.ios.js +12 -22
- package/timer/index.ios.js.map +1 -1
- package/trace/index.js +26 -36
- package/trace/index.js.map +1 -1
- package/ui/action-bar/action-bar-common.js +193 -252
- package/ui/action-bar/action-bar-common.js.map +1 -1
- package/ui/action-bar/index.android.js +170 -212
- package/ui/action-bar/index.android.js.map +1 -1
- package/ui/action-bar/index.ios.js +208 -251
- package/ui/action-bar/index.ios.js.map +1 -1
- package/ui/activity-indicator/activity-indicator-common.js +6 -11
- package/ui/activity-indicator/activity-indicator-common.js.map +1 -1
- package/ui/activity-indicator/index.android.js +20 -26
- package/ui/activity-indicator/index.android.js.map +1 -1
- package/ui/activity-indicator/index.ios.js +23 -31
- package/ui/activity-indicator/index.ios.js.map +1 -1
- package/ui/animation/animation-common.js +43 -50
- package/ui/animation/animation-common.js.map +1 -1
- package/ui/animation/animation-interfaces.js +3 -5
- package/ui/animation/animation-interfaces.js.map +1 -1
- package/ui/animation/index.android.js +90 -94
- package/ui/animation/index.android.js.map +1 -1
- package/ui/animation/index.ios.js +225 -191
- package/ui/animation/index.ios.js.map +1 -1
- package/ui/animation/keyframe-animation.js +67 -89
- package/ui/animation/keyframe-animation.js.map +1 -1
- package/ui/builder/binding-builder.js +31 -31
- package/ui/builder/binding-builder.js.map +1 -1
- package/ui/builder/component-builder/index.js +37 -37
- package/ui/builder/component-builder/index.js.map +1 -1
- package/ui/builder/index.js +54 -59
- package/ui/builder/index.js.map +1 -1
- package/ui/builder/xml2ui.js +128 -158
- package/ui/builder/xml2ui.js.map +1 -1
- package/ui/button/button-common.js +18 -25
- package/ui/button/button-common.js.map +1 -1
- package/ui/button/index.android.js +69 -80
- package/ui/button/index.android.js.map +1 -1
- package/ui/button/index.ios.js +103 -114
- package/ui/button/index.ios.js.map +1 -1
- package/ui/content-view/index.js +60 -78
- package/ui/content-view/index.js.map +1 -1
- package/ui/core/bindable/bindable-expressions.js +93 -101
- package/ui/core/bindable/bindable-expressions.js.map +1 -1
- package/ui/core/bindable/bindable-resources.js +1 -1
- package/ui/core/bindable/index.js +136 -141
- package/ui/core/bindable/index.js.map +1 -1
- package/ui/core/control-state-change/index.android.js +5 -7
- package/ui/core/control-state-change/index.android.js.map +1 -1
- package/ui/core/control-state-change/index.ios.js +9 -13
- package/ui/core/control-state-change/index.ios.js.map +1 -1
- package/ui/core/properties/index.js +440 -489
- package/ui/core/properties/index.js.map +1 -1
- package/ui/core/view/index.android.js +348 -384
- package/ui/core/view/index.android.js.map +1 -1
- package/ui/core/view/index.ios.js +364 -400
- package/ui/core/view/index.ios.js.map +1 -1
- package/ui/core/view/view-common.js +655 -944
- package/ui/core/view/view-common.js.map +1 -1
- package/ui/core/view/view-helper/index.android.js +15 -19
- package/ui/core/view/view-helper/index.android.js.map +1 -1
- package/ui/core/view/view-helper/index.ios.js +81 -85
- package/ui/core/view/view-helper/index.ios.js.map +1 -1
- package/ui/core/view/view-helper/view-helper-common.js +44 -49
- package/ui/core/view/view-helper/view-helper-common.js.map +1 -1
- package/ui/core/view-base/index.js +371 -426
- package/ui/core/view-base/index.js.map +1 -1
- package/ui/core/weak-event-listener/index.js +25 -26
- package/ui/core/weak-event-listener/index.js.map +1 -1
- package/ui/date-picker/date-picker-common.js +30 -35
- package/ui/date-picker/date-picker-common.js.map +1 -1
- package/ui/date-picker/index.android.js +43 -51
- package/ui/date-picker/index.android.js.map +1 -1
- package/ui/date-picker/index.ios.js +51 -61
- package/ui/date-picker/index.ios.js.map +1 -1
- package/ui/dialogs/dialogs-common.js +18 -18
- package/ui/dialogs/dialogs-common.js.map +1 -1
- package/ui/dialogs/index.android.js +86 -98
- package/ui/dialogs/index.android.js.map +1 -1
- package/ui/dialogs/index.ios.js +67 -80
- package/ui/dialogs/index.ios.js.map +1 -1
- package/ui/editable-text-base/editable-text-base-common.js +29 -35
- package/ui/editable-text-base/editable-text-base-common.js.map +1 -1
- package/ui/editable-text-base/index.android.js +106 -112
- package/ui/editable-text-base/index.android.js.map +1 -1
- package/ui/editable-text-base/index.ios.js +47 -53
- package/ui/editable-text-base/index.ios.js.map +1 -1
- package/ui/embedding/index.android.js +2 -3
- package/ui/embedding/index.android.js.map +1 -1
- package/ui/frame/activity.android.js +44 -44
- package/ui/frame/activity.android.js.map +1 -1
- package/ui/frame/callbacks/activity-callbacks.js +118 -123
- package/ui/frame/callbacks/activity-callbacks.js.map +1 -1
- package/ui/frame/callbacks/fragment-callbacks.js +139 -141
- package/ui/frame/callbacks/fragment-callbacks.js.map +1 -1
- package/ui/frame/fragment.android.js +21 -21
- package/ui/frame/fragment.android.js.map +1 -1
- package/ui/frame/fragment.ios.js +1 -1
- package/ui/frame/fragment.transitions.android.js +105 -114
- package/ui/frame/fragment.transitions.android.js.map +1 -1
- package/ui/frame/frame-common.d.ts +1 -1
- package/ui/frame/frame-common.js +249 -285
- package/ui/frame/frame-common.js.map +1 -1
- package/ui/frame/frame-helpers.js +1 -1
- package/ui/frame/frame-helpers.js.map +1 -1
- package/ui/frame/frame-stack.js +4 -4
- package/ui/frame/frame-stack.js.map +1 -1
- package/ui/frame/index.android.js +239 -291
- package/ui/frame/index.android.js.map +1 -1
- package/ui/frame/index.ios.js +133 -167
- package/ui/frame/index.ios.js.map +1 -1
- package/ui/gestures/gestures-common.js +15 -29
- package/ui/gestures/gestures-common.js.map +1 -1
- package/ui/gestures/index.android.js +108 -124
- package/ui/gestures/index.android.js.map +1 -1
- package/ui/gestures/index.ios.js +108 -121
- package/ui/gestures/index.ios.js.map +1 -1
- package/ui/gestures/touch-manager.js +42 -48
- package/ui/gestures/touch-manager.js.map +1 -1
- package/ui/html-view/html-view-common.js +9 -14
- package/ui/html-view/html-view-common.js.map +1 -1
- package/ui/html-view/index.android.js +37 -43
- package/ui/html-view/index.android.js.map +1 -1
- package/ui/html-view/index.ios.js +62 -73
- package/ui/html-view/index.ios.js.map +1 -1
- package/ui/image/image-common.js +47 -57
- package/ui/image/image-common.js.map +1 -1
- package/ui/image/index.android.js +54 -59
- package/ui/image/index.android.js.map +1 -1
- package/ui/image/index.ios.js +65 -72
- package/ui/image/index.ios.js.map +1 -1
- package/ui/image/symbol-effects-common.js +2 -6
- package/ui/image/symbol-effects-common.js.map +1 -1
- package/ui/image/symbol-effects.android.js +4 -10
- package/ui/image/symbol-effects.android.js.map +1 -1
- package/ui/image/symbol-effects.ios.js +7 -11
- package/ui/image/symbol-effects.ios.js.map +1 -1
- package/ui/image-cache/image-cache-common.js +57 -61
- package/ui/image-cache/image-cache-common.js.map +1 -1
- package/ui/image-cache/index.android.js +23 -27
- package/ui/image-cache/index.android.js.map +1 -1
- package/ui/image-cache/index.ios.js +24 -29
- package/ui/image-cache/index.ios.js.map +1 -1
- package/ui/label/index.android.js +29 -38
- package/ui/label/index.android.js.map +1 -1
- package/ui/label/index.ios.js +89 -102
- package/ui/label/index.ios.js.map +1 -1
- package/ui/layouts/absolute-layout/absolute-layout-common.js +25 -30
- package/ui/layouts/absolute-layout/absolute-layout-common.js.map +1 -1
- package/ui/layouts/absolute-layout/index.android.js +6 -12
- package/ui/layouts/absolute-layout/index.android.js.map +1 -1
- package/ui/layouts/absolute-layout/index.ios.js +32 -40
- package/ui/layouts/absolute-layout/index.ios.js.map +1 -1
- package/ui/layouts/dock-layout/dock-layout-common.js +16 -21
- package/ui/layouts/dock-layout/dock-layout-common.js.map +1 -1
- package/ui/layouts/dock-layout/index.android.js +11 -17
- package/ui/layouts/dock-layout/index.android.js.map +1 -1
- package/ui/layouts/dock-layout/index.ios.js +45 -53
- package/ui/layouts/dock-layout/index.ios.js.map +1 -1
- package/ui/layouts/flexbox-layout/flexbox-layout-common.js +90 -115
- package/ui/layouts/flexbox-layout/flexbox-layout-common.js.map +1 -1
- package/ui/layouts/flexbox-layout/index.android.js +92 -97
- package/ui/layouts/flexbox-layout/index.android.js.map +1 -1
- package/ui/layouts/flexbox-layout/index.ios.js +366 -427
- package/ui/layouts/flexbox-layout/index.ios.js.map +1 -1
- package/ui/layouts/grid-layout/grid-layout-common.js +159 -211
- package/ui/layouts/grid-layout/grid-layout-common.js.map +1 -1
- package/ui/layouts/grid-layout/index.android.js +49 -55
- package/ui/layouts/grid-layout/index.android.js.map +1 -1
- package/ui/layouts/grid-layout/index.ios.js +340 -348
- package/ui/layouts/grid-layout/index.ios.js.map +1 -1
- package/ui/layouts/layout-base-common.js +78 -106
- package/ui/layouts/layout-base-common.js.map +1 -1
- package/ui/layouts/layout-base.android.js +25 -31
- package/ui/layouts/layout-base.android.js.map +1 -1
- package/ui/layouts/layout-base.ios.js +21 -27
- package/ui/layouts/layout-base.ios.js.map +1 -1
- package/ui/layouts/root-layout/index.android.js +47 -46
- package/ui/layouts/root-layout/index.android.js.map +1 -1
- package/ui/layouts/root-layout/index.ios.js +54 -53
- package/ui/layouts/root-layout/index.ios.js.map +1 -1
- package/ui/layouts/root-layout/root-layout-common.js +186 -190
- package/ui/layouts/root-layout/root-layout-common.js.map +1 -1
- package/ui/layouts/stack-layout/index.android.js +6 -12
- package/ui/layouts/stack-layout/index.android.js.map +1 -1
- package/ui/layouts/stack-layout/index.ios.js +62 -69
- package/ui/layouts/stack-layout/index.ios.js.map +1 -1
- package/ui/layouts/stack-layout/stack-layout-common.js +7 -12
- package/ui/layouts/stack-layout/stack-layout-common.js.map +1 -1
- package/ui/layouts/wrap-layout/index.android.js +10 -16
- package/ui/layouts/wrap-layout/index.android.js.map +1 -1
- package/ui/layouts/wrap-layout/index.ios.js +70 -76
- package/ui/layouts/wrap-layout/index.ios.js.map +1 -1
- package/ui/layouts/wrap-layout/wrap-layout-common.js +13 -18
- package/ui/layouts/wrap-layout/wrap-layout-common.js.map +1 -1
- package/ui/list-picker/index.android.js +42 -48
- package/ui/list-picker/index.android.js.map +1 -1
- package/ui/list-picker/index.ios.js +26 -36
- package/ui/list-picker/index.ios.js.map +1 -1
- package/ui/list-picker/list-picker-common.js +27 -32
- package/ui/list-picker/list-picker-common.js.map +1 -1
- package/ui/list-view/index.android.js +98 -110
- package/ui/list-view/index.android.js.map +1 -1
- package/ui/list-view/index.ios.js +121 -137
- package/ui/list-view/index.ios.js.map +1 -1
- package/ui/list-view/list-view-common.js +100 -116
- package/ui/list-view/list-view-common.js.map +1 -1
- package/ui/page/index.android.js +57 -65
- package/ui/page/index.android.js.map +1 -1
- package/ui/page/index.ios.js +98 -107
- package/ui/page/index.ios.js.map +1 -1
- package/ui/page/page-common.js +113 -145
- package/ui/page/page-common.js.map +1 -1
- package/ui/placeholder/index.android.js +10 -16
- package/ui/placeholder/index.android.js.map +1 -1
- package/ui/placeholder/index.js +6 -12
- package/ui/placeholder/index.js.map +1 -1
- package/ui/progress/index.android.js +28 -34
- package/ui/progress/index.android.js.map +1 -1
- package/ui/progress/index.ios.js +29 -39
- package/ui/progress/index.ios.js.map +1 -1
- package/ui/progress/progress-common.js +11 -16
- package/ui/progress/progress-common.js.map +1 -1
- package/ui/proxy-view-container/index.js +90 -111
- package/ui/proxy-view-container/index.js.map +1 -1
- package/ui/repeater/index.js +100 -112
- package/ui/repeater/index.js.map +1 -1
- package/ui/scroll-view/index.android.d.ts +1 -1
- package/ui/scroll-view/index.android.js +75 -95
- package/ui/scroll-view/index.android.js.map +1 -1
- package/ui/scroll-view/index.ios.js +72 -92
- package/ui/scroll-view/index.ios.js.map +1 -1
- package/ui/scroll-view/scroll-view-common.js +45 -65
- package/ui/scroll-view/scroll-view-common.js.map +1 -1
- package/ui/search-bar/index.android.js +88 -94
- package/ui/search-bar/index.android.js.map +1 -1
- package/ui/search-bar/index.ios.js +74 -88
- package/ui/search-bar/index.ios.js.map +1 -1
- package/ui/search-bar/search-bar-common.js +13 -18
- package/ui/search-bar/search-bar-common.js.map +1 -1
- package/ui/segmented-bar/index.android.js +98 -112
- package/ui/segmented-bar/index.android.js.map +1 -1
- package/ui/segmented-bar/index.ios.js +63 -80
- package/ui/segmented-bar/index.ios.js.map +1 -1
- package/ui/segmented-bar/segmented-bar-common.js +61 -81
- package/ui/segmented-bar/segmented-bar-common.js.map +1 -1
- package/ui/slider/index.android.js +43 -49
- package/ui/slider/index.android.js.map +1 -1
- package/ui/slider/index.ios.js +49 -59
- package/ui/slider/index.ios.js.map +1 -1
- package/ui/slider/slider-common.js +28 -35
- package/ui/slider/slider-common.js.map +1 -1
- package/ui/styling/background-common.js +98 -100
- package/ui/styling/background-common.js.map +1 -1
- package/ui/styling/background.android.js +35 -38
- package/ui/styling/background.android.js.map +1 -1
- package/ui/styling/background.ios.js +252 -258
- package/ui/styling/background.ios.js.map +1 -1
- package/ui/styling/box-shadow.js +2 -6
- package/ui/styling/box-shadow.js.map +1 -1
- package/ui/styling/converters.js +7 -7
- package/ui/styling/converters.js.map +1 -1
- package/ui/styling/css-animation-parser.js +56 -69
- package/ui/styling/css-animation-parser.js.map +1 -1
- package/ui/styling/css-selector.js +425 -522
- package/ui/styling/css-selector.js.map +1 -1
- package/ui/styling/css-shadow.js +2 -2
- package/ui/styling/css-shadow.js.map +1 -1
- package/ui/styling/css-stroke.js +3 -3
- package/ui/styling/css-stroke.js.map +1 -1
- package/ui/styling/css-utils.js +22 -22
- package/ui/styling/css-utils.js.map +1 -1
- package/ui/styling/font-common.js +44 -59
- package/ui/styling/font-common.js.map +1 -1
- package/ui/styling/font.android.js +34 -42
- package/ui/styling/font.android.js.map +1 -1
- package/ui/styling/font.ios.js +49 -54
- package/ui/styling/font.ios.js.map +1 -1
- package/ui/styling/linear-gradient.js +13 -17
- package/ui/styling/linear-gradient.js.map +1 -1
- package/ui/styling/style/index.js +36 -47
- package/ui/styling/style/index.js.map +1 -1
- package/ui/styling/style-properties.js +291 -306
- package/ui/styling/style-properties.js.map +1 -1
- package/ui/styling/style-scope.js +377 -416
- package/ui/styling/style-scope.js.map +1 -1
- package/ui/switch/index.android.js +41 -47
- package/ui/switch/index.android.js.map +1 -1
- package/ui/switch/index.ios.js +57 -66
- package/ui/switch/index.ios.js.map +1 -1
- package/ui/switch/switch-common.js +11 -16
- package/ui/switch/switch-common.js.map +1 -1
- package/ui/tab-view/index.android.js +187 -206
- package/ui/tab-view/index.android.js.map +1 -1
- package/ui/tab-view/index.ios.js +161 -177
- package/ui/tab-view/index.ios.js.map +1 -1
- package/ui/tab-view/tab-view-common.js +143 -197
- package/ui/tab-view/tab-view-common.js.map +1 -1
- package/ui/text-base/formatted-string.js +105 -158
- package/ui/text-base/formatted-string.js.map +1 -1
- package/ui/text-base/index.android.js +130 -136
- package/ui/text-base/index.android.js.map +1 -1
- package/ui/text-base/index.ios.js +112 -120
- package/ui/text-base/index.ios.js.map +1 -1
- package/ui/text-base/span.js +102 -158
- package/ui/text-base/span.js.map +1 -1
- package/ui/text-base/text-base-common.js +181 -268
- package/ui/text-base/text-base-common.js.map +1 -1
- package/ui/text-field/index.android.js +18 -24
- package/ui/text-field/index.android.js.map +1 -1
- package/ui/text-field/index.ios.js +70 -80
- package/ui/text-field/index.ios.js.map +1 -1
- package/ui/text-field/text-field-common.js +8 -13
- package/ui/text-field/text-field-common.js.map +1 -1
- package/ui/text-view/index.android.js +13 -19
- package/ui/text-view/index.android.js.map +1 -1
- package/ui/text-view/index.ios.js +116 -124
- package/ui/text-view/index.ios.js.map +1 -1
- package/ui/text-view/text-view-common.js +3 -9
- package/ui/text-view/text-view-common.js.map +1 -1
- package/ui/time-picker/index.android.js +18 -24
- package/ui/time-picker/index.android.js.map +1 -1
- package/ui/time-picker/index.ios.js +61 -69
- package/ui/time-picker/index.ios.js.map +1 -1
- package/ui/time-picker/time-picker-common.js +37 -42
- package/ui/time-picker/time-picker-common.js.map +1 -1
- package/ui/transition/fade-transition.android.js +8 -14
- package/ui/transition/fade-transition.android.js.map +1 -1
- package/ui/transition/fade-transition.ios.js +4 -10
- package/ui/transition/fade-transition.ios.js.map +1 -1
- package/ui/transition/flip-transition.android.js +14 -18
- package/ui/transition/flip-transition.android.js.map +1 -1
- package/ui/transition/index.android.js +24 -27
- package/ui/transition/index.android.js.map +1 -1
- package/ui/transition/index.ios.js +18 -22
- package/ui/transition/index.ios.js.map +1 -1
- package/ui/transition/modal-transition.android.js +4 -10
- package/ui/transition/modal-transition.android.js.map +1 -1
- package/ui/transition/modal-transition.ios.js +18 -25
- package/ui/transition/modal-transition.ios.js.map +1 -1
- package/ui/transition/page-transition.android.js +57 -71
- package/ui/transition/page-transition.android.js.map +1 -1
- package/ui/transition/page-transition.ios.js +19 -27
- package/ui/transition/page-transition.ios.js.map +1 -1
- package/ui/transition/shared-transition-helper.android.js +8 -12
- package/ui/transition/shared-transition-helper.android.js.map +1 -1
- package/ui/transition/shared-transition-helper.ios.js +442 -539
- package/ui/transition/shared-transition-helper.ios.js.map +1 -1
- package/ui/transition/shared-transition.js +77 -76
- package/ui/transition/shared-transition.js.map +1 -1
- package/ui/transition/slide-transition.android.js +17 -22
- package/ui/transition/slide-transition.android.js.map +1 -1
- package/ui/transition/slide-transition.ios.js +7 -11
- package/ui/transition/slide-transition.ios.js.map +1 -1
- package/ui/utils.ios.js +13 -13
- package/ui/utils.ios.js.map +1 -1
- package/ui/web-view/index.android.js +50 -64
- package/ui/web-view/index.android.js.map +1 -1
- package/ui/web-view/index.ios.js +50 -73
- package/ui/web-view/index.ios.js.map +1 -1
- package/ui/web-view/web-view-common.js +29 -43
- package/ui/web-view/web-view-common.js.map +1 -1
- package/utils/android/index.js +26 -27
- package/utils/android/index.js.map +1 -1
- package/utils/common.js +49 -65
- package/utils/common.js.map +1 -1
- package/utils/constants.android.js +1 -1
- package/utils/constants.android.js.map +1 -1
- package/utils/constants.ios.js +1 -1
- package/utils/constants.ios.js.map +1 -1
- package/utils/debug.js +32 -54
- package/utils/debug.js.map +1 -1
- package/utils/index.android.js +40 -36
- package/utils/index.android.js.map +1 -1
- package/utils/index.ios.js +9 -9
- package/utils/index.ios.js.map +1 -1
- package/utils/ios/index.js +45 -42
- package/utils/ios/index.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.ios.js +2 -2
- package/utils/layout-helper/index.ios.js.map +1 -1
- package/utils/layout-helper/layout-helper-common.js +13 -13
- package/utils/layout-helper/layout-helper-common.js.map +1 -1
- package/utils/lazy.js +2 -2
- package/utils/lazy.js.map +1 -1
- package/utils/macrotask-scheduler.js +6 -6
- package/utils/macrotask-scheduler.js.map +1 -1
- package/utils/mainthread-helper.android.js +4 -4
- package/utils/mainthread-helper.android.js.map +1 -1
- package/utils/mainthread-helper.ios.js +1 -1
- package/utils/mainthread-helper.ios.js.map +1 -1
- package/utils/module-merge.js +1 -1
- package/utils/module-merge.js.map +1 -1
- package/utils/native-helper.android.js +19 -19
- package/utils/native-helper.android.js.map +1 -1
- package/utils/native-helper.ios.js +16 -23
- package/utils/native-helper.ios.js.map +1 -1
- package/utils/number-utils.js +3 -3
- package/utils/number-utils.js.map +1 -1
- package/utils/platform-check.js +6 -6
- package/utils/platform-check.js.map +1 -1
- package/utils/types.js +33 -43
- package/utils/types.js.map +1 -1
- package/wgc/crypto/SubtleCrypto.js +132 -167
- package/wgc/crypto/SubtleCrypto.js.map +1 -1
- package/wgc/crypto/index.d.ts +1 -1
- package/wgc/crypto/index.js +10 -18
- package/wgc/crypto/index.js.map +1 -1
- package/xhr/index.js +226 -308
- package/xhr/index.js.map +1 -1
- package/xml/index.js +78 -118
- package/xml/index.js.map +1 -1
|
@@ -8,29 +8,29 @@ import { Trace } from '../../../trace';
|
|
|
8
8
|
import { parseExpression, convertExpressionToValue } from './bindable-expressions';
|
|
9
9
|
import * as types from '../../../utils/types';
|
|
10
10
|
import * as bindableResources from './bindable-resources';
|
|
11
|
-
|
|
11
|
+
const contextKey = 'context';
|
|
12
12
|
// this regex is used to get parameters inside [] for example:
|
|
13
13
|
// from $parents['ListView'] will return 'ListView'
|
|
14
14
|
// from $parents[1] will return 1
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
const paramsRegex = /\[\s*(['"])*(\w*)\1\s*\]/;
|
|
16
|
+
const bc = bindingConstants;
|
|
17
|
+
const emptyArray = [];
|
|
18
|
+
const propertiesCache = {};
|
|
19
19
|
function getProperties(property) {
|
|
20
20
|
if (!property) {
|
|
21
21
|
return emptyArray;
|
|
22
22
|
}
|
|
23
|
-
|
|
23
|
+
let result = propertiesCache[property];
|
|
24
24
|
if (result) {
|
|
25
25
|
return result;
|
|
26
26
|
}
|
|
27
27
|
// first replace all '$parents[..]' with a safe string
|
|
28
28
|
// second removes all ] since they are not important for property access and not needed
|
|
29
29
|
// then split properties either on '.' or '['
|
|
30
|
-
|
|
30
|
+
const parentsMatches = property.match(parentsRegex);
|
|
31
31
|
result = property.replace(parentsRegex, 'parentsMatch').replace(/\]/g, '').split(/\.|\[/);
|
|
32
|
-
|
|
33
|
-
for (
|
|
32
|
+
let parentsMatchesCounter = 0;
|
|
33
|
+
for (let i = 0, resultLength = result.length; i < resultLength; i++) {
|
|
34
34
|
if (result[i] === 'parentsMatch') {
|
|
35
35
|
result[i] = parentsMatches[parentsMatchesCounter++];
|
|
36
36
|
}
|
|
@@ -60,7 +60,7 @@ export function isGesture(eventOrGestureName) {
|
|
|
60
60
|
// this is used exclusively by the XML flavour, and my best guess is that
|
|
61
61
|
// maybe it's to handle how getEventOrGestureName("onTap") might pass "Tap"
|
|
62
62
|
// into this.
|
|
63
|
-
|
|
63
|
+
const t = eventOrGestureName.trim().toLowerCase();
|
|
64
64
|
// Would be nice to have a convenience function for getting all GestureState
|
|
65
65
|
// names in `gestures-common.ts`, but when I tried introducing it, it created
|
|
66
66
|
// a circular dependency that crashed the automated tests app.
|
|
@@ -70,44 +70,43 @@ export function isGesture(eventOrGestureName) {
|
|
|
70
70
|
// in controls. They will just override this one and provide their own event support.
|
|
71
71
|
export function isEventOrGesture(name, view) {
|
|
72
72
|
if (typeof name === 'string') {
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
const eventOrGestureName = getEventOrGestureName(name);
|
|
74
|
+
const evt = `${eventOrGestureName}Event`;
|
|
75
75
|
return (view.constructor && evt in view.constructor) || isGesture(eventOrGestureName);
|
|
76
76
|
}
|
|
77
77
|
return false;
|
|
78
78
|
}
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
export class Binding {
|
|
80
|
+
constructor(target, options) {
|
|
81
81
|
this.propertyChangeListeners = new Map();
|
|
82
82
|
this.target = new WeakRef(target);
|
|
83
83
|
this.options = options;
|
|
84
84
|
this.sourceProperties = getProperties(options.sourceProperty);
|
|
85
85
|
this.targetOptions = this.resolveOptions(target, getProperties(options.targetProperty));
|
|
86
86
|
if (!this.targetOptions) {
|
|
87
|
-
throw new Error(
|
|
87
|
+
throw new Error(`Invalid property: ${options.targetProperty} for target: ${target}`);
|
|
88
88
|
}
|
|
89
89
|
if (options.twoWay) {
|
|
90
|
-
|
|
91
|
-
if (
|
|
92
|
-
|
|
90
|
+
const target = this.targetOptions.instance.get();
|
|
91
|
+
if (target instanceof Observable) {
|
|
92
|
+
target.on(`${this.targetOptions.property}Change`, this.onTargetPropertyChanged, this);
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
|
|
96
|
+
onTargetPropertyChanged(data) {
|
|
97
97
|
this.updateTwoWay(data.value);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
}
|
|
99
|
+
loadedHandlerVisualTreeBinding(args) {
|
|
100
|
+
const target = args.object;
|
|
101
101
|
target.off('loaded', this.loadedHandlerVisualTreeBinding, this);
|
|
102
|
-
|
|
102
|
+
const context = target.bindingContext;
|
|
103
103
|
if (context !== undefined && context !== null) {
|
|
104
104
|
this.update(context);
|
|
105
105
|
}
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
removeWeakEventListener(observable, Observable.propertyChangeEvent, _this.onSourcePropertyChanged, _this);
|
|
106
|
+
}
|
|
107
|
+
clearSource() {
|
|
108
|
+
this.propertyChangeListeners.forEach((observable, index, map) => {
|
|
109
|
+
removeWeakEventListener(observable, Observable.propertyChangeEvent, this.onSourcePropertyChanged, this);
|
|
111
110
|
});
|
|
112
111
|
this.propertyChangeListeners.clear();
|
|
113
112
|
// if (this.source) {
|
|
@@ -117,10 +116,10 @@ var Binding = /** @class */ (function () {
|
|
|
117
116
|
this.sourceOptions.instance = undefined;
|
|
118
117
|
this.sourceOptions = undefined;
|
|
119
118
|
}
|
|
120
|
-
}
|
|
121
|
-
|
|
119
|
+
}
|
|
120
|
+
sourceAsObject(source) {
|
|
122
121
|
/* tslint:disable */
|
|
123
|
-
|
|
122
|
+
const objectType = typeof source;
|
|
124
123
|
if (objectType === 'number') {
|
|
125
124
|
source = new Number(source);
|
|
126
125
|
}
|
|
@@ -132,14 +131,14 @@ var Binding = /** @class */ (function () {
|
|
|
132
131
|
}
|
|
133
132
|
/* tslint:enable */
|
|
134
133
|
return source;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
|
|
134
|
+
}
|
|
135
|
+
bindingContextChanged(data) {
|
|
136
|
+
const target = this.targetOptions.instance.get();
|
|
138
137
|
if (!target) {
|
|
139
138
|
this.unbind();
|
|
140
139
|
return;
|
|
141
140
|
}
|
|
142
|
-
|
|
141
|
+
const value = data.value;
|
|
143
142
|
if (value !== null && value !== undefined) {
|
|
144
143
|
this.update(value);
|
|
145
144
|
}
|
|
@@ -149,36 +148,36 @@ var Binding = /** @class */ (function () {
|
|
|
149
148
|
this.clearBinding();
|
|
150
149
|
}
|
|
151
150
|
// TODO: if oneWay - call target.unbind();
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
|
|
151
|
+
}
|
|
152
|
+
bind(source) {
|
|
153
|
+
const target = this.targetOptions.instance.get();
|
|
155
154
|
if (this.sourceIsBindingContext && target instanceof Observable && this.targetOptions.property !== 'bindingContext') {
|
|
156
155
|
target.on('bindingContextChange', this.bindingContextChanged, this);
|
|
157
156
|
}
|
|
158
157
|
this.update(source);
|
|
159
|
-
}
|
|
160
|
-
|
|
158
|
+
}
|
|
159
|
+
update(source) {
|
|
161
160
|
this.clearSource();
|
|
162
161
|
source = this.sourceAsObject(source);
|
|
163
162
|
if (!types.isNullOrUndefined(source)) {
|
|
164
163
|
// TODO: if oneWay - call target.unbind();
|
|
165
164
|
this.source = new WeakRef(source);
|
|
166
165
|
this.sourceOptions = this.resolveOptions(source, this.sourceProperties);
|
|
167
|
-
|
|
166
|
+
const sourceValue = this.getSourcePropertyValue();
|
|
168
167
|
this.updateTarget(sourceValue);
|
|
169
168
|
this.addPropertyChangeListeners(this.source, this.sourceProperties);
|
|
170
169
|
}
|
|
171
170
|
else if (!this.sourceIsBindingContext) {
|
|
172
171
|
// TODO: if oneWay - call target.unbind();
|
|
173
|
-
|
|
172
|
+
const sourceValue = this.getSourcePropertyValue();
|
|
174
173
|
this.updateTarget(sourceValue ? sourceValue : source);
|
|
175
174
|
}
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
|
|
175
|
+
}
|
|
176
|
+
unbind() {
|
|
177
|
+
const target = this.targetOptions.instance.get();
|
|
179
178
|
if (target instanceof Observable) {
|
|
180
179
|
if (this.options.twoWay) {
|
|
181
|
-
target.off(
|
|
180
|
+
target.off(`${this.targetOptions.property}Change`, this.onTargetPropertyChanged, this);
|
|
182
181
|
}
|
|
183
182
|
if (this.sourceIsBindingContext && this.targetOptions.property !== 'bindingContext') {
|
|
184
183
|
target.off('bindingContextChange', this.bindingContextChanged, this);
|
|
@@ -192,24 +191,24 @@ var Binding = /** @class */ (function () {
|
|
|
192
191
|
return;
|
|
193
192
|
}
|
|
194
193
|
this.clearSource();
|
|
195
|
-
}
|
|
194
|
+
}
|
|
196
195
|
// Consider returning single {} instead of array for performance.
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
for (
|
|
202
|
-
|
|
196
|
+
resolveObjectsAndProperties(source, properties) {
|
|
197
|
+
const result = [];
|
|
198
|
+
let currentObject = source;
|
|
199
|
+
let currentObjectChanged = false;
|
|
200
|
+
for (let i = 0, propsArrayLength = properties.length; i < propsArrayLength; i++) {
|
|
201
|
+
const property = properties[i];
|
|
203
202
|
if (property === bc.bindingValueKey) {
|
|
204
203
|
currentObjectChanged = true;
|
|
205
204
|
}
|
|
206
205
|
if (property === bc.parentValueKey || property.indexOf(bc.parentsValueKey) === 0) {
|
|
207
|
-
|
|
206
|
+
const parentView = this.getParentView(this.target.get(), property).view;
|
|
208
207
|
if (parentView) {
|
|
209
208
|
currentObject = parentView.bindingContext;
|
|
210
209
|
}
|
|
211
210
|
else {
|
|
212
|
-
|
|
211
|
+
const targetInstance = this.target.get();
|
|
213
212
|
targetInstance.off('loaded', this.loadedHandlerVisualTreeBinding, this);
|
|
214
213
|
targetInstance.on('loaded', this.loadedHandlerVisualTreeBinding, this);
|
|
215
214
|
}
|
|
@@ -228,17 +227,17 @@ var Binding = /** @class */ (function () {
|
|
|
228
227
|
currentObjectChanged = false;
|
|
229
228
|
}
|
|
230
229
|
return result;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
for (
|
|
236
|
-
|
|
230
|
+
}
|
|
231
|
+
addPropertyChangeListeners(source, sourceProperty, parentProperies) {
|
|
232
|
+
const objectsAndProperties = this.resolveObjectsAndProperties(source.get(), sourceProperty);
|
|
233
|
+
let prop = parentProperies || '';
|
|
234
|
+
for (let i = 0, length = objectsAndProperties.length; i < length; i++) {
|
|
235
|
+
const propName = objectsAndProperties[i].property;
|
|
237
236
|
prop += '$' + propName;
|
|
238
|
-
|
|
237
|
+
const currentObject = objectsAndProperties[i].instance;
|
|
239
238
|
if (!this.propertyChangeListeners.has(prop) && currentObject instanceof Observable && currentObject._isViewBase) {
|
|
240
239
|
// Add listener for properties created with after 3.0 version
|
|
241
|
-
addWeakEventListener(currentObject,
|
|
240
|
+
addWeakEventListener(currentObject, `${propName}Change`, this.onSourcePropertyChanged, this);
|
|
242
241
|
addWeakEventListener(currentObject, Observable.propertyChangeEvent, this.onSourcePropertyChanged, this);
|
|
243
242
|
this.propertyChangeListeners.set(prop, currentObject);
|
|
244
243
|
}
|
|
@@ -247,37 +246,37 @@ var Binding = /** @class */ (function () {
|
|
|
247
246
|
this.propertyChangeListeners.set(prop, currentObject);
|
|
248
247
|
}
|
|
249
248
|
}
|
|
250
|
-
}
|
|
251
|
-
|
|
249
|
+
}
|
|
250
|
+
prepareExpressionForUpdate() {
|
|
252
251
|
// this regex is used to create a valid RegExp object from a string that has some special regex symbols like [,(,$ and so on.
|
|
253
252
|
// Basically this method replaces all matches of 'source property' in expression with '$newPropertyValue'.
|
|
254
253
|
// For example: with an expression similar to:
|
|
255
254
|
// text="{{ sourceProperty = $parents['ListView'].test, expression = $parents['ListView'].test + 2}}"
|
|
256
255
|
// update expression will be '$newPropertyValue + 2'
|
|
257
256
|
// then on expression execution the new value will be taken and target property will be updated with the value of the expression.
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
257
|
+
const escapedSourceProperty = escapeRegexSymbols(this.options.sourceProperty);
|
|
258
|
+
const expRegex = new RegExp(escapedSourceProperty, 'g');
|
|
259
|
+
const resultExp = this.options.expression.replace(expRegex, bc.newPropertyValueKey);
|
|
261
260
|
return resultExp;
|
|
262
|
-
}
|
|
263
|
-
|
|
261
|
+
}
|
|
262
|
+
updateTwoWay(value) {
|
|
264
263
|
if (this.updating || !this.options.twoWay) {
|
|
265
264
|
return;
|
|
266
265
|
}
|
|
267
|
-
|
|
266
|
+
let newValue = value;
|
|
268
267
|
if (__UI_USE_EXTERNAL_RENDERER__) {
|
|
269
268
|
}
|
|
270
269
|
else if (this.options.expression) {
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
270
|
+
const changedModel = {};
|
|
271
|
+
const targetInstance = this.target.get();
|
|
272
|
+
let sourcePropertyName = '';
|
|
274
273
|
if (this.sourceOptions) {
|
|
275
274
|
sourcePropertyName = this.sourceOptions.property;
|
|
276
275
|
}
|
|
277
276
|
else if (typeof this.options.sourceProperty === 'string' && this.options.sourceProperty.indexOf('.') === -1) {
|
|
278
277
|
sourcePropertyName = this.options.sourceProperty;
|
|
279
278
|
}
|
|
280
|
-
|
|
279
|
+
const updateExpression = this.prepareExpressionForUpdate();
|
|
281
280
|
this.prepareContextForExpression(targetInstance, changedModel, updateExpression);
|
|
282
281
|
/**
|
|
283
282
|
* Wait for 'prepareContextForExpression' to assign keys first and override any possible occurences.
|
|
@@ -288,22 +287,22 @@ var Binding = /** @class */ (function () {
|
|
|
288
287
|
if (sourcePropertyName !== '') {
|
|
289
288
|
changedModel[sourcePropertyName] = value;
|
|
290
289
|
}
|
|
291
|
-
|
|
290
|
+
const expressionValue = this._getExpressionValue(updateExpression, true, changedModel);
|
|
292
291
|
if (expressionValue instanceof Error) {
|
|
293
292
|
Trace.write(expressionValue.message, Trace.categories.Binding, Trace.messageType.error);
|
|
294
293
|
}
|
|
295
294
|
newValue = expressionValue;
|
|
296
295
|
}
|
|
297
296
|
this.updateSource(newValue);
|
|
298
|
-
}
|
|
299
|
-
|
|
300
|
-
|
|
297
|
+
}
|
|
298
|
+
_getExpressionValue(expression, isBackConvert, changedModel) {
|
|
299
|
+
let result = null;
|
|
301
300
|
if (!__UI_USE_EXTERNAL_RENDERER__) {
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
301
|
+
let context;
|
|
302
|
+
const targetInstance = this.target.get();
|
|
303
|
+
const addedProps = [];
|
|
305
304
|
try {
|
|
306
|
-
|
|
305
|
+
let exp;
|
|
307
306
|
try {
|
|
308
307
|
exp = parseExpression(expression);
|
|
309
308
|
}
|
|
@@ -312,8 +311,8 @@ var Binding = /** @class */ (function () {
|
|
|
312
311
|
}
|
|
313
312
|
if (exp) {
|
|
314
313
|
context = (this.source && this.source.get && this.source.get()) || global;
|
|
315
|
-
|
|
316
|
-
for (
|
|
314
|
+
const resources = bindableResources.get();
|
|
315
|
+
for (const prop in resources) {
|
|
317
316
|
if (resources.hasOwnProperty(prop) && !context.hasOwnProperty(prop)) {
|
|
318
317
|
context[prop] = resources[prop];
|
|
319
318
|
addedProps.push(prop);
|
|
@@ -333,19 +332,18 @@ var Binding = /** @class */ (function () {
|
|
|
333
332
|
result = new Error(e + ' at ' + targetInstance);
|
|
334
333
|
}
|
|
335
334
|
// Clear added props
|
|
336
|
-
for (
|
|
337
|
-
var prop = addedProps_1[_i];
|
|
335
|
+
for (const prop of addedProps) {
|
|
338
336
|
delete context[prop];
|
|
339
337
|
}
|
|
340
338
|
addedProps.length = 0;
|
|
341
339
|
}
|
|
342
340
|
return result;
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
341
|
+
}
|
|
342
|
+
onSourcePropertyChanged(data) {
|
|
343
|
+
const sourceProps = this.sourceProperties;
|
|
344
|
+
const sourcePropsLength = sourceProps.length;
|
|
345
|
+
let changedPropertyIndex = sourceProps.indexOf(data.propertyName);
|
|
346
|
+
let parentProps = '';
|
|
349
347
|
if (changedPropertyIndex > -1) {
|
|
350
348
|
parentProps = '$' + sourceProps.slice(0, changedPropertyIndex + 1).join('$');
|
|
351
349
|
while (this.propertyChangeListeners.get(parentProps) !== data.object) {
|
|
@@ -355,11 +353,11 @@ var Binding = /** @class */ (function () {
|
|
|
355
353
|
}
|
|
356
354
|
if (__UI_USE_EXTERNAL_RENDERER__ || !this.options.expression) {
|
|
357
355
|
if (changedPropertyIndex > -1) {
|
|
358
|
-
|
|
359
|
-
|
|
356
|
+
const props = sourceProps.slice(changedPropertyIndex + 1);
|
|
357
|
+
const propsLength = props.length;
|
|
360
358
|
if (propsLength > 0) {
|
|
361
|
-
|
|
362
|
-
for (
|
|
359
|
+
let value = data.value;
|
|
360
|
+
for (let i = 0; i < propsLength; i++) {
|
|
363
361
|
value = value[props[i]];
|
|
364
362
|
}
|
|
365
363
|
this.updateTarget(value);
|
|
@@ -370,7 +368,7 @@ var Binding = /** @class */ (function () {
|
|
|
370
368
|
}
|
|
371
369
|
}
|
|
372
370
|
else {
|
|
373
|
-
|
|
371
|
+
const expressionValue = this._getExpressionValue(this.options.expression, false, undefined);
|
|
374
372
|
if (expressionValue instanceof Error) {
|
|
375
373
|
Trace.write(expressionValue.message, Trace.categories.Binding, Trace.messageType.error);
|
|
376
374
|
}
|
|
@@ -380,39 +378,38 @@ var Binding = /** @class */ (function () {
|
|
|
380
378
|
}
|
|
381
379
|
// we need to do this only if nested objects are used as source and some middle object has changed.
|
|
382
380
|
if (changedPropertyIndex > -1 && changedPropertyIndex < sourcePropsLength - 1) {
|
|
383
|
-
|
|
381
|
+
const probablyChangedObject = this.propertyChangeListeners.get(parentProps);
|
|
384
382
|
if (probablyChangedObject && probablyChangedObject !== data.object[sourceProps[changedPropertyIndex]]) {
|
|
385
383
|
// remove all weakevent listeners after change, because changed object replaces object that is hooked for
|
|
386
384
|
// propertyChange event
|
|
387
|
-
for (
|
|
388
|
-
|
|
385
|
+
for (let i = sourcePropsLength - 1; i > changedPropertyIndex; i--) {
|
|
386
|
+
const prop = '$' + sourceProps.slice(0, i + 1).join('$');
|
|
389
387
|
if (this.propertyChangeListeners.has(prop)) {
|
|
390
388
|
removeWeakEventListener(this.propertyChangeListeners.get(prop), Observable.propertyChangeEvent, this.onSourcePropertyChanged, this);
|
|
391
389
|
this.propertyChangeListeners.delete(prop);
|
|
392
390
|
}
|
|
393
391
|
}
|
|
394
|
-
|
|
392
|
+
const newProps = sourceProps.slice(changedPropertyIndex + 1);
|
|
395
393
|
// add new weak event listeners
|
|
396
|
-
|
|
394
|
+
const newObject = data.object[sourceProps[changedPropertyIndex]];
|
|
397
395
|
if (!types.isNullOrUndefined(newObject) && typeof newObject === 'object') {
|
|
398
396
|
this.addPropertyChangeListeners(new WeakRef(newObject), newProps, parentProps);
|
|
399
397
|
}
|
|
400
398
|
}
|
|
401
399
|
}
|
|
402
|
-
}
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
var expressionCP = expression;
|
|
400
|
+
}
|
|
401
|
+
prepareContextForExpression(target, model, expression, addedProps = []) {
|
|
402
|
+
let success = true;
|
|
403
|
+
let parentViewAndIndex;
|
|
404
|
+
let parentView;
|
|
405
|
+
let expressionCP = expression;
|
|
409
406
|
if (expressionCP.indexOf(bc.bindingValueKey) > -1) {
|
|
410
407
|
model[bc.bindingValueKey] = model;
|
|
411
408
|
addedProps.push(bc.bindingValueKey);
|
|
412
409
|
}
|
|
413
|
-
|
|
410
|
+
const parentsArray = expressionCP.match(parentsRegex);
|
|
414
411
|
if (parentsArray) {
|
|
415
|
-
for (
|
|
412
|
+
for (let i = 0; i < parentsArray.length; i++) {
|
|
416
413
|
// This prevents later checks to mistake $parents[] for $parent
|
|
417
414
|
expressionCP = expressionCP.replace(parentsArray[i], '');
|
|
418
415
|
parentViewAndIndex = this.getParentView(target, parentsArray[i]);
|
|
@@ -437,14 +434,14 @@ var Binding = /** @class */ (function () {
|
|
|
437
434
|
}
|
|
438
435
|
}
|
|
439
436
|
return success;
|
|
440
|
-
}
|
|
441
|
-
|
|
437
|
+
}
|
|
438
|
+
getSourcePropertyValue() {
|
|
442
439
|
if (__UI_USE_EXTERNAL_RENDERER__) {
|
|
443
440
|
}
|
|
444
441
|
else if (this.options.expression) {
|
|
445
|
-
|
|
442
|
+
const changedModel = {};
|
|
446
443
|
changedModel[bc.bindingValueKey] = this.source ? this.source.get() : undefined;
|
|
447
|
-
|
|
444
|
+
const expressionValue = this._getExpressionValue(this.options.expression, false, changedModel);
|
|
448
445
|
if (expressionValue instanceof Error) {
|
|
449
446
|
Trace.write(expressionValue.message, Trace.categories.Binding, Trace.messageType.error);
|
|
450
447
|
}
|
|
@@ -453,7 +450,7 @@ var Binding = /** @class */ (function () {
|
|
|
453
450
|
}
|
|
454
451
|
}
|
|
455
452
|
if (this.sourceOptions) {
|
|
456
|
-
|
|
453
|
+
const sourceOptionsInstance = this.sourceOptions.instance.get();
|
|
457
454
|
if (this.sourceOptions.property === bc.bindingValueKey) {
|
|
458
455
|
return sourceOptionsInstance;
|
|
459
456
|
}
|
|
@@ -468,40 +465,40 @@ var Binding = /** @class */ (function () {
|
|
|
468
465
|
}
|
|
469
466
|
}
|
|
470
467
|
return null;
|
|
471
|
-
}
|
|
472
|
-
|
|
468
|
+
}
|
|
469
|
+
clearBinding() {
|
|
473
470
|
this.clearSource();
|
|
474
471
|
this.updateTarget(unsetValue);
|
|
475
|
-
}
|
|
476
|
-
|
|
472
|
+
}
|
|
473
|
+
updateTarget(value) {
|
|
477
474
|
if (this.updating) {
|
|
478
475
|
return;
|
|
479
476
|
}
|
|
480
477
|
this.updateOptions(this.targetOptions, types.isNullOrUndefined(value) ? unsetValue : value);
|
|
481
|
-
}
|
|
482
|
-
|
|
478
|
+
}
|
|
479
|
+
updateSource(value) {
|
|
483
480
|
if (this.updating || !this.source || !this.source.get()) {
|
|
484
481
|
return;
|
|
485
482
|
}
|
|
486
483
|
this.updateOptions(this.sourceOptions, value);
|
|
487
|
-
}
|
|
488
|
-
|
|
484
|
+
}
|
|
485
|
+
getParentView(target, property) {
|
|
489
486
|
if (!target) {
|
|
490
487
|
return { view: null, index: null };
|
|
491
488
|
}
|
|
492
|
-
|
|
489
|
+
let result;
|
|
493
490
|
if (property === bc.parentValueKey) {
|
|
494
491
|
result = target.parent;
|
|
495
492
|
}
|
|
496
|
-
|
|
493
|
+
let index = null;
|
|
497
494
|
if (property.indexOf(bc.parentsValueKey) === 0) {
|
|
498
495
|
result = target.parent;
|
|
499
|
-
|
|
496
|
+
const indexParams = paramsRegex.exec(property);
|
|
500
497
|
if (indexParams && indexParams.length > 1) {
|
|
501
498
|
index = indexParams[2];
|
|
502
499
|
}
|
|
503
500
|
if (!isNaN(index)) {
|
|
504
|
-
|
|
501
|
+
let indexAsInt = parseInt(index);
|
|
505
502
|
while (indexAsInt > 0) {
|
|
506
503
|
result = result.parent;
|
|
507
504
|
indexAsInt--;
|
|
@@ -514,21 +511,21 @@ var Binding = /** @class */ (function () {
|
|
|
514
511
|
}
|
|
515
512
|
}
|
|
516
513
|
return { view: result, index: index };
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
|
|
514
|
+
}
|
|
515
|
+
resolveOptions(obj, properties) {
|
|
516
|
+
const objectsAndProperties = this.resolveObjectsAndProperties(obj, properties);
|
|
520
517
|
if (objectsAndProperties.length > 0) {
|
|
521
|
-
|
|
522
|
-
|
|
518
|
+
const resolvedObj = objectsAndProperties[objectsAndProperties.length - 1].instance;
|
|
519
|
+
const prop = objectsAndProperties[objectsAndProperties.length - 1].property;
|
|
523
520
|
return {
|
|
524
521
|
instance: new WeakRef(this.sourceAsObject(resolvedObj)),
|
|
525
522
|
property: prop,
|
|
526
523
|
};
|
|
527
524
|
}
|
|
528
525
|
return null;
|
|
529
|
-
}
|
|
530
|
-
|
|
531
|
-
|
|
526
|
+
}
|
|
527
|
+
updateOptions(options, value) {
|
|
528
|
+
let optionsInstance;
|
|
532
529
|
if (options && options.instance) {
|
|
533
530
|
optionsInstance = options.instance.get();
|
|
534
531
|
}
|
|
@@ -554,8 +551,6 @@ var Binding = /** @class */ (function () {
|
|
|
554
551
|
Trace.write('Binding error while setting property ' + options.property + ' of ' + optionsInstance + ': ' + ex, Trace.categories.Binding, Trace.messageType.error);
|
|
555
552
|
}
|
|
556
553
|
this.updating = false;
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
}());
|
|
560
|
-
export { Binding };
|
|
554
|
+
}
|
|
555
|
+
}
|
|
561
556
|
//# sourceMappingURL=index.js.map
|