@ui5/webcomponents-base 0.0.0-5f8ce9393 → 0.0.0-6cb3eb0db
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/.eslintignore +3 -0
- package/CHANGELOG.md +196 -0
- package/README.md +26 -1
- package/bundle.esm.js +18 -12
- package/dist/AssetRegistry.js +8 -6
- package/dist/Boot.js +43 -0
- package/dist/CustomElementsRegistry.js +39 -0
- package/dist/CustomElementsScope.js +108 -0
- package/dist/DOMObserver.js +65 -0
- package/dist/Device.js +58 -779
- package/dist/EventProvider.js +38 -26
- package/dist/FontFace.js +52 -7
- package/dist/InitialConfiguration.js +35 -10
- package/dist/Keys.js +248 -0
- package/dist/MediaRange.js +109 -0
- package/dist/PropertiesFileFormat.js +95 -0
- package/dist/Render.js +173 -0
- package/dist/RenderQueue.js +41 -17
- package/dist/RenderScheduler.js +24 -145
- package/dist/StaticArea.js +1 -39
- package/dist/StaticAreaItem.js +67 -50
- package/dist/SystemCSSVars.js +31 -0
- package/dist/Theming.js +3 -54
- package/dist/UI5Element.js +486 -318
- package/dist/UI5ElementMetadata.js +182 -19
- package/dist/asset-registries/Icons.js +118 -14
- package/dist/asset-registries/Illustrations.js +30 -0
- package/dist/asset-registries/LocaleData.js +97 -55
- package/dist/asset-registries/Themes.js +35 -32
- package/dist/asset-registries/i18n.js +80 -34
- package/dist/config/AnimationMode.js +11 -1
- package/dist/config/CalendarType.js +3 -7
- package/dist/config/Language.js +58 -2
- package/dist/config/Theme.js +2 -2
- package/dist/delegate/ItemNavigation.js +245 -172
- package/dist/delegate/ResizeHandler.js +78 -38
- package/dist/delegate/ScrollEnablement.js +101 -19
- package/dist/features/OpenUI5Support.js +57 -8
- package/dist/generated/AssetParameters.js +13 -0
- package/dist/getSharedResource.js +30 -0
- package/dist/i18nBundle.js +31 -10
- package/dist/isLegacyBrowser.js +3 -0
- package/dist/{Locale.js → locale/Locale.js} +0 -10
- package/dist/locale/RTLAwareRegistry.js +14 -0
- package/dist/locale/applyDirection.js +17 -0
- package/dist/locale/directionChange.js +32 -0
- package/dist/locale/getEffectiveDir.js +28 -0
- package/dist/locale/getLocale.js +41 -0
- package/dist/locale/languageChange.js +22 -0
- package/dist/locale/nextFallbackLocale.js +28 -0
- package/{src/util → dist/locale}/normalizeLocale.js +8 -31
- package/dist/renderer/LitRenderer.js +21 -4
- package/dist/renderer/executeTemplate.js +17 -0
- package/dist/resources/bundle.esm.js +20 -106
- package/dist/resources/bundle.esm.js.map +1 -1
- package/dist/sap/base/Log.js +241 -0
- package/dist/sap/base/assert.js +8 -0
- package/dist/sap/base/security/URLListValidator.js +148 -0
- package/dist/sap/base/security/sanitizeHTML.js +16 -0
- package/dist/sap/base/util/now.js +7 -0
- package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
- package/dist/test-resources/assets/Themes.js +11 -5
- package/dist/test-resources/elements/Generic.js +1 -0
- package/dist/test-resources/elements/Parent.js +7 -2
- package/dist/test-resources/elements/WithStaticArea.js +77 -0
- package/dist/test-resources/pages/AllTestElements.html +5 -5
- package/dist/test-resources/pages/Configuration.html +0 -2
- package/dist/test-resources/pages/ConfigurationScript.html +1 -3
- package/dist/test-resources/pages/assets/messagebundle_de.properties +1 -0
- package/dist/test-resources/pages/assets/messagebundle_en.properties +1 -0
- package/dist/test-resources/pages/assets/messagebundle_es.properties +1 -0
- package/dist/test-resources/pages/assets/messagebundle_fr.properties +1 -0
- package/dist/test-resources/pages/i18n.html +35 -0
- package/dist/test-resources/specs/ConfigurationChange.spec.js +11 -9
- package/dist/test-resources/specs/ConfigurationScript.spec.js +25 -23
- package/dist/test-resources/specs/ConfigurationURL.spec.js +65 -17
- package/dist/test-resources/specs/CustomTheme.spec.js +7 -5
- package/dist/test-resources/specs/EventProvider.spec.js +63 -0
- package/dist/test-resources/specs/StaticArea.spec.js +78 -0
- package/dist/test-resources/specs/Theming.spec.js +9 -7
- package/dist/test-resources/specs/UI5ElementInvalidation.js +54 -70
- package/dist/test-resources/specs/UI5ElementLifecycle.js +19 -14
- package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +25 -51
- package/dist/test-resources/specs/UI5ElementMetadataExt.js +9 -7
- package/dist/test-resources/specs/UI5ElementPropertyValidation.js +7 -5
- package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +37 -35
- package/dist/test-resources/specs/UI5ElementShadowDOM.js +10 -8
- package/dist/test-resources/specs/UI5ElementSlots.js +10 -8
- package/dist/theming/CustomStyle.js +28 -7
- package/dist/theming/ThemeLoaded.js +22 -0
- package/dist/theming/applyTheme.js +78 -0
- package/dist/theming/createThemePropertiesStyleTag.js +20 -0
- package/dist/theming/getConstructableStyle.js +30 -0
- package/dist/theming/getEffectiveStyle.js +30 -0
- package/dist/theming/getStylesString.js +13 -0
- package/dist/theming/getThemeDesignerTheme.js +67 -0
- package/dist/thirdparty/_merge.js +32 -0
- package/dist/thirdparty/isPlainObject.js +18 -0
- package/dist/thirdparty/merge.js +10 -0
- package/dist/types/CSSColor.js +9 -0
- package/{src/dates → dist/types}/CalendarType.js +2 -2
- package/dist/types/DataType.js +13 -1
- package/dist/types/Float.js +14 -0
- package/dist/types/Integer.js +4 -0
- package/dist/types/InvisibleMessageMode.js +30 -0
- package/dist/types/ItemNavigationBehavior.js +2 -7
- package/dist/types/NavigationMode.js +1 -0
- package/dist/types/PopupState.js +1 -1
- package/dist/types/ValueState.js +2 -1
- package/dist/updateShadowRoot.js +26 -0
- package/dist/util/AriaLabelHelper.js +41 -0
- package/dist/util/Caret.js +45 -0
- package/dist/util/ColorConversion.js +370 -0
- package/dist/util/FocusableElements.js +25 -8
- package/dist/util/HTMLSanitizer.js +7 -0
- package/dist/util/InvisibleMessage.js +58 -0
- package/dist/util/PopupUtils.js +93 -0
- package/dist/util/SlotsHelper.js +43 -0
- package/dist/util/StringHelper.js +17 -2
- package/dist/util/TabbableElements.js +5 -2
- package/dist/util/arraysAreEqual.js +15 -0
- package/dist/util/clamp.js +12 -0
- package/dist/util/debounce.js +17 -0
- package/dist/util/detectNavigatorLanguage.js +3 -1
- package/dist/util/encodeCSS.js +24 -0
- package/dist/util/findNodeOwner.js +35 -0
- package/dist/util/getActiveElement.js +11 -0
- package/dist/util/getClassCopy.js +10 -0
- package/dist/util/getEffectiveContentDensity.js +5 -0
- package/dist/util/getFileExtension.js +21 -0
- package/dist/util/getSingletonElementInstance.js +13 -0
- package/dist/util/isElementInView.js +15 -0
- package/dist/util/isNodeHidden.js +1 -5
- package/dist/util/isNodeTabbable.js +4 -4
- package/dist/util/isValidPropertyName.js +11 -2
- package/dist/util/setToArray.js +10 -0
- package/hash.txt +1 -0
- package/index.js +1 -1
- package/lib/generate-asset-parameters/index.js +22 -0
- package/package-scripts.js +37 -17
- package/package.json +20 -12
- package/src/AssetRegistry.js +8 -6
- package/src/Boot.js +43 -0
- package/src/CustomElementsRegistry.js +39 -0
- package/src/CustomElementsScope.js +108 -0
- package/src/DOMObserver.js +65 -0
- package/src/Device.js +58 -779
- package/src/EventProvider.js +38 -26
- package/src/FontFace.js +52 -7
- package/src/InitialConfiguration.js +35 -10
- package/src/Keys.js +248 -0
- package/src/MediaRange.js +109 -0
- package/src/PropertiesFileFormat.js +95 -0
- package/src/Render.js +173 -0
- package/src/RenderQueue.js +41 -17
- package/src/RenderScheduler.js +24 -145
- package/src/StaticArea.js +1 -39
- package/src/StaticAreaItem.js +67 -50
- package/src/SystemCSSVars.js +31 -0
- package/src/Theming.js +3 -54
- package/src/UI5Element.js +486 -318
- package/src/UI5ElementMetadata.js +182 -19
- package/src/asset-registries/Icons.js +118 -14
- package/src/asset-registries/Illustrations.js +30 -0
- package/src/asset-registries/LocaleData.js +97 -55
- package/src/asset-registries/Themes.js +35 -32
- package/src/asset-registries/i18n.js +80 -34
- package/src/config/AnimationMode.js +11 -1
- package/src/config/CalendarType.js +3 -7
- package/src/config/Language.js +58 -2
- package/src/config/Theme.js +2 -2
- package/src/delegate/ItemNavigation.js +245 -172
- package/src/delegate/ResizeHandler.js +78 -38
- package/src/delegate/ScrollEnablement.js +101 -19
- package/src/features/OpenUI5Support.js +57 -8
- package/src/getSharedResource.js +30 -0
- package/src/i18nBundle.js +31 -10
- package/src/isLegacyBrowser.js +3 -0
- package/src/{Locale.js → locale/Locale.js} +0 -10
- package/src/locale/RTLAwareRegistry.js +14 -0
- package/src/locale/applyDirection.js +17 -0
- package/src/locale/directionChange.js +32 -0
- package/src/locale/getEffectiveDir.js +28 -0
- package/src/locale/getLocale.js +41 -0
- package/src/locale/languageChange.js +22 -0
- package/src/locale/nextFallbackLocale.js +28 -0
- package/{dist/util → src/locale}/normalizeLocale.js +8 -31
- package/src/renderer/LitRenderer.js +21 -4
- package/src/renderer/executeTemplate.js +17 -0
- package/src/theming/CustomStyle.js +28 -7
- package/src/theming/ThemeLoaded.js +22 -0
- package/src/theming/applyTheme.js +78 -0
- package/src/theming/createThemePropertiesStyleTag.js +20 -0
- package/src/theming/getConstructableStyle.js +30 -0
- package/src/theming/getEffectiveStyle.js +30 -0
- package/src/theming/getStylesString.js +13 -0
- package/src/theming/getThemeDesignerTheme.js +67 -0
- package/src/thirdparty/_merge.js +32 -0
- package/src/thirdparty/isPlainObject.js +18 -0
- package/src/thirdparty/merge.js +10 -0
- package/src/types/CSSColor.js +9 -0
- package/{dist/dates → src/types}/CalendarType.js +2 -2
- package/src/types/DataType.js +13 -1
- package/src/types/Float.js +14 -0
- package/src/types/Integer.js +4 -0
- package/src/types/InvisibleMessageMode.js +30 -0
- package/src/types/ItemNavigationBehavior.js +2 -7
- package/src/types/NavigationMode.js +1 -0
- package/src/types/PopupState.js +1 -1
- package/src/types/ValueState.js +2 -1
- package/src/updateShadowRoot.js +26 -0
- package/src/util/AriaLabelHelper.js +41 -0
- package/src/util/Caret.js +45 -0
- package/src/util/ColorConversion.js +370 -0
- package/src/util/FocusableElements.js +25 -8
- package/src/util/HTMLSanitizer.js +7 -0
- package/src/util/InvisibleMessage.js +58 -0
- package/src/util/PopupUtils.js +93 -0
- package/src/util/SlotsHelper.js +43 -0
- package/src/util/StringHelper.js +17 -2
- package/src/util/TabbableElements.js +5 -2
- package/src/util/arraysAreEqual.js +15 -0
- package/src/util/clamp.js +12 -0
- package/src/util/debounce.js +17 -0
- package/src/util/detectNavigatorLanguage.js +3 -1
- package/src/util/encodeCSS.js +24 -0
- package/src/util/findNodeOwner.js +35 -0
- package/src/util/getActiveElement.js +11 -0
- package/src/util/getClassCopy.js +10 -0
- package/src/util/getEffectiveContentDensity.js +5 -0
- package/src/util/getFileExtension.js +21 -0
- package/src/util/getSingletonElementInstance.js +13 -0
- package/src/util/isElementInView.js +15 -0
- package/src/util/isNodeHidden.js +1 -5
- package/src/util/isNodeTabbable.js +4 -4
- package/src/util/isValidPropertyName.js +11 -2
- package/src/util/setToArray.js +10 -0
- package/used-modules.txt +7 -0
- package/bundle.es5.js +0 -28
- package/dist/Assets.js +0 -2
- package/dist/CSS.js +0 -48
- package/dist/FormatSettings.js +0 -31
- package/dist/LocaleProvider.js +0 -34
- package/dist/ResourceLoaderOverrides.js +0 -38
- package/dist/SVGIconRegistry.js +0 -54
- package/dist/boot.js +0 -32
- package/dist/compatibility/DOMObserver.js +0 -62
- package/dist/compatibility/patchNodeValue.js +0 -24
- package/dist/compatibility/whenPolyfillLoaded.js +0 -26
- package/dist/dates/CalendarDate.js +0 -203
- package/dist/dates/CalendarUtils.js +0 -99
- package/dist/delegate/CustomResize.js +0 -78
- package/dist/delegate/NativeResize.js +0 -44
- package/dist/events/PseudoEvents.js +0 -58
- package/dist/features/browsersupport/Edge.js +0 -6
- package/dist/features/browsersupport/IE11.js +0 -41
- package/dist/features/calendar/Buddhist.js +0 -1
- package/dist/features/calendar/Islamic.js +0 -1
- package/dist/features/calendar/Japanese.js +0 -1
- package/dist/features/calendar/Persian.js +0 -1
- package/dist/generated/assets/cldr/sap/ui/core/cldr/ar.json +0 -5598
- package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_EG.json +0 -5598
- package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_SA.json +0 -5598
- package/dist/generated/assets/cldr/sap/ui/core/cldr/bg.json +0 -4789
- package/dist/generated/assets/cldr/sap/ui/core/cldr/ca.json +0 -4801
- package/dist/generated/assets/cldr/sap/ui/core/cldr/cs.json +0 -5245
- package/dist/generated/assets/cldr/sap/ui/core/cldr/da.json +0 -4696
- package/dist/generated/assets/cldr/sap/ui/core/cldr/de.json +0 -4797
- package/dist/generated/assets/cldr/sap/ui/core/cldr/de_AT.json +0 -4798
- package/dist/generated/assets/cldr/sap/ui/core/cldr/de_CH.json +0 -4796
- package/dist/generated/assets/cldr/sap/ui/core/cldr/el.json +0 -4694
- package/dist/generated/assets/cldr/sap/ui/core/cldr/el_CY.json +0 -4694
- package/dist/generated/assets/cldr/sap/ui/core/cldr/en.json +0 -4777
- package/dist/generated/assets/cldr/sap/ui/core/cldr/en_AU.json +0 -4769
- package/dist/generated/assets/cldr/sap/ui/core/cldr/en_GB.json +0 -4778
- package/dist/generated/assets/cldr/sap/ui/core/cldr/en_HK.json +0 -4784
- package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IE.json +0 -4778
- package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IN.json +0 -4779
- package/dist/generated/assets/cldr/sap/ui/core/cldr/en_NZ.json +0 -4778
- package/dist/generated/assets/cldr/sap/ui/core/cldr/en_PG.json +0 -4779
- package/dist/generated/assets/cldr/sap/ui/core/cldr/en_SG.json +0 -4780
- package/dist/generated/assets/cldr/sap/ui/core/cldr/en_ZA.json +0 -4779
- package/dist/generated/assets/cldr/sap/ui/core/cldr/es.json +0 -4719
- package/dist/generated/assets/cldr/sap/ui/core/cldr/es_AR.json +0 -4721
- package/dist/generated/assets/cldr/sap/ui/core/cldr/es_BO.json +0 -4720
- package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CL.json +0 -4721
- package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CO.json +0 -4721
- package/dist/generated/assets/cldr/sap/ui/core/cldr/es_MX.json +0 -4722
- package/dist/generated/assets/cldr/sap/ui/core/cldr/es_PE.json +0 -4720
- package/dist/generated/assets/cldr/sap/ui/core/cldr/es_UY.json +0 -4722
- package/dist/generated/assets/cldr/sap/ui/core/cldr/es_VE.json +0 -4721
- package/dist/generated/assets/cldr/sap/ui/core/cldr/et.json +0 -4776
- package/dist/generated/assets/cldr/sap/ui/core/cldr/fa.json +0 -4704
- package/dist/generated/assets/cldr/sap/ui/core/cldr/fi.json +0 -4816
- package/dist/generated/assets/cldr/sap/ui/core/cldr/fr.json +0 -4788
- package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_BE.json +0 -4788
- package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CA.json +0 -4782
- package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CH.json +0 -4806
- package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_LU.json +0 -4788
- package/dist/generated/assets/cldr/sap/ui/core/cldr/he.json +0 -5133
- package/dist/generated/assets/cldr/sap/ui/core/cldr/hi.json +0 -4680
- package/dist/generated/assets/cldr/sap/ui/core/cldr/hr.json +0 -4910
- package/dist/generated/assets/cldr/sap/ui/core/cldr/hu.json +0 -4664
- package/dist/generated/assets/cldr/sap/ui/core/cldr/id.json +0 -4500
- package/dist/generated/assets/cldr/sap/ui/core/cldr/it.json +0 -4757
- package/dist/generated/assets/cldr/sap/ui/core/cldr/it_CH.json +0 -4757
- package/dist/generated/assets/cldr/sap/ui/core/cldr/ja.json +0 -4599
- package/dist/generated/assets/cldr/sap/ui/core/cldr/kk.json +0 -4537
- package/dist/generated/assets/cldr/sap/ui/core/cldr/ko.json +0 -4574
- package/dist/generated/assets/cldr/sap/ui/core/cldr/lt.json +0 -5234
- package/dist/generated/assets/cldr/sap/ui/core/cldr/lv.json +0 -4902
- package/dist/generated/assets/cldr/sap/ui/core/cldr/ms.json +0 -4352
- package/dist/generated/assets/cldr/sap/ui/core/cldr/nb.json +0 -4784
- package/dist/generated/assets/cldr/sap/ui/core/cldr/nl.json +0 -4790
- package/dist/generated/assets/cldr/sap/ui/core/cldr/nl_BE.json +0 -4790
- package/dist/generated/assets/cldr/sap/ui/core/cldr/pl.json +0 -5223
- package/dist/generated/assets/cldr/sap/ui/core/cldr/pt.json +0 -4703
- package/dist/generated/assets/cldr/sap/ui/core/cldr/pt_PT.json +0 -4753
- package/dist/generated/assets/cldr/sap/ui/core/cldr/ro.json +0 -4881
- package/dist/generated/assets/cldr/sap/ui/core/cldr/ru.json +0 -5157
- package/dist/generated/assets/cldr/sap/ui/core/cldr/ru_UA.json +0 -5157
- package/dist/generated/assets/cldr/sap/ui/core/cldr/sk.json +0 -5125
- package/dist/generated/assets/cldr/sap/ui/core/cldr/sl.json +0 -5105
- package/dist/generated/assets/cldr/sap/ui/core/cldr/sr.json +0 -4908
- package/dist/generated/assets/cldr/sap/ui/core/cldr/sv.json +0 -4818
- package/dist/generated/assets/cldr/sap/ui/core/cldr/th.json +0 -4633
- package/dist/generated/assets/cldr/sap/ui/core/cldr/tr.json +0 -4791
- package/dist/generated/assets/cldr/sap/ui/core/cldr/uk.json +0 -5126
- package/dist/generated/assets/cldr/sap/ui/core/cldr/vi.json +0 -4510
- package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_CN.json +0 -4469
- package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_HK.json +0 -4479
- package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_SG.json +0 -4479
- package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_TW.json +0 -4565
- package/dist/json-imports/LocaleData.js +0 -171
- package/dist/renderer/ifDefined.js +0 -21
- package/dist/resources/bundle.es5.js +0 -212
- package/dist/resources/bundle.es5.js.map +0 -1
- package/dist/shims/Core-shim.js +0 -52
- package/dist/shims/jquery-shim.js +0 -89
- package/dist/test-resources/dev-helpers/ExternalThemePresent.js +0 -3
- package/dist/theming/StyleInjection.js +0 -67
- package/dist/thirdparty/Array.from.js +0 -16
- package/dist/thirdparty/Array.prototype.fill.js +0 -44
- package/dist/thirdparty/Array.prototype.find.js +0 -46
- package/dist/thirdparty/Array.prototype.includes.js +0 -51
- package/dist/thirdparty/Element.prototype.closest.js +0 -11
- package/dist/thirdparty/Element.prototype.matches.js +0 -6
- package/dist/thirdparty/Map.prototype.keys.js +0 -9
- package/dist/thirdparty/Number.isInteger.js +0 -5
- package/dist/thirdparty/Number.isNaN.js +0 -1
- package/dist/thirdparty/Number.parseInt.js +0 -1
- package/dist/thirdparty/Object.assign.js +0 -31
- package/dist/thirdparty/Object.entries.js +0 -11
- package/dist/thirdparty/Symbol.js +0 -2
- package/dist/thirdparty/WeakSet.js +0 -27
- package/dist/thirdparty/events-polyfills.js +0 -89
- package/dist/thirdparty/fetch.js +0 -1
- package/dist/thirdparty/template.js +0 -600
- package/dist/util/CSSTransformUtils.js +0 -90
- package/dist/webcomponentsjs/LICENSE.md +0 -19
- package/dist/webcomponentsjs/README.md +0 -229
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
- package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
- package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
- package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
- package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
- package/dist/webcomponentsjs/package.json +0 -46
- package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
- package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
- package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
- package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
- package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
- package/src/Assets.js +0 -2
- package/src/CSS.js +0 -48
- package/src/FormatSettings.js +0 -31
- package/src/LocaleProvider.js +0 -34
- package/src/ResourceLoaderOverrides.js +0 -38
- package/src/SVGIconRegistry.js +0 -54
- package/src/boot.js +0 -32
- package/src/compatibility/DOMObserver.js +0 -62
- package/src/compatibility/patchNodeValue.js +0 -24
- package/src/compatibility/whenPolyfillLoaded.js +0 -26
- package/src/dates/CalendarDate.js +0 -203
- package/src/dates/CalendarUtils.js +0 -99
- package/src/delegate/CustomResize.js +0 -78
- package/src/delegate/NativeResize.js +0 -44
- package/src/events/PseudoEvents.js +0 -58
- package/src/features/browsersupport/Edge.js +0 -6
- package/src/features/browsersupport/IE11.js +0 -41
- package/src/features/calendar/Buddhist.js +0 -1
- package/src/features/calendar/Islamic.js +0 -1
- package/src/features/calendar/Japanese.js +0 -1
- package/src/features/calendar/Persian.js +0 -1
- package/src/json-imports/LocaleData.js +0 -171
- package/src/renderer/ifDefined.js +0 -21
- package/src/shims/Core-shim.js +0 -52
- package/src/shims/jquery-shim.js +0 -89
- package/src/theming/StyleInjection.js +0 -67
- package/src/thirdparty/Array.from.js +0 -16
- package/src/thirdparty/Array.prototype.fill.js +0 -44
- package/src/thirdparty/Array.prototype.find.js +0 -46
- package/src/thirdparty/Array.prototype.includes.js +0 -51
- package/src/thirdparty/Element.prototype.closest.js +0 -11
- package/src/thirdparty/Element.prototype.matches.js +0 -6
- package/src/thirdparty/Map.prototype.keys.js +0 -9
- package/src/thirdparty/Number.isInteger.js +0 -5
- package/src/thirdparty/Number.isNaN.js +0 -1
- package/src/thirdparty/Number.parseInt.js +0 -1
- package/src/thirdparty/Object.assign.js +0 -31
- package/src/thirdparty/Object.entries.js +0 -11
- package/src/thirdparty/Symbol.js +0 -2
- package/src/thirdparty/WeakSet.js +0 -27
- package/src/thirdparty/events-polyfills.js +0 -89
- package/src/thirdparty/fetch.js +0 -1
- package/src/thirdparty/template.js +0 -600
- package/src/util/CSSTransformUtils.js +0 -90
package/dist/EventProvider.js
CHANGED
|
@@ -1,72 +1,84 @@
|
|
|
1
1
|
class EventProvider {
|
|
2
2
|
constructor() {
|
|
3
|
-
this._eventRegistry =
|
|
3
|
+
this._eventRegistry = new Map();
|
|
4
4
|
}
|
|
5
5
|
|
|
6
6
|
attachEvent(eventName, fnFunction) {
|
|
7
7
|
const eventRegistry = this._eventRegistry;
|
|
8
|
-
|
|
8
|
+
const eventListeners = eventRegistry.get(eventName);
|
|
9
9
|
|
|
10
10
|
if (!Array.isArray(eventListeners)) {
|
|
11
|
-
eventRegistry
|
|
12
|
-
|
|
11
|
+
eventRegistry.set(eventName, [fnFunction]);
|
|
12
|
+
return;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
eventListeners.
|
|
16
|
-
|
|
17
|
-
}
|
|
15
|
+
if (!eventListeners.includes(fnFunction)) {
|
|
16
|
+
eventListeners.push(fnFunction);
|
|
17
|
+
}
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
detachEvent(eventName, fnFunction) {
|
|
21
21
|
const eventRegistry = this._eventRegistry;
|
|
22
|
-
|
|
22
|
+
const eventListeners = eventRegistry.get(eventName);
|
|
23
23
|
|
|
24
24
|
if (!eventListeners) {
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
|
+
const indexOfFnToDetach = eventListeners.indexOf(fnFunction);
|
|
27
28
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
}
|
|
29
|
+
if (indexOfFnToDetach !== -1) {
|
|
30
|
+
eventListeners.splice(indexOfFnToDetach, 1);
|
|
31
|
+
}
|
|
31
32
|
|
|
32
33
|
if (eventListeners.length === 0) {
|
|
33
|
-
delete
|
|
34
|
+
eventRegistry.delete(eventName);
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
|
|
38
|
+
/**
|
|
39
|
+
* Fires an event and returns the results of all event listeners as an array.
|
|
40
|
+
*
|
|
41
|
+
* @param eventName the event to fire
|
|
42
|
+
* @param data optional data to pass to each event listener
|
|
43
|
+
* @returns {Array} an array with the results of all event listeners
|
|
44
|
+
*/
|
|
37
45
|
fireEvent(eventName, data) {
|
|
38
46
|
const eventRegistry = this._eventRegistry;
|
|
39
|
-
const eventListeners = eventRegistry
|
|
47
|
+
const eventListeners = eventRegistry.get(eventName);
|
|
40
48
|
|
|
41
49
|
if (!eventListeners) {
|
|
42
|
-
return;
|
|
50
|
+
return [];
|
|
43
51
|
}
|
|
44
52
|
|
|
45
|
-
eventListeners.
|
|
46
|
-
|
|
53
|
+
return eventListeners.map(fn => {
|
|
54
|
+
return fn.call(this, data); // eslint-disable-line
|
|
47
55
|
});
|
|
48
56
|
}
|
|
49
57
|
|
|
58
|
+
/**
|
|
59
|
+
* Fires an event and returns a promise that will resolve once all listeners have resolved.
|
|
60
|
+
*
|
|
61
|
+
* @param eventName the event to fire
|
|
62
|
+
* @param data optional data to pass to each event listener
|
|
63
|
+
* @returns {Promise} a promise that will resolve when all listeners have resolved
|
|
64
|
+
*/
|
|
65
|
+
fireEventAsync(eventName, data) {
|
|
66
|
+
return Promise.all(this.fireEvent(eventName, data));
|
|
67
|
+
}
|
|
68
|
+
|
|
50
69
|
isHandlerAttached(eventName, fnFunction) {
|
|
51
70
|
const eventRegistry = this._eventRegistry;
|
|
52
|
-
const eventListeners = eventRegistry
|
|
71
|
+
const eventListeners = eventRegistry.get(eventName);
|
|
53
72
|
|
|
54
73
|
if (!eventListeners) {
|
|
55
74
|
return false;
|
|
56
75
|
}
|
|
57
76
|
|
|
58
|
-
|
|
59
|
-
const event = eventListeners[i];
|
|
60
|
-
if (event["function"] === fnFunction) { // eslint-disable-line
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
return false;
|
|
77
|
+
return eventListeners.includes(fnFunction);
|
|
66
78
|
}
|
|
67
79
|
|
|
68
80
|
hasListeners(eventName) {
|
|
69
|
-
return !!this._eventRegistry
|
|
81
|
+
return !!this._eventRegistry.get(eventName);
|
|
70
82
|
}
|
|
71
83
|
}
|
|
72
84
|
|
package/dist/FontFace.js
CHANGED
|
@@ -56,18 +56,63 @@ const fontFaceCSS = `
|
|
|
56
56
|
}
|
|
57
57
|
`;
|
|
58
58
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Some diacritics are supported by the 72 font:
|
|
61
|
+
* * Grave
|
|
62
|
+
* * Acute
|
|
63
|
+
* * Circumflex
|
|
64
|
+
* * Tilde
|
|
65
|
+
*
|
|
66
|
+
* However, the following diacritics and the combination of multiple diacritics (including the supported ones) are not supported:
|
|
67
|
+
* * Breve
|
|
68
|
+
* * Horn
|
|
69
|
+
* * Dot below
|
|
70
|
+
* * Hook above
|
|
71
|
+
*
|
|
72
|
+
*
|
|
73
|
+
* Override for the characters that aren't covered by the '72' font to other system fonts
|
|
74
|
+
*
|
|
75
|
+
* U+0102-0103: A and a with Breve
|
|
76
|
+
* U+01A0-01A1: O and o with Horn
|
|
77
|
+
* U+01AF-01B0: U and u with Horn
|
|
78
|
+
* U+1EA0-1EB7: A and a with diacritics that are not supported by the font and combination of multiple diacritics
|
|
79
|
+
* U+1EB8-1EC7: E and e with diacritics that are not supported by the font and combination of multiple diacritics
|
|
80
|
+
* U+1EC8-1ECB: I and i with diacritics that are not supported by the font and combination of multiple diacritics
|
|
81
|
+
* U+1ECC-1EE3: O and o with diacritics that are not supported by the font and combination of multiple diacritics
|
|
82
|
+
* U+1EE4-1EF1: U and u with diacritics that are not supported by the font and combination of multiple diacritics
|
|
83
|
+
* U+1EF4-1EF7: Y and y with diacritics that are not supported by the font and combination of multiple diacritics
|
|
84
|
+
*
|
|
85
|
+
*/
|
|
86
|
+
const overrideFontFaceCSS = `
|
|
87
|
+
@font-face {
|
|
88
|
+
font-family: '72override';
|
|
89
|
+
unicode-range: U+0102-0103, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EB7, U+1EB8-1EC7, U+1EC8-1ECB, U+1ECC-1EE3, U+1EE4-1EF1, U+1EF4-1EF7;
|
|
90
|
+
src: local('Arial'), local('Helvetica'), local('sans-serif');
|
|
62
91
|
}
|
|
92
|
+
`;
|
|
63
93
|
|
|
64
|
-
|
|
94
|
+
const insertFontFace = () => {
|
|
65
95
|
const OpenUI5Support = getFeature("OpenUI5Support");
|
|
66
|
-
|
|
67
|
-
|
|
96
|
+
|
|
97
|
+
// Only set the main font if there is no OpenUI5 support, or there is, but OpenUI5 is not loaded
|
|
98
|
+
if (!OpenUI5Support || !OpenUI5Support.isLoaded()) {
|
|
99
|
+
insertMainFontFace();
|
|
68
100
|
}
|
|
69
101
|
|
|
70
|
-
|
|
102
|
+
// Always set the override font - OpenUI5 in CSS Vars mode does not set it, unlike the main font
|
|
103
|
+
insertOverrideFontFace();
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
const insertMainFontFace = () => {
|
|
107
|
+
if (!document.querySelector(`head>style[data-ui5-font-face]`)) {
|
|
108
|
+
createStyleInHead(fontFaceCSS, { "data-ui5-font-face": "" });
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
const insertOverrideFontFace = () => {
|
|
113
|
+
if (!document.querySelector(`head>style[data-ui5-font-face-override]`)) {
|
|
114
|
+
createStyleInHead(overrideFontFaceCSS, { "data-ui5-font-face-override": "" });
|
|
115
|
+
}
|
|
71
116
|
};
|
|
72
117
|
|
|
73
118
|
export default insertFontFace;
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import merge from "
|
|
1
|
+
import merge from "./thirdparty/merge.js";
|
|
2
2
|
import { getFeature } from "./FeaturesRegistry.js";
|
|
3
|
+
import { DEFAULT_THEME } from "./generated/AssetParameters.js";
|
|
3
4
|
|
|
4
5
|
let initialized = false;
|
|
5
6
|
|
|
6
7
|
let initialConfig = {
|
|
7
8
|
animationMode: "full",
|
|
8
|
-
theme:
|
|
9
|
+
theme: DEFAULT_THEME,
|
|
9
10
|
rtl: null,
|
|
10
11
|
language: null,
|
|
11
12
|
calendarType: null,
|
|
12
13
|
noConflict: false, // no URL
|
|
13
14
|
formatSettings: {},
|
|
15
|
+
fetchDefaultLanguage: false,
|
|
14
16
|
};
|
|
15
17
|
|
|
16
18
|
/* General settings */
|
|
@@ -34,6 +36,16 @@ const getLanguage = () => {
|
|
|
34
36
|
return initialConfig.language;
|
|
35
37
|
};
|
|
36
38
|
|
|
39
|
+
/**
|
|
40
|
+
* Returns if the default language, that is inlined at build time,
|
|
41
|
+
* should be fetched over the network instead.
|
|
42
|
+
* @returns {Boolean}
|
|
43
|
+
*/
|
|
44
|
+
const getFetchDefaultLanguage = () => {
|
|
45
|
+
initConfiguration();
|
|
46
|
+
return initialConfig.fetchDefaultLanguage;
|
|
47
|
+
};
|
|
48
|
+
|
|
37
49
|
const getNoConflict = () => {
|
|
38
50
|
initConfiguration();
|
|
39
51
|
return initialConfig.noConflict;
|
|
@@ -74,23 +86,36 @@ const parseConfigurationScript = () => {
|
|
|
74
86
|
const parseURLParameters = () => {
|
|
75
87
|
const params = new URLSearchParams(window.location.search);
|
|
76
88
|
|
|
89
|
+
// Process "sap-*" params first
|
|
77
90
|
params.forEach((value, key) => {
|
|
78
|
-
|
|
91
|
+
const parts = key.split("sap-").length;
|
|
92
|
+
if (parts === 0 || parts === key.split("sap-ui-").length) {
|
|
79
93
|
return;
|
|
80
94
|
}
|
|
81
95
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
const param = key.split("sap-ui-")[1];
|
|
96
|
+
applyURLParam(key, value, "sap");
|
|
97
|
+
});
|
|
85
98
|
|
|
86
|
-
|
|
87
|
-
|
|
99
|
+
// Process "sap-ui-*" params
|
|
100
|
+
params.forEach((value, key) => {
|
|
101
|
+
if (!key.startsWith("sap-ui")) {
|
|
102
|
+
return;
|
|
88
103
|
}
|
|
89
104
|
|
|
90
|
-
|
|
105
|
+
applyURLParam(key, value, "sap-ui");
|
|
91
106
|
});
|
|
92
107
|
};
|
|
93
108
|
|
|
109
|
+
const applyURLParam = (key, value, paramType) => {
|
|
110
|
+
const lowerCaseValue = value.toLowerCase();
|
|
111
|
+
const param = key.split(`${paramType}-`)[1];
|
|
112
|
+
|
|
113
|
+
if (booleanMapping.has(value)) {
|
|
114
|
+
value = booleanMapping.get(lowerCaseValue);
|
|
115
|
+
}
|
|
116
|
+
initialConfig[param] = value;
|
|
117
|
+
};
|
|
118
|
+
|
|
94
119
|
const applyOpenUI5Configuration = () => {
|
|
95
120
|
const OpenUI5Support = getFeature("OpenUI5Support");
|
|
96
121
|
if (!OpenUI5Support || !OpenUI5Support.isLoaded()) {
|
|
@@ -101,7 +126,6 @@ const applyOpenUI5Configuration = () => {
|
|
|
101
126
|
initialConfig = merge(initialConfig, OpenUI5Config);
|
|
102
127
|
};
|
|
103
128
|
|
|
104
|
-
|
|
105
129
|
const initConfiguration = () => {
|
|
106
130
|
if (initialized) {
|
|
107
131
|
return;
|
|
@@ -124,6 +148,7 @@ export {
|
|
|
124
148
|
getTheme,
|
|
125
149
|
getRTL,
|
|
126
150
|
getLanguage,
|
|
151
|
+
getFetchDefaultLanguage,
|
|
127
152
|
getNoConflict,
|
|
128
153
|
getCalendarType,
|
|
129
154
|
getFormatSettings,
|
package/dist/Keys.js
ADDED
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
const KeyCodes = {
|
|
2
|
+
BACKSPACE: 8,
|
|
3
|
+
TAB: 9,
|
|
4
|
+
ENTER: 13,
|
|
5
|
+
SHIFT: 16,
|
|
6
|
+
CONTROL: 17,
|
|
7
|
+
ALT: 18,
|
|
8
|
+
BREAK: 19,
|
|
9
|
+
CAPS_LOCK: 20,
|
|
10
|
+
ESCAPE: 27,
|
|
11
|
+
SPACE: 32,
|
|
12
|
+
PAGE_UP: 33,
|
|
13
|
+
PAGE_DOWN: 34,
|
|
14
|
+
END: 35,
|
|
15
|
+
HOME: 36,
|
|
16
|
+
ARROW_LEFT: 37,
|
|
17
|
+
ARROW_UP: 38,
|
|
18
|
+
ARROW_RIGHT: 39,
|
|
19
|
+
ARROW_DOWN: 40,
|
|
20
|
+
PRINT: 44,
|
|
21
|
+
INSERT: 45,
|
|
22
|
+
DELETE: 46,
|
|
23
|
+
DIGIT_0: 48,
|
|
24
|
+
DIGIT_1: 49,
|
|
25
|
+
DIGIT_2: 50,
|
|
26
|
+
DIGIT_3: 51,
|
|
27
|
+
DIGIT_4: 52,
|
|
28
|
+
DIGIT_5: 53,
|
|
29
|
+
DIGIT_6: 54,
|
|
30
|
+
DIGIT_7: 55,
|
|
31
|
+
DIGIT_8: 56,
|
|
32
|
+
DIGIT_9: 57,
|
|
33
|
+
A: 65,
|
|
34
|
+
B: 66,
|
|
35
|
+
C: 67,
|
|
36
|
+
D: 68,
|
|
37
|
+
E: 69,
|
|
38
|
+
F: 70,
|
|
39
|
+
G: 71,
|
|
40
|
+
H: 72,
|
|
41
|
+
I: 73,
|
|
42
|
+
J: 74,
|
|
43
|
+
K: 75,
|
|
44
|
+
L: 76,
|
|
45
|
+
M: 77,
|
|
46
|
+
N: 78,
|
|
47
|
+
O: 79,
|
|
48
|
+
P: 80,
|
|
49
|
+
Q: 81,
|
|
50
|
+
R: 82,
|
|
51
|
+
S: 83,
|
|
52
|
+
T: 84,
|
|
53
|
+
U: 85,
|
|
54
|
+
V: 86,
|
|
55
|
+
W: 87,
|
|
56
|
+
X: 88,
|
|
57
|
+
Y: 89,
|
|
58
|
+
Z: 90,
|
|
59
|
+
WINDOWS: 91,
|
|
60
|
+
CONTEXT_MENU: 93,
|
|
61
|
+
TURN_OFF: 94,
|
|
62
|
+
SLEEP: 95,
|
|
63
|
+
NUMPAD_0: 96,
|
|
64
|
+
NUMPAD_1: 97,
|
|
65
|
+
NUMPAD_2: 98,
|
|
66
|
+
NUMPAD_3: 99,
|
|
67
|
+
NUMPAD_4: 100,
|
|
68
|
+
NUMPAD_5: 101,
|
|
69
|
+
NUMPAD_6: 102,
|
|
70
|
+
NUMPAD_7: 103,
|
|
71
|
+
NUMPAD_8: 104,
|
|
72
|
+
NUMPAD_9: 105,
|
|
73
|
+
NUMPAD_ASTERISK: 106,
|
|
74
|
+
NUMPAD_PLUS: 107,
|
|
75
|
+
NUMPAD_MINUS: 109,
|
|
76
|
+
NUMPAD_COMMA: 110,
|
|
77
|
+
NUMPAD_SLASH: 111,
|
|
78
|
+
F1: 112,
|
|
79
|
+
F2: 113,
|
|
80
|
+
F3: 114,
|
|
81
|
+
F4: 115,
|
|
82
|
+
F5: 116,
|
|
83
|
+
F6: 117,
|
|
84
|
+
F7: 118,
|
|
85
|
+
F8: 119,
|
|
86
|
+
F9: 120,
|
|
87
|
+
F10: 121,
|
|
88
|
+
F11: 122,
|
|
89
|
+
F12: 123,
|
|
90
|
+
NUM_LOCK: 144,
|
|
91
|
+
SCROLL_LOCK: 145,
|
|
92
|
+
OPEN_BRACKET: 186,
|
|
93
|
+
PLUS: 187,
|
|
94
|
+
COMMA: 188,
|
|
95
|
+
SLASH: 189,
|
|
96
|
+
DOT: 190,
|
|
97
|
+
PIPE: 191,
|
|
98
|
+
SEMICOLON: 192,
|
|
99
|
+
MINUS: 219,
|
|
100
|
+
GREAT_ACCENT: 220,
|
|
101
|
+
EQUALS: 221,
|
|
102
|
+
SINGLE_QUOTE: 222,
|
|
103
|
+
BACKSLASH: 226,
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
const isEnter = event => (event.key ? event.key === "Enter" : event.keyCode === KeyCodes.ENTER) && !hasModifierKeys(event);
|
|
107
|
+
|
|
108
|
+
const isEnterShift = event => (event.key ? event.key === "Enter" : event.keyCode === KeyCodes.ENTER) && checkModifierKeys(event, false, false, true);
|
|
109
|
+
|
|
110
|
+
const isSpace = event => (event.key ? (event.key === "Spacebar" || event.key === " ") : event.keyCode === KeyCodes.SPACE) && !hasModifierKeys(event);
|
|
111
|
+
|
|
112
|
+
const isSpaceShift = event => (event.key ? (event.key === "Spacebar" || event.key === " ") : event.keyCode === KeyCodes.SPACE) && checkModifierKeys(event, false, false, true);
|
|
113
|
+
|
|
114
|
+
const isLeft = event => (event.key ? (event.key === "ArrowLeft" || event.key === "Left") : event.keyCode === KeyCodes.ARROW_LEFT) && !hasModifierKeys(event);
|
|
115
|
+
|
|
116
|
+
const isRight = event => (event.key ? (event.key === "ArrowRight" || event.key === "Right") : event.keyCode === KeyCodes.ARROW_RIGHT) && !hasModifierKeys(event);
|
|
117
|
+
|
|
118
|
+
const isUp = event => (event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_UP) && !hasModifierKeys(event);
|
|
119
|
+
|
|
120
|
+
const isDown = event => (event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && !hasModifierKeys(event);
|
|
121
|
+
|
|
122
|
+
const isLeftCtrl = event => (event.key ? (event.key === "ArrowLeft" || event.key === "Left") : event.keyCode === KeyCodes.ARROW_LEFT) && checkModifierKeys(event, true, false, false);
|
|
123
|
+
|
|
124
|
+
const isRightCtrl = event => (event.key ? (event.key === "ArrowRight" || event.key === "Right") : event.keyCode === KeyCodes.ARROW_RIGHT) && checkModifierKeys(event, true, false, false);
|
|
125
|
+
|
|
126
|
+
const isUpCtrl = event => (event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, true, false, false);
|
|
127
|
+
|
|
128
|
+
const isDownCtrl = event => (event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, true, false, false);
|
|
129
|
+
|
|
130
|
+
const isUpShift = event => (event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, false, false, true);
|
|
131
|
+
|
|
132
|
+
const isDownShift = event => (event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, false, false, true);
|
|
133
|
+
|
|
134
|
+
const isLeftShift = event => (event.key ? (event.key === "ArrowLeft" || event.key === "Left") : event.keyCode === KeyCodes.ARROW_LEFT) && checkModifierKeys(event, false, false, true);
|
|
135
|
+
|
|
136
|
+
const isRightShift = event => (event.key ? (event.key === "ArrowRight" || event.key === "Right") : event.keyCode === KeyCodes.ARROW_RIGHT) && checkModifierKeys(event, false, false, true);
|
|
137
|
+
|
|
138
|
+
const isUpShiftCtrl = event => (event.key ? (event.key === "ArrowUp" || event.key === "Up") : event.keyCode === KeyCodes.ARROW_UP) && checkModifierKeys(event, true, false, true);
|
|
139
|
+
|
|
140
|
+
const isDownShiftCtrl = event => (event.key ? (event.key === "ArrowDown" || event.key === "Down") : event.keyCode === KeyCodes.ARROW_DOWN) && checkModifierKeys(event, true, false, true);
|
|
141
|
+
|
|
142
|
+
const isHome = event => (event.key ? event.key === "Home" : event.keyCode === KeyCodes.HOME) && !hasModifierKeys(event);
|
|
143
|
+
|
|
144
|
+
const isEnd = event => (event.key ? event.key === "End" : event.keyCode === KeyCodes.END) && !hasModifierKeys(event);
|
|
145
|
+
|
|
146
|
+
const isHomeCtrl = event => (event.key ? event.key === "Home" : event.keyCode === KeyCodes.HOME) && checkModifierKeys(event, true, false, false);
|
|
147
|
+
|
|
148
|
+
const isEndCtrl = event => (event.key ? event.key === "End" : event.keyCode === KeyCodes.END) && checkModifierKeys(event, true, false, false);
|
|
149
|
+
|
|
150
|
+
const isEscape = event => (event.key ? event.key === "Escape" || event.key === "Esc" : event.keyCode === KeyCodes.ESCAPE) && !hasModifierKeys(event);
|
|
151
|
+
|
|
152
|
+
const isTabNext = event => (event.key ? event.key === "Tab" : event.keyCode === KeyCodes.TAB) && !hasModifierKeys(event);
|
|
153
|
+
|
|
154
|
+
const isTabPrevious = event => (event.key ? event.key === "Tab" : event.keyCode === KeyCodes.TAB) && checkModifierKeys(event, /* Ctrl */ false, /* Alt */ false, /* Shift */ true);
|
|
155
|
+
|
|
156
|
+
const isBackSpace = event => (event.key ? event.key === "Backspace" : event.keyCode === KeyCodes.BACKSPACE) && !hasModifierKeys(event);
|
|
157
|
+
|
|
158
|
+
const isDelete = event => (event.key ? event.key === "Delete" : event.keyCode === KeyCodes.DELETE) && !hasModifierKeys(event);
|
|
159
|
+
|
|
160
|
+
const isPageUp = event => (event.key ? event.key === "PageUp" : event.keyCode === KeyCodes.PAGE_UP) && !hasModifierKeys(event);
|
|
161
|
+
|
|
162
|
+
const isPageDown = event => (event.key ? event.key === "PageDown" : event.keyCode === KeyCodes.PAGE_DOWN) && !hasModifierKeys(event);
|
|
163
|
+
|
|
164
|
+
const isPageUpShift = event => (event.key ? event.key === "PageUp" : event.keyCode === KeyCodes.PAGE_UP) && checkModifierKeys(event, false, false, true);
|
|
165
|
+
|
|
166
|
+
const isPageUpAlt = event => (event.key ? event.key === "PageUp" : event.keyCode === KeyCodes.PAGE_UP) && checkModifierKeys(event, false, true, false);
|
|
167
|
+
|
|
168
|
+
const isPageDownShift = event => (event.key ? event.key === "PageDown" : event.keyCode === KeyCodes.PAGE_DOWN) && checkModifierKeys(event, false, false, true);
|
|
169
|
+
|
|
170
|
+
const isPageDownAlt = event => (event.key ? event.key === "PageDown" : event.keyCode === KeyCodes.PAGE_DOWN) && checkModifierKeys(event, false, true, false);
|
|
171
|
+
|
|
172
|
+
const isPageUpShiftCtrl = event => (event.key ? event.key === "PageUp" : event.keyCode === KeyCodes.PAGE_UP) && checkModifierKeys(event, true, false, true);
|
|
173
|
+
|
|
174
|
+
const isPageDownShiftCtrl = event => (event.key ? event.key === "PageDown" : event.keyCode === KeyCodes.PAGE_DOWN) && checkModifierKeys(event, true, false, true);
|
|
175
|
+
|
|
176
|
+
const isPlus = event => (event.key ? event.key === "+" : event.keyCode === KeyCodes.PLUS) || (event.keyCode === KeyCodes.NUMPAD_PLUS && !hasModifierKeys(event));
|
|
177
|
+
|
|
178
|
+
const isMinus = event => (event.key ? event.key === "-" : event.keyCode === KeyCodes.MINUS) || (event.keyCode === KeyCodes.NUMPAD_MINUS && !hasModifierKeys(event));
|
|
179
|
+
|
|
180
|
+
const isShow = event => {
|
|
181
|
+
if (event.key) {
|
|
182
|
+
return isF4(event) || isShowByArrows(event);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
return (event.keyCode === KeyCodes.F4 && !hasModifierKeys(event)) || (event.keyCode === KeyCodes.ARROW_DOWN && checkModifierKeys(event, /* Ctrl */ false, /* Alt */ true, /* Shift */ false));
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
const isF4 = event => {
|
|
189
|
+
return event.key === "F4" && !hasModifierKeys(event);
|
|
190
|
+
};
|
|
191
|
+
|
|
192
|
+
const isF4Shift = event => (event.key ? event.key === "F4" : event.keyCode === KeyCodes.F4) && checkModifierKeys(event, false, false, true);
|
|
193
|
+
|
|
194
|
+
const isF7 = event => (event.key ? event.key === "F7" : event.keyCode === KeyCodes.F7) && !hasModifierKeys(event);
|
|
195
|
+
|
|
196
|
+
const isShowByArrows = event => {
|
|
197
|
+
return ((event.key === "ArrowDown" || event.key === "Down") || (event.key === "ArrowUp" || event.key === "Up")) && checkModifierKeys(event, /* Ctrl */ false, /* Alt */ true, /* Shift */ false);
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
const hasModifierKeys = event => event.shiftKey || event.altKey || getCtrlKey(event);
|
|
201
|
+
|
|
202
|
+
const getCtrlKey = event => !!(event.metaKey || event.ctrlKey); // double negation doesn't have effect on boolean but ensures null and undefined are equivalent to false.
|
|
203
|
+
|
|
204
|
+
const checkModifierKeys = (event, bCtrlKey, bAltKey, bShiftKey) => event.shiftKey === bShiftKey && event.altKey === bAltKey && getCtrlKey(event) === bCtrlKey;
|
|
205
|
+
|
|
206
|
+
export {
|
|
207
|
+
isEnter,
|
|
208
|
+
isEnterShift,
|
|
209
|
+
isSpace,
|
|
210
|
+
isSpaceShift,
|
|
211
|
+
isLeft,
|
|
212
|
+
isRight,
|
|
213
|
+
isUp,
|
|
214
|
+
isDown,
|
|
215
|
+
isLeftCtrl,
|
|
216
|
+
isRightCtrl,
|
|
217
|
+
isUpCtrl,
|
|
218
|
+
isDownCtrl,
|
|
219
|
+
isUpShift,
|
|
220
|
+
isDownShift,
|
|
221
|
+
isLeftShift,
|
|
222
|
+
isRightShift,
|
|
223
|
+
isUpShiftCtrl,
|
|
224
|
+
isDownShiftCtrl,
|
|
225
|
+
isHome,
|
|
226
|
+
isEnd,
|
|
227
|
+
isPlus,
|
|
228
|
+
isMinus,
|
|
229
|
+
isHomeCtrl,
|
|
230
|
+
isEndCtrl,
|
|
231
|
+
isEscape,
|
|
232
|
+
isTabNext,
|
|
233
|
+
isTabPrevious,
|
|
234
|
+
isBackSpace,
|
|
235
|
+
isDelete,
|
|
236
|
+
isShow,
|
|
237
|
+
isF4,
|
|
238
|
+
isF4Shift,
|
|
239
|
+
isF7,
|
|
240
|
+
isPageUp,
|
|
241
|
+
isPageDown,
|
|
242
|
+
isPageUpShift,
|
|
243
|
+
isPageUpAlt,
|
|
244
|
+
isPageDownShift,
|
|
245
|
+
isPageDownAlt,
|
|
246
|
+
isPageUpShiftCtrl,
|
|
247
|
+
isPageDownShiftCtrl,
|
|
248
|
+
};
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
const querySets = {};
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Initializes a screen width media query range set.
|
|
5
|
+
*
|
|
6
|
+
* This initialization step makes the range set ready to be used for one of the other functions in namespace <code>MediaRange</code>.
|
|
7
|
+
*
|
|
8
|
+
* A range set can be defined as shown in the following example:
|
|
9
|
+
* <pre>
|
|
10
|
+
* MediaRange.initRangeSet("MyRangeSet", [200, 400], ["Small", "Medium", "Large"]);
|
|
11
|
+
* </pre>
|
|
12
|
+
* This example defines the following named ranges:
|
|
13
|
+
* <ul>
|
|
14
|
+
* <li><code>"Small"</code>: For screens smaller than 200 pixels.</li>
|
|
15
|
+
* <li><code>"Medium"</code>: For screens greater than or equal to 200 pixels and smaller than 400 pixels.</li>
|
|
16
|
+
* <li><code>"Large"</code>: For screens greater than or equal to 400 pixels.</li>
|
|
17
|
+
* </ul>
|
|
18
|
+
*
|
|
19
|
+
* @param {string} name The name of the range set to be initialized.
|
|
20
|
+
* The name must be a valid id and consist only of letters and numeric digits.
|
|
21
|
+
*
|
|
22
|
+
* @param {int[]} [borders] The range borders
|
|
23
|
+
*
|
|
24
|
+
* @param {string[]} [names] The names of the ranges. The names must be a valid id and consist only of letters and digits.
|
|
25
|
+
*
|
|
26
|
+
* @name MediaRange.initRangeSet
|
|
27
|
+
* @function
|
|
28
|
+
* @public
|
|
29
|
+
*/
|
|
30
|
+
const _initRangeSet = (name, borders, names) => {
|
|
31
|
+
querySets[name] = {
|
|
32
|
+
borders,
|
|
33
|
+
names,
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Returns information about the current active range of the range set with the given name.
|
|
39
|
+
*
|
|
40
|
+
* If the optional parameter <code>width</code> is given, the active range will be determined for that width,
|
|
41
|
+
* otherwise it is determined for the current window size.
|
|
42
|
+
*
|
|
43
|
+
* @param {string} name The name of the range set. The range set must be initialized beforehand ({@link MediaRange.initRangeSet})
|
|
44
|
+
* @param {int} [width] An optional width, based on which the range should be determined;
|
|
45
|
+
* If <code>width</code> is not provided, the window size will be used.
|
|
46
|
+
* @returns {string} The name of the current active interval of the range set.
|
|
47
|
+
*
|
|
48
|
+
* @name MediaRange.getCurrentRange
|
|
49
|
+
* @function
|
|
50
|
+
* @public
|
|
51
|
+
*/
|
|
52
|
+
const _getCurrentRange = (name, width = window.innerWidth) => {
|
|
53
|
+
const querySet = querySets[name];
|
|
54
|
+
let i = 0;
|
|
55
|
+
|
|
56
|
+
if (!querySet) {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
for (; i < querySet.borders.length; i++) {
|
|
61
|
+
if (width < querySet.borders[i]) {
|
|
62
|
+
return querySet.names[i];
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
return querySet.names[i];
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Enumeration containing the names and settings of predefined screen width media query range sets.
|
|
71
|
+
*
|
|
72
|
+
* @namespace
|
|
73
|
+
* @name MediaRange.RANGESETS
|
|
74
|
+
* @public
|
|
75
|
+
*/
|
|
76
|
+
const RANGESETS = {
|
|
77
|
+
/**
|
|
78
|
+
* A 4-step range set (S-M-L-XL).
|
|
79
|
+
*
|
|
80
|
+
* The ranges of this set are:
|
|
81
|
+
* <ul>
|
|
82
|
+
* <li><code>"S"</code>: For screens smaller than 600 pixels.</li>
|
|
83
|
+
* <li><code>"M"</code>: For screens greater than or equal to 600 pixels and smaller than 1024 pixels.</li>
|
|
84
|
+
* <li><code>"L"</code>: For screens greater than or equal to 1024 pixels and smaller than 1440 pixels.</li>
|
|
85
|
+
* <li><code>"XL"</code>: For screens greater than or equal to 1440 pixels.</li>
|
|
86
|
+
* </ul>
|
|
87
|
+
*
|
|
88
|
+
* @name MediaRange.RANGESETS.RANGE_4STEPS
|
|
89
|
+
* @public
|
|
90
|
+
*/
|
|
91
|
+
RANGE_4STEPS: "4Step",
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* API for screen width changes.
|
|
96
|
+
*
|
|
97
|
+
* @namespace
|
|
98
|
+
* @name MediaRange
|
|
99
|
+
*/
|
|
100
|
+
|
|
101
|
+
const MediaRange = {
|
|
102
|
+
RANGESETS,
|
|
103
|
+
initRangeSet: _initRangeSet,
|
|
104
|
+
getCurrentRange: _getCurrentRange,
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
MediaRange.initRangeSet(MediaRange.RANGESETS.RANGE_4STEPS, [600, 1024, 1440], ["S", "M", "L", "XL"]);
|
|
108
|
+
|
|
109
|
+
export default MediaRange;
|