@ui5/webcomponents-base 0.0.0-e7dd012d7 → 0.0.0-e818f286e
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 +314 -0
- package/README.md +53 -7
- package/bundle.esm.js +20 -20
- package/dist/AssetRegistry.js +8 -9
- package/dist/Boot.js +59 -0
- package/dist/CSP.js +59 -0
- package/dist/CustomElementsRegistry.js +60 -4
- package/dist/CustomElementsScope.js +20 -98
- package/dist/CustomElementsScopeUtils.js +108 -0
- package/dist/DOMObserver.js +65 -0
- package/dist/Device.js +71 -773
- package/dist/EventProvider.js +30 -26
- package/dist/FeaturesRegistry.js +4 -1
- package/dist/FontFace.js +7 -95
- package/dist/InitialConfiguration.js +37 -21
- package/dist/Keys.js +98 -0
- package/dist/ManagedStyles.js +83 -0
- package/dist/MediaRange.js +109 -0
- package/dist/{util/parseProperties.js → PropertiesFileFormat.js} +6 -0
- package/dist/Render.js +175 -0
- package/dist/RenderScheduler.js +16 -138
- package/dist/Runtimes.js +107 -0
- package/dist/StaticArea.js +1 -29
- package/dist/StaticAreaItem.js +58 -65
- package/dist/SystemCSSVars.js +4 -25
- package/dist/UI5Element.js +315 -382
- package/dist/UI5ElementMetadata.js +132 -17
- package/dist/asset-registries/Icons.js +117 -14
- package/dist/asset-registries/Illustrations.js +30 -0
- package/dist/asset-registries/LocaleData.js +97 -68
- package/dist/asset-registries/Themes.js +29 -35
- package/dist/asset-registries/i18n.js +62 -49
- package/dist/assets/bundle.esm.81ba431e.js +43 -0
- package/dist/assets-meta/IconCollectionsAlias.js +18 -0
- package/dist/config/Icons.js +52 -0
- package/dist/config/Language.js +18 -20
- package/dist/config/Theme.js +25 -0
- package/dist/css/BusyIndicator.css +80 -0
- package/dist/css/FontFace.css +75 -0
- package/dist/css/OverrideFontFace.css +32 -0
- package/dist/css/SystemCSSVars.css +17 -0
- package/dist/delegate/ItemNavigation.js +238 -201
- package/dist/delegate/ResizeHandler.js +78 -37
- package/dist/delegate/ScrollEnablement.js +49 -20
- package/dist/features/F6Navigation.js +110 -0
- package/dist/features/OpenUI5Enablement.js +119 -0
- package/dist/features/OpenUI5Support.js +41 -6
- package/dist/generated/AssetParameters.js +1 -1
- package/dist/generated/VersionInfo.js +10 -0
- package/dist/generated/css/BusyIndicator.css.js +5 -0
- package/dist/generated/css/FontFace.css.js +5 -0
- package/dist/generated/css/OverrideFontFace.css.js +5 -0
- package/dist/generated/css/SystemCSSVars.css.js +5 -0
- package/dist/i18nBundle.js +38 -4
- package/dist/locale/applyDirection.js +6 -4
- package/dist/locale/directionChange.js +32 -0
- package/dist/locale/getEffectiveDir.js +28 -0
- package/dist/locale/languageChange.js +1 -1
- package/dist/renderer/LitRenderer.js +39 -18
- package/dist/renderer/directives/style-map.js +72 -0
- package/dist/renderer/executeTemplate.js +19 -2
- 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/encodeCSS.js +14 -0
- package/dist/sap/base/security/encodeXML.js +23 -0
- package/dist/sap/base/security/sanitizeHTML.js +16 -0
- package/dist/sap/base/strings/toHex.js +8 -0
- package/dist/sap/base/util/now.js +7 -0
- package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
- package/dist/theming/CustomStyle.js +25 -5
- package/dist/theming/applyTheme.js +11 -16
- package/dist/theming/getConstructableStyle.js +7 -6
- package/dist/theming/getEffectiveLinksHrefs.js +27 -0
- package/dist/theming/getEffectiveStyle.js +24 -8
- package/dist/theming/getStylesString.js +4 -2
- package/dist/theming/getThemeDesignerTheme.js +25 -5
- package/dist/theming/preloadLinks.js +23 -0
- package/dist/types/CSSColor.js +9 -0
- package/dist/types/CalendarType.js +1 -1
- package/dist/types/DataType.js +13 -1
- package/dist/types/Float.js +4 -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/PopupState.js +1 -1
- package/dist/types/ValueState.js +1 -1
- package/dist/updateShadowRoot.js +29 -0
- package/dist/util/AriaLabelHelper.js +6 -8
- package/dist/util/Caret.js +32 -0
- package/dist/util/ColorConversion.js +398 -0
- package/dist/util/FocusableElements.js +22 -9
- package/dist/util/HTMLSanitizer.js +7 -0
- package/dist/util/InvisibleMessage.js +69 -0
- package/dist/util/PopupUtils.js +93 -0
- package/dist/util/SlotsHelper.js +43 -0
- package/dist/util/TabbableElements.js +5 -1
- package/dist/util/arraysAreEqual.js +15 -0
- package/dist/util/clamp.js +12 -0
- package/dist/util/createLinkInHead.js +19 -0
- package/dist/util/debounce.js +17 -0
- package/dist/util/escapeRegex.js +10 -0
- package/dist/util/generateHighlightedMarkup.js +42 -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/getNormalizedTarget.js +16 -0
- package/dist/util/isDefaultSlotProvided.js +11 -0
- package/dist/util/isElementInView.js +15 -0
- package/dist/util/isNodeHidden.js +1 -1
- package/dist/util/isNodeTabbable.js +4 -4
- package/hash.txt +1 -0
- package/index.js +1 -1
- package/lib/generate-asset-parameters/index.js +8 -5
- package/lib/generate-styles/index.js +26 -0
- package/lib/generate-version-info/index.js +32 -0
- package/package-scripts.js +37 -28
- package/package.json +20 -13
- package/src/AssetRegistry.js +8 -9
- package/src/Boot.js +59 -0
- package/src/CSP.js +59 -0
- package/src/CustomElementsRegistry.js +60 -4
- package/src/CustomElementsScope.js +20 -98
- package/src/CustomElementsScopeUtils.js +108 -0
- package/src/DOMObserver.js +65 -0
- package/src/Device.js +71 -773
- package/src/EventProvider.js +30 -26
- package/src/FeaturesRegistry.js +4 -1
- package/src/FontFace.js +7 -95
- package/src/InitialConfiguration.js +37 -21
- package/src/Keys.js +98 -0
- package/src/ManagedStyles.js +83 -0
- package/src/MediaRange.js +109 -0
- package/src/{util/parseProperties.js → PropertiesFileFormat.js} +6 -0
- package/src/Render.js +175 -0
- package/src/RenderScheduler.js +16 -138
- package/src/Runtimes.js +107 -0
- package/src/StaticArea.js +1 -29
- package/src/StaticAreaItem.js +58 -65
- package/src/SystemCSSVars.js +4 -25
- package/src/UI5Element.js +315 -382
- package/src/UI5ElementMetadata.js +132 -17
- package/src/asset-registries/Icons.js +117 -14
- package/src/asset-registries/Illustrations.js +30 -0
- package/src/asset-registries/LocaleData.js +97 -68
- package/src/asset-registries/Themes.js +29 -35
- package/src/asset-registries/i18n.js +62 -49
- package/src/assets-meta/IconCollectionsAlias.js +18 -0
- package/src/config/Icons.js +52 -0
- package/src/config/Language.js +18 -20
- package/src/config/Theme.js +25 -0
- package/src/css/BusyIndicator.css +80 -0
- package/src/css/FontFace.css +75 -0
- package/src/css/OverrideFontFace.css +32 -0
- package/src/css/SystemCSSVars.css +17 -0
- package/src/delegate/ItemNavigation.js +238 -201
- package/src/delegate/ResizeHandler.js +78 -37
- package/src/delegate/ScrollEnablement.js +49 -20
- package/src/features/F6Navigation.js +110 -0
- package/src/features/OpenUI5Enablement.js +119 -0
- package/src/features/OpenUI5Support.js +41 -6
- package/src/i18nBundle.js +38 -4
- package/src/locale/applyDirection.js +6 -4
- package/src/locale/directionChange.js +32 -0
- package/src/locale/getEffectiveDir.js +28 -0
- package/src/locale/languageChange.js +1 -1
- package/src/renderer/LitRenderer.js +39 -18
- package/src/renderer/directives/style-map.js +72 -0
- package/src/renderer/executeTemplate.js +19 -2
- package/src/theming/CustomStyle.js +25 -5
- package/src/theming/applyTheme.js +11 -16
- package/src/theming/getConstructableStyle.js +7 -6
- package/src/theming/getEffectiveLinksHrefs.js +27 -0
- package/src/theming/getEffectiveStyle.js +24 -8
- package/src/theming/getStylesString.js +4 -2
- package/src/theming/getThemeDesignerTheme.js +25 -5
- package/src/theming/preloadLinks.js +23 -0
- package/src/types/CSSColor.js +9 -0
- package/src/types/CalendarType.js +1 -1
- package/src/types/DataType.js +13 -1
- package/src/types/Float.js +4 -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/PopupState.js +1 -1
- package/src/types/ValueState.js +1 -1
- package/src/updateShadowRoot.js +29 -0
- package/src/util/AriaLabelHelper.js +6 -8
- package/src/util/Caret.js +32 -0
- package/src/util/ColorConversion.js +398 -0
- package/src/util/FocusableElements.js +22 -9
- package/src/util/HTMLSanitizer.js +7 -0
- package/src/util/InvisibleMessage.js +69 -0
- package/src/util/PopupUtils.js +93 -0
- package/src/util/SlotsHelper.js +43 -0
- package/src/util/TabbableElements.js +5 -1
- package/src/util/arraysAreEqual.js +15 -0
- package/src/util/clamp.js +12 -0
- package/src/util/createLinkInHead.js +19 -0
- package/src/util/debounce.js +17 -0
- package/src/util/escapeRegex.js +10 -0
- package/src/util/generateHighlightedMarkup.js +42 -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/getNormalizedTarget.js +16 -0
- package/src/util/isDefaultSlotProvided.js +11 -0
- package/src/util/isElementInView.js +15 -0
- package/src/util/isNodeHidden.js +1 -1
- package/src/util/isNodeTabbable.js +4 -4
- package/used-modules.txt +10 -0
- package/bundle.es5.js +0 -28
- package/config/.eslintrc.js +0 -3
- package/config/rollup.config.js +0 -1
- package/dist/SVGIconRegistry.js +0 -73
- package/dist/boot.js +0 -34
- package/dist/compatibility/DOMObserver.js +0 -62
- package/dist/compatibility/patchNodeValue.js +0 -24
- package/dist/compatibility/whenPolyfillLoaded.js +0 -26
- package/dist/config/AssetsPath.js +0 -17
- package/dist/delegate/CustomResize.js +0 -78
- package/dist/delegate/NativeResize.js +0 -45
- package/dist/features/PropertiesFormatSupport.js +0 -8
- package/dist/features/browsersupport/Edge.js +0 -6
- package/dist/features/browsersupport/IE11.js +0 -42
- package/dist/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
- package/dist/renderer/ifDefined.js +0 -21
- package/dist/renderer/scopeHTML.js +0 -32
- package/dist/resources/bundle.es5.js +0 -212
- package/dist/resources/bundle.es5.js.map +0 -1
- package/dist/resources/bundle.esm.js +0 -129
- package/dist/resources/bundle.esm.js.map +0 -1
- package/dist/test-resources/assets/Themes.js +0 -17
- package/dist/test-resources/elements/Child.js +0 -35
- package/dist/test-resources/elements/Generic.js +0 -84
- package/dist/test-resources/elements/GenericExt.js +0 -26
- package/dist/test-resources/elements/NoShadowDOM.js +0 -13
- package/dist/test-resources/elements/Parent.js +0 -37
- package/dist/test-resources/elements/WithStaticArea.js +0 -76
- package/dist/test-resources/pages/AllTestElements.html +0 -42
- package/dist/test-resources/pages/Configuration.html +0 -20
- package/dist/test-resources/pages/ConfigurationScript.html +0 -36
- package/dist/test-resources/pages/assets/messagebundle_de.properties +0 -1
- package/dist/test-resources/pages/assets/messagebundle_en.properties +0 -1
- package/dist/test-resources/pages/assets/messagebundle_es.properties +0 -1
- package/dist/test-resources/pages/assets/messagebundle_fr.properties +0 -1
- package/dist/test-resources/pages/i18n.html +0 -40
- package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
- package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
- package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
- package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
- package/dist/test-resources/specs/StaticArea.spec.js +0 -34
- package/dist/test-resources/specs/Theming.spec.js +0 -31
- package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -258
- package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -96
- package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
- package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
- package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
- package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
- package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
- package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
- package/dist/theming/CSSVarsPonyfill.js +0 -68
- package/dist/theming/adaptCSSForIE.js +0 -95
- package/dist/theming/createComponentStyleTag.js +0 -54
- package/dist/theming/createThemePropertiesStyleTag.js +0 -20
- 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.parseFloat.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/es6-string-methods.js +0 -182
- package/dist/thirdparty/events-polyfills.js +0 -89
- package/dist/thirdparty/fetch.js +0 -1
- package/dist/thirdparty/template.js +0 -600
- package/dist/thirdparty/webcomponents-sd-ce-pf.js +0 -318
- package/dist/util/EffectiveAssetPath.js +0 -27
- package/dist/util/encodeCSS.js +0 -24
- package/dist/util/findNodeOwner.js +0 -35
- package/dist/util/isSlot.js +0 -3
- 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/SVGIconRegistry.js +0 -73
- package/src/boot.js +0 -34
- package/src/compatibility/DOMObserver.js +0 -62
- package/src/compatibility/patchNodeValue.js +0 -24
- package/src/compatibility/whenPolyfillLoaded.js +0 -26
- package/src/config/AssetsPath.js +0 -17
- package/src/delegate/CustomResize.js +0 -78
- package/src/delegate/NativeResize.js +0 -45
- package/src/features/PropertiesFormatSupport.js +0 -8
- package/src/features/browsersupport/Edge.js +0 -6
- package/src/features/browsersupport/IE11.js +0 -42
- package/src/features/browsersupport/IE11WithWebComponentsPolyfill.js +0 -5
- package/src/renderer/ifDefined.js +0 -21
- package/src/renderer/scopeHTML.js +0 -32
- package/src/theming/CSSVarsPonyfill.js +0 -68
- package/src/theming/adaptCSSForIE.js +0 -95
- package/src/theming/createComponentStyleTag.js +0 -54
- package/src/theming/createThemePropertiesStyleTag.js +0 -20
- 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.parseFloat.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/es6-string-methods.js +0 -182
- package/src/thirdparty/events-polyfills.js +0 -89
- package/src/thirdparty/fetch.js +0 -1
- package/src/thirdparty/template.js +0 -600
- package/src/thirdparty/webcomponents-sd-ce-pf.js +0 -318
- package/src/util/EffectiveAssetPath.js +0 -27
- package/src/util/encodeCSS.js +0 -24
- package/src/util/findNodeOwner.js +0 -35
- package/src/util/isSlot.js +0 -3
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
const findClosingParenthesisPos = (str, openingParenthesisPos) => {
|
|
2
|
-
let opened = 1;
|
|
3
|
-
for (let pos = openingParenthesisPos + 1; pos < str.length; pos++) {
|
|
4
|
-
const char = str.charAt(pos);
|
|
5
|
-
if (char === "(") {
|
|
6
|
-
opened++;
|
|
7
|
-
} else if (char === ")") {
|
|
8
|
-
opened--;
|
|
9
|
-
}
|
|
10
|
-
if (opened === 0) {
|
|
11
|
-
return pos;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
const replaceSelector = (str, selector, selectorStartPos, replacement) => {
|
|
17
|
-
const charAfterSelectorPos = selectorStartPos + selector.length;
|
|
18
|
-
const charAfterSelector = str.charAt(charAfterSelectorPos);
|
|
19
|
-
|
|
20
|
-
const upToSelector = str.substring(0, selectorStartPos) + replacement;
|
|
21
|
-
if (charAfterSelector === "(") {
|
|
22
|
-
const closingParenthesisPos = findClosingParenthesisPos(str, charAfterSelectorPos);
|
|
23
|
-
return upToSelector + str.substring(charAfterSelectorPos + 1, closingParenthesisPos) + str.substring(closingParenthesisPos + 1);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
return upToSelector + str.substring(charAfterSelectorPos);
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* :host => ui5-button
|
|
31
|
-
* :host([expr]) => ui5-button[expr]
|
|
32
|
-
* ::slotted(expr) => expr
|
|
33
|
-
* @param str - source string
|
|
34
|
-
* @param selector - :host or ::slotted
|
|
35
|
-
* @param replacement - normally tag name
|
|
36
|
-
* @returns {*}
|
|
37
|
-
*/
|
|
38
|
-
const replaceSelectors = (str, selector, replacement) => {
|
|
39
|
-
let selectorStartPos = str.indexOf(selector);
|
|
40
|
-
while (selectorStartPos !== -1) {
|
|
41
|
-
str = replaceSelector(str, selector, selectorStartPos, replacement);
|
|
42
|
-
selectorStartPos = str.indexOf(selector);
|
|
43
|
-
}
|
|
44
|
-
return str;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
const adaptLinePart = (line, tag, pureTag) => {
|
|
48
|
-
line = line.trim();
|
|
49
|
-
line = replaceSelectors(line, "::slotted", ``); // first remove all ::slotted() occurrences
|
|
50
|
-
|
|
51
|
-
// Host selector - replace it
|
|
52
|
-
if (line.startsWith(":host")) {
|
|
53
|
-
return replaceSelector(line, ":host", 0, tag);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
// Leave out @keyframes and keyframe values (0%, 100%, etc...)
|
|
57
|
-
// csso shortens '100%' -> 'to', make sure to leave it untouched
|
|
58
|
-
if (line.match(/^[@0-9]/) || line === "to" || line === "to{") {
|
|
59
|
-
return line;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
// IE specific selector (directly written with the tag, f.e. ui5-button {}) - keep it
|
|
63
|
-
if (line.match(new RegExp(`^${tag}[^a-zA-Z0-9-]`))) {
|
|
64
|
-
return line;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
// IE specific selector (directly written with the tag attribute, f.e. [ui5-button] {}) - keep it
|
|
68
|
-
if (pureTag && line.startsWith(`[${pureTag}]`)) {
|
|
69
|
-
return line;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// No host and no tag in the beginning of the selector - prepend the tag
|
|
73
|
-
return `${tag} ${line}`;
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
const adaptCSSForIE = (str, tag, pureTag) => {
|
|
77
|
-
str = str.replace(/\n/g, ` `);
|
|
78
|
-
str = str.replace(/([{}])/g, `$1\n`);
|
|
79
|
-
let result = ``;
|
|
80
|
-
const lines = str.split(`\n`);
|
|
81
|
-
lines.forEach(line => {
|
|
82
|
-
const mustProcess = line.match(/{$/); // Only work on lines that end on {, otherwise just append to result
|
|
83
|
-
if (mustProcess) {
|
|
84
|
-
const lineParts = line.split(",");
|
|
85
|
-
const processedLineParts = lineParts.map(linePart => {
|
|
86
|
-
return adaptLinePart(linePart, tag, pureTag);
|
|
87
|
-
});
|
|
88
|
-
line = processedLineParts.join(",");
|
|
89
|
-
}
|
|
90
|
-
result = `${result}${line}`;
|
|
91
|
-
});
|
|
92
|
-
return result;
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
export default adaptCSSForIE;
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
import createStyleInHead from "../util/createStyleInHead.js";
|
|
2
|
-
import getEffectiveStyle from "./getEffectiveStyle.js";
|
|
3
|
-
import adaptCSSForIE from "./adaptCSSForIE.js";
|
|
4
|
-
import { ponyfillNeeded, schedulePonyfill } from "./CSSVarsPonyfill.js";
|
|
5
|
-
import { attachCustomCSSChange } from "./CustomStyle.js";
|
|
6
|
-
|
|
7
|
-
const IEStyleSet = new Set();
|
|
8
|
-
|
|
9
|
-
attachCustomCSSChange(tag => {
|
|
10
|
-
IEStyleSet.delete(tag);
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
const getStaticStyle = ElementClass => {
|
|
14
|
-
let componentStaticStyles = ElementClass.staticAreaStyles;
|
|
15
|
-
if (Array.isArray(componentStaticStyles)) {
|
|
16
|
-
componentStaticStyles = componentStaticStyles.join(" ");
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return componentStaticStyles;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Creates the needed CSS for a web component class in the head tag
|
|
24
|
-
* Note: IE11, Edge
|
|
25
|
-
* @param ElementClass
|
|
26
|
-
*/
|
|
27
|
-
const createComponentStyleTag = ElementClass => {
|
|
28
|
-
const tag = ElementClass.getMetadata().getTag();
|
|
29
|
-
const pureTag = ElementClass.getMetadata().getPureTag();
|
|
30
|
-
if (IEStyleSet.has(tag)) {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
let cssContent = getEffectiveStyle(ElementClass);
|
|
35
|
-
cssContent = adaptCSSForIE(cssContent, tag, pureTag);
|
|
36
|
-
|
|
37
|
-
// Append static CSS, if any, for IE
|
|
38
|
-
let staticCssContent = getStaticStyle(ElementClass);
|
|
39
|
-
if (staticCssContent) {
|
|
40
|
-
staticCssContent = adaptCSSForIE(staticCssContent, "ui5-static-area-item");
|
|
41
|
-
cssContent = `${cssContent} ${staticCssContent}`;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
createStyleInHead(cssContent, {
|
|
45
|
-
"data-ui5-element-styles": tag,
|
|
46
|
-
});
|
|
47
|
-
if (ponyfillNeeded()) {
|
|
48
|
-
schedulePonyfill();
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
IEStyleSet.add(tag);
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export default createComponentStyleTag;
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import createStyleInHead from "../util/createStyleInHead.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Creates/updates a style element holding all CSS Custom Properties
|
|
5
|
-
* @param cssText
|
|
6
|
-
* @param packageName
|
|
7
|
-
*/
|
|
8
|
-
const createThemePropertiesStyleTag = (cssText, packageName) => {
|
|
9
|
-
const styleElement = document.head.querySelector(`style[data-ui5-theme-properties="${packageName}"]`);
|
|
10
|
-
if (styleElement) {
|
|
11
|
-
styleElement.textContent = cssText || ""; // in case of undefined
|
|
12
|
-
} else {
|
|
13
|
-
const attributes = {
|
|
14
|
-
"data-ui5-theme-properties": packageName,
|
|
15
|
-
};
|
|
16
|
-
createStyleInHead(cssText, attributes);
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
export default createThemePropertiesStyleTag;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
// https://raw.githubusercontent.com/webcomponents/webcomponents-platform/master/webcomponents-platform.js
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
|
|
5
|
-
* This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
|
6
|
-
* The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
|
7
|
-
* The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
|
8
|
-
* Code distributed by Google as part of the polymer project is also
|
|
9
|
-
* subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
if (!Array.from) {
|
|
13
|
-
Array.from = function (object) {
|
|
14
|
-
return [].slice.call(object);
|
|
15
|
-
};
|
|
16
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
if (!Array.prototype.fill) {
|
|
2
|
-
Object.defineProperty(Array.prototype, 'fill', {
|
|
3
|
-
value: function(value) {
|
|
4
|
-
|
|
5
|
-
// Steps 1-2.
|
|
6
|
-
if (this == null) {
|
|
7
|
-
throw new TypeError('this is null or not defined');
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
var O = Object(this);
|
|
11
|
-
|
|
12
|
-
// Steps 3-5.
|
|
13
|
-
var len = O.length >>> 0;
|
|
14
|
-
|
|
15
|
-
// Steps 6-7.
|
|
16
|
-
var start = arguments[1];
|
|
17
|
-
var relativeStart = start >> 0;
|
|
18
|
-
|
|
19
|
-
// Step 8.
|
|
20
|
-
var k = relativeStart < 0 ?
|
|
21
|
-
Math.max(len + relativeStart, 0) :
|
|
22
|
-
Math.min(relativeStart, len);
|
|
23
|
-
|
|
24
|
-
// Steps 9-10.
|
|
25
|
-
var end = arguments[2];
|
|
26
|
-
var relativeEnd = end === undefined ?
|
|
27
|
-
len : end >> 0;
|
|
28
|
-
|
|
29
|
-
// Step 11.
|
|
30
|
-
var final = relativeEnd < 0 ?
|
|
31
|
-
Math.max(len + relativeEnd, 0) :
|
|
32
|
-
Math.min(relativeEnd, len);
|
|
33
|
-
|
|
34
|
-
// Step 12.
|
|
35
|
-
while (k < final) {
|
|
36
|
-
O[k] = value;
|
|
37
|
-
k++;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// Step 13.
|
|
41
|
-
return O;
|
|
42
|
-
}
|
|
43
|
-
});
|
|
44
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
// https://tc39.github.io/ecma262/#sec-array.prototype.find
|
|
2
|
-
if (!Array.prototype.find) {
|
|
3
|
-
Object.defineProperty(Array.prototype, 'find', {
|
|
4
|
-
value: function (predicate) {
|
|
5
|
-
// 1. Let O be ? ToObject(this value).
|
|
6
|
-
if (this == null) {
|
|
7
|
-
throw TypeError('"this" is null or not defined');
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
var o = Object(this);
|
|
11
|
-
|
|
12
|
-
// 2. Let len be ? ToLength(? Get(O, "length")).
|
|
13
|
-
var len = o.length >>> 0;
|
|
14
|
-
|
|
15
|
-
// 3. If IsCallable(predicate) is false, throw a TypeError exception.
|
|
16
|
-
if (typeof predicate !== 'function') {
|
|
17
|
-
throw TypeError('predicate must be a function');
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
// 4. If thisArg was supplied, let T be thisArg; else let T be undefined.
|
|
21
|
-
var thisArg = arguments[1];
|
|
22
|
-
|
|
23
|
-
// 5. Let k be 0.
|
|
24
|
-
var k = 0;
|
|
25
|
-
|
|
26
|
-
// 6. Repeat, while k < len
|
|
27
|
-
while (k < len) {
|
|
28
|
-
// a. Let Pk be ! ToString(k).
|
|
29
|
-
// b. Let kValue be ? Get(O, Pk).
|
|
30
|
-
// c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).
|
|
31
|
-
// d. If testResult is true, return kValue.
|
|
32
|
-
var kValue = o[k];
|
|
33
|
-
if (predicate.call(thisArg, kValue, k, o)) {
|
|
34
|
-
return kValue;
|
|
35
|
-
}
|
|
36
|
-
// e. Increase k by 1.
|
|
37
|
-
k++;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
// 7. Return undefined.
|
|
41
|
-
return undefined;
|
|
42
|
-
},
|
|
43
|
-
configurable: true,
|
|
44
|
-
writable: true
|
|
45
|
-
});
|
|
46
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
// https://tc39.github.io/ecma262/#sec-array.prototype.includes
|
|
2
|
-
if (!Array.prototype.includes) {
|
|
3
|
-
Object.defineProperty(Array.prototype, 'includes', {
|
|
4
|
-
value: function(searchElement, fromIndex) {
|
|
5
|
-
|
|
6
|
-
if (this == null) {
|
|
7
|
-
throw new TypeError('"this" is null or not defined');
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
// 1. Let O be ? ToObject(this value).
|
|
11
|
-
var o = Object(this);
|
|
12
|
-
|
|
13
|
-
// 2. Let len be ? ToLength(? Get(O, "length")).
|
|
14
|
-
var len = o.length >>> 0;
|
|
15
|
-
|
|
16
|
-
// 3. If len is 0, return false.
|
|
17
|
-
if (len === 0) {
|
|
18
|
-
return false;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// 4. Let n be ? ToInteger(fromIndex).
|
|
22
|
-
// (If fromIndex is undefined, this step produces the value 0.)
|
|
23
|
-
var n = fromIndex | 0;
|
|
24
|
-
|
|
25
|
-
// 5. If n ≥ 0, then
|
|
26
|
-
// a. Let k be n.
|
|
27
|
-
// 6. Else n < 0,
|
|
28
|
-
// a. Let k be len + n.
|
|
29
|
-
// b. If k < 0, let k be 0.
|
|
30
|
-
var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);
|
|
31
|
-
|
|
32
|
-
function sameValueZero(x, y) {
|
|
33
|
-
return x === y || (typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y));
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
// 7. Repeat, while k < len
|
|
37
|
-
while (k < len) {
|
|
38
|
-
// a. Let elementK be the result of ? Get(O, ! ToString(k)).
|
|
39
|
-
// b. If SameValueZero(searchElement, elementK) is true, return true.
|
|
40
|
-
if (sameValueZero(o[k], searchElement)) {
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
|
-
// c. Increase k by 1.
|
|
44
|
-
k++;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
// 8. Return false
|
|
48
|
-
return false;
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
if (!Element.prototype.closest) {
|
|
2
|
-
Element.prototype.closest = function(s) {
|
|
3
|
-
var el = this;
|
|
4
|
-
if (!document.documentElement.contains(el)) return null;
|
|
5
|
-
do {
|
|
6
|
-
if (el.matches(s)) return el;
|
|
7
|
-
el = el.parentElement || el.parentNode;
|
|
8
|
-
} while (el !== null && el.nodeType === 1);
|
|
9
|
-
return null;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Number.isNaN = Number.isNaN || window.isNaN;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Number.parseFloat = Number.parseFloat || window.parseFloat;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Number.parseInt = Number.parseInt || window.parseInt;
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// https://raw.githubusercontent.com/webcomponents/webcomponents-platform/master/webcomponents-platform.js
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
|
|
5
|
-
* This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
|
6
|
-
* The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
|
7
|
-
* The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
|
8
|
-
* Code distributed by Google as part of the polymer project is also
|
|
9
|
-
* subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
if (!Object.assign) {
|
|
13
|
-
var assign = function(target, source) {
|
|
14
|
-
var n$ = Object.getOwnPropertyNames(source);
|
|
15
|
-
for (var i=0, p; i < n$.length; i++) {
|
|
16
|
-
p = n$[i];
|
|
17
|
-
target[p] = source[p];
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
Object.assign = function(target, sources) {
|
|
22
|
-
var args = [].slice.call(arguments, 1);
|
|
23
|
-
for (var i=0, s; i < args.length; i++) {
|
|
24
|
-
s = args[i];
|
|
25
|
-
if (s) {
|
|
26
|
-
assign(target, s);
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return target;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
if (!Object.entries) {
|
|
2
|
-
Object.entries = function( obj ){
|
|
3
|
-
var ownProps = Object.keys( obj ),
|
|
4
|
-
i = ownProps.length,
|
|
5
|
-
resArray = new Array(i); // preallocate the Array
|
|
6
|
-
while (i--)
|
|
7
|
-
resArray[i] = [ownProps[i], obj[ownProps[i]]];
|
|
8
|
-
|
|
9
|
-
return resArray;
|
|
10
|
-
};
|
|
11
|
-
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
/*! (C) WebReflection Mit Style License */
|
|
2
|
-
(function(e,t){"use strict";if(t in e)return;var n,r=typeof global==typeof r?window:global,i=0,s=""+Math.random(),o="__symbol:",u=o.length,a="__symbol@@"+s,f="defineProperty",l="defineProperties",c="getOwnPropertyNames",h="getOwnPropertyDescriptor",p="propertyIsEnumerable",d=e[c],v=e[h],m=e.create,g=e.keys,y=e.freeze||e,b=e[f],w=e[l],E=v(e,c),S=e.prototype,x=S.hasOwnProperty,T=S[p],N=S.toString,C=Array.prototype.indexOf||function(e){for(var t=this.length;t--&&this[t]!==e;);return t},k=function(e,t,n){x.call(e,a)||b(e,a,{enumerable:!1,configurable:!1,writable:!1,value:{}}),e[a]["@@"+t]=n},L=function(e,t){var n=m(e);return d(t).forEach(function(e){D.call(t,e)&&I(n,e,t[e])}),n},A=function(e){var t=m(e);return t.enumerable=!1,t},O=function(){},M=function(e){return e!=a&&!x.call(B,e)},_=function(e){return e!=a&&x.call(B,e)},D=function U(e){var t=""+e;return _(t)?x.call(this,t)&&this[a]["@@"+t]:T.call(this,e)},P=function(t){var r={enumerable:!1,configurable:!0,get:O,set:function(e){n(this,t,{enumerable:!1,configurable:!0,writable:!0,value:e}),k(this,t,!0)}};return b(S,t,r),y(B[t]=b(e(t),"constructor",j))},H=function(t){if(this&&this!==r)throw new TypeError("Symbol is not a constructor");return P(o.concat(t||"",s,++i))},B=m(null),j={value:H},F=function(e){return B[e]},I=function(t,r,i){var s=""+r;return _(s)?(n(t,s,i.enumerable?A(i):i),k(t,s,!!i.enumerable)):b(t,r,i),t},q=function(t){return d(t).filter(_).map(F)};E.value=I,b(e,f,E),E.value=q,b(e,t,E),E.value=function(t){return d(t).filter(M)},b(e,c,E),E.value=function(t,n){var r=q(n);return r.length?g(n).concat(r).forEach(function(e){D.call(n,e)&&I(t,e,n[e])}):w(t,n),t},b(e,l,E),E.value=D,b(S,p,E),E.value=H,b(r,"Symbol",E),E.value=function(e){var t=o.concat(o,e,s);return t in S?B[t]:P(t)},b(H,"for",E),E.value=function(e){if(M(e))throw new TypeError(e+" is not a symbol");if(!x.call(B,e))return void 0;var t=e.slice(u);return t.slice(0,u)!==o?void 0:(t=t.slice(u),t===s?void 0:(t=t.slice(0,t.length-s.length),t.length>0?t:void 0))},b(H,"keyFor",E),E.value=function(t,n){var r=v(t,n);return r&&_(n)&&(r.enumerable=D.call(t,n)),r},b(e,h,E),E.value=function(e,t){return arguments.length===1?m(e):L(e,t)},b(e,"create",E),E.value=function(){var e=N.call(this);return e==="[object String]"&&_(this)?"[object Symbol]":e},b(S,"toString",E);try{if(!0!==m(b({},o,{get:function(){return b(this,o,{value:!0})[o]}}))[o])throw"IE11";n=b}catch(R){n=function(e,t,n){var r=v(S,t);delete S[t],b(e,t,n),b(S,t,r)}}})(Object,"getOwnPropertySymbols"),function(e,t){var n=e.defineProperty,r=e.prototype,i=r.toString,s="toStringTag",o;["iterator","match","replace","search","split","hasInstance","isConcatSpreadable","unscopables","species","toPrimitive",s].forEach(function(t){if(!(t in Symbol)){n(Symbol,t,{value:Symbol(t)});switch(t){case s:o=e.getOwnPropertyDescriptor(r,"toString"),o.value=function(){var e=i.call(this),t=this[Symbol.toStringTag];return typeof t=="undefined"?e:"[object "+t+"]"},n(r,"toString",o)}}})}(Object,Symbol),function(e,t,n){function r(){return this}t[e]||(t[e]=function(){var t=0,n=this,i={next:function(){var r=n.length<=t;return r?{done:r}:{done:r,value:n[t++]}}};return i[e]=r,i}),n[e]||(n[e]=function(){var t=String.fromCodePoint,n=this,i=0,s=n.length,o={next:function(){var r=s<=i,o=r?"":t(n.codePointAt(i));return i+=o.length,r?{done:r}:{done:r,value:o}}};return o[e]=r,o})}(Symbol.iterator,Array.prototype,String.prototype);
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
if (!window.WeakSet) {
|
|
2
|
-
var counter = Date.now() % 1e9;
|
|
3
|
-
|
|
4
|
-
function WeakSet(data) {
|
|
5
|
-
this.name = '__st' + (Math.random() * 1e9 >>> 0) + (counter++ + '__');
|
|
6
|
-
data && data.forEach && data.forEach(this.add, this);
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
var proto = WeakSet.prototype;
|
|
11
|
-
|
|
12
|
-
proto['add'] = function (val) {
|
|
13
|
-
var name = this.name;
|
|
14
|
-
if (!val[name]) Object.defineProperty(val, name, {value: true, writable: true});
|
|
15
|
-
return this;
|
|
16
|
-
};
|
|
17
|
-
proto['delete'] = function (val) {
|
|
18
|
-
if (!val[this.name]) return false;
|
|
19
|
-
val[this.name] = undefined;
|
|
20
|
-
return true;
|
|
21
|
-
};
|
|
22
|
-
proto['has'] = function (val) {
|
|
23
|
-
return !!val[this.name];
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
window.WeakSet = WeakSet;
|
|
27
|
-
}
|
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
if (!String.prototype.startsWith) {
|
|
2
|
-
(function () {
|
|
3
|
-
"use strict";
|
|
4
|
-
var toString = ({}).toString;
|
|
5
|
-
var startsWith = function (search) {
|
|
6
|
-
if (this == null) {
|
|
7
|
-
throw TypeError();
|
|
8
|
-
}
|
|
9
|
-
var string = String(this);
|
|
10
|
-
if (search && toString.call(search) == "[object RegExp]") {
|
|
11
|
-
throw TypeError();
|
|
12
|
-
}
|
|
13
|
-
var stringLength = string.length;
|
|
14
|
-
var searchString = String(search);
|
|
15
|
-
var searchLength = searchString.length;
|
|
16
|
-
var position = arguments.length > 1 ? arguments[1] : undefined;
|
|
17
|
-
var pos = position ? Number(position) : 0;
|
|
18
|
-
if (pos != pos) {
|
|
19
|
-
pos = 0;
|
|
20
|
-
}
|
|
21
|
-
var start = Math.min(Math.max(pos, 0), stringLength);
|
|
22
|
-
if (searchLength + start > stringLength) {
|
|
23
|
-
return false;
|
|
24
|
-
}
|
|
25
|
-
var index = -1;
|
|
26
|
-
while (++index < searchLength) {
|
|
27
|
-
if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) {
|
|
28
|
-
return false;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return true;
|
|
32
|
-
};
|
|
33
|
-
Object.defineProperty(String.prototype, "startsWith", {
|
|
34
|
-
"value": startsWith,
|
|
35
|
-
"configurable": true,
|
|
36
|
-
"writable": true
|
|
37
|
-
});
|
|
38
|
-
})();
|
|
39
|
-
}
|
|
40
|
-
if (!String.prototype.endsWith) {
|
|
41
|
-
(function () {
|
|
42
|
-
"use strict";
|
|
43
|
-
var toString = ({}).toString;
|
|
44
|
-
var endsWith = function (search) {
|
|
45
|
-
if (this == null) {
|
|
46
|
-
throw TypeError();
|
|
47
|
-
}
|
|
48
|
-
var string = String(this);
|
|
49
|
-
if (search && toString.call(search) == "[object RegExp]") {
|
|
50
|
-
throw TypeError();
|
|
51
|
-
}
|
|
52
|
-
var stringLength = string.length;
|
|
53
|
-
var searchString = String(search);
|
|
54
|
-
var searchLength = searchString.length;
|
|
55
|
-
var pos = stringLength;
|
|
56
|
-
if (arguments.length > 1) {
|
|
57
|
-
var position = arguments[1];
|
|
58
|
-
if (position !== undefined) {
|
|
59
|
-
pos = position ? Number(position) : 0;
|
|
60
|
-
if (pos != pos) {
|
|
61
|
-
pos = 0;
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
var end = Math.min(Math.max(pos, 0), stringLength);
|
|
66
|
-
var start = end - searchLength;
|
|
67
|
-
if (start < 0) {
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
var index = -1;
|
|
71
|
-
while (++index < searchLength) {
|
|
72
|
-
if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) {
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
return true;
|
|
77
|
-
};
|
|
78
|
-
Object.defineProperty(String.prototype, "endsWith", {
|
|
79
|
-
"value": endsWith,
|
|
80
|
-
"configurable": true,
|
|
81
|
-
"writable": true
|
|
82
|
-
});
|
|
83
|
-
})();
|
|
84
|
-
}
|
|
85
|
-
if (!String.prototype.includes) {
|
|
86
|
-
(function () {
|
|
87
|
-
"use strict";
|
|
88
|
-
var toString = ({}).toString;
|
|
89
|
-
var indexOf = ("").indexOf;
|
|
90
|
-
var includes = function (search) {
|
|
91
|
-
if (this == null) {
|
|
92
|
-
throw TypeError();
|
|
93
|
-
}
|
|
94
|
-
var string = String(this);
|
|
95
|
-
if (search && toString.call(search) == "[object RegExp]") {
|
|
96
|
-
throw TypeError();
|
|
97
|
-
}
|
|
98
|
-
var stringLength = string.length;
|
|
99
|
-
var searchString = String(search);
|
|
100
|
-
var searchLength = searchString.length;
|
|
101
|
-
var position = arguments.length > 1 ? arguments[1] : undefined;
|
|
102
|
-
var pos = position ? Number(position) : 0;
|
|
103
|
-
if (pos != pos) {
|
|
104
|
-
pos = 0;
|
|
105
|
-
}
|
|
106
|
-
var start = Math.min(Math.max(pos, 0), stringLength);
|
|
107
|
-
if (searchLength + start > stringLength) {
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
return indexOf.call(string, searchString, pos) != -1;
|
|
111
|
-
};
|
|
112
|
-
Object.defineProperty(String.prototype, "includes", {
|
|
113
|
-
"value": includes,
|
|
114
|
-
"configurable": true,
|
|
115
|
-
"writable": true
|
|
116
|
-
});
|
|
117
|
-
})();
|
|
118
|
-
}
|
|
119
|
-
if (!String.prototype.repeat) {
|
|
120
|
-
(function () {
|
|
121
|
-
"use strict";
|
|
122
|
-
var repeat = function (count) {
|
|
123
|
-
if (this == null) {
|
|
124
|
-
throw TypeError();
|
|
125
|
-
}
|
|
126
|
-
var string = String(this);
|
|
127
|
-
var n = count ? Number(count) : 0;
|
|
128
|
-
if (n != n) {
|
|
129
|
-
n = 0;
|
|
130
|
-
}
|
|
131
|
-
if (n < 0 || n == Infinity) {
|
|
132
|
-
throw RangeError();
|
|
133
|
-
}
|
|
134
|
-
var result = "";
|
|
135
|
-
while (n) {
|
|
136
|
-
if (n % 2 == 1) {
|
|
137
|
-
result += string;
|
|
138
|
-
}
|
|
139
|
-
if (n > 1) {
|
|
140
|
-
string += string;
|
|
141
|
-
}
|
|
142
|
-
n >>= 1;
|
|
143
|
-
}
|
|
144
|
-
return result;
|
|
145
|
-
};
|
|
146
|
-
Object.defineProperty(String.prototype, "repeat", {
|
|
147
|
-
"value": repeat,
|
|
148
|
-
"configurable": true,
|
|
149
|
-
"writable": true
|
|
150
|
-
});
|
|
151
|
-
})();
|
|
152
|
-
}
|
|
153
|
-
if (!String.prototype.padStart) {
|
|
154
|
-
String.prototype.padStart = function padStart(targetLength, padString) {
|
|
155
|
-
targetLength = targetLength >> 0;
|
|
156
|
-
padString = String(typeof padString !== "undefined" ? padString : " ");
|
|
157
|
-
if (this.length > targetLength) {
|
|
158
|
-
return String(this);
|
|
159
|
-
} else {
|
|
160
|
-
targetLength = targetLength - this.length;
|
|
161
|
-
if (targetLength > padString.length) {
|
|
162
|
-
padString += padString.repeat(targetLength / padString.length);
|
|
163
|
-
}
|
|
164
|
-
return padString.slice(0, targetLength) + String(this);
|
|
165
|
-
}
|
|
166
|
-
};
|
|
167
|
-
}
|
|
168
|
-
if (!String.prototype.padEnd) {
|
|
169
|
-
String.prototype.padEnd = function padEnd(targetLength, padString) {
|
|
170
|
-
targetLength = targetLength >> 0;
|
|
171
|
-
padString = String(typeof padString !== "undefined" ? padString : " ");
|
|
172
|
-
if (this.length > targetLength) {
|
|
173
|
-
return String(this);
|
|
174
|
-
} else {
|
|
175
|
-
targetLength = targetLength - this.length;
|
|
176
|
-
if (targetLength > padString.length) {
|
|
177
|
-
padString += padString.repeat(targetLength / padString.length);
|
|
178
|
-
}
|
|
179
|
-
return String(this) + padString.slice(0, targetLength);
|
|
180
|
-
}
|
|
181
|
-
};
|
|
182
|
-
}
|