@ui5/webcomponents-base 0.0.0-32b659ddc → 0.0.0-35e2c9666

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.
Files changed (454) hide show
  1. package/.eslintignore +4 -0
  2. package/CHANGELOG.md +329 -0
  3. package/README.md +26 -2
  4. package/bundle.esm.js +17 -12
  5. package/dist/AssetRegistry.js +8 -6
  6. package/dist/Boot.js +59 -0
  7. package/dist/CSP.js +59 -0
  8. package/dist/CustomElementsRegistry.js +95 -0
  9. package/dist/CustomElementsScope.js +108 -0
  10. package/dist/DOMObserver.js +65 -0
  11. package/dist/Device.js +69 -776
  12. package/dist/EventProvider.js +38 -26
  13. package/dist/FeaturesRegistry.js +4 -1
  14. package/dist/FontFace.js +19 -62
  15. package/dist/InitialConfiguration.js +46 -10
  16. package/dist/Keys.js +295 -0
  17. package/dist/ManagedStyles.js +83 -0
  18. package/dist/MediaRange.js +109 -0
  19. package/dist/PropertiesFileFormat.js +95 -0
  20. package/dist/Render.js +175 -0
  21. package/dist/RenderQueue.js +41 -17
  22. package/dist/RenderScheduler.js +24 -145
  23. package/dist/Runtimes.js +107 -0
  24. package/dist/StaticArea.js +1 -39
  25. package/dist/StaticAreaItem.js +61 -50
  26. package/dist/SystemCSSVars.js +10 -0
  27. package/dist/Theming.js +3 -54
  28. package/dist/UI5Element.js +454 -300
  29. package/dist/UI5ElementMetadata.js +182 -19
  30. package/dist/asset-registries/Icons.js +129 -14
  31. package/dist/asset-registries/Illustrations.js +30 -0
  32. package/dist/asset-registries/LocaleData.js +112 -56
  33. package/dist/asset-registries/Themes.js +35 -32
  34. package/dist/asset-registries/i18n.js +80 -33
  35. package/dist/assets-meta/IconCollectionsAlias.js +18 -0
  36. package/dist/config/AnimationMode.js +11 -1
  37. package/dist/config/CalendarType.js +3 -7
  38. package/dist/config/Language.js +58 -2
  39. package/dist/config/Theme.js +27 -2
  40. package/dist/css/FontFace.css +45 -0
  41. package/dist/css/OverrideFontFace.css +32 -0
  42. package/dist/css/SystemCSSVars.css +17 -0
  43. package/dist/delegate/ItemNavigation.js +245 -172
  44. package/dist/delegate/ResizeHandler.js +78 -38
  45. package/dist/delegate/ScrollEnablement.js +101 -19
  46. package/dist/features/F6Navigation.js +108 -0
  47. package/dist/features/OpenUI5Support.js +56 -7
  48. package/dist/generated/AssetParameters.js +13 -0
  49. package/dist/generated/VersionInfo.js +10 -0
  50. package/dist/generated/css/FontFace.css.js +5 -0
  51. package/dist/generated/css/OverrideFontFace.css.js +5 -0
  52. package/dist/generated/css/SystemCSSVars.css.js +5 -0
  53. package/dist/getSharedResource.js +30 -0
  54. package/dist/i18nBundle.js +62 -11
  55. package/dist/isLegacyBrowser.js +3 -0
  56. package/dist/{Locale.js → locale/Locale.js} +0 -10
  57. package/dist/locale/RTLAwareRegistry.js +14 -0
  58. package/dist/locale/applyDirection.js +17 -0
  59. package/dist/locale/directionChange.js +32 -0
  60. package/dist/locale/getEffectiveDir.js +28 -0
  61. package/dist/locale/getLocale.js +41 -0
  62. package/dist/locale/languageChange.js +22 -0
  63. package/dist/locale/nextFallbackLocale.js +28 -0
  64. package/{src/util → dist/locale}/normalizeLocale.js +8 -31
  65. package/dist/renderer/LitRenderer.js +26 -7
  66. package/dist/renderer/directives/style-map.js +72 -0
  67. package/dist/renderer/executeTemplate.js +17 -0
  68. package/dist/resources/bundle.esm.js +20 -106
  69. package/dist/resources/bundle.esm.js.map +1 -1
  70. package/dist/sap/base/Log.js +241 -0
  71. package/dist/sap/base/assert.js +8 -0
  72. package/dist/sap/base/security/URLListValidator.js +148 -0
  73. package/dist/sap/base/security/encodeCSS.js +14 -0
  74. package/dist/sap/base/security/encodeXML.js +23 -0
  75. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  76. package/dist/sap/base/strings/toHex.js +8 -0
  77. package/dist/sap/base/util/now.js +7 -0
  78. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
  79. package/dist/test-resources/assets/Themes.js +10 -6
  80. package/dist/test-resources/elements/Parent.js +6 -2
  81. package/dist/test-resources/elements/WithStaticArea.js +77 -0
  82. package/dist/test-resources/pages/AllTestElements.html +5 -3
  83. package/dist/test-resources/pages/Configuration.html +0 -2
  84. package/dist/test-resources/pages/ConfigurationScript.html +1 -3
  85. package/dist/test-resources/pages/assets/messagebundle_de.properties +1 -0
  86. package/dist/test-resources/pages/assets/messagebundle_en.properties +1 -0
  87. package/dist/test-resources/pages/assets/messagebundle_es.properties +1 -0
  88. package/dist/test-resources/pages/assets/messagebundle_fr.properties +1 -0
  89. package/dist/test-resources/pages/i18n.html +33 -0
  90. package/dist/test-resources/specs/ConfigurationChange.spec.js +11 -9
  91. package/dist/test-resources/specs/ConfigurationScript.spec.js +25 -23
  92. package/dist/test-resources/specs/ConfigurationURL.spec.js +65 -17
  93. package/dist/test-resources/specs/CustomTheme.spec.js +9 -7
  94. package/dist/test-resources/specs/EventProvider.spec.js +63 -0
  95. package/dist/test-resources/specs/StaticArea.spec.js +78 -0
  96. package/dist/test-resources/specs/Theming.spec.js +12 -10
  97. package/dist/test-resources/specs/UI5ElementInvalidation.js +54 -70
  98. package/dist/test-resources/specs/UI5ElementLifecycle.js +19 -14
  99. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +25 -51
  100. package/dist/test-resources/specs/UI5ElementMetadataExt.js +9 -7
  101. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +7 -5
  102. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +37 -35
  103. package/dist/test-resources/specs/UI5ElementShadowDOM.js +10 -8
  104. package/dist/test-resources/specs/UI5ElementSlots.js +10 -8
  105. package/dist/theming/CustomStyle.js +47 -6
  106. package/dist/theming/ThemeLoaded.js +22 -0
  107. package/dist/theming/applyTheme.js +79 -0
  108. package/dist/theming/getConstructableStyle.js +30 -0
  109. package/dist/theming/getEffectiveLinksHrefs.js +20 -0
  110. package/dist/theming/getEffectiveStyle.js +30 -0
  111. package/dist/theming/getStylesString.js +15 -0
  112. package/dist/theming/getThemeDesignerTheme.js +87 -0
  113. package/dist/theming/preloadLinks.js +23 -0
  114. package/dist/thirdparty/_merge.js +32 -0
  115. package/dist/thirdparty/isPlainObject.js +18 -0
  116. package/dist/thirdparty/merge.js +10 -0
  117. package/dist/types/CSSColor.js +9 -0
  118. package/{src/dates → dist/types}/CalendarType.js +2 -2
  119. package/dist/types/DataType.js +13 -1
  120. package/dist/types/Float.js +14 -0
  121. package/dist/types/Integer.js +4 -0
  122. package/dist/types/InvisibleMessageMode.js +30 -0
  123. package/dist/types/ItemNavigationBehavior.js +2 -7
  124. package/dist/types/NavigationMode.js +1 -0
  125. package/dist/types/PopupState.js +1 -1
  126. package/dist/types/ValueState.js +1 -1
  127. package/dist/updateShadowRoot.js +30 -0
  128. package/dist/util/AriaLabelHelper.js +41 -0
  129. package/dist/util/Caret.js +45 -0
  130. package/dist/util/ColorConversion.js +370 -0
  131. package/dist/util/FocusableElements.js +30 -11
  132. package/dist/util/HTMLSanitizer.js +7 -0
  133. package/dist/util/InvisibleMessage.js +60 -0
  134. package/dist/util/PopupUtils.js +93 -0
  135. package/dist/util/SlotsHelper.js +43 -0
  136. package/dist/util/TabbableElements.js +9 -2
  137. package/dist/util/arraysAreEqual.js +15 -0
  138. package/dist/util/clamp.js +12 -0
  139. package/dist/util/createLinkInHead.js +19 -0
  140. package/dist/util/debounce.js +17 -0
  141. package/dist/util/detectNavigatorLanguage.js +3 -1
  142. package/dist/util/escapeRegex.js +10 -0
  143. package/dist/util/findNodeOwner.js +35 -0
  144. package/dist/util/generateHighlightedMarkup.js +42 -0
  145. package/dist/util/getActiveElement.js +11 -0
  146. package/dist/util/getClassCopy.js +10 -0
  147. package/dist/util/getEffectiveContentDensity.js +5 -0
  148. package/dist/util/getFileExtension.js +21 -0
  149. package/dist/util/getSingletonElementInstance.js +13 -0
  150. package/dist/util/isElementInView.js +15 -0
  151. package/dist/util/isNodeHidden.js +1 -5
  152. package/dist/util/isNodeTabbable.js +4 -4
  153. package/dist/util/isValidPropertyName.js +11 -2
  154. package/dist/util/setToArray.js +10 -0
  155. package/hash.txt +1 -0
  156. package/index.js +1 -1
  157. package/lib/generate-asset-parameters/index.js +21 -0
  158. package/lib/generate-styles/index.js +18 -0
  159. package/lib/generate-version-info/index.js +27 -0
  160. package/package-scripts.js +38 -18
  161. package/package.json +19 -13
  162. package/src/AssetRegistry.js +8 -6
  163. package/src/Boot.js +59 -0
  164. package/src/CSP.js +59 -0
  165. package/src/CustomElementsRegistry.js +95 -0
  166. package/src/CustomElementsScope.js +108 -0
  167. package/src/DOMObserver.js +65 -0
  168. package/src/Device.js +69 -776
  169. package/src/EventProvider.js +38 -26
  170. package/src/FeaturesRegistry.js +4 -1
  171. package/src/FontFace.js +19 -62
  172. package/src/InitialConfiguration.js +46 -10
  173. package/src/Keys.js +295 -0
  174. package/src/ManagedStyles.js +83 -0
  175. package/src/MediaRange.js +109 -0
  176. package/src/PropertiesFileFormat.js +95 -0
  177. package/src/Render.js +175 -0
  178. package/src/RenderQueue.js +41 -17
  179. package/src/RenderScheduler.js +24 -145
  180. package/src/Runtimes.js +107 -0
  181. package/src/StaticArea.js +1 -39
  182. package/src/StaticAreaItem.js +61 -50
  183. package/src/SystemCSSVars.js +10 -0
  184. package/src/Theming.js +3 -54
  185. package/src/UI5Element.js +454 -300
  186. package/src/UI5ElementMetadata.js +182 -19
  187. package/src/asset-registries/Icons.js +129 -14
  188. package/src/asset-registries/Illustrations.js +30 -0
  189. package/src/asset-registries/LocaleData.js +112 -56
  190. package/src/asset-registries/Themes.js +35 -32
  191. package/src/asset-registries/i18n.js +80 -33
  192. package/src/assets-meta/IconCollectionsAlias.js +18 -0
  193. package/src/config/AnimationMode.js +11 -1
  194. package/src/config/CalendarType.js +3 -7
  195. package/src/config/Language.js +58 -2
  196. package/src/config/Theme.js +27 -2
  197. package/src/css/FontFace.css +45 -0
  198. package/src/css/OverrideFontFace.css +32 -0
  199. package/src/css/SystemCSSVars.css +17 -0
  200. package/src/delegate/ItemNavigation.js +245 -172
  201. package/src/delegate/ResizeHandler.js +78 -38
  202. package/src/delegate/ScrollEnablement.js +101 -19
  203. package/src/features/F6Navigation.js +108 -0
  204. package/src/features/OpenUI5Support.js +56 -7
  205. package/src/getSharedResource.js +30 -0
  206. package/src/i18nBundle.js +62 -11
  207. package/src/isLegacyBrowser.js +3 -0
  208. package/src/{Locale.js → locale/Locale.js} +0 -10
  209. package/src/locale/RTLAwareRegistry.js +14 -0
  210. package/src/locale/applyDirection.js +17 -0
  211. package/src/locale/directionChange.js +32 -0
  212. package/src/locale/getEffectiveDir.js +28 -0
  213. package/src/locale/getLocale.js +41 -0
  214. package/src/locale/languageChange.js +22 -0
  215. package/src/locale/nextFallbackLocale.js +28 -0
  216. package/{dist/util → src/locale}/normalizeLocale.js +8 -31
  217. package/src/renderer/LitRenderer.js +26 -7
  218. package/src/renderer/directives/style-map.js +72 -0
  219. package/src/renderer/executeTemplate.js +17 -0
  220. package/src/theming/CustomStyle.js +47 -6
  221. package/src/theming/ThemeLoaded.js +22 -0
  222. package/src/theming/applyTheme.js +79 -0
  223. package/src/theming/getConstructableStyle.js +30 -0
  224. package/src/theming/getEffectiveLinksHrefs.js +20 -0
  225. package/src/theming/getEffectiveStyle.js +30 -0
  226. package/src/theming/getStylesString.js +15 -0
  227. package/src/theming/getThemeDesignerTheme.js +87 -0
  228. package/src/theming/preloadLinks.js +23 -0
  229. package/src/thirdparty/_merge.js +32 -0
  230. package/src/thirdparty/isPlainObject.js +18 -0
  231. package/src/thirdparty/merge.js +10 -0
  232. package/src/types/CSSColor.js +9 -0
  233. package/{dist/dates → src/types}/CalendarType.js +2 -2
  234. package/src/types/DataType.js +13 -1
  235. package/src/types/Float.js +14 -0
  236. package/src/types/Integer.js +4 -0
  237. package/src/types/InvisibleMessageMode.js +30 -0
  238. package/src/types/ItemNavigationBehavior.js +2 -7
  239. package/src/types/NavigationMode.js +1 -0
  240. package/src/types/PopupState.js +1 -1
  241. package/src/types/ValueState.js +1 -1
  242. package/src/updateShadowRoot.js +30 -0
  243. package/src/util/AriaLabelHelper.js +41 -0
  244. package/src/util/Caret.js +45 -0
  245. package/src/util/ColorConversion.js +370 -0
  246. package/src/util/FocusableElements.js +30 -11
  247. package/src/util/HTMLSanitizer.js +7 -0
  248. package/src/util/InvisibleMessage.js +60 -0
  249. package/src/util/PopupUtils.js +93 -0
  250. package/src/util/SlotsHelper.js +43 -0
  251. package/src/util/TabbableElements.js +9 -2
  252. package/src/util/arraysAreEqual.js +15 -0
  253. package/src/util/clamp.js +12 -0
  254. package/src/util/createLinkInHead.js +19 -0
  255. package/src/util/debounce.js +17 -0
  256. package/src/util/detectNavigatorLanguage.js +3 -1
  257. package/src/util/escapeRegex.js +10 -0
  258. package/src/util/findNodeOwner.js +35 -0
  259. package/src/util/generateHighlightedMarkup.js +42 -0
  260. package/src/util/getActiveElement.js +11 -0
  261. package/src/util/getClassCopy.js +10 -0
  262. package/src/util/getEffectiveContentDensity.js +5 -0
  263. package/src/util/getFileExtension.js +21 -0
  264. package/src/util/getSingletonElementInstance.js +13 -0
  265. package/src/util/isElementInView.js +15 -0
  266. package/src/util/isNodeHidden.js +1 -5
  267. package/src/util/isNodeTabbable.js +4 -4
  268. package/src/util/isValidPropertyName.js +11 -2
  269. package/src/util/setToArray.js +10 -0
  270. package/used-modules.txt +10 -0
  271. package/bundle.es5.js +0 -28
  272. package/dist/Assets.js +0 -2
  273. package/dist/CSS.js +0 -48
  274. package/dist/FormatSettings.js +0 -31
  275. package/dist/LocaleProvider.js +0 -34
  276. package/dist/ResourceLoaderOverrides.js +0 -38
  277. package/dist/SVGIconRegistry.js +0 -54
  278. package/dist/boot.js +0 -32
  279. package/dist/compatibility/DOMObserver.js +0 -62
  280. package/dist/compatibility/patchNodeValue.js +0 -24
  281. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  282. package/dist/dates/CalendarDate.js +0 -203
  283. package/dist/dates/CalendarUtils.js +0 -99
  284. package/dist/delegate/CustomResize.js +0 -78
  285. package/dist/delegate/NativeResize.js +0 -44
  286. package/dist/events/PseudoEvents.js +0 -58
  287. package/dist/features/browsersupport/Edge.js +0 -6
  288. package/dist/features/browsersupport/IE11.js +0 -41
  289. package/dist/features/calendar/Buddhist.js +0 -1
  290. package/dist/features/calendar/Islamic.js +0 -1
  291. package/dist/features/calendar/Japanese.js +0 -1
  292. package/dist/features/calendar/Persian.js +0 -1
  293. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar.json +0 -5906
  294. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_EG.json +0 -5906
  295. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_SA.json +0 -5906
  296. package/dist/generated/assets/cldr/sap/ui/core/cldr/bg.json +0 -4979
  297. package/dist/generated/assets/cldr/sap/ui/core/cldr/ca.json +0 -4996
  298. package/dist/generated/assets/cldr/sap/ui/core/cldr/cs.json +0 -5498
  299. package/dist/generated/assets/cldr/sap/ui/core/cldr/da.json +0 -4888
  300. package/dist/generated/assets/cldr/sap/ui/core/cldr/de.json +0 -4916
  301. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_AT.json +0 -4917
  302. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_CH.json +0 -4915
  303. package/dist/generated/assets/cldr/sap/ui/core/cldr/el.json +0 -4883
  304. package/dist/generated/assets/cldr/sap/ui/core/cldr/el_CY.json +0 -4883
  305. package/dist/generated/assets/cldr/sap/ui/core/cldr/en.json +0 -4970
  306. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_AU.json +0 -4962
  307. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_GB.json +0 -4971
  308. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_HK.json +0 -4977
  309. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IE.json +0 -4971
  310. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IN.json +0 -4972
  311. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_NZ.json +0 -4971
  312. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_PG.json +0 -4972
  313. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_SG.json +0 -4973
  314. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_ZA.json +0 -4972
  315. package/dist/generated/assets/cldr/sap/ui/core/cldr/es.json +0 -4912
  316. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_AR.json +0 -4914
  317. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_BO.json +0 -4913
  318. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CL.json +0 -4914
  319. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CO.json +0 -4913
  320. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_MX.json +0 -4915
  321. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_PE.json +0 -4913
  322. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_UY.json +0 -4915
  323. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_VE.json +0 -4914
  324. package/dist/generated/assets/cldr/sap/ui/core/cldr/et.json +0 -4967
  325. package/dist/generated/assets/cldr/sap/ui/core/cldr/fa.json +0 -4883
  326. package/dist/generated/assets/cldr/sap/ui/core/cldr/fi.json +0 -5008
  327. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr.json +0 -4979
  328. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_BE.json +0 -4979
  329. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CA.json +0 -4973
  330. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CH.json +0 -4997
  331. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_LU.json +0 -4979
  332. package/dist/generated/assets/cldr/sap/ui/core/cldr/he.json +0 -5378
  333. package/dist/generated/assets/cldr/sap/ui/core/cldr/hi.json +0 -4829
  334. package/dist/generated/assets/cldr/sap/ui/core/cldr/hr.json +0 -4919
  335. package/dist/generated/assets/cldr/sap/ui/core/cldr/hu.json +0 -4856
  336. package/dist/generated/assets/cldr/sap/ui/core/cldr/id.json +0 -4658
  337. package/dist/generated/assets/cldr/sap/ui/core/cldr/it.json +0 -4950
  338. package/dist/generated/assets/cldr/sap/ui/core/cldr/it_CH.json +0 -4950
  339. package/dist/generated/assets/cldr/sap/ui/core/cldr/ja.json +0 -4830
  340. package/dist/generated/assets/cldr/sap/ui/core/cldr/kk.json +0 -4725
  341. package/dist/generated/assets/cldr/sap/ui/core/cldr/ko.json +0 -4738
  342. package/dist/generated/assets/cldr/sap/ui/core/cldr/lt.json +0 -5481
  343. package/dist/generated/assets/cldr/sap/ui/core/cldr/lv.json +0 -5112
  344. package/dist/generated/assets/cldr/sap/ui/core/cldr/ms.json +0 -4515
  345. package/dist/generated/assets/cldr/sap/ui/core/cldr/nb.json +0 -4977
  346. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl.json +0 -4884
  347. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl_BE.json +0 -4884
  348. package/dist/generated/assets/cldr/sap/ui/core/cldr/pl.json +0 -5176
  349. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt.json +0 -4805
  350. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt_PT.json +0 -4940
  351. package/dist/generated/assets/cldr/sap/ui/core/cldr/ro.json +0 -5090
  352. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru.json +0 -5407
  353. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru_UA.json +0 -5407
  354. package/dist/generated/assets/cldr/sap/ui/core/cldr/sk.json +0 -5370
  355. package/dist/generated/assets/cldr/sap/ui/core/cldr/sl.json +0 -5340
  356. package/dist/generated/assets/cldr/sap/ui/core/cldr/sr.json +0 -5126
  357. package/dist/generated/assets/cldr/sap/ui/core/cldr/sv.json +0 -5011
  358. package/dist/generated/assets/cldr/sap/ui/core/cldr/th.json +0 -4797
  359. package/dist/generated/assets/cldr/sap/ui/core/cldr/tr.json +0 -4979
  360. package/dist/generated/assets/cldr/sap/ui/core/cldr/uk.json +0 -5353
  361. package/dist/generated/assets/cldr/sap/ui/core/cldr/vi.json +0 -4673
  362. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_CN.json +0 -4632
  363. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_HK.json +0 -4640
  364. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_SG.json +0 -4640
  365. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_TW.json +0 -4728
  366. package/dist/json-imports/LocaleData.js +0 -171
  367. package/dist/renderer/ifDefined.js +0 -21
  368. package/dist/resources/bundle.es5.js +0 -212
  369. package/dist/resources/bundle.es5.js.map +0 -1
  370. package/dist/shims/Core-shim.js +0 -53
  371. package/dist/test-resources/dev-helpers/ExternalThemePresent.js +0 -3
  372. package/dist/theming/StyleInjection.js +0 -67
  373. package/dist/thirdparty/Array.from.js +0 -16
  374. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  375. package/dist/thirdparty/Array.prototype.find.js +0 -46
  376. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  377. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  378. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  379. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  380. package/dist/thirdparty/Number.isInteger.js +0 -5
  381. package/dist/thirdparty/Number.isNaN.js +0 -1
  382. package/dist/thirdparty/Number.parseInt.js +0 -1
  383. package/dist/thirdparty/Object.assign.js +0 -31
  384. package/dist/thirdparty/Object.entries.js +0 -11
  385. package/dist/thirdparty/Symbol.js +0 -2
  386. package/dist/thirdparty/WeakSet.js +0 -27
  387. package/dist/thirdparty/events-polyfills.js +0 -89
  388. package/dist/thirdparty/fetch.js +0 -1
  389. package/dist/thirdparty/template.js +0 -600
  390. package/dist/util/CSSTransformUtils.js +0 -90
  391. package/dist/webcomponentsjs/LICENSE.md +0 -19
  392. package/dist/webcomponentsjs/README.md +0 -229
  393. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  394. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  395. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  396. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  397. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  398. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  399. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  400. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  401. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  402. package/dist/webcomponentsjs/package.json +0 -46
  403. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  404. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  405. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  406. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  407. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  408. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  409. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  410. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  411. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  412. package/src/Assets.js +0 -2
  413. package/src/CSS.js +0 -48
  414. package/src/FormatSettings.js +0 -31
  415. package/src/LocaleProvider.js +0 -34
  416. package/src/ResourceLoaderOverrides.js +0 -38
  417. package/src/SVGIconRegistry.js +0 -54
  418. package/src/boot.js +0 -32
  419. package/src/compatibility/DOMObserver.js +0 -62
  420. package/src/compatibility/patchNodeValue.js +0 -24
  421. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  422. package/src/dates/CalendarDate.js +0 -203
  423. package/src/dates/CalendarUtils.js +0 -99
  424. package/src/delegate/CustomResize.js +0 -78
  425. package/src/delegate/NativeResize.js +0 -44
  426. package/src/events/PseudoEvents.js +0 -58
  427. package/src/features/browsersupport/Edge.js +0 -6
  428. package/src/features/browsersupport/IE11.js +0 -41
  429. package/src/features/calendar/Buddhist.js +0 -1
  430. package/src/features/calendar/Islamic.js +0 -1
  431. package/src/features/calendar/Japanese.js +0 -1
  432. package/src/features/calendar/Persian.js +0 -1
  433. package/src/json-imports/LocaleData.js +0 -171
  434. package/src/renderer/ifDefined.js +0 -21
  435. package/src/shims/Core-shim.js +0 -53
  436. package/src/theming/StyleInjection.js +0 -67
  437. package/src/thirdparty/Array.from.js +0 -16
  438. package/src/thirdparty/Array.prototype.fill.js +0 -44
  439. package/src/thirdparty/Array.prototype.find.js +0 -46
  440. package/src/thirdparty/Array.prototype.includes.js +0 -51
  441. package/src/thirdparty/Element.prototype.closest.js +0 -11
  442. package/src/thirdparty/Element.prototype.matches.js +0 -6
  443. package/src/thirdparty/Map.prototype.keys.js +0 -9
  444. package/src/thirdparty/Number.isInteger.js +0 -5
  445. package/src/thirdparty/Number.isNaN.js +0 -1
  446. package/src/thirdparty/Number.parseInt.js +0 -1
  447. package/src/thirdparty/Object.assign.js +0 -31
  448. package/src/thirdparty/Object.entries.js +0 -11
  449. package/src/thirdparty/Symbol.js +0 -2
  450. package/src/thirdparty/WeakSet.js +0 -27
  451. package/src/thirdparty/events-polyfills.js +0 -89
  452. package/src/thirdparty/fetch.js +0 -1
  453. package/src/thirdparty/template.js +0 -600
  454. package/src/util/CSSTransformUtils.js +0 -90
@@ -1,89 +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
-
13
- // defaultPrevented is broken in IE.
14
- // https://connect.microsoft.com/IE/feedback/details/790389/event-defaultprevented-returns-false-after-preventdefault-was-called
15
- var workingDefaultPrevented = (function() {
16
- var e = document.createEvent('Event');
17
- e.initEvent('foo', true, true);
18
- e.preventDefault();
19
- return e.defaultPrevented;
20
- })();
21
-
22
- if (!workingDefaultPrevented) {
23
- var origPreventDefault = Event.prototype.preventDefault;
24
- Event.prototype.preventDefault = function() {
25
- if (!this.cancelable) {
26
- return;
27
- }
28
-
29
- origPreventDefault.call(this);
30
-
31
- Object.defineProperty(this, 'defaultPrevented', {
32
- get: function() {
33
- return true;
34
- },
35
- configurable: true
36
- });
37
- };
38
- }
39
-
40
- var isIE = /Trident/.test(navigator.userAgent);
41
-
42
- // Event constructor shim
43
- if (!window.Event || isIE && (typeof window.Event !== 'function')) {
44
- var origEvent = window.Event;
45
- window.Event = function(inType, params) {
46
- params = params || {};
47
- var e = document.createEvent('Event');
48
- e.initEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable));
49
- return e;
50
- };
51
- if (origEvent) {
52
- for (var i in origEvent) {
53
- window.Event[i] = origEvent[i];
54
- }
55
- window.Event.prototype = origEvent.prototype;
56
- }
57
- }
58
-
59
- // CustomEvent constructor shim
60
- if (!window.CustomEvent || isIE && (typeof window.CustomEvent !== 'function')) {
61
- window.CustomEvent = function(inType, params) {
62
- params = params || {};
63
- var e = document.createEvent('CustomEvent');
64
- e.initCustomEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable), params.detail);
65
- return e;
66
- };
67
- window.CustomEvent.prototype = window.Event.prototype;
68
- }
69
-
70
- if (!window.MouseEvent || isIE && (typeof window.MouseEvent !== 'function')) {
71
- var origMouseEvent = window.MouseEvent;
72
- window.MouseEvent = function(inType, params) {
73
- params = params || {};
74
- var e = document.createEvent('MouseEvent');
75
- e.initMouseEvent(inType,
76
- Boolean(params.bubbles), Boolean(params.cancelable),
77
- params.view || window, params.detail,
78
- params.screenX, params.screenY, params.clientX, params.clientY,
79
- params.ctrlKey, params.altKey, params.shiftKey, params.metaKey,
80
- params.button, params.relatedTarget);
81
- return e;
82
- };
83
- if (origMouseEvent) {
84
- for (var i in origMouseEvent) {
85
- window.MouseEvent[i] = origMouseEvent[i];
86
- }
87
- }
88
- window.MouseEvent.prototype = origMouseEvent.prototype;
89
- }
@@ -1 +0,0 @@
1
- window.fetch||(window.fetch=function(e,n){return n=n||{},new Promise(function(t,r){var s=new XMLHttpRequest;for(var o in s.open(n.method||"get",e,!0),n.headers)s.setRequestHeader(o,n.headers[o]);function u(){var e,n=[],t=[],r={};return s.getAllResponseHeaders().replace(/^(.*?):[^\S\n]*([\s\S]*?)$/gm,function(s,o,u){n.push(o=o.toLowerCase()),t.push([o,u]),r[o]=(e=r[o])?e+","+u:u}),{ok:2==(s.status/100|0),status:s.status,statusText:s.statusText,url:s.responseURL,clone:u,text:function(){return Promise.resolve(s.responseText)},json:function(){return Promise.resolve(s.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([s.response]))},headers:{keys:function(){return n},entries:function(){return t},get:function(e){return r[e.toLowerCase()]},has:function(e){return e.toLowerCase()in r}}}}s.withCredentials="include"==n.credentials,s.onload=function(){t(u())},s.onerror=r,s.send(n.body||null)})});
@@ -1,600 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
4
- * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
5
- * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
6
- * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
7
- * Code distributed by Google as part of the polymer project is also
8
- * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
9
- */
10
-
11
- // minimal template polyfill
12
- (function() {
13
- 'use strict';
14
-
15
- var needsTemplate = (typeof HTMLTemplateElement === 'undefined');
16
- var brokenDocFragment = !(document.createDocumentFragment().cloneNode() instanceof DocumentFragment);
17
- var needsDocFrag = false;
18
-
19
- // NOTE: Replace DocumentFragment to work around IE11 bug that
20
- // causes children of a document fragment modified while
21
- // there is a mutation observer to not have a parentNode, or
22
- // have a broken parentNode (!?!)
23
- if (/Trident/.test(navigator.userAgent)) {
24
- (function() {
25
-
26
- needsDocFrag = true;
27
-
28
- var origCloneNode = Node.prototype.cloneNode;
29
- Node.prototype.cloneNode = function cloneNode(deep) {
30
- var newDom = origCloneNode.call(this, deep);
31
- if (this instanceof DocumentFragment) {
32
- newDom.__proto__ = DocumentFragment.prototype;
33
- }
34
- return newDom;
35
- };
36
-
37
- // IE's DocumentFragment querySelector code doesn't work when
38
- // called on an element instance
39
- DocumentFragment.prototype.querySelectorAll = HTMLElement.prototype.querySelectorAll;
40
- DocumentFragment.prototype.querySelector = HTMLElement.prototype.querySelector;
41
-
42
- Object.defineProperties(DocumentFragment.prototype, {
43
- 'nodeType': {
44
- get: function () {
45
- return Node.DOCUMENT_FRAGMENT_NODE;
46
- },
47
- configurable: true
48
- },
49
-
50
- 'localName': {
51
- get: function () {
52
- return undefined;
53
- },
54
- configurable: true
55
- },
56
-
57
- 'nodeName': {
58
- get: function () {
59
- return '#document-fragment';
60
- },
61
- configurable: true
62
- }
63
- });
64
-
65
- var origInsertBefore = Node.prototype.insertBefore;
66
- function insertBefore(newNode, refNode) {
67
- if (newNode instanceof DocumentFragment) {
68
- var child;
69
- while ((child = newNode.firstChild)) {
70
- origInsertBefore.call(this, child, refNode);
71
- }
72
- } else {
73
- origInsertBefore.call(this, newNode, refNode);
74
- }
75
- return newNode;
76
- }
77
- Node.prototype.insertBefore = insertBefore;
78
-
79
- var origAppendChild = Node.prototype.appendChild;
80
- Node.prototype.appendChild = function appendChild(child) {
81
- if (child instanceof DocumentFragment) {
82
- insertBefore.call(this, child, null);
83
- } else {
84
- origAppendChild.call(this, child);
85
- }
86
- return child;
87
- };
88
-
89
- var origRemoveChild = Node.prototype.removeChild;
90
- var origReplaceChild = Node.prototype.replaceChild;
91
- Node.prototype.replaceChild = function replaceChild(newChild, oldChild) {
92
- if (newChild instanceof DocumentFragment) {
93
- insertBefore.call(this, newChild, oldChild);
94
- origRemoveChild.call(this, oldChild);
95
- } else {
96
- origReplaceChild.call(this, newChild, oldChild);
97
- }
98
- return oldChild;
99
- };
100
-
101
- Document.prototype.createDocumentFragment = function createDocumentFragment() {
102
- var frag = this.createElement('df');
103
- frag.__proto__ = DocumentFragment.prototype;
104
- return frag;
105
- };
106
-
107
- var origImportNode = Document.prototype.importNode;
108
- Document.prototype.importNode = function importNode(impNode, deep) {
109
- deep = deep || false;
110
- var newNode = origImportNode.call(this, impNode, deep);
111
- if (impNode instanceof DocumentFragment) {
112
- newNode.__proto__ = DocumentFragment.prototype;
113
- }
114
- return newNode;
115
- };
116
- })();
117
- }
118
-
119
- // NOTE: we rely on this cloneNode not causing element upgrade.
120
- // This means this polyfill must load before the CE polyfill and
121
- // this would need to be re-worked if a browser supports native CE
122
- // but not <template>.
123
- var capturedCloneNode = Node.prototype.cloneNode;
124
- var capturedCreateElement = Document.prototype.createElement;
125
- var capturedImportNode = Document.prototype.importNode;
126
- var capturedRemoveChild = Node.prototype.removeChild;
127
- var capturedAppendChild = Node.prototype.appendChild;
128
- var capturedReplaceChild = Node.prototype.replaceChild;
129
- var capturedParseFromString = DOMParser.prototype.parseFromString;
130
- var capturedHTMLElementInnerHTML = Object.getOwnPropertyDescriptor(window.HTMLElement.prototype, 'innerHTML') || {
131
- /**
132
- * @this {!HTMLElement}
133
- * @return {string}
134
- */
135
- get: function() {
136
- return this.innerHTML;
137
- },
138
- /**
139
- * @this {!HTMLElement}
140
- * @param {string}
141
- */
142
- set: function(text) {
143
- this.innerHTML = text;
144
- }
145
- };
146
- var capturedChildNodes = Object.getOwnPropertyDescriptor(window.Node.prototype, 'childNodes') || {
147
- /**
148
- * @this {!Node}
149
- * @return {!NodeList}
150
- */
151
- get: function() {
152
- return this.childNodes;
153
- }
154
- };
155
-
156
- var elementQuerySelectorAll = Element.prototype.querySelectorAll;
157
- var docQuerySelectorAll = Document.prototype.querySelectorAll;
158
- var fragQuerySelectorAll = DocumentFragment.prototype.querySelectorAll;
159
-
160
- var scriptSelector = 'script:not([type]),script[type="application/javascript"],script[type="text/javascript"]';
161
-
162
- function QSA(node, selector) {
163
- // IE 11 throws a SyntaxError with `scriptSelector` if the node has no children due to the `:not([type])` syntax
164
- if (!node.childNodes.length) {
165
- return [];
166
- }
167
- switch (node.nodeType) {
168
- case Node.DOCUMENT_NODE:
169
- return docQuerySelectorAll.call(node, selector);
170
- case Node.DOCUMENT_FRAGMENT_NODE:
171
- return fragQuerySelectorAll.call(node, selector);
172
- default:
173
- return elementQuerySelectorAll.call(node, selector);
174
- }
175
- }
176
-
177
- // returns true if nested templates cannot be cloned (they cannot be on
178
- // some impl's like Safari 8 and Edge)
179
- // OR if cloning a document fragment does not result in a document fragment
180
- var needsCloning = (function() {
181
- if (!needsTemplate) {
182
- var t = document.createElement('template');
183
- var t2 = document.createElement('template');
184
- t2.content.appendChild(document.createElement('div'));
185
- t.content.appendChild(t2);
186
- var clone = t.cloneNode(true);
187
- return (clone.content.childNodes.length === 0 || clone.content.firstChild.content.childNodes.length === 0
188
- || brokenDocFragment);
189
- }
190
- })();
191
-
192
- var TEMPLATE_TAG = 'template';
193
- var PolyfilledHTMLTemplateElement = function() {};
194
-
195
- if (needsTemplate) {
196
-
197
- var contentDoc = document.implementation.createHTMLDocument('template');
198
- var canDecorate = true;
199
-
200
- var templateStyle = document.createElement('style');
201
- templateStyle.textContent = TEMPLATE_TAG + '{display:none;}';
202
-
203
- var head = document.head;
204
- head.insertBefore(templateStyle, head.firstElementChild);
205
-
206
- /**
207
- Provides a minimal shim for the <template> element.
208
- */
209
- PolyfilledHTMLTemplateElement.prototype = Object.create(HTMLElement.prototype);
210
-
211
-
212
- // if elements do not have `innerHTML` on instances, then
213
- // templates can be patched by swizzling their prototypes.
214
- var canProtoPatch =
215
- !(document.createElement('div').hasOwnProperty('innerHTML'));
216
-
217
- /**
218
- The `decorate` method moves element children to the template's `content`.
219
- NOTE: there is no support for dynamically adding elements to templates.
220
- */
221
- PolyfilledHTMLTemplateElement.decorate = function(template) {
222
- // if the template is decorated or not in HTML namespace, return fast
223
- if (template.content ||
224
- template.namespaceURI !== document.documentElement.namespaceURI) {
225
- return;
226
- }
227
- template.content = contentDoc.createDocumentFragment();
228
- var child;
229
- while ((child = template.firstChild)) {
230
- capturedAppendChild.call(template.content, child);
231
- }
232
- // NOTE: prefer prototype patching for performance and
233
- // because on some browsers (IE11), re-defining `innerHTML`
234
- // can result in intermittent errors.
235
- if (canProtoPatch) {
236
- template.__proto__ = PolyfilledHTMLTemplateElement.prototype;
237
- } else {
238
- template.cloneNode = function(deep) {
239
- return PolyfilledHTMLTemplateElement._cloneNode(this, deep);
240
- };
241
- // add innerHTML to template, if possible
242
- // Note: this throws on Safari 7
243
- if (canDecorate) {
244
- try {
245
- defineInnerHTML(template);
246
- defineOuterHTML(template);
247
- } catch (err) {
248
- canDecorate = false;
249
- }
250
- }
251
- }
252
- // bootstrap recursively
253
- PolyfilledHTMLTemplateElement.bootstrap(template.content);
254
- };
255
-
256
- // Taken from https://github.com/jquery/jquery/blob/73d7e6259c63ac45f42c6593da8c2796c6ce9281/src/manipulation/wrapMap.js
257
- var topLevelWrappingMap = {
258
- 'option': ['select'],
259
- 'thead': ['table'],
260
- 'col': ['colgroup', 'table'],
261
- 'tr': ['tbody', 'table'],
262
- 'th': ['tr', 'tbody', 'table'],
263
- 'td': ['tr', 'tbody', 'table']
264
- };
265
-
266
- var getTagName = function(text) {
267
- // Taken from https://github.com/jquery/jquery/blob/73d7e6259c63ac45f42c6593da8c2796c6ce9281/src/manipulation/var/rtagName.js
268
- return ( /<([a-z][^/\0>\x20\t\r\n\f]+)/i.exec(text) || ['', ''])[1].toLowerCase();
269
- };
270
-
271
- var defineInnerHTML = function defineInnerHTML(obj) {
272
- Object.defineProperty(obj, 'innerHTML', {
273
- get: function() {
274
- return getInnerHTML(this);
275
- },
276
- set: function(text) {
277
- // For IE11, wrap the text in the correct (table) context
278
- var wrap = topLevelWrappingMap[getTagName(text)];
279
- if (wrap) {
280
- for (var i = 0; i < wrap.length; i++) {
281
- text = '<' + wrap[i] + '>' + text + '</' + wrap[i] + '>';
282
- }
283
- }
284
- contentDoc.body.innerHTML = text;
285
- PolyfilledHTMLTemplateElement.bootstrap(contentDoc);
286
- while (this.content.firstChild) {
287
- capturedRemoveChild.call(this.content, this.content.firstChild);
288
- }
289
- var body = contentDoc.body;
290
- // If we had wrapped, get back to the original node
291
- if (wrap) {
292
- for (var j = 0; j < wrap.length; j++) {
293
- body = body.lastChild;
294
- }
295
- }
296
- while (body.firstChild) {
297
- capturedAppendChild.call(this.content, body.firstChild);
298
- }
299
- },
300
- configurable: true
301
- });
302
- };
303
-
304
- var defineOuterHTML = function defineOuterHTML(obj) {
305
- Object.defineProperty(obj, 'outerHTML', {
306
- get: function() {
307
- return '<' + TEMPLATE_TAG + '>' + this.innerHTML + '</' + TEMPLATE_TAG + '>';
308
- },
309
- set: function(innerHTML) {
310
- if (this.parentNode) {
311
- contentDoc.body.innerHTML = innerHTML;
312
- var docFrag = this.ownerDocument.createDocumentFragment();
313
- while (contentDoc.body.firstChild) {
314
- capturedAppendChild.call(docFrag, contentDoc.body.firstChild);
315
- }
316
- capturedReplaceChild.call(this.parentNode, docFrag, this);
317
- } else {
318
- throw new Error("Failed to set the 'outerHTML' property on 'Element': This element has no parent node.");
319
- }
320
- },
321
- configurable: true
322
- });
323
- };
324
-
325
- defineInnerHTML(PolyfilledHTMLTemplateElement.prototype);
326
- defineOuterHTML(PolyfilledHTMLTemplateElement.prototype);
327
-
328
- /**
329
- The `bootstrap` method is called automatically and "fixes" all
330
- <template> elements in the document referenced by the `doc` argument.
331
- */
332
- PolyfilledHTMLTemplateElement.bootstrap = function bootstrap(doc) {
333
- var templates = QSA(doc, TEMPLATE_TAG);
334
- for (var i=0, l=templates.length, t; (i<l) && (t=templates[i]); i++) {
335
- PolyfilledHTMLTemplateElement.decorate(t);
336
- }
337
- };
338
-
339
- // auto-bootstrapping for main document
340
- document.addEventListener('DOMContentLoaded', function() {
341
- PolyfilledHTMLTemplateElement.bootstrap(document);
342
- });
343
-
344
- // Patch document.createElement to ensure newly created templates have content
345
- Document.prototype.createElement = function createElement() {
346
- var el = capturedCreateElement.apply(this, arguments);
347
- if (el.localName === 'template') {
348
- PolyfilledHTMLTemplateElement.decorate(el);
349
- }
350
- return el;
351
- };
352
-
353
- DOMParser.prototype.parseFromString = function() {
354
- var el = capturedParseFromString.apply(this, arguments);
355
- PolyfilledHTMLTemplateElement.bootstrap(el);
356
- return el;
357
- };
358
-
359
- Object.defineProperty(HTMLElement.prototype, 'innerHTML', {
360
- get: function() {
361
- return getInnerHTML(this);
362
- },
363
- set: function(text) {
364
- capturedHTMLElementInnerHTML.set.call(this, text);
365
- PolyfilledHTMLTemplateElement.bootstrap(this);
366
- },
367
- configurable: true,
368
- enumerable: true
369
- });
370
-
371
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#escapingString
372
- var escapeAttrRegExp = /[&\u00A0"]/g;
373
- var escapeDataRegExp = /[&\u00A0<>]/g;
374
-
375
- var escapeReplace = function(c) {
376
- switch (c) {
377
- case '&':
378
- return '&amp;';
379
- case '<':
380
- return '&lt;';
381
- case '>':
382
- return '&gt;';
383
- case '"':
384
- return '&quot;';
385
- case '\u00A0':
386
- return '&nbsp;';
387
- }
388
- };
389
-
390
- var escapeAttr = function(s) {
391
- return s.replace(escapeAttrRegExp, escapeReplace);
392
- };
393
-
394
- var escapeData = function(s) {
395
- return s.replace(escapeDataRegExp, escapeReplace);
396
- };
397
-
398
- var makeSet = function(arr) {
399
- var set = {};
400
- for (var i = 0; i < arr.length; i++) {
401
- set[arr[i]] = true;
402
- }
403
- return set;
404
- };
405
-
406
- // http://www.whatwg.org/specs/web-apps/current-work/#void-elements
407
- var voidElements = makeSet([
408
- 'area',
409
- 'base',
410
- 'br',
411
- 'col',
412
- 'command',
413
- 'embed',
414
- 'hr',
415
- 'img',
416
- 'input',
417
- 'keygen',
418
- 'link',
419
- 'meta',
420
- 'param',
421
- 'source',
422
- 'track',
423
- 'wbr'
424
- ]);
425
-
426
- var plaintextParents = makeSet([
427
- 'style',
428
- 'script',
429
- 'xmp',
430
- 'iframe',
431
- 'noembed',
432
- 'noframes',
433
- 'plaintext',
434
- 'noscript'
435
- ]);
436
-
437
- /**
438
- * @param {Node} node
439
- * @param {Node} parentNode
440
- * @param {Function=} callback
441
- */
442
- var getOuterHTML = function(node, parentNode, callback) {
443
- switch (node.nodeType) {
444
- case Node.ELEMENT_NODE: {
445
- var tagName = node.localName;
446
- var s = '<' + tagName;
447
- var attrs = node.attributes;
448
- for (var i = 0, attr; (attr = attrs[i]); i++) {
449
- s += ' ' + attr.name + '="' + escapeAttr(attr.value) + '"';
450
- }
451
- s += '>';
452
- if (voidElements[tagName]) {
453
- return s;
454
- }
455
- return s + getInnerHTML(node, callback) + '</' + tagName + '>';
456
- }
457
- case Node.TEXT_NODE: {
458
- var data = /** @type {Text} */ (node).data;
459
- if (parentNode && plaintextParents[parentNode.localName]) {
460
- return data;
461
- }
462
- return escapeData(data);
463
- }
464
- case Node.COMMENT_NODE: {
465
- return '<!--' + /** @type {Comment} */ (node).data + '-->';
466
- }
467
- default: {
468
- window.console.error(node);
469
- throw new Error('not implemented');
470
- }
471
- }
472
- };
473
-
474
- /**
475
- * @param {Node} node
476
- * @param {Function=} callback
477
- */
478
- var getInnerHTML = function(node, callback) {
479
- if (node.localName === 'template') {
480
- node = /** @type {HTMLTemplateElement} */ (node).content;
481
- }
482
- var s = '';
483
- var c$ = callback ? callback(node) : capturedChildNodes.get.call(node);
484
- for (var i=0, l=c$.length, child; (i<l) && (child=c$[i]); i++) {
485
- s += getOuterHTML(child, node, callback);
486
- }
487
- return s;
488
- };
489
-
490
- }
491
-
492
- // make cloning/importing work!
493
- if (needsTemplate || needsCloning) {
494
-
495
- PolyfilledHTMLTemplateElement._cloneNode = function _cloneNode(template, deep) {
496
- var clone = capturedCloneNode.call(template, false);
497
- // NOTE: decorate doesn't auto-fix children because they are already
498
- // decorated so they need special clone fixup.
499
- if (this.decorate) {
500
- this.decorate(clone);
501
- }
502
- if (deep) {
503
- // NOTE: use native clone node to make sure CE's wrapped
504
- // cloneNode does not cause elements to upgrade.
505
- capturedAppendChild.call(clone.content, capturedCloneNode.call(template.content, true));
506
- // now ensure nested templates are cloned correctly.
507
- fixClonedDom(clone.content, template.content);
508
- }
509
- return clone;
510
- };
511
-
512
- // Given a source and cloned subtree, find <template>'s in the cloned
513
- // subtree and replace them with cloned <template>'s from source.
514
- // We must do this because only the source templates have proper .content.
515
- var fixClonedDom = function fixClonedDom(clone, source) {
516
- // do nothing if cloned node is not an element
517
- if (!source.querySelectorAll) return;
518
- // these two lists should be coincident
519
- var s$ = QSA(source, TEMPLATE_TAG);
520
- if (s$.length === 0) {
521
- return;
522
- }
523
- var t$ = QSA(clone, TEMPLATE_TAG);
524
- for (var i=0, l=t$.length, t, s; i<l; i++) {
525
- s = s$[i];
526
- t = t$[i];
527
- if (PolyfilledHTMLTemplateElement && PolyfilledHTMLTemplateElement.decorate) {
528
- PolyfilledHTMLTemplateElement.decorate(s);
529
- }
530
- capturedReplaceChild.call(t.parentNode, cloneNode.call(s, true), t);
531
- }
532
- };
533
-
534
- // make sure scripts inside of a cloned template are executable
535
- var fixClonedScripts = function fixClonedScripts(fragment) {
536
- var scripts = QSA(fragment, scriptSelector);
537
- for (var ns, s, i = 0; i < scripts.length; i++) {
538
- s = scripts[i];
539
- ns = capturedCreateElement.call(document, 'script');
540
- ns.textContent = s.textContent;
541
- var attrs = s.attributes;
542
- for (var ai = 0, a; ai < attrs.length; ai++) {
543
- a = attrs[ai];
544
- ns.setAttribute(a.name, a.value);
545
- }
546
- capturedReplaceChild.call(s.parentNode, ns, s);
547
- }
548
- };
549
-
550
- // override all cloning to fix the cloned subtree to contain properly
551
- // cloned templates.
552
- var cloneNode = Node.prototype.cloneNode = function cloneNode(deep) {
553
- var dom;
554
- // workaround for Edge bug cloning documentFragments
555
- // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8619646/
556
- if (!needsDocFrag && brokenDocFragment && this instanceof DocumentFragment) {
557
- if (!deep) {
558
- return this.ownerDocument.createDocumentFragment();
559
- } else {
560
- dom = importNode.call(this.ownerDocument, this, true);
561
- }
562
- } else if (this.nodeType === Node.ELEMENT_NODE &&
563
- this.localName === TEMPLATE_TAG &&
564
- this.namespaceURI == document.documentElement.namespaceURI) {
565
- dom = PolyfilledHTMLTemplateElement._cloneNode(this, deep);
566
- } else {
567
- dom = capturedCloneNode.call(this, deep);
568
- }
569
- // template.content is cloned iff `deep`.
570
- if (deep) {
571
- fixClonedDom(dom, this);
572
- }
573
- return dom;
574
- };
575
-
576
- // NOTE: we are cloning instead of importing <template>'s.
577
- // However, the ownerDocument of the cloned template will be correct!
578
- // This is because the native import node creates the right document owned
579
- // subtree and `fixClonedDom` inserts cloned templates into this subtree,
580
- // thus updating the owner doc.
581
- var importNode = Document.prototype.importNode = function importNode(element, deep) {
582
- deep = deep || false;
583
- if (element.localName === TEMPLATE_TAG) {
584
- return PolyfilledHTMLTemplateElement._cloneNode(element, deep);
585
- } else {
586
- var dom = capturedImportNode.call(this, element, deep);
587
- if (deep) {
588
- fixClonedDom(dom, element);
589
- fixClonedScripts(dom);
590
- }
591
- return dom;
592
- }
593
- };
594
- }
595
-
596
- if (needsTemplate) {
597
- window.HTMLTemplateElement = PolyfilledHTMLTemplateElement;
598
- }
599
-
600
- })();