@ui5/webcomponents-base 0.0.0-e463d2345 → 0.0.0-e55c2cec6

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 (851) hide show
  1. package/.eslintignore +5 -0
  2. package/CHANGELOG.md +512 -0
  3. package/README.md +53 -7
  4. package/bundle.esm.js +29 -21
  5. package/dist/AssetRegistry.d.ts +5 -0
  6. package/dist/AssetRegistry.js +6 -9
  7. package/dist/AssetRegistry.js.map +1 -0
  8. package/dist/Boot.d.ts +8 -0
  9. package/dist/Boot.js +44 -0
  10. package/dist/Boot.js.map +1 -0
  11. package/dist/CSP.d.ts +30 -0
  12. package/dist/CSP.js +51 -0
  13. package/dist/CSP.js.map +1 -0
  14. package/dist/CustomElementsRegistry.d.ts +5 -0
  15. package/dist/CustomElementsRegistry.js +78 -0
  16. package/dist/CustomElementsRegistry.js.map +1 -0
  17. package/dist/CustomElementsScope.d.ts +7 -0
  18. package/dist/CustomElementsScope.js +11 -0
  19. package/dist/CustomElementsScope.js.map +1 -0
  20. package/dist/CustomElementsScopeUtils.d.ts +55 -0
  21. package/dist/CustomElementsScopeUtils.js +90 -0
  22. package/dist/CustomElementsScopeUtils.js.map +1 -0
  23. package/dist/DOMObserver.d.ts +11 -0
  24. package/dist/DOMObserver.js +23 -0
  25. package/dist/DOMObserver.js.map +1 -0
  26. package/dist/Device.d.ts +12 -0
  27. package/dist/Device.js +84 -816
  28. package/dist/Device.js.map +1 -0
  29. package/dist/EventProvider.d.ts +25 -0
  30. package/dist/EventProvider.js +67 -70
  31. package/dist/EventProvider.js.map +1 -0
  32. package/dist/FeaturesRegistry.d.ts +3 -0
  33. package/dist/FeaturesRegistry.js +5 -7
  34. package/dist/FeaturesRegistry.js.map +1 -0
  35. package/dist/FontFace.d.ts +2 -0
  36. package/dist/FontFace.js +22 -63
  37. package/dist/FontFace.js.map +1 -0
  38. package/dist/InitialConfiguration.d.ts +22 -0
  39. package/dist/InitialConfiguration.js +124 -96
  40. package/dist/InitialConfiguration.js.map +1 -0
  41. package/dist/Keys.d.ts +57 -0
  42. package/dist/Keys.js +178 -0
  43. package/dist/Keys.js.map +1 -0
  44. package/dist/ManagedStyles.d.ts +8 -0
  45. package/dist/ManagedStyles.js +77 -0
  46. package/dist/ManagedStyles.js.map +1 -0
  47. package/dist/MarkedEvents.d.ts +9 -0
  48. package/dist/MarkedEvents.js +15 -0
  49. package/dist/MarkedEvents.js.map +1 -0
  50. package/dist/MediaRange.d.ts +37 -0
  51. package/dist/MediaRange.js +98 -0
  52. package/dist/MediaRange.js.map +1 -0
  53. package/dist/PropertiesFileFormat.d.ts +8 -0
  54. package/dist/PropertiesFileFormat.js +85 -0
  55. package/dist/PropertiesFileFormat.js.map +1 -0
  56. package/dist/Render.d.ts +47 -0
  57. package/dist/Render.js +143 -0
  58. package/dist/Render.js.map +1 -0
  59. package/dist/RenderQueue.d.ts +19 -0
  60. package/dist/RenderQueue.js +53 -39
  61. package/dist/RenderQueue.js.map +1 -0
  62. package/dist/Runtimes.d.ts +27 -0
  63. package/dist/Runtimes.js +86 -0
  64. package/dist/Runtimes.js.map +1 -0
  65. package/dist/StaticArea.d.ts +0 -0
  66. package/dist/StaticArea.js +5 -34
  67. package/dist/StaticArea.js.map +1 -0
  68. package/dist/StaticAreaItem.d.ts +36 -0
  69. package/dist/StaticAreaItem.js +92 -60
  70. package/dist/StaticAreaItem.js.map +1 -0
  71. package/dist/SystemCSSVars.d.ts +2 -0
  72. package/dist/SystemCSSVars.js +9 -0
  73. package/dist/SystemCSSVars.js.map +1 -0
  74. package/dist/Theming.d.ts +3 -0
  75. package/dist/Theming.js +4 -45
  76. package/dist/Theming.js.map +1 -0
  77. package/dist/UI5Element.d.ts +373 -0
  78. package/dist/UI5Element.js +950 -825
  79. package/dist/UI5Element.js.map +1 -0
  80. package/dist/UI5ElementMetadata.d.ts +150 -0
  81. package/dist/UI5ElementMetadata.js +278 -135
  82. package/dist/UI5ElementMetadata.js.map +1 -0
  83. package/dist/animations/AnimationQueue.d.ts +8 -0
  84. package/dist/animations/AnimationQueue.js +31 -38
  85. package/dist/animations/AnimationQueue.js.map +1 -0
  86. package/dist/animations/animate.d.ts +14 -0
  87. package/dist/animations/animate.js +46 -51
  88. package/dist/animations/animate.js.map +1 -0
  89. package/dist/animations/scroll.d.ts +5 -0
  90. package/dist/animations/scroll.js +18 -27
  91. package/dist/animations/scroll.js.map +1 -0
  92. package/dist/animations/slideDown.d.ts +5 -0
  93. package/dist/animations/slideDown.js +53 -78
  94. package/dist/animations/slideDown.js.map +1 -0
  95. package/dist/animations/slideUp.d.ts +5 -0
  96. package/dist/animations/slideUp.js +49 -70
  97. package/dist/animations/slideUp.js.map +1 -0
  98. package/dist/api.json +1 -0
  99. package/dist/asset-registries/Icons.d.ts +30 -0
  100. package/dist/asset-registries/Icons.js +104 -24
  101. package/dist/asset-registries/Icons.js.map +1 -0
  102. package/dist/asset-registries/Illustrations.d.ts +17 -0
  103. package/dist/asset-registries/Illustrations.js +46 -0
  104. package/dist/asset-registries/Illustrations.js.map +1 -0
  105. package/dist/asset-registries/LocaleData.d.ts +7 -0
  106. package/dist/asset-registries/LocaleData.js +127 -92
  107. package/dist/asset-registries/LocaleData.js.map +1 -0
  108. package/dist/asset-registries/Themes.d.ts +10 -0
  109. package/dist/asset-registries/Themes.js +40 -65
  110. package/dist/asset-registries/Themes.js.map +1 -0
  111. package/dist/asset-registries/i18n.d.ts +23 -0
  112. package/dist/asset-registries/i18n.js +78 -58
  113. package/dist/asset-registries/i18n.js.map +1 -0
  114. package/dist/assets/bundle.esm.ffad994a.js +56 -0
  115. package/dist/assets-meta/IconCollectionsAlias.d.ts +17 -0
  116. package/dist/assets-meta/IconCollectionsAlias.js +18 -0
  117. package/dist/assets-meta/IconCollectionsAlias.js.map +1 -0
  118. package/dist/config/AnimationMode.d.ts +14 -0
  119. package/dist/config/AnimationMode.js +23 -6
  120. package/dist/config/AnimationMode.js.map +1 -0
  121. package/dist/config/CalendarType.d.ts +8 -0
  122. package/dist/config/CalendarType.js +15 -14
  123. package/dist/config/CalendarType.js.map +1 -0
  124. package/dist/config/FormatSettings.d.ts +11 -0
  125. package/dist/config/FormatSettings.js +11 -5
  126. package/dist/config/FormatSettings.js.map +1 -0
  127. package/dist/config/Icons.d.ts +30 -0
  128. package/dist/config/Icons.js +48 -0
  129. package/dist/config/Icons.js.map +1 -0
  130. package/dist/config/Language.d.ts +31 -0
  131. package/dist/config/Language.js +54 -7
  132. package/dist/config/Language.js.map +1 -0
  133. package/dist/config/NoConflict.d.ts +20 -0
  134. package/dist/config/NoConflict.js +40 -34
  135. package/dist/config/NoConflict.js.map +1 -0
  136. package/dist/config/RTL.d.ts +7 -0
  137. package/dist/config/RTL.js +23 -20
  138. package/dist/config/RTL.js.map +1 -0
  139. package/dist/config/Theme.d.ts +28 -0
  140. package/dist/config/Theme.js +46 -19
  141. package/dist/config/Theme.js.map +1 -0
  142. package/dist/config/ThemeRoots.d.ts +4 -0
  143. package/dist/config/ThemeRoots.js +28 -0
  144. package/dist/config/ThemeRoots.js.map +1 -0
  145. package/dist/css/BusyIndicator.css +80 -0
  146. package/dist/css/FontFace.css +66 -0
  147. package/dist/css/OverrideFontFace.css +32 -0
  148. package/dist/css/SystemCSSVars.css +17 -0
  149. package/dist/decorators/customElement.d.ts +8 -0
  150. package/dist/decorators/customElement.js +16 -0
  151. package/dist/decorators/customElement.js.map +1 -0
  152. package/dist/decorators/event.d.ts +10 -0
  153. package/dist/decorators/event.js +24 -0
  154. package/dist/decorators/event.js.map +1 -0
  155. package/dist/decorators/fastNavigation.d.ts +7 -0
  156. package/dist/decorators/fastNavigation.js +13 -0
  157. package/dist/decorators/fastNavigation.js.map +1 -0
  158. package/dist/decorators/languageAware.d.ts +7 -0
  159. package/dist/decorators/languageAware.js +13 -0
  160. package/dist/decorators/languageAware.js.map +1 -0
  161. package/dist/decorators/property.d.ts +9 -0
  162. package/dist/decorators/property.js +24 -0
  163. package/dist/decorators/property.js.map +1 -0
  164. package/dist/decorators/slot.d.ts +9 -0
  165. package/dist/decorators/slot.js +37 -0
  166. package/dist/decorators/slot.js.map +1 -0
  167. package/dist/decorators/themeAware.d.ts +7 -0
  168. package/dist/decorators/themeAware.js +13 -0
  169. package/dist/decorators/themeAware.js.map +1 -0
  170. package/dist/delegate/ItemNavigation.d.ts +113 -0
  171. package/dist/delegate/ItemNavigation.js +312 -230
  172. package/dist/delegate/ItemNavigation.js.map +1 -0
  173. package/dist/delegate/ResizeHandler.d.ts +24 -0
  174. package/dist/delegate/ResizeHandler.js +80 -63
  175. package/dist/delegate/ResizeHandler.js.map +1 -0
  176. package/dist/delegate/ScrollEnablement.d.ts +48 -0
  177. package/dist/delegate/ScrollEnablement.js +159 -74
  178. package/dist/delegate/ScrollEnablement.js.map +1 -0
  179. package/dist/features/F6Navigation.d.ts +16 -0
  180. package/dist/features/F6Navigation.js +112 -0
  181. package/dist/features/F6Navigation.js.map +1 -0
  182. package/dist/features/OpenUI5Element.d.ts +9 -0
  183. package/dist/features/OpenUI5Element.js +5 -0
  184. package/dist/features/OpenUI5Element.js.map +1 -0
  185. package/dist/features/OpenUI5Enablement.d.ts +11 -0
  186. package/dist/features/OpenUI5Enablement.js +96 -0
  187. package/dist/features/OpenUI5Enablement.js.map +1 -0
  188. package/dist/features/OpenUI5Support.d.ts +23 -0
  189. package/dist/features/OpenUI5Support.js +97 -0
  190. package/dist/features/OpenUI5Support.js.map +1 -0
  191. package/dist/generated/AssetParameters.js +13 -0
  192. package/dist/generated/VersionInfo.js +10 -0
  193. package/dist/generated/css/BusyIndicator.css.js +5 -0
  194. package/dist/generated/css/FontFace.css.js +5 -0
  195. package/dist/generated/css/OverrideFontFace.css.js +5 -0
  196. package/dist/generated/css/SystemCSSVars.css.js +5 -0
  197. package/dist/generated/templates/elements/WithComplexTemplateTemplate.lit.js +11 -0
  198. package/dist/getSharedResource.d.ts +11 -0
  199. package/dist/getSharedResource.js +26 -0
  200. package/dist/getSharedResource.js.map +1 -0
  201. package/dist/i18nBundle.d.ts +43 -0
  202. package/dist/i18nBundle.js +73 -30
  203. package/dist/i18nBundle.js.map +1 -0
  204. package/dist/locale/Locale.d.ts +22 -0
  205. package/dist/locale/Locale.js +79 -0
  206. package/dist/locale/Locale.js.map +1 -0
  207. package/dist/locale/RTLAwareRegistry.d.ts +4 -0
  208. package/dist/locale/RTLAwareRegistry.js +9 -0
  209. package/dist/locale/RTLAwareRegistry.js.map +1 -0
  210. package/dist/locale/applyDirection.d.ts +10 -0
  211. package/dist/locale/applyDirection.js +17 -0
  212. package/dist/locale/applyDirection.js.map +1 -0
  213. package/dist/locale/directionChange.d.ts +15 -0
  214. package/dist/locale/directionChange.js +24 -0
  215. package/dist/locale/directionChange.js.map +1 -0
  216. package/dist/locale/getEffectiveDir.d.ts +2 -0
  217. package/dist/locale/getEffectiveDir.js +24 -0
  218. package/dist/locale/getEffectiveDir.js.map +1 -0
  219. package/dist/locale/getLocale.d.ts +7 -0
  220. package/dist/locale/getLocale.js +38 -0
  221. package/dist/locale/getLocale.js.map +1 -0
  222. package/dist/locale/languageChange.d.ts +5 -0
  223. package/dist/locale/languageChange.js +14 -0
  224. package/dist/locale/languageChange.js.map +1 -0
  225. package/dist/locale/nextFallbackLocale.d.ts +8 -0
  226. package/dist/locale/nextFallbackLocale.js +24 -0
  227. package/dist/locale/nextFallbackLocale.js.map +1 -0
  228. package/dist/locale/normalizeLocale.d.ts +7 -0
  229. package/dist/locale/normalizeLocale.js +47 -0
  230. package/dist/locale/normalizeLocale.js.map +1 -0
  231. package/dist/renderer/LitRenderer.d.ts +14 -0
  232. package/dist/renderer/LitRenderer.js +38 -12
  233. package/dist/renderer/LitRenderer.js.map +1 -0
  234. package/dist/renderer/directives/style-map.js +72 -0
  235. package/dist/renderer/executeTemplate.d.ts +13 -0
  236. package/dist/renderer/executeTemplate.js +30 -0
  237. package/dist/renderer/executeTemplate.js.map +1 -0
  238. package/dist/sap/base/Log.js +240 -0
  239. package/dist/sap/base/assert.js +7 -0
  240. package/dist/sap/base/security/URLListValidator.js +159 -0
  241. package/dist/sap/base/security/encodeCSS.js +14 -0
  242. package/dist/sap/base/security/encodeXML.js +23 -0
  243. package/dist/sap/base/security/sanitizeHTML.js +16 -0
  244. package/dist/sap/base/strings/toHex.js +8 -0
  245. package/dist/sap/base/util/now.js +7 -0
  246. package/dist/sap/ui/thirdparty/caja-html-sanitizer.js +3585 -0
  247. package/dist/theming/CustomStyle.d.ts +6 -0
  248. package/dist/theming/CustomStyle.js +44 -17
  249. package/dist/theming/CustomStyle.js.map +1 -0
  250. package/dist/theming/ThemeLoaded.d.ts +5 -0
  251. package/dist/theming/ThemeLoaded.js +14 -0
  252. package/dist/theming/ThemeLoaded.js.map +1 -0
  253. package/dist/theming/applyTheme.d.ts +2 -0
  254. package/dist/theming/applyTheme.js +75 -0
  255. package/dist/theming/applyTheme.js.map +1 -0
  256. package/dist/theming/getConstructableStyle.d.ts +9 -0
  257. package/dist/theming/getConstructableStyle.js +25 -0
  258. package/dist/theming/getConstructableStyle.js.map +1 -0
  259. package/dist/theming/getEffectiveLinksHrefs.d.ts +3 -0
  260. package/dist/theming/getEffectiveLinksHrefs.js +17 -0
  261. package/dist/theming/getEffectiveLinksHrefs.js.map +1 -0
  262. package/dist/theming/getEffectiveStyle.d.ts +3 -0
  263. package/dist/theming/getEffectiveStyle.js +32 -0
  264. package/dist/theming/getEffectiveStyle.js.map +1 -0
  265. package/dist/theming/getStylesString.d.ts +3 -0
  266. package/dist/theming/getStylesString.js +11 -0
  267. package/dist/theming/getStylesString.js.map +1 -0
  268. package/dist/theming/getThemeDesignerTheme.d.ts +7 -0
  269. package/dist/theming/getThemeDesignerTheme.js +80 -0
  270. package/dist/theming/getThemeDesignerTheme.js.map +1 -0
  271. package/dist/theming/preloadLinks.d.ts +3 -0
  272. package/dist/theming/preloadLinks.js +19 -0
  273. package/dist/theming/preloadLinks.js.map +1 -0
  274. package/dist/thirdparty/_merge.d.ts +2 -0
  275. package/dist/thirdparty/_merge.js +35 -0
  276. package/dist/thirdparty/_merge.js.map +1 -0
  277. package/dist/thirdparty/isPlainObject.d.ts +2 -0
  278. package/dist/thirdparty/isPlainObject.js +19 -0
  279. package/dist/thirdparty/isPlainObject.js.map +1 -0
  280. package/dist/thirdparty/merge.d.ts +2 -0
  281. package/dist/thirdparty/merge.js +6 -0
  282. package/dist/thirdparty/merge.js.map +1 -0
  283. package/dist/types/AnimationMode.d.ts +32 -0
  284. package/dist/types/AnimationMode.js +33 -6
  285. package/dist/types/AnimationMode.js.map +1 -0
  286. package/dist/types/CSSColor.d.ts +16 -0
  287. package/dist/types/CSSColor.js +19 -0
  288. package/dist/types/CSSColor.js.map +1 -0
  289. package/dist/types/CalendarType.d.ts +37 -0
  290. package/dist/types/CalendarType.js +39 -0
  291. package/dist/types/CalendarType.js.map +1 -0
  292. package/dist/types/DOMReference.d.ts +17 -0
  293. package/dist/types/DOMReference.js +25 -0
  294. package/dist/types/DOMReference.js.map +1 -0
  295. package/dist/types/DataType.d.ts +25 -0
  296. package/dist/types/DataType.js +33 -14
  297. package/dist/types/DataType.js.map +1 -0
  298. package/dist/types/Float.d.ts +18 -0
  299. package/dist/types/Float.js +22 -0
  300. package/dist/types/Float.js.map +1 -0
  301. package/dist/types/Integer.d.ts +18 -0
  302. package/dist/types/Integer.js +18 -5
  303. package/dist/types/Integer.js.map +1 -0
  304. package/dist/types/InvisibleMessageMode.d.ts +25 -0
  305. package/dist/types/InvisibleMessageMode.js +27 -0
  306. package/dist/types/InvisibleMessageMode.js.map +1 -0
  307. package/dist/types/ItemNavigationBehavior.d.ts +24 -0
  308. package/dist/types/ItemNavigationBehavior.js +22 -17
  309. package/dist/types/ItemNavigationBehavior.js.map +1 -0
  310. package/dist/types/NavigationMode.d.ts +32 -0
  311. package/dist/types/NavigationMode.js +33 -5
  312. package/dist/types/NavigationMode.js.map +1 -0
  313. package/dist/types/ValueState.d.ts +42 -0
  314. package/dist/types/ValueState.js +41 -18
  315. package/dist/types/ValueState.js.map +1 -0
  316. package/dist/types.d.ts +18 -0
  317. package/dist/types.js +2 -0
  318. package/dist/types.js.map +1 -0
  319. package/dist/updateShadowRoot.d.ts +8 -0
  320. package/dist/updateShadowRoot.js +34 -0
  321. package/dist/updateShadowRoot.js.map +1 -0
  322. package/dist/util/AriaLabelHelper.d.ts +6 -0
  323. package/dist/util/AriaLabelHelper.js +44 -0
  324. package/dist/util/AriaLabelHelper.js.map +1 -0
  325. package/dist/util/Caret.d.ts +7 -0
  326. package/dist/util/Caret.js +23 -0
  327. package/dist/util/Caret.js.map +1 -0
  328. package/dist/util/ColorConversion.d.ts +30 -0
  329. package/dist/util/ColorConversion.js +337 -0
  330. package/dist/util/ColorConversion.js.map +1 -0
  331. package/dist/util/FetchHelper.d.ts +3 -0
  332. package/dist/util/FetchHelper.js +19 -25
  333. package/dist/util/FetchHelper.js.map +1 -0
  334. package/dist/util/FocusableElements.d.ts +4 -0
  335. package/dist/util/FocusableElements.js +58 -56
  336. package/dist/util/FocusableElements.js.map +1 -0
  337. package/dist/util/HTMLSanitizer.d.ts +3 -0
  338. package/dist/util/HTMLSanitizer.js +6 -0
  339. package/dist/util/HTMLSanitizer.js.map +1 -0
  340. package/dist/util/InvisibleMessage.d.ts +10 -0
  341. package/dist/util/InvisibleMessage.js +56 -0
  342. package/dist/util/InvisibleMessage.js.map +1 -0
  343. package/dist/util/PopupUtils.d.ts +7 -0
  344. package/dist/util/PopupUtils.js +74 -0
  345. package/dist/util/PopupUtils.js.map +1 -0
  346. package/dist/util/SlotsHelper.d.ts +9 -0
  347. package/dist/util/SlotsHelper.js +30 -0
  348. package/dist/util/SlotsHelper.js.map +1 -0
  349. package/dist/util/StringHelper.d.ts +3 -0
  350. package/dist/util/StringHelper.js +21 -9
  351. package/dist/util/StringHelper.js.map +1 -0
  352. package/dist/util/TabbableElements.d.ts +17 -0
  353. package/dist/util/TabbableElements.js +53 -40
  354. package/dist/util/TabbableElements.js.map +1 -0
  355. package/dist/util/arraysAreEqual.d.ts +2 -0
  356. package/dist/util/arraysAreEqual.js +13 -0
  357. package/dist/util/arraysAreEqual.js.map +1 -0
  358. package/dist/util/clamp.d.ts +9 -0
  359. package/dist/util/clamp.js +12 -0
  360. package/dist/util/clamp.js.map +1 -0
  361. package/dist/util/createLinkInHead.d.ts +7 -0
  362. package/dist/util/createLinkInHead.js +21 -0
  363. package/dist/util/createLinkInHead.js.map +1 -0
  364. package/dist/util/createStyleInHead.d.ts +8 -0
  365. package/dist/util/createStyleInHead.js +10 -10
  366. package/dist/util/createStyleInHead.js.map +1 -0
  367. package/dist/util/debounce.d.ts +2 -0
  368. package/dist/util/debounce.js +15 -0
  369. package/dist/util/debounce.js.map +1 -0
  370. package/dist/util/detectNavigatorLanguage.d.ts +2 -0
  371. package/dist/util/detectNavigatorLanguage.js +8 -9
  372. package/dist/util/detectNavigatorLanguage.js.map +1 -0
  373. package/dist/util/escapeRegex.d.ts +8 -0
  374. package/dist/util/escapeRegex.js +11 -0
  375. package/dist/util/escapeRegex.js.map +1 -0
  376. package/dist/util/formatMessage.d.ts +2 -0
  377. package/dist/util/formatMessage.js +15 -19
  378. package/dist/util/formatMessage.js.map +1 -0
  379. package/dist/util/generateHighlightedMarkup.d.ts +9 -0
  380. package/dist/util/generateHighlightedMarkup.js +41 -0
  381. package/dist/util/generateHighlightedMarkup.js.map +1 -0
  382. package/dist/util/getActiveElement.d.ts +2 -0
  383. package/dist/util/getActiveElement.js +9 -0
  384. package/dist/util/getActiveElement.js.map +1 -0
  385. package/dist/util/getClassCopy.d.ts +400 -0
  386. package/dist/util/getClassCopy.js +10 -0
  387. package/dist/util/getClassCopy.js.map +1 -0
  388. package/dist/util/getDesigntimePropertyAsArray.d.ts +2 -0
  389. package/dist/util/getDesigntimePropertyAsArray.js +4 -3
  390. package/dist/util/getDesigntimePropertyAsArray.js.map +1 -0
  391. package/dist/util/getEffectiveContentDensity.d.ts +2 -0
  392. package/dist/util/getEffectiveContentDensity.js +4 -0
  393. package/dist/util/getEffectiveContentDensity.js.map +1 -0
  394. package/dist/util/getEffectiveScrollbarStyle.d.ts +2 -0
  395. package/dist/util/getEffectiveScrollbarStyle.js +4 -0
  396. package/dist/util/getEffectiveScrollbarStyle.js.map +1 -0
  397. package/dist/util/getFastNavigationGroups.d.ts +2 -0
  398. package/dist/util/getFastNavigationGroups.js +51 -0
  399. package/dist/util/getFastNavigationGroups.js.map +1 -0
  400. package/dist/util/getFileExtension.d.ts +12 -0
  401. package/dist/util/getFileExtension.js +19 -0
  402. package/dist/util/getFileExtension.js.map +1 -0
  403. package/dist/util/getNormalizedTarget.d.ts +7 -0
  404. package/dist/util/getNormalizedTarget.js +14 -0
  405. package/dist/util/getNormalizedTarget.js.map +1 -0
  406. package/dist/util/getSingletonElementInstance.d.ts +2 -0
  407. package/dist/util/getSingletonElementInstance.js +10 -0
  408. package/dist/util/getSingletonElementInstance.js.map +1 -0
  409. package/dist/util/isElementClickable.d.ts +2 -0
  410. package/dist/util/isElementClickable.js +16 -0
  411. package/dist/util/isElementClickable.js.map +1 -0
  412. package/dist/util/isElementHidden.d.ts +2 -0
  413. package/dist/util/isElementHidden.js +8 -0
  414. package/dist/util/isElementHidden.js.map +1 -0
  415. package/dist/util/isElementInView.d.ts +6 -0
  416. package/dist/util/isElementInView.js +12 -0
  417. package/dist/util/isElementInView.js.map +1 -0
  418. package/dist/util/isElementTabbable.d.ts +9 -0
  419. package/dist/util/isElementTabbable.js +30 -0
  420. package/dist/util/isElementTabbable.js.map +1 -0
  421. package/dist/util/isValidPropertyName.d.ts +8 -0
  422. package/dist/util/isValidPropertyName.js +20 -12
  423. package/dist/util/isValidPropertyName.js.map +1 -0
  424. package/dist/util/whenDOMReady.d.ts +2 -0
  425. package/dist/util/whenDOMReady.js +11 -10
  426. package/dist/util/whenDOMReady.js.map +1 -0
  427. package/dist/util/willShowContent.d.ts +2 -0
  428. package/dist/util/willShowContent.js +7 -0
  429. package/dist/util/willShowContent.js.map +1 -0
  430. package/dist/validateThemeRoot.d.ts +2 -0
  431. package/dist/validateThemeRoot.js +47 -0
  432. package/dist/validateThemeRoot.js.map +1 -0
  433. package/global.d.ts +44 -0
  434. package/index.js +1 -1
  435. package/lib/generate-asset-parameters/index.js +25 -0
  436. package/lib/generate-styles/index.js +26 -0
  437. package/lib/generate-version-info/index.js +32 -0
  438. package/package-scripts.js +52 -27
  439. package/package.json +22 -14
  440. package/src/AssetRegistry.ts +11 -0
  441. package/src/Boot.ts +61 -0
  442. package/src/CSP.ts +66 -0
  443. package/src/CustomElementsRegistry.ts +98 -0
  444. package/src/CustomElementsScope.ts +33 -0
  445. package/src/CustomElementsScopeUtils.ts +115 -0
  446. package/src/DOMObserver.ts +28 -0
  447. package/src/Device.ts +124 -0
  448. package/src/EventProvider.ts +87 -0
  449. package/src/FeaturesRegistry.ts +14 -0
  450. package/src/FontFace.ts +31 -0
  451. package/src/InitialConfiguration.ts +207 -0
  452. package/src/Keys.ts +295 -0
  453. package/src/ManagedStyles.ts +92 -0
  454. package/src/MarkedEvents.ts +20 -0
  455. package/src/MediaRange.ts +110 -0
  456. package/src/PropertiesFileFormat.ts +95 -0
  457. package/src/Render.ts +180 -0
  458. package/src/RenderQueue.ts +71 -0
  459. package/src/Runtimes.ts +114 -0
  460. package/src/StaticArea.ts +3 -0
  461. package/src/StaticAreaItem.ts +113 -0
  462. package/src/SystemCSSVars.ts +10 -0
  463. package/src/Theming.ts +4 -0
  464. package/src/UI5Element.ts +1155 -0
  465. package/src/UI5ElementMetadata.ts +389 -0
  466. package/src/animations/{AnimationQueue.js → AnimationQueue.ts} +8 -7
  467. package/src/animations/animate.ts +64 -0
  468. package/src/animations/scroll.ts +21 -0
  469. package/src/animations/{slideDown.js → slideDown.ts} +27 -34
  470. package/src/animations/{slideUp.js → slideUp.ts} +28 -32
  471. package/src/asset-registries/Icons.ts +162 -0
  472. package/src/asset-registries/Illustrations.ts +75 -0
  473. package/src/asset-registries/LocaleData.ts +172 -0
  474. package/src/asset-registries/Themes.ts +67 -0
  475. package/src/asset-registries/i18n.ts +118 -0
  476. package/src/assets-meta/IconCollectionsAlias.ts +18 -0
  477. package/src/config/AnimationMode.ts +33 -0
  478. package/src/config/CalendarType.ts +23 -0
  479. package/src/config/FormatSettings.ts +21 -0
  480. package/src/config/Icons.ts +59 -0
  481. package/src/config/Language.ts +72 -0
  482. package/src/config/NoConflict.ts +67 -0
  483. package/src/config/{RTL.js → RTL.ts} +14 -4
  484. package/src/config/Theme.ts +64 -0
  485. package/src/config/ThemeRoots.ts +41 -0
  486. package/src/css/BusyIndicator.css +80 -0
  487. package/src/css/FontFace.css +66 -0
  488. package/src/css/OverrideFontFace.css +32 -0
  489. package/src/css/SystemCSSVars.css +17 -0
  490. package/src/decorators/customElement.ts +17 -0
  491. package/src/decorators/event.ts +28 -0
  492. package/src/decorators/fastNavigation.ts +14 -0
  493. package/src/decorators/languageAware.ts +14 -0
  494. package/src/decorators/property.ts +30 -0
  495. package/src/decorators/slot.ts +49 -0
  496. package/src/decorators/themeAware.ts +14 -0
  497. package/src/delegate/ItemNavigation.ts +393 -0
  498. package/src/delegate/ResizeHandler.ts +95 -0
  499. package/src/delegate/ScrollEnablement.ts +221 -0
  500. package/src/features/F6Navigation.ts +141 -0
  501. package/src/features/OpenUI5Element.ts +11 -0
  502. package/src/features/OpenUI5Enablement.ts +117 -0
  503. package/src/features/OpenUI5Support.ts +148 -0
  504. package/src/getSharedResource.ts +30 -0
  505. package/src/i18nBundle.ts +108 -0
  506. package/{dist/Locale.js → src/locale/Locale.ts} +14 -14
  507. package/src/locale/RTLAwareRegistry.ts +16 -0
  508. package/src/locale/applyDirection.ts +18 -0
  509. package/src/locale/directionChange.ts +34 -0
  510. package/src/locale/getEffectiveDir.ts +28 -0
  511. package/src/locale/getLocale.ts +46 -0
  512. package/src/locale/languageChange.ts +24 -0
  513. package/src/locale/nextFallbackLocale.ts +28 -0
  514. package/{dist/util/normalizeLocale.js → src/locale/normalizeLocale.ts} +12 -33
  515. package/src/renderer/LitRenderer.ts +60 -0
  516. package/src/renderer/directives/style-map.js +72 -0
  517. package/src/renderer/executeTemplate.ts +40 -0
  518. package/src/theming/CustomStyle.ts +62 -0
  519. package/src/theming/ThemeLoaded.ts +24 -0
  520. package/src/theming/applyTheme.ts +90 -0
  521. package/src/theming/getConstructableStyle.ts +31 -0
  522. package/src/theming/getEffectiveLinksHrefs.ts +26 -0
  523. package/src/theming/getEffectiveStyle.ts +41 -0
  524. package/src/theming/getStylesString.ts +15 -0
  525. package/src/theming/getThemeDesignerTheme.ts +101 -0
  526. package/src/theming/preloadLinks.ts +24 -0
  527. package/src/thirdparty/_merge.ts +32 -0
  528. package/src/thirdparty/isPlainObject.ts +18 -0
  529. package/src/thirdparty/merge.ts +5 -0
  530. package/src/types/AnimationMode.ts +33 -0
  531. package/src/types/CSSColor.ts +20 -0
  532. package/src/types/CalendarType.ts +38 -0
  533. package/src/types/DOMReference.ts +28 -0
  534. package/src/types/DataType.ts +51 -0
  535. package/src/types/Float.ts +25 -0
  536. package/src/types/Integer.ts +25 -0
  537. package/src/types/InvisibleMessageMode.ts +27 -0
  538. package/src/types/ItemNavigationBehavior.ts +26 -0
  539. package/src/types/NavigationMode.ts +33 -0
  540. package/src/types/ValueState.ts +47 -0
  541. package/src/types.ts +30 -0
  542. package/src/updateShadowRoot.ts +37 -0
  543. package/src/util/AriaLabelHelper.ts +63 -0
  544. package/src/util/Caret.ts +28 -0
  545. package/src/util/ColorConversion.ts +399 -0
  546. package/src/util/{FetchHelper.js → FetchHelper.ts} +7 -7
  547. package/src/util/FocusableElements.ts +82 -0
  548. package/src/util/HTMLSanitizer.ts +9 -0
  549. package/src/util/InvisibleMessage.ts +69 -0
  550. package/src/util/PopupUtils.ts +114 -0
  551. package/src/util/SlotsHelper.ts +39 -0
  552. package/src/util/StringHelper.ts +26 -0
  553. package/src/util/TabbableElements.ts +70 -0
  554. package/src/util/arraysAreEqual.ts +15 -0
  555. package/src/util/clamp.ts +12 -0
  556. package/src/util/createLinkInHead.ts +25 -0
  557. package/src/util/{createStyleInHead.js → createStyleInHead.ts} +4 -2
  558. package/src/util/debounce.ts +18 -0
  559. package/src/util/{detectNavigatorLanguage.js → detectNavigatorLanguage.ts} +4 -2
  560. package/src/util/escapeRegex.ts +11 -0
  561. package/src/util/{formatMessage.js → formatMessage.ts} +4 -3
  562. package/src/util/generateHighlightedMarkup.ts +43 -0
  563. package/src/util/getActiveElement.ts +11 -0
  564. package/src/util/getClassCopy.ts +12 -0
  565. package/src/util/{getDesigntimePropertyAsArray.js → getDesigntimePropertyAsArray.ts} +1 -1
  566. package/src/util/getEffectiveContentDensity.ts +5 -0
  567. package/src/util/getEffectiveScrollbarStyle.ts +5 -0
  568. package/src/util/getFastNavigationGroups.ts +63 -0
  569. package/src/util/getFileExtension.ts +21 -0
  570. package/src/util/getNormalizedTarget.ts +16 -0
  571. package/src/util/getSingletonElementInstance.ts +13 -0
  572. package/src/util/isElementClickable.ts +19 -0
  573. package/src/util/isElementHidden.ts +9 -0
  574. package/src/util/isElementInView.ts +15 -0
  575. package/src/util/isElementTabbable.ts +37 -0
  576. package/src/util/{isValidPropertyName.js → isValidPropertyName.ts} +12 -3
  577. package/src/util/{whenDOMReady.js → whenDOMReady.ts} +1 -1
  578. package/src/util/willShowContent.ts +7 -0
  579. package/src/validateThemeRoot.ts +58 -0
  580. package/tsconfig.json +13 -0
  581. package/used-modules.txt +10 -0
  582. package/bundle.es5.js +0 -28
  583. package/config/.eslintrc.js +0 -3
  584. package/config/rollup.config.js +0 -1
  585. package/dist/Assets.js +0 -2
  586. package/dist/CSS.js +0 -48
  587. package/dist/FormatSettings.js +0 -31
  588. package/dist/LocaleProvider.js +0 -34
  589. package/dist/RenderScheduler.js +0 -165
  590. package/dist/ResourceLoaderOverrides.js +0 -38
  591. package/dist/SVGIconRegistry.js +0 -54
  592. package/dist/animations/config.js +0 -5
  593. package/dist/boot.js +0 -25
  594. package/dist/compatibility/DOMObserver.js +0 -62
  595. package/dist/compatibility/patchNodeValue.js +0 -24
  596. package/dist/compatibility/whenPolyfillLoaded.js +0 -26
  597. package/dist/dates/CalendarDate.js +0 -203
  598. package/dist/dates/CalendarType.js +0 -22
  599. package/dist/dates/CalendarUtils.js +0 -99
  600. package/dist/delegate/CustomResize.js +0 -78
  601. package/dist/delegate/NativeResize.js +0 -44
  602. package/dist/events/PseudoEvents.js +0 -58
  603. package/dist/features/browsersupport/Edge.js +0 -6
  604. package/dist/features/browsersupport/IE11.js +0 -41
  605. package/dist/features/calendar/Buddhist.js +0 -1
  606. package/dist/features/calendar/Islamic.js +0 -1
  607. package/dist/features/calendar/Japanese.js +0 -1
  608. package/dist/features/calendar/Persian.js +0 -1
  609. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar.json +0 -5598
  610. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_EG.json +0 -5598
  611. package/dist/generated/assets/cldr/sap/ui/core/cldr/ar_SA.json +0 -5598
  612. package/dist/generated/assets/cldr/sap/ui/core/cldr/bg.json +0 -4789
  613. package/dist/generated/assets/cldr/sap/ui/core/cldr/ca.json +0 -4801
  614. package/dist/generated/assets/cldr/sap/ui/core/cldr/cs.json +0 -5245
  615. package/dist/generated/assets/cldr/sap/ui/core/cldr/da.json +0 -4696
  616. package/dist/generated/assets/cldr/sap/ui/core/cldr/de.json +0 -4797
  617. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_AT.json +0 -4798
  618. package/dist/generated/assets/cldr/sap/ui/core/cldr/de_CH.json +0 -4796
  619. package/dist/generated/assets/cldr/sap/ui/core/cldr/el.json +0 -4694
  620. package/dist/generated/assets/cldr/sap/ui/core/cldr/el_CY.json +0 -4694
  621. package/dist/generated/assets/cldr/sap/ui/core/cldr/en.json +0 -4777
  622. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_AU.json +0 -4769
  623. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_GB.json +0 -4778
  624. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_HK.json +0 -4784
  625. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IE.json +0 -4778
  626. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_IN.json +0 -4779
  627. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_NZ.json +0 -4778
  628. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_PG.json +0 -4779
  629. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_SG.json +0 -4780
  630. package/dist/generated/assets/cldr/sap/ui/core/cldr/en_ZA.json +0 -4779
  631. package/dist/generated/assets/cldr/sap/ui/core/cldr/es.json +0 -4719
  632. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_AR.json +0 -4721
  633. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_BO.json +0 -4720
  634. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CL.json +0 -4721
  635. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_CO.json +0 -4721
  636. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_MX.json +0 -4722
  637. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_PE.json +0 -4720
  638. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_UY.json +0 -4722
  639. package/dist/generated/assets/cldr/sap/ui/core/cldr/es_VE.json +0 -4721
  640. package/dist/generated/assets/cldr/sap/ui/core/cldr/et.json +0 -4776
  641. package/dist/generated/assets/cldr/sap/ui/core/cldr/fa.json +0 -4704
  642. package/dist/generated/assets/cldr/sap/ui/core/cldr/fi.json +0 -4816
  643. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr.json +0 -4788
  644. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_BE.json +0 -4788
  645. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CA.json +0 -4782
  646. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_CH.json +0 -4806
  647. package/dist/generated/assets/cldr/sap/ui/core/cldr/fr_LU.json +0 -4788
  648. package/dist/generated/assets/cldr/sap/ui/core/cldr/he.json +0 -5133
  649. package/dist/generated/assets/cldr/sap/ui/core/cldr/hi.json +0 -4680
  650. package/dist/generated/assets/cldr/sap/ui/core/cldr/hr.json +0 -4910
  651. package/dist/generated/assets/cldr/sap/ui/core/cldr/hu.json +0 -4664
  652. package/dist/generated/assets/cldr/sap/ui/core/cldr/id.json +0 -4500
  653. package/dist/generated/assets/cldr/sap/ui/core/cldr/it.json +0 -4757
  654. package/dist/generated/assets/cldr/sap/ui/core/cldr/it_CH.json +0 -4757
  655. package/dist/generated/assets/cldr/sap/ui/core/cldr/ja.json +0 -4599
  656. package/dist/generated/assets/cldr/sap/ui/core/cldr/kk.json +0 -4537
  657. package/dist/generated/assets/cldr/sap/ui/core/cldr/ko.json +0 -4574
  658. package/dist/generated/assets/cldr/sap/ui/core/cldr/lt.json +0 -5234
  659. package/dist/generated/assets/cldr/sap/ui/core/cldr/lv.json +0 -4902
  660. package/dist/generated/assets/cldr/sap/ui/core/cldr/ms.json +0 -4352
  661. package/dist/generated/assets/cldr/sap/ui/core/cldr/nb.json +0 -4784
  662. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl.json +0 -4790
  663. package/dist/generated/assets/cldr/sap/ui/core/cldr/nl_BE.json +0 -4790
  664. package/dist/generated/assets/cldr/sap/ui/core/cldr/pl.json +0 -5223
  665. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt.json +0 -4703
  666. package/dist/generated/assets/cldr/sap/ui/core/cldr/pt_PT.json +0 -4753
  667. package/dist/generated/assets/cldr/sap/ui/core/cldr/ro.json +0 -4881
  668. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru.json +0 -5157
  669. package/dist/generated/assets/cldr/sap/ui/core/cldr/ru_UA.json +0 -5157
  670. package/dist/generated/assets/cldr/sap/ui/core/cldr/sk.json +0 -5125
  671. package/dist/generated/assets/cldr/sap/ui/core/cldr/sl.json +0 -5105
  672. package/dist/generated/assets/cldr/sap/ui/core/cldr/sr.json +0 -4908
  673. package/dist/generated/assets/cldr/sap/ui/core/cldr/sv.json +0 -4818
  674. package/dist/generated/assets/cldr/sap/ui/core/cldr/th.json +0 -4633
  675. package/dist/generated/assets/cldr/sap/ui/core/cldr/tr.json +0 -4791
  676. package/dist/generated/assets/cldr/sap/ui/core/cldr/uk.json +0 -5126
  677. package/dist/generated/assets/cldr/sap/ui/core/cldr/vi.json +0 -4510
  678. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_CN.json +0 -4469
  679. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_HK.json +0 -4479
  680. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_SG.json +0 -4479
  681. package/dist/generated/assets/cldr/sap/ui/core/cldr/zh_TW.json +0 -4565
  682. package/dist/json-imports/LocaleData.js +0 -171
  683. package/dist/renderer/ifDefined.js +0 -21
  684. package/dist/resources/bundle.es5.js +0 -12643
  685. package/dist/resources/bundle.es5.js.map +0 -1
  686. package/dist/resources/bundle.esm.js +0 -7450
  687. package/dist/resources/bundle.esm.js.map +0 -1
  688. package/dist/shims/Core-shim.js +0 -52
  689. package/dist/shims/jquery-shim.js +0 -89
  690. package/dist/test-resources/assets/Themes.js +0 -11
  691. package/dist/test-resources/elements/Child.js +0 -35
  692. package/dist/test-resources/elements/Generic.js +0 -83
  693. package/dist/test-resources/elements/GenericExt.js +0 -26
  694. package/dist/test-resources/elements/NoShadowDOM.js +0 -13
  695. package/dist/test-resources/elements/Parent.js +0 -36
  696. package/dist/test-resources/pages/AllTestElements.html +0 -42
  697. package/dist/test-resources/pages/Configuration.html +0 -20
  698. package/dist/test-resources/pages/ConfigurationScript.html +0 -36
  699. package/dist/test-resources/specs/ConfigurationChange.spec.js +0 -25
  700. package/dist/test-resources/specs/ConfigurationScript.spec.js +0 -61
  701. package/dist/test-resources/specs/ConfigurationURL.spec.js +0 -45
  702. package/dist/test-resources/specs/CustomTheme.spec.js +0 -25
  703. package/dist/test-resources/specs/Theming.spec.js +0 -31
  704. package/dist/test-resources/specs/UI5ElementInvalidation.js +0 -258
  705. package/dist/test-resources/specs/UI5ElementLifecycle.js +0 -93
  706. package/dist/test-resources/specs/UI5ElementListenForChildPropChanges.spec.js +0 -101
  707. package/dist/test-resources/specs/UI5ElementMetadataExt.js +0 -40
  708. package/dist/test-resources/specs/UI5ElementPropertyValidation.js +0 -12
  709. package/dist/test-resources/specs/UI5ElementPropsAndAttrs.spec.js +0 -65
  710. package/dist/test-resources/specs/UI5ElementShadowDOM.js +0 -22
  711. package/dist/test-resources/specs/UI5ElementSlots.js +0 -34
  712. package/dist/theming/StyleInjection.js +0 -67
  713. package/dist/thirdparty/Array.from.js +0 -16
  714. package/dist/thirdparty/Array.prototype.fill.js +0 -44
  715. package/dist/thirdparty/Array.prototype.find.js +0 -46
  716. package/dist/thirdparty/Array.prototype.includes.js +0 -51
  717. package/dist/thirdparty/Element.prototype.closest.js +0 -11
  718. package/dist/thirdparty/Element.prototype.matches.js +0 -6
  719. package/dist/thirdparty/Map.prototype.keys.js +0 -9
  720. package/dist/thirdparty/Number.isInteger.js +0 -5
  721. package/dist/thirdparty/Number.isNaN.js +0 -1
  722. package/dist/thirdparty/Number.parseInt.js +0 -1
  723. package/dist/thirdparty/Object.assign.js +0 -31
  724. package/dist/thirdparty/Object.entries.js +0 -11
  725. package/dist/thirdparty/Symbol.js +0 -2
  726. package/dist/thirdparty/WeakSet.js +0 -27
  727. package/dist/thirdparty/events-polyfills.js +0 -89
  728. package/dist/thirdparty/fetch.js +0 -1
  729. package/dist/thirdparty/template.js +0 -600
  730. package/dist/types/CSSSize.js +0 -9
  731. package/dist/types/PopupState.js +0 -37
  732. package/dist/util/CSSTransformUtils.js +0 -90
  733. package/dist/util/isDescendantOf.js +0 -15
  734. package/dist/util/isNodeClickable.js +0 -19
  735. package/dist/util/isNodeHidden.js +0 -13
  736. package/dist/util/isNodeTabbable.js +0 -28
  737. package/dist/webcomponentsjs/LICENSE.md +0 -19
  738. package/dist/webcomponentsjs/README.md +0 -229
  739. package/dist/webcomponentsjs/bundles/webcomponents-ce.js +0 -63
  740. package/dist/webcomponentsjs/bundles/webcomponents-ce.js.map +0 -1
  741. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js +0 -297
  742. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce-pf.js.map +0 -1
  743. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js +0 -208
  744. package/dist/webcomponentsjs/bundles/webcomponents-sd-ce.js.map +0 -1
  745. package/dist/webcomponentsjs/bundles/webcomponents-sd.js +0 -166
  746. package/dist/webcomponentsjs/bundles/webcomponents-sd.js.map +0 -1
  747. package/dist/webcomponentsjs/custom-elements-es5-adapter.js +0 -15
  748. package/dist/webcomponentsjs/package.json +0 -46
  749. package/dist/webcomponentsjs/src/entrypoints/custom-elements-es5-adapter-index.js +0 -16
  750. package/dist/webcomponentsjs/src/entrypoints/webcomponents-bundle-index.js +0 -53
  751. package/dist/webcomponentsjs/src/entrypoints/webcomponents-ce-index.js +0 -17
  752. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-index.js +0 -19
  753. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-ce-pf-index.js +0 -28
  754. package/dist/webcomponentsjs/src/entrypoints/webcomponents-sd-index.js +0 -18
  755. package/dist/webcomponentsjs/webcomponents-bundle.js +0 -298
  756. package/dist/webcomponentsjs/webcomponents-bundle.js.map +0 -1
  757. package/dist/webcomponentsjs/webcomponents-loader.js +0 -185
  758. package/src/AssetRegistry.js +0 -9
  759. package/src/Assets.js +0 -2
  760. package/src/CSS.js +0 -48
  761. package/src/Device.js +0 -823
  762. package/src/EventProvider.js +0 -73
  763. package/src/FeaturesRegistry.js +0 -11
  764. package/src/FontFace.js +0 -66
  765. package/src/FormatSettings.js +0 -31
  766. package/src/InitialConfiguration.js +0 -119
  767. package/src/Locale.js +0 -101
  768. package/src/LocaleProvider.js +0 -34
  769. package/src/RenderQueue.js +0 -42
  770. package/src/RenderScheduler.js +0 -165
  771. package/src/ResourceLoaderOverrides.js +0 -38
  772. package/src/SVGIconRegistry.js +0 -54
  773. package/src/StaticArea.js +0 -35
  774. package/src/StaticAreaItem.js +0 -67
  775. package/src/Theming.js +0 -45
  776. package/src/UI5Element.js +0 -842
  777. package/src/UI5ElementMetadata.js +0 -148
  778. package/src/animations/animate.js +0 -53
  779. package/src/animations/config.js +0 -5
  780. package/src/animations/scroll.js +0 -28
  781. package/src/asset-registries/Icons.js +0 -24
  782. package/src/asset-registries/LocaleData.js +0 -101
  783. package/src/asset-registries/Themes.js +0 -75
  784. package/src/asset-registries/i18n.js +0 -75
  785. package/src/boot.js +0 -25
  786. package/src/compatibility/DOMObserver.js +0 -62
  787. package/src/compatibility/patchNodeValue.js +0 -24
  788. package/src/compatibility/whenPolyfillLoaded.js +0 -26
  789. package/src/config/AnimationMode.js +0 -9
  790. package/src/config/CalendarType.js +0 -18
  791. package/src/config/FormatSettings.js +0 -9
  792. package/src/config/Language.js +0 -9
  793. package/src/config/NoConflict.js +0 -44
  794. package/src/config/Theme.js +0 -24
  795. package/src/dates/CalendarDate.js +0 -203
  796. package/src/dates/CalendarType.js +0 -22
  797. package/src/dates/CalendarUtils.js +0 -99
  798. package/src/delegate/CustomResize.js +0 -78
  799. package/src/delegate/ItemNavigation.js +0 -234
  800. package/src/delegate/NativeResize.js +0 -44
  801. package/src/delegate/ResizeHandler.js +0 -66
  802. package/src/delegate/ScrollEnablement.js +0 -80
  803. package/src/events/PseudoEvents.js +0 -58
  804. package/src/features/browsersupport/Edge.js +0 -6
  805. package/src/features/browsersupport/IE11.js +0 -41
  806. package/src/features/calendar/Buddhist.js +0 -1
  807. package/src/features/calendar/Islamic.js +0 -1
  808. package/src/features/calendar/Japanese.js +0 -1
  809. package/src/features/calendar/Persian.js +0 -1
  810. package/src/i18nBundle.js +0 -35
  811. package/src/json-imports/LocaleData.js +0 -171
  812. package/src/renderer/LitRenderer.js +0 -15
  813. package/src/renderer/ifDefined.js +0 -21
  814. package/src/shims/Core-shim.js +0 -52
  815. package/src/shims/jquery-shim.js +0 -89
  816. package/src/theming/CustomStyle.js +0 -19
  817. package/src/theming/StyleInjection.js +0 -67
  818. package/src/thirdparty/Array.from.js +0 -16
  819. package/src/thirdparty/Array.prototype.fill.js +0 -44
  820. package/src/thirdparty/Array.prototype.find.js +0 -46
  821. package/src/thirdparty/Array.prototype.includes.js +0 -51
  822. package/src/thirdparty/Element.prototype.closest.js +0 -11
  823. package/src/thirdparty/Element.prototype.matches.js +0 -6
  824. package/src/thirdparty/Map.prototype.keys.js +0 -9
  825. package/src/thirdparty/Number.isInteger.js +0 -5
  826. package/src/thirdparty/Number.isNaN.js +0 -1
  827. package/src/thirdparty/Number.parseInt.js +0 -1
  828. package/src/thirdparty/Object.assign.js +0 -31
  829. package/src/thirdparty/Object.entries.js +0 -11
  830. package/src/thirdparty/Symbol.js +0 -2
  831. package/src/thirdparty/WeakSet.js +0 -27
  832. package/src/thirdparty/events-polyfills.js +0 -89
  833. package/src/thirdparty/fetch.js +0 -1
  834. package/src/thirdparty/template.js +0 -600
  835. package/src/types/AnimationMode.js +0 -7
  836. package/src/types/CSSSize.js +0 -9
  837. package/src/types/DataType.js +0 -25
  838. package/src/types/Integer.js +0 -9
  839. package/src/types/ItemNavigationBehavior.js +0 -21
  840. package/src/types/NavigationMode.js +0 -6
  841. package/src/types/PopupState.js +0 -37
  842. package/src/types/ValueState.js +0 -21
  843. package/src/util/CSSTransformUtils.js +0 -90
  844. package/src/util/FocusableElements.js +0 -60
  845. package/src/util/StringHelper.js +0 -11
  846. package/src/util/TabbableElements.js +0 -44
  847. package/src/util/isDescendantOf.js +0 -15
  848. package/src/util/isNodeClickable.js +0 -19
  849. package/src/util/isNodeHidden.js +0 -13
  850. package/src/util/isNodeTabbable.js +0 -28
  851. package/src/util/normalizeLocale.js +0 -77
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.es5.js","sources":["../../../../node_modules/css-vars-ponyfill/dist/css-vars-ponyfill.esm.js","../../../utils/dist/sap/ui/thirdparty/es6-string-methods.js","../thirdparty/Object.entries.js","../thirdparty/Array.prototype.fill.js","../thirdparty/Array.prototype.find.js","../thirdparty/Array.prototype.includes.js","../thirdparty/Map.prototype.keys.js","../thirdparty/Number.isInteger.js","../thirdparty/Number.isNaN.js","../thirdparty/Number.parseInt.js","../thirdparty/Element.prototype.matches.js","../thirdparty/Element.prototype.closest.js","../thirdparty/WeakSet.js","../thirdparty/fetch.js","../../../../node_modules/regenerator-runtime/runtime.js","../../../../node_modules/url-search-params-polyfill/index.js","../compatibility/patchNodeValue.js","../features/browsersupport/IE11.js","../../../utils/dist/sap/ui/thirdparty/jquery.js","../../../utils/dist/sap/base/util/isPlainObject.js","../shims/jquery-shim.js","../util/getDesigntimePropertyAsArray.js","../Locale.js","../util/detectNavigatorLanguage.js","../InitialConfiguration.js","../config/Language.js","../LocaleProvider.js","../FormatSettings.js","../../../utils/dist/sap/ui/core/CalendarType.js","../config/CalendarType.js","../config/FormatSettings.js","../shims/Core-shim.js","../util/FetchHelper.js","../ResourceLoaderOverrides.js","../asset-registries/Themes.js","../../../utils/dist/sap/ui/base/Interface.js","../../../utils/dist/sap/base/util/ObjectPath.js","../../../utils/dist/sap/base/util/now.js","../../../utils/dist/sap/base/Log.js","../../../utils/dist/sap/base/assert.js","../../../utils/dist/sap/base/util/array/uniqueSort.js","../../../utils/dist/sap/ui/base/Metadata.js","../../../utils/dist/sap/ui/base/Object.js","../../../utils/dist/sap/ui/core/Locale.js","../../../utils/dist/sap/base/util/LoaderExtensions.js","../../../utils/dist/sap/ui/core/LocaleData.js","../../../utils/dist/sap/ui/core/date/CalendarClassRegistry.js","../../../utils/dist/sap/ui/core/date/UniversalDate.js","../../../utils/dist/sap/ui/core/date/Buddhist.js","../../../utils/dist/sap/ui/core/date/Islamic.js","../../../utils/dist/sap/ui/core/date/Japanese.js","../../../utils/dist/sap/ui/core/date/Persian.js","../../../utils/dist/sap/base/util/merge.js","../util/whenDOMReady.js","../util/createStyleInHead.js","../FontFace.js","../theming/CustomStyle.js","../theming/StyleInjection.js","../Theming.js","../config/Theme.js","../compatibility/whenPolyfillLoaded.js","../boot.js","../config/NoConflict.js","../compatibility/DOMObserver.js","../types/DataType.js","../util/isDescendantOf.js","../util/StringHelper.js","../UI5ElementMetadata.js","../StaticArea.js","../StaticAreaItem.js","../types/Integer.js","../RenderQueue.js","../RenderScheduler.js","../util/CSSTransformUtils.js","../CSS.js","../util/isValidPropertyName.js","../UI5Element.js","../../../../node_modules/lit-html/lib/directive.js","../../../../node_modules/lit-html/lib/dom.js","../../../../node_modules/lit-html/lib/part.js","../../../../node_modules/lit-html/lib/template.js","../../../../node_modules/lit-html/lib/template-instance.js","../../../../node_modules/lit-html/lib/template-result.js","../../../../node_modules/lit-html/lib/parts.js","../../../../node_modules/lit-html/lib/default-template-processor.js","../../../../node_modules/lit-html/lib/template-factory.js","../../../../node_modules/lit-html/lib/render.js","../../../../node_modules/lit-html/lit-html.js","../renderer/LitRenderer.js","../test-resources/elements/Generic.js","../test-resources/elements/NoShadowDOM.js","../test-resources/elements/Parent.js","../test-resources/elements/Child.js","../test-resources/elements/GenericExt.js","../test-resources/assets/Themes.js","../Device.js","../config/AnimationMode.js","../config/RTL.js","../SVGIconRegistry.js","../../bundle.esm.js","../../bundle.es5.js"],"sourcesContent":["/*!\n * css-vars-ponyfill\n * v2.1.2\n * https://jhildenbiddle.github.io/css-vars-ponyfill/\n * (c) 2018-2019 John Hildenbiddle <http://hildenbiddle.com>\n * MIT license\n */\nfunction _extends() {\n _extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\n/*!\n * get-css-data\n * v1.6.3\n * https://github.com/jhildenbiddle/get-css-data\n * (c) 2018-2019 John Hildenbiddle <http://hildenbiddle.com>\n * MIT license\n */ function getUrls(urls) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var settings = {\n mimeType: options.mimeType || null,\n onBeforeSend: options.onBeforeSend || Function.prototype,\n onSuccess: options.onSuccess || Function.prototype,\n onError: options.onError || Function.prototype,\n onComplete: options.onComplete || Function.prototype\n };\n var urlArray = Array.isArray(urls) ? urls : [ urls ];\n var urlQueue = Array.apply(null, Array(urlArray.length)).map(function(x) {\n return null;\n });\n function isValidCss() {\n var cssText = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var isHTML = cssText.trim().charAt(0) === \"<\";\n return !isHTML;\n }\n function onError(xhr, urlIndex) {\n settings.onError(xhr, urlArray[urlIndex], urlIndex);\n }\n function onSuccess(responseText, urlIndex) {\n var returnVal = settings.onSuccess(responseText, urlArray[urlIndex], urlIndex);\n responseText = returnVal === false ? \"\" : returnVal || responseText;\n urlQueue[urlIndex] = responseText;\n if (urlQueue.indexOf(null) === -1) {\n settings.onComplete(urlQueue);\n }\n }\n var parser = document.createElement(\"a\");\n urlArray.forEach(function(url, i) {\n parser.setAttribute(\"href\", url);\n parser.href = String(parser.href);\n var isIElte9 = Boolean(document.all && !window.atob);\n var isIElte9CORS = isIElte9 && parser.host.split(\":\")[0] !== location.host.split(\":\")[0];\n if (isIElte9CORS) {\n var isSameProtocol = parser.protocol === location.protocol;\n if (isSameProtocol) {\n var xdr = new XDomainRequest();\n xdr.open(\"GET\", url);\n xdr.timeout = 0;\n xdr.onprogress = Function.prototype;\n xdr.ontimeout = Function.prototype;\n xdr.onload = function() {\n if (isValidCss(xdr.responseText)) {\n onSuccess(xdr.responseText, i);\n } else {\n onError(xdr, i);\n }\n };\n xdr.onerror = function(err) {\n onError(xdr, i);\n };\n setTimeout(function() {\n xdr.send();\n }, 0);\n } else {\n console.warn(\"Internet Explorer 9 Cross-Origin (CORS) requests must use the same protocol (\".concat(url, \")\"));\n onError(null, i);\n }\n } else {\n var xhr = new XMLHttpRequest();\n xhr.open(\"GET\", url);\n if (settings.mimeType && xhr.overrideMimeType) {\n xhr.overrideMimeType(settings.mimeType);\n }\n settings.onBeforeSend(xhr, url, i);\n xhr.onreadystatechange = function() {\n if (xhr.readyState === 4) {\n if (xhr.status === 200 && isValidCss(xhr.responseText)) {\n onSuccess(xhr.responseText, i);\n } else {\n onError(xhr, i);\n }\n }\n };\n xhr.send();\n }\n });\n}\n\n/**\n * Gets CSS data from <style> and <link> nodes (including @imports), then\n * returns data in order processed by DOM. Allows specifying nodes to\n * include/exclude and filtering CSS data using RegEx.\n *\n * @preserve\n * @param {object} [options] The options object\n * @param {object} [options.rootElement=document] Root element to traverse for\n * <link> and <style> nodes.\n * @param {string} [options.include] CSS selector matching <link> and <style>\n * nodes to include\n * @param {string} [options.exclude] CSS selector matching <link> and <style>\n * nodes to exclude\n * @param {object} [options.filter] Regular expression used to filter node CSS\n * data. Each block of CSS data is tested against the filter,\n * and only matching data is included.\n * @param {object} [options.useCSSOM=false] Determines if CSS data will be\n * collected from a stylesheet's runtime values instead of its\n * text content. This is required to get accurate CSS data\n * when a stylesheet has been modified using the deleteRule()\n * or insertRule() methods because these modifications will\n * not be reflected in the stylesheet's text content.\n * @param {function} [options.onBeforeSend] Callback before XHR is sent. Passes\n * 1) the XHR object, 2) source node reference, and 3) the\n * source URL as arguments.\n * @param {function} [options.onSuccess] Callback on each CSS node read. Passes\n * 1) CSS text, 2) source node reference, and 3) the source\n * URL as arguments.\n * @param {function} [options.onError] Callback on each error. Passes 1) the XHR\n * object for inspection, 2) soure node reference, and 3) the\n * source URL that failed (either a <link> href or an @import)\n * as arguments\n * @param {function} [options.onComplete] Callback after all nodes have been\n * processed. Passes 1) concatenated CSS text, 2) an array of\n * CSS text in DOM order, and 3) an array of nodes in DOM\n * order as arguments.\n *\n * @example\n *\n * getCssData({\n * rootElement: document,\n * include : 'style,link[rel=\"stylesheet\"]',\n * exclude : '[href=\"skip.css\"]',\n * filter : /red/,\n * useCSSOM : false,\n * onBeforeSend(xhr, node, url) {\n * // ...\n * }\n * onSuccess(cssText, node, url) {\n * // ...\n * }\n * onError(xhr, node, url) {\n * // ...\n * },\n * onComplete(cssText, cssArray, nodeArray) {\n * // ...\n * }\n * });\n */ function getCssData(options) {\n var regex = {\n cssComments: /\\/\\*[\\s\\S]+?\\*\\//g,\n cssImports: /(?:@import\\s*)(?:url\\(\\s*)?(?:['\"])([^'\"]*)(?:['\"])(?:\\s*\\))?(?:[^;]*;)/g\n };\n var settings = {\n rootElement: options.rootElement || document,\n include: options.include || 'style,link[rel=\"stylesheet\"]',\n exclude: options.exclude || null,\n filter: options.filter || null,\n useCSSOM: options.useCSSOM || false,\n onBeforeSend: options.onBeforeSend || Function.prototype,\n onSuccess: options.onSuccess || Function.prototype,\n onError: options.onError || Function.prototype,\n onComplete: options.onComplete || Function.prototype\n };\n var sourceNodes = Array.apply(null, settings.rootElement.querySelectorAll(settings.include)).filter(function(node) {\n return !matchesSelector(node, settings.exclude);\n });\n var cssArray = Array.apply(null, Array(sourceNodes.length)).map(function(x) {\n return null;\n });\n function handleComplete() {\n var isComplete = cssArray.indexOf(null) === -1;\n if (isComplete) {\n var cssText = cssArray.join(\"\");\n settings.onComplete(cssText, cssArray, sourceNodes);\n }\n }\n function handleSuccess(cssText, cssIndex, node, sourceUrl) {\n var returnVal = settings.onSuccess(cssText, node, sourceUrl);\n cssText = returnVal !== undefined && Boolean(returnVal) === false ? \"\" : returnVal || cssText;\n resolveImports(cssText, node, sourceUrl, function(resolvedCssText, errorData) {\n if (cssArray[cssIndex] === null) {\n errorData.forEach(function(data) {\n return settings.onError(data.xhr, node, data.url);\n });\n if (!settings.filter || settings.filter.test(resolvedCssText)) {\n cssArray[cssIndex] = resolvedCssText;\n } else {\n cssArray[cssIndex] = \"\";\n }\n handleComplete();\n }\n });\n }\n function parseImportData(cssText, baseUrl) {\n var ignoreRules = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var importData = {};\n importData.rules = (cssText.replace(regex.cssComments, \"\").match(regex.cssImports) || []).filter(function(rule) {\n return ignoreRules.indexOf(rule) === -1;\n });\n importData.urls = importData.rules.map(function(rule) {\n return rule.replace(regex.cssImports, \"$1\");\n });\n importData.absoluteUrls = importData.urls.map(function(url) {\n return getFullUrl(url, baseUrl);\n });\n importData.absoluteRules = importData.rules.map(function(rule, i) {\n var oldUrl = importData.urls[i];\n var newUrl = getFullUrl(importData.absoluteUrls[i], baseUrl);\n return rule.replace(oldUrl, newUrl);\n });\n return importData;\n }\n function resolveImports(cssText, node, baseUrl, callbackFn) {\n var __errorData = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n var __errorRules = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : [];\n var importData = parseImportData(cssText, baseUrl, __errorRules);\n if (importData.rules.length) {\n getUrls(importData.absoluteUrls, {\n onBeforeSend: function onBeforeSend(xhr, url, urlIndex) {\n settings.onBeforeSend(xhr, node, url);\n },\n onSuccess: function onSuccess(cssText, url, urlIndex) {\n var returnVal = settings.onSuccess(cssText, node, url);\n cssText = returnVal === false ? \"\" : returnVal || cssText;\n var responseImportData = parseImportData(cssText, url, __errorRules);\n responseImportData.rules.forEach(function(rule, i) {\n cssText = cssText.replace(rule, responseImportData.absoluteRules[i]);\n });\n return cssText;\n },\n onError: function onError(xhr, url, urlIndex) {\n __errorData.push({\n xhr: xhr,\n url: url\n });\n __errorRules.push(importData.rules[urlIndex]);\n resolveImports(cssText, node, baseUrl, callbackFn, __errorData, __errorRules);\n },\n onComplete: function onComplete(responseArray) {\n responseArray.forEach(function(importText, i) {\n cssText = cssText.replace(importData.rules[i], importText);\n });\n resolveImports(cssText, node, baseUrl, callbackFn, __errorData, __errorRules);\n }\n });\n } else {\n callbackFn(cssText, __errorData);\n }\n }\n if (sourceNodes.length) {\n sourceNodes.forEach(function(node, i) {\n var linkHref = node.getAttribute(\"href\");\n var linkRel = node.getAttribute(\"rel\");\n var isLink = node.nodeName === \"LINK\" && linkHref && linkRel && linkRel.toLowerCase() === \"stylesheet\";\n var isStyle = node.nodeName === \"STYLE\";\n if (isLink) {\n getUrls(linkHref, {\n mimeType: \"text/css\",\n onBeforeSend: function onBeforeSend(xhr, url, urlIndex) {\n settings.onBeforeSend(xhr, node, url);\n },\n onSuccess: function onSuccess(cssText, url, urlIndex) {\n var sourceUrl = getFullUrl(linkHref, location.href);\n handleSuccess(cssText, i, node, sourceUrl);\n },\n onError: function onError(xhr, url, urlIndex) {\n cssArray[i] = \"\";\n settings.onError(xhr, node, url);\n handleComplete();\n }\n });\n } else if (isStyle) {\n var cssText = node.textContent;\n if (settings.useCSSOM) {\n cssText = Array.apply(null, node.sheet.cssRules).map(function(rule) {\n return rule.cssText;\n }).join(\"\");\n }\n handleSuccess(cssText, i, node, location.href);\n } else {\n cssArray[i] = \"\";\n handleComplete();\n }\n });\n } else {\n settings.onComplete(\"\", []);\n }\n}\n\nfunction getFullUrl(url) {\n var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : location.href;\n var d = document.implementation.createHTMLDocument(\"\");\n var b = d.createElement(\"base\");\n var a = d.createElement(\"a\");\n d.head.appendChild(b);\n d.body.appendChild(a);\n b.href = base;\n a.href = url;\n return a.href;\n}\n\nfunction matchesSelector(elm, selector) {\n var matches = elm.matches || elm.matchesSelector || elm.webkitMatchesSelector || elm.mozMatchesSelector || elm.msMatchesSelector || elm.oMatchesSelector;\n return matches.call(elm, selector);\n}\n\nvar balancedMatch = balanced;\n\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n var r = range(a, b, str);\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\n\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n if (ai >= 0 && bi > 0) {\n begs = [];\n left = str.length;\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n bi = str.indexOf(b, i + 1);\n }\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n if (begs.length) {\n result = [ left, right ];\n }\n }\n return result;\n}\n\nfunction parseCss(css) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var defaults = {\n preserveStatic: true,\n removeComments: false\n };\n var settings = _extends({}, defaults, options);\n var errors = [];\n function error(msg) {\n throw new Error(\"CSS parse error: \".concat(msg));\n }\n function match(re) {\n var m = re.exec(css);\n if (m) {\n css = css.slice(m[0].length);\n return m;\n }\n }\n function open() {\n return match(/^{\\s*/);\n }\n function close() {\n return match(/^}/);\n }\n function whitespace() {\n match(/^\\s*/);\n }\n function comment() {\n whitespace();\n if (css[0] !== \"/\" || css[1] !== \"*\") {\n return;\n }\n var i = 2;\n while (css[i] && (css[i] !== \"*\" || css[i + 1] !== \"/\")) {\n i++;\n }\n if (!css[i]) {\n return error(\"end of comment is missing\");\n }\n var str = css.slice(2, i);\n css = css.slice(i + 2);\n return {\n type: \"comment\",\n comment: str\n };\n }\n function comments() {\n var cmnts = [];\n var c;\n while (c = comment()) {\n cmnts.push(c);\n }\n return settings.removeComments ? [] : cmnts;\n }\n function selector() {\n whitespace();\n while (css[0] === \"}\") {\n error(\"extra closing bracket\");\n }\n var m = match(/^((\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'|[^{])+)/);\n if (m) {\n return m[0].trim().replace(/\\/\\*([^*]|[\\r\\n]|(\\*+([^*\\/]|[\\r\\n])))*\\*\\/+/g, \"\").replace(/\"(?:\\\\\"|[^\"])*\"|'(?:\\\\'|[^'])*'/g, function(m) {\n return m.replace(/,/g, \"‌\");\n }).split(/\\s*(?![^(]*\\)),\\s*/).map(function(s) {\n return s.replace(/\\u200C/g, \",\");\n });\n }\n }\n function declaration() {\n match(/^([;\\s]*)+/);\n var comment_regexp = /\\/\\*[^*]*\\*+([^\\/*][^*]*\\*+)*\\//g;\n var prop = match(/^(\\*?[-#\\/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/);\n if (!prop) {\n return;\n }\n prop = prop[0].trim();\n if (!match(/^:\\s*/)) {\n return error(\"property missing ':'\");\n }\n var val = match(/^((?:\\/\\*.*?\\*\\/|'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\((\\s*'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|[^)]*?)\\s*\\)|[^};])+)/);\n var ret = {\n type: \"declaration\",\n property: prop.replace(comment_regexp, \"\"),\n value: val ? val[0].replace(comment_regexp, \"\").trim() : \"\"\n };\n match(/^[;\\s]*/);\n return ret;\n }\n function declarations() {\n if (!open()) {\n return error(\"missing '{'\");\n }\n var d;\n var decls = comments();\n while (d = declaration()) {\n decls.push(d);\n decls = decls.concat(comments());\n }\n if (!close()) {\n return error(\"missing '}'\");\n }\n return decls;\n }\n function keyframe() {\n whitespace();\n var vals = [];\n var m;\n while (m = match(/^((\\d+\\.\\d+|\\.\\d+|\\d+)%?|[a-z]+)\\s*/)) {\n vals.push(m[1]);\n match(/^,\\s*/);\n }\n if (vals.length) {\n return {\n type: \"keyframe\",\n values: vals,\n declarations: declarations()\n };\n }\n }\n function at_keyframes() {\n var m = match(/^@([-\\w]+)?keyframes\\s*/);\n if (!m) {\n return;\n }\n var vendor = m[1];\n m = match(/^([-\\w]+)\\s*/);\n if (!m) {\n return error(\"@keyframes missing name\");\n }\n var name = m[1];\n if (!open()) {\n return error(\"@keyframes missing '{'\");\n }\n var frame;\n var frames = comments();\n while (frame = keyframe()) {\n frames.push(frame);\n frames = frames.concat(comments());\n }\n if (!close()) {\n return error(\"@keyframes missing '}'\");\n }\n return {\n type: \"keyframes\",\n name: name,\n vendor: vendor,\n keyframes: frames\n };\n }\n function at_page() {\n var m = match(/^@page */);\n if (m) {\n var sel = selector() || [];\n return {\n type: \"page\",\n selectors: sel,\n declarations: declarations()\n };\n }\n }\n function at_fontface() {\n var m = match(/^@font-face\\s*/);\n if (m) {\n return {\n type: \"font-face\",\n declarations: declarations()\n };\n }\n }\n function at_supports() {\n var m = match(/^@supports *([^{]+)/);\n if (m) {\n return {\n type: \"supports\",\n supports: m[1].trim(),\n rules: rules()\n };\n }\n }\n function at_host() {\n var m = match(/^@host\\s*/);\n if (m) {\n return {\n type: \"host\",\n rules: rules()\n };\n }\n }\n function at_media() {\n var m = match(/^@media([^{]+)*/);\n if (m) {\n return {\n type: \"media\",\n media: (m[1] || \"\").trim(),\n rules: rules()\n };\n }\n }\n function at_custom_m() {\n var m = match(/^@custom-media\\s+(--[^\\s]+)\\s*([^{;]+);/);\n if (m) {\n return {\n type: \"custom-media\",\n name: m[1].trim(),\n media: m[2].trim()\n };\n }\n }\n function at_document() {\n var m = match(/^@([-\\w]+)?document *([^{]+)/);\n if (m) {\n return {\n type: \"document\",\n document: m[2].trim(),\n vendor: m[1] ? m[1].trim() : null,\n rules: rules()\n };\n }\n }\n function at_x() {\n var m = match(/^@(import|charset|namespace)\\s*([^;]+);/);\n if (m) {\n return {\n type: m[1],\n name: m[2].trim()\n };\n }\n }\n function at_rule() {\n whitespace();\n if (css[0] === \"@\") {\n var ret = at_keyframes() || at_supports() || at_host() || at_media() || at_custom_m() || at_page() || at_document() || at_fontface() || at_x();\n if (ret && !settings.preserveStatic) {\n var hasVarFunc = false;\n if (ret.declarations) {\n hasVarFunc = ret.declarations.some(function(decl) {\n return /var\\(/.test(decl.value);\n });\n } else {\n var arr = ret.keyframes || ret.rules || [];\n hasVarFunc = arr.some(function(obj) {\n return (obj.declarations || []).some(function(decl) {\n return /var\\(/.test(decl.value);\n });\n });\n }\n return hasVarFunc ? ret : {};\n }\n return ret;\n }\n }\n function rule() {\n if (!settings.preserveStatic) {\n var balancedMatch$1 = balancedMatch(\"{\", \"}\", css);\n if (balancedMatch$1) {\n var hasVarDecl = /:(?:root|host)(?![.:#(])/.test(balancedMatch$1.pre) && /--\\S*\\s*:/.test(balancedMatch$1.body);\n var hasVarFunc = /var\\(/.test(balancedMatch$1.body);\n if (!hasVarDecl && !hasVarFunc) {\n css = css.slice(balancedMatch$1.end + 1);\n return {};\n }\n }\n }\n var sel = selector() || [];\n var decls = settings.preserveStatic ? declarations() : declarations().filter(function(decl) {\n var hasVarDecl = sel.some(function(s) {\n return /:(?:root|host)(?![.:#(])/.test(s);\n }) && /^--\\S/.test(decl.property);\n var hasVarFunc = /var\\(/.test(decl.value);\n return hasVarDecl || hasVarFunc;\n });\n if (!sel.length) {\n error(\"selector missing\");\n }\n return {\n type: \"rule\",\n selectors: sel,\n declarations: decls\n };\n }\n function rules(core) {\n if (!core && !open()) {\n return error(\"missing '{'\");\n }\n var node;\n var rules = comments();\n while (css.length && (core || css[0] !== \"}\") && (node = at_rule() || rule())) {\n if (node.type) {\n rules.push(node);\n }\n rules = rules.concat(comments());\n }\n if (!core && !close()) {\n return error(\"missing '}'\");\n }\n return rules;\n }\n return {\n type: \"stylesheet\",\n stylesheet: {\n rules: rules(true),\n errors: errors\n }\n };\n}\n\nfunction parseVars(cssData) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var defaults = {\n parseHost: false,\n store: {},\n onWarning: function onWarning() {}\n };\n var settings = _extends({}, defaults, options);\n var reVarDeclSelectors = new RegExp(\":\".concat(settings.parseHost ? \"host\" : \"root\", \"(?![.:#(])\"));\n if (typeof cssData === \"string\") {\n cssData = parseCss(cssData, settings);\n }\n cssData.stylesheet.rules.forEach(function(rule) {\n if (rule.type !== \"rule\" || !rule.selectors.some(function(s) {\n return reVarDeclSelectors.test(s);\n })) {\n return;\n }\n rule.declarations.forEach(function(decl, i) {\n var prop = decl.property;\n var value = decl.value;\n if (prop && prop.indexOf(\"--\") === 0) {\n settings.store[prop] = value;\n }\n });\n });\n return settings.store;\n}\n\nfunction stringifyCss(tree) {\n var delim = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : \"\";\n var cb = arguments.length > 2 ? arguments[2] : undefined;\n var renderMethods = {\n charset: function charset(node) {\n return \"@charset \" + node.name + \";\";\n },\n comment: function comment(node) {\n return node.comment.indexOf(\"__CSSVARSPONYFILL\") === 0 ? \"/*\" + node.comment + \"*/\" : \"\";\n },\n \"custom-media\": function customMedia(node) {\n return \"@custom-media \" + node.name + \" \" + node.media + \";\";\n },\n declaration: function declaration(node) {\n return node.property + \":\" + node.value + \";\";\n },\n document: function document(node) {\n return \"@\" + (node.vendor || \"\") + \"document \" + node.document + \"{\" + visit(node.rules) + \"}\";\n },\n \"font-face\": function fontFace(node) {\n return \"@font-face\" + \"{\" + visit(node.declarations) + \"}\";\n },\n host: function host(node) {\n return \"@host\" + \"{\" + visit(node.rules) + \"}\";\n },\n import: function _import(node) {\n return \"@import \" + node.name + \";\";\n },\n keyframe: function keyframe(node) {\n return node.values.join(\",\") + \"{\" + visit(node.declarations) + \"}\";\n },\n keyframes: function keyframes(node) {\n return \"@\" + (node.vendor || \"\") + \"keyframes \" + node.name + \"{\" + visit(node.keyframes) + \"}\";\n },\n media: function media(node) {\n return \"@media \" + node.media + \"{\" + visit(node.rules) + \"}\";\n },\n namespace: function namespace(node) {\n return \"@namespace \" + node.name + \";\";\n },\n page: function page(node) {\n return \"@page \" + (node.selectors.length ? node.selectors.join(\", \") : \"\") + \"{\" + visit(node.declarations) + \"}\";\n },\n rule: function rule(node) {\n var decls = node.declarations;\n if (decls.length) {\n return node.selectors.join(\",\") + \"{\" + visit(decls) + \"}\";\n }\n },\n supports: function supports(node) {\n return \"@supports \" + node.supports + \"{\" + visit(node.rules) + \"}\";\n }\n };\n function visit(nodes) {\n var buf = \"\";\n for (var i = 0; i < nodes.length; i++) {\n var n = nodes[i];\n if (cb) {\n cb(n);\n }\n var txt = renderMethods[n.type](n);\n if (txt) {\n buf += txt;\n if (txt.length && n.selectors) {\n buf += delim;\n }\n }\n }\n return buf;\n }\n return visit(tree.stylesheet.rules);\n}\n\nfunction walkCss(node, fn) {\n node.rules.forEach(function(rule) {\n if (rule.rules) {\n walkCss(rule, fn);\n return;\n }\n if (rule.keyframes) {\n rule.keyframes.forEach(function(keyframe) {\n if (keyframe.type === \"keyframe\") {\n fn(keyframe.declarations, rule);\n }\n });\n return;\n }\n if (!rule.declarations) {\n return;\n }\n fn(rule.declarations, node);\n });\n}\n\nvar VAR_PROP_IDENTIFIER = \"--\";\n\nvar VAR_FUNC_IDENTIFIER = \"var\";\n\nfunction transformCss(cssData) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var defaults = {\n preserveStatic: true,\n preserveVars: false,\n variables: {},\n onWarning: function onWarning() {}\n };\n var settings = _extends({}, defaults, options);\n if (typeof cssData === \"string\") {\n cssData = parseCss(cssData, settings);\n }\n walkCss(cssData.stylesheet, function(declarations, node) {\n for (var i = 0; i < declarations.length; i++) {\n var decl = declarations[i];\n var type = decl.type;\n var prop = decl.property;\n var value = decl.value;\n if (type !== \"declaration\") {\n continue;\n }\n if (!settings.preserveVars && prop && prop.indexOf(VAR_PROP_IDENTIFIER) === 0) {\n declarations.splice(i, 1);\n i--;\n continue;\n }\n if (value.indexOf(VAR_FUNC_IDENTIFIER + \"(\") !== -1) {\n var resolvedValue = resolveValue(value, settings);\n if (resolvedValue !== decl.value) {\n resolvedValue = fixNestedCalc(resolvedValue);\n if (!settings.preserveVars) {\n decl.value = resolvedValue;\n } else {\n declarations.splice(i, 0, {\n type: type,\n property: prop,\n value: resolvedValue\n });\n i++;\n }\n }\n }\n }\n });\n return stringifyCss(cssData);\n}\n\nfunction fixNestedCalc(value) {\n var reCalcVal = /calc\\(([^)]+)\\)/g;\n (value.match(reCalcVal) || []).forEach(function(match) {\n var newVal = \"calc\".concat(match.split(\"calc\").join(\"\"));\n value = value.replace(match, newVal);\n });\n return value;\n}\n\nfunction resolveValue(value) {\n var settings = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var __recursiveFallback = arguments.length > 2 ? arguments[2] : undefined;\n if (value.indexOf(\"var(\") === -1) {\n return value;\n }\n var valueData = balancedMatch(\"(\", \")\", value);\n function resolveFunc(value) {\n var name = value.split(\",\")[0].replace(/[\\s\\n\\t]/g, \"\");\n var fallback = (value.match(/(?:\\s*,\\s*){1}(.*)?/) || [])[1];\n var match = Object.prototype.hasOwnProperty.call(settings.variables, name) ? String(settings.variables[name]) : undefined;\n var replacement = match || (fallback ? String(fallback) : undefined);\n var unresolvedFallback = __recursiveFallback || value;\n if (!match) {\n settings.onWarning('variable \"'.concat(name, '\" is undefined'));\n }\n if (replacement && replacement !== \"undefined\" && replacement.length > 0) {\n return resolveValue(replacement, settings, unresolvedFallback);\n } else {\n return \"var(\".concat(unresolvedFallback, \")\");\n }\n }\n if (!valueData) {\n if (value.indexOf(\"var(\") !== -1) {\n settings.onWarning('missing closing \")\" in the value \"'.concat(value, '\"'));\n }\n return value;\n } else if (valueData.pre.slice(-3) === \"var\") {\n var isEmptyVarFunc = valueData.body.trim().length === 0;\n if (isEmptyVarFunc) {\n settings.onWarning(\"var() must contain a non-whitespace string\");\n return value;\n } else {\n return valueData.pre.slice(0, -3) + resolveFunc(valueData.body) + resolveValue(valueData.post, settings);\n }\n } else {\n return valueData.pre + \"(\".concat(resolveValue(valueData.body, settings), \")\") + resolveValue(valueData.post, settings);\n }\n}\n\nvar isBrowser = typeof window !== \"undefined\";\n\nvar isNativeSupport = isBrowser && window.CSS && window.CSS.supports && window.CSS.supports(\"(--a: 0)\");\n\nvar counters = {\n group: 0,\n job: 0\n};\n\nvar defaults = {\n rootElement: isBrowser ? document : null,\n shadowDOM: false,\n include: \"style,link[rel=stylesheet]\",\n exclude: \"\",\n variables: {},\n onlyLegacy: true,\n preserveStatic: true,\n preserveVars: false,\n silent: false,\n updateDOM: true,\n updateURLs: true,\n watch: null,\n onBeforeSend: function onBeforeSend() {},\n onWarning: function onWarning() {},\n onError: function onError() {},\n onSuccess: function onSuccess() {},\n onComplete: function onComplete() {}\n};\n\nvar regex = {\n cssComments: /\\/\\*[\\s\\S]+?\\*\\//g,\n cssKeyframes: /@(?:-\\w*-)?keyframes/,\n cssMediaQueries: /@media[^{]+\\{([\\s\\S]+?})\\s*}/g,\n cssUrls: /url\\((?!['\"]?(?:data|http|\\/\\/):)['\"]?([^'\")]*)['\"]?\\)/g,\n cssVarDeclRules: /(?::(?:root|host)(?![.:#(])[\\s,]*[^{]*{\\s*[^}]*})/g,\n cssVarDecls: /(?:[\\s;]*)(-{2}\\w[\\w-]*)(?:\\s*:\\s*)([^;]*);/g,\n cssVarFunc: /var\\(\\s*--[\\w-]/,\n cssVars: /(?:(?::(?:root|host)(?![.:#(])[\\s,]*[^{]*{\\s*[^;]*;*\\s*)|(?:var\\(\\s*))(--[^:)]+)(?:\\s*[:)])/\n};\n\nvar variableStore = {\n dom: {},\n job: {},\n user: {}\n};\n\nvar cssVarsIsRunning = false;\n\nvar cssVarsObserver = null;\n\nvar cssVarsSrcNodeCount = 0;\n\nvar debounceTimer = null;\n\nvar isShadowDOMReady = false;\n\n/**\n * Fetches, parses, and transforms CSS custom properties from specified\n * <style> and <link> elements into static values, then appends a new <style>\n * element with static values to the DOM to provide CSS custom property\n * compatibility for legacy browsers. Also provides a single interface for\n * live updates of runtime values in both modern and legacy browsers.\n *\n * @preserve\n * @param {object} [options] Options object\n * @param {object} [options.rootElement=document] Root element to traverse for\n * <link> and <style> nodes\n * @param {boolean} [options.shadowDOM=false] Determines if shadow DOM <link>\n * and <style> nodes will be processed.\n * @param {string} [options.include=\"style,link[rel=stylesheet]\"] CSS selector\n * matching <link re=\"stylesheet\"> and <style> nodes to\n * process\n * @param {string} [options.exclude] CSS selector matching <link\n * rel=\"stylehseet\"> and <style> nodes to exclude from those\n * matches by options.include\n * @param {object} [options.variables] A map of custom property name/value\n * pairs. Property names can omit or include the leading\n * double-hyphen (—), and values specified will override\n * previous values\n * @param {boolean} [options.onlyLegacy=true] Determines if the ponyfill will\n * only generate legacy-compatible CSS in browsers that lack\n * native support (i.e., legacy browsers)\n * @param {boolean} [options.preserveStatic=true] Determines if CSS\n * declarations that do not reference a custom property will\n * be preserved in the transformed CSS\n * @param {boolean} [options.preserveVars=false] Determines if CSS custom\n * property declarations will be preserved in the transformed\n * CSS\n * @param {boolean} [options.silent=false] Determines if warning and error\n * messages will be displayed on the console\n * @param {boolean} [options.updateDOM=true] Determines if the ponyfill will\n * update the DOM after processing CSS custom properties\n * @param {boolean} [options.updateURLs=true] Determines if the ponyfill will\n * convert relative url() paths to absolute urls\n * @param {boolean} [options.watch=false] Determines if a MutationObserver will\n * be created that will execute the ponyfill when a <link> or\n * <style> DOM mutation is observed\n * @param {function} [options.onBeforeSend] Callback before XHR is sent. Passes\n * 1) the XHR object, 2) source node reference, and 3) the\n * source URL as arguments\n * @param {function} [options.onWarning] Callback after each CSS parsing warning\n * has occurred. Passes 1) a warning message as an argument.\n * @param {function} [options.onError] Callback after a CSS parsing error has\n * occurred or an XHR request has failed. Passes 1) an error\n * message, and 2) source node reference, 3) xhr, and 4 url as\n * arguments.\n * @param {function} [options.onSuccess] Callback after CSS data has been\n * collected from each node and before CSS custom properties\n * have been transformed. Allows modifying the CSS data before\n * it is transformed by returning any string value (or false\n * to skip). Passes 1) CSS text, 2) source node reference, and\n * 3) the source URL as arguments.\n * @param {function} [options.onComplete] Callback after all CSS has been\n * processed, legacy-compatible CSS has been generated, and\n * (optionally) the DOM has been updated. Passes 1) a CSS\n * string with CSS variable values resolved, 2) an array of\n * output <style> node references that have been appended to\n * the DOM, 3) an object containing all custom properies names\n * and values, and 4) the ponyfill execution time in\n * milliseconds.\n *\n * @example\n *\n * cssVars({\n * rootElement : document,\n * shadowDOM : false,\n * include : 'style,link[rel=\"stylesheet\"]',\n * exclude : '',\n * variables : {},\n * onlyLegacy : true,\n * preserveStatic: true,\n * preserveVars : false,\n * silent : false,\n * updateDOM : true,\n * updateURLs : true,\n * watch : false,\n * onBeforeSend(xhr, node, url) {},\n * onWarning(message) {},\n * onError(message, node, xhr, url) {},\n * onSuccess(cssText, node, url) {},\n * onComplete(cssText, styleNode, cssVariables, benchmark) {}\n * });\n */ function cssVars() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var msgPrefix = \"cssVars(): \";\n var settings = _extends({}, defaults, options);\n function handleError(message, sourceNode, xhr, url) {\n if (!settings.silent && window.console) {\n console.error(\"\".concat(msgPrefix).concat(message, \"\\n\"), sourceNode);\n }\n settings.onError(message, sourceNode, xhr, url);\n }\n function handleWarning(message) {\n if (!settings.silent && window.console) {\n console.warn(\"\".concat(msgPrefix).concat(message));\n }\n settings.onWarning(message);\n }\n if (!isBrowser) {\n return;\n }\n if (settings.watch) {\n settings.watch = defaults.watch;\n addMutationObserver(settings);\n cssVars(settings);\n return;\n } else if (settings.watch === false && cssVarsObserver) {\n cssVarsObserver.disconnect();\n cssVarsObserver = null;\n }\n if (!settings.__benchmark) {\n if (cssVarsIsRunning === settings.rootElement) {\n cssVarsDebounced(options);\n return;\n }\n settings.__benchmark = getTimeStamp();\n settings.exclude = [ cssVarsObserver ? '[data-cssvars]:not([data-cssvars=\"\"])' : '[data-cssvars=\"out\"]', settings.exclude ].filter(function(selector) {\n return selector;\n }).join(\",\");\n settings.variables = fixVarNames(settings.variables);\n if (!cssVarsObserver) {\n var outNodes = Array.apply(null, settings.rootElement.querySelectorAll('[data-cssvars=\"out\"]'));\n outNodes.forEach(function(outNode) {\n var dataGroup = outNode.getAttribute(\"data-cssvars-group\");\n var srcNode = dataGroup ? settings.rootElement.querySelector('[data-cssvars=\"src\"][data-cssvars-group=\"'.concat(dataGroup, '\"]')) : null;\n if (!srcNode) {\n outNode.parentNode.removeChild(outNode);\n }\n });\n if (cssVarsSrcNodeCount) {\n var srcNodes = settings.rootElement.querySelectorAll('[data-cssvars]:not([data-cssvars=\"out\"])');\n if (srcNodes.length < cssVarsSrcNodeCount) {\n cssVarsSrcNodeCount = srcNodes.length;\n variableStore.dom = {};\n }\n }\n }\n }\n if (document.readyState !== \"loading\") {\n if (isNativeSupport && settings.onlyLegacy) {\n if (settings.updateDOM) {\n var targetElm = settings.rootElement.host || (settings.rootElement === document ? document.documentElement : settings.rootElement);\n Object.keys(settings.variables).forEach(function(key) {\n targetElm.style.setProperty(key, settings.variables[key]);\n });\n }\n } else if (!isShadowDOMReady && (settings.shadowDOM || settings.rootElement.shadowRoot || settings.rootElement.host)) {\n getCssData({\n rootElement: defaults.rootElement,\n include: defaults.include,\n exclude: settings.exclude,\n onSuccess: function onSuccess(cssText, node, url) {\n cssText = cssText.replace(regex.cssComments, \"\").replace(regex.cssMediaQueries, \"\");\n cssText = (cssText.match(regex.cssVarDeclRules) || []).join(\"\");\n return cssText || false;\n },\n onComplete: function onComplete(cssText, cssArray, nodeArray) {\n parseVars(cssText, {\n store: variableStore.dom,\n onWarning: handleWarning\n });\n isShadowDOMReady = true;\n cssVars(settings);\n }\n });\n } else {\n cssVarsIsRunning = settings.rootElement;\n getCssData({\n rootElement: settings.rootElement,\n include: settings.include,\n exclude: settings.exclude,\n onBeforeSend: settings.onBeforeSend,\n onError: function onError(xhr, node, url) {\n var responseUrl = xhr.responseURL || getFullUrl$1(url, location.href);\n var statusText = xhr.statusText ? \"(\".concat(xhr.statusText, \")\") : \"Unspecified Error\" + (xhr.status === 0 ? \" (possibly CORS related)\" : \"\");\n var errorMsg = \"CSS XHR Error: \".concat(responseUrl, \" \").concat(xhr.status, \" \").concat(statusText);\n handleError(errorMsg, node, xhr, responseUrl);\n },\n onSuccess: function onSuccess(cssText, node, url) {\n var returnVal = settings.onSuccess(cssText, node, url);\n cssText = returnVal !== undefined && Boolean(returnVal) === false ? \"\" : returnVal || cssText;\n if (settings.updateURLs) {\n cssText = fixRelativeCssUrls(cssText, url);\n }\n return cssText;\n },\n onComplete: function onComplete(cssText, cssArray) {\n var nodeArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var jobVars = {};\n var varStore = settings.updateDOM ? variableStore.dom : Object.keys(variableStore.job).length ? variableStore.job : variableStore.job = JSON.parse(JSON.stringify(variableStore.dom));\n var hasVarChange = false;\n nodeArray.forEach(function(node, i) {\n if (regex.cssVars.test(cssArray[i])) {\n try {\n var cssTree = parseCss(cssArray[i], {\n preserveStatic: settings.preserveStatic,\n removeComments: true\n });\n parseVars(cssTree, {\n parseHost: Boolean(settings.rootElement.host),\n store: jobVars,\n onWarning: handleWarning\n });\n node.__cssVars = {\n tree: cssTree\n };\n } catch (err) {\n handleError(err.message, node);\n }\n }\n });\n if (settings.updateDOM) {\n _extends(variableStore.user, settings.variables);\n }\n _extends(jobVars, settings.variables);\n hasVarChange = Boolean((document.querySelector(\"[data-cssvars]\") || Object.keys(variableStore.dom).length) && Object.keys(jobVars).some(function(name) {\n return jobVars[name] !== varStore[name];\n }));\n _extends(varStore, variableStore.user, jobVars);\n if (hasVarChange) {\n resetCssNodes(settings.rootElement);\n cssVars(settings);\n } else {\n var outCssArray = [];\n var outNodeArray = [];\n var hasKeyframesWithVars = false;\n variableStore.job = {};\n if (settings.updateDOM) {\n counters.job++;\n }\n nodeArray.forEach(function(node) {\n var isSkip = !node.__cssVars;\n if (node.__cssVars) {\n try {\n transformCss(node.__cssVars.tree, _extends({}, settings, {\n variables: varStore,\n onWarning: handleWarning\n }));\n var outCss = stringifyCss(node.__cssVars.tree);\n if (settings.updateDOM) {\n if (!node.getAttribute(\"data-cssvars\")) {\n node.setAttribute(\"data-cssvars\", \"src\");\n }\n if (outCss.length) {\n var dataGroup = node.getAttribute(\"data-cssvars-group\") || ++counters.group;\n var outCssNoSpaces = outCss.replace(/\\s/g, \"\");\n var outNode = settings.rootElement.querySelector('[data-cssvars=\"out\"][data-cssvars-group=\"'.concat(dataGroup, '\"]')) || document.createElement(\"style\");\n hasKeyframesWithVars = hasKeyframesWithVars || regex.cssKeyframes.test(outCss);\n if (!outNode.hasAttribute(\"data-cssvars\")) {\n outNode.setAttribute(\"data-cssvars\", \"out\");\n }\n if (outCssNoSpaces === node.textContent.replace(/\\s/g, \"\")) {\n isSkip = true;\n if (outNode && outNode.parentNode) {\n node.removeAttribute(\"data-cssvars-group\");\n outNode.parentNode.removeChild(outNode);\n }\n } else if (outCssNoSpaces !== outNode.textContent.replace(/\\s/g, \"\")) {\n [ node, outNode ].forEach(function(n) {\n n.setAttribute(\"data-cssvars-job\", counters.job);\n n.setAttribute(\"data-cssvars-group\", dataGroup);\n });\n outNode.textContent = outCss;\n outCssArray.push(outCss);\n outNodeArray.push(outNode);\n if (!outNode.parentNode) {\n node.parentNode.insertBefore(outNode, node.nextSibling);\n }\n }\n }\n } else {\n if (node.textContent.replace(/\\s/g, \"\") !== outCss) {\n outCssArray.push(outCss);\n }\n }\n } catch (err) {\n handleError(err.message, node);\n }\n }\n if (isSkip) {\n node.setAttribute(\"data-cssvars\", \"skip\");\n }\n if (!node.hasAttribute(\"data-cssvars-job\")) {\n node.setAttribute(\"data-cssvars-job\", counters.job);\n }\n });\n cssVarsSrcNodeCount = settings.rootElement.querySelectorAll('[data-cssvars]:not([data-cssvars=\"out\"])').length;\n if (settings.shadowDOM) {\n var elms = [ settings.rootElement ].concat(_toConsumableArray(settings.rootElement.querySelectorAll(\"*\")));\n for (var i = 0, elm; elm = elms[i]; ++i) {\n if (elm.shadowRoot && elm.shadowRoot.querySelector(\"style\")) {\n var shadowSettings = _extends({}, settings, {\n rootElement: elm.shadowRoot\n });\n cssVars(shadowSettings);\n }\n }\n }\n if (settings.updateDOM && hasKeyframesWithVars) {\n fixKeyframes(settings.rootElement);\n }\n cssVarsIsRunning = false;\n settings.onComplete(outCssArray.join(\"\"), outNodeArray, JSON.parse(JSON.stringify(varStore)), getTimeStamp() - settings.__benchmark);\n }\n }\n });\n }\n } else {\n document.addEventListener(\"DOMContentLoaded\", function init(evt) {\n cssVars(options);\n document.removeEventListener(\"DOMContentLoaded\", init);\n });\n }\n}\n\ncssVars.reset = function() {\n cssVarsIsRunning = false;\n if (cssVarsObserver) {\n cssVarsObserver.disconnect();\n cssVarsObserver = null;\n }\n cssVarsSrcNodeCount = 0;\n debounceTimer = null;\n isShadowDOMReady = false;\n for (var prop in variableStore) {\n variableStore[prop] = {};\n }\n};\n\nfunction addMutationObserver(settings) {\n function isLink(node) {\n var isStylesheet = node.tagName === \"LINK\" && (node.getAttribute(\"rel\") || \"\").indexOf(\"stylesheet\") !== -1;\n return isStylesheet && !node.disabled;\n }\n function isStyle(node) {\n return node.tagName === \"STYLE\" && !node.disabled;\n }\n function isValidAddMutation(mutationNodes) {\n return Array.apply(null, mutationNodes).some(function(node) {\n var isElm = node.nodeType === 1;\n var hasAttr = isElm && node.hasAttribute(\"data-cssvars\");\n var isStyleWithVars = isStyle(node) && regex.cssVars.test(node.textContent);\n var isValid = !hasAttr && (isLink(node) || isStyleWithVars);\n return isValid;\n });\n }\n function isValidRemoveMutation(mutationNodes) {\n return Array.apply(null, mutationNodes).some(function(node) {\n var isElm = node.nodeType === 1;\n var isOutNode = isElm && node.getAttribute(\"data-cssvars\") === \"out\";\n var isSrcNode = isElm && node.getAttribute(\"data-cssvars\") === \"src\";\n var isValid = isSrcNode;\n if (isSrcNode || isOutNode) {\n var dataGroup = node.getAttribute(\"data-cssvars-group\");\n var orphanNode = settings.rootElement.querySelector('[data-cssvars-group=\"'.concat(dataGroup, '\"]'));\n if (isSrcNode) {\n resetCssNodes(settings.rootElement);\n variableStore.dom = {};\n }\n if (orphanNode) {\n orphanNode.parentNode.removeChild(orphanNode);\n }\n }\n return isValid;\n });\n }\n if (!window.MutationObserver) {\n return;\n }\n if (cssVarsObserver) {\n cssVarsObserver.disconnect();\n cssVarsObserver = null;\n }\n cssVarsObserver = new MutationObserver(function(mutations) {\n var hasValidMutation = mutations.some(function(mutation) {\n var isValid = false;\n if (mutation.type === \"attributes\") {\n isValid = isLink(mutation.target);\n } else if (mutation.type === \"childList\") {\n isValid = isValidAddMutation(mutation.addedNodes) || isValidRemoveMutation(mutation.removedNodes);\n }\n return isValid;\n });\n if (hasValidMutation) {\n cssVars(settings);\n }\n });\n cssVarsObserver.observe(document.documentElement, {\n attributes: true,\n attributeFilter: [ \"disabled\", \"href\" ],\n childList: true,\n subtree: true\n });\n}\n\nfunction cssVarsDebounced(settings) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;\n clearTimeout(debounceTimer);\n debounceTimer = setTimeout(function() {\n settings.__benchmark = null;\n cssVars(settings);\n }, delay);\n}\n\nfunction fixKeyframes(rootElement) {\n var animationNameProp = [ \"animation-name\", \"-moz-animation-name\", \"-webkit-animation-name\" ].filter(function(prop) {\n return getComputedStyle(document.body)[prop];\n })[0];\n if (animationNameProp) {\n var allNodes = rootElement.getElementsByTagName(\"*\");\n var keyframeNodes = [];\n var nameMarker = \"__CSSVARSPONYFILL-KEYFRAMES__\";\n for (var i = 0, len = allNodes.length; i < len; i++) {\n var node = allNodes[i];\n var animationName = getComputedStyle(node)[animationNameProp];\n if (animationName !== \"none\") {\n node.style[animationNameProp] += nameMarker;\n keyframeNodes.push(node);\n }\n }\n void document.body.offsetHeight;\n for (var _i = 0, _len = keyframeNodes.length; _i < _len; _i++) {\n var nodeStyle = keyframeNodes[_i].style;\n nodeStyle[animationNameProp] = nodeStyle[animationNameProp].replace(nameMarker, \"\");\n }\n }\n}\n\nfunction fixRelativeCssUrls(cssText, baseUrl) {\n var cssUrls = cssText.replace(regex.cssComments, \"\").match(regex.cssUrls) || [];\n cssUrls.forEach(function(cssUrl) {\n var oldUrl = cssUrl.replace(regex.cssUrls, \"$1\");\n var newUrl = getFullUrl$1(oldUrl, baseUrl);\n cssText = cssText.replace(cssUrl, cssUrl.replace(oldUrl, newUrl));\n });\n return cssText;\n}\n\nfunction fixVarNames() {\n var varObj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var reLeadingHyphens = /^-{2}/;\n return Object.keys(varObj).reduce(function(obj, value) {\n var key = reLeadingHyphens.test(value) ? value : \"--\".concat(value.replace(/^-+/, \"\"));\n obj[key] = varObj[value];\n return obj;\n }, {});\n}\n\nfunction getFullUrl$1(url) {\n var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : location.href;\n var d = document.implementation.createHTMLDocument(\"\");\n var b = d.createElement(\"base\");\n var a = d.createElement(\"a\");\n d.head.appendChild(b);\n d.body.appendChild(a);\n b.href = base;\n a.href = url;\n return a.href;\n}\n\nfunction getTimeStamp() {\n return isBrowser && (window.performance || {}).now ? window.performance.now() : new Date().getTime();\n}\n\nfunction resetCssNodes(rootElement) {\n var resetNodes = Array.apply(null, rootElement.querySelectorAll('[data-cssvars=\"skip\"],[data-cssvars=\"src\"]'));\n resetNodes.forEach(function(node) {\n return node.setAttribute(\"data-cssvars\", \"\");\n });\n}\n\nexport default cssVars;\n//# sourceMappingURL=css-vars-ponyfill.esm.js.map\n","if (!String.prototype.startsWith) {\n (function () {\n \"use strict\";\n var toString = ({}).toString;\n var startsWith = function (search) {\n if (this == null) {\n throw TypeError();\n }\n var string = String(this);\n if (search && toString.call(search) == \"[object RegExp]\") {\n throw TypeError();\n }\n var stringLength = string.length;\n var searchString = String(search);\n var searchLength = searchString.length;\n var position = arguments.length > 1 ? arguments[1] : undefined;\n var pos = position ? Number(position) : 0;\n if (pos != pos) {\n pos = 0;\n }\n var start = Math.min(Math.max(pos, 0), stringLength);\n if (searchLength + start > stringLength) {\n return false;\n }\n var index = -1;\n while (++index < searchLength) {\n if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) {\n return false;\n }\n }\n return true;\n };\n Object.defineProperty(String.prototype, \"startsWith\", {\n \"value\": startsWith,\n \"configurable\": true,\n \"writable\": true\n });\n })();\n}\nif (!String.prototype.endsWith) {\n (function () {\n \"use strict\";\n var toString = ({}).toString;\n var endsWith = function (search) {\n if (this == null) {\n throw TypeError();\n }\n var string = String(this);\n if (search && toString.call(search) == \"[object RegExp]\") {\n throw TypeError();\n }\n var stringLength = string.length;\n var searchString = String(search);\n var searchLength = searchString.length;\n var pos = stringLength;\n if (arguments.length > 1) {\n var position = arguments[1];\n if (position !== undefined) {\n pos = position ? Number(position) : 0;\n if (pos != pos) {\n pos = 0;\n }\n }\n }\n var end = Math.min(Math.max(pos, 0), stringLength);\n var start = end - searchLength;\n if (start < 0) {\n return false;\n }\n var index = -1;\n while (++index < searchLength) {\n if (string.charCodeAt(start + index) != searchString.charCodeAt(index)) {\n return false;\n }\n }\n return true;\n };\n Object.defineProperty(String.prototype, \"endsWith\", {\n \"value\": endsWith,\n \"configurable\": true,\n \"writable\": true\n });\n })();\n}\nif (!String.prototype.includes) {\n (function () {\n \"use strict\";\n var toString = ({}).toString;\n var indexOf = (\"\").indexOf;\n var includes = function (search) {\n if (this == null) {\n throw TypeError();\n }\n var string = String(this);\n if (search && toString.call(search) == \"[object RegExp]\") {\n throw TypeError();\n }\n var stringLength = string.length;\n var searchString = String(search);\n var searchLength = searchString.length;\n var position = arguments.length > 1 ? arguments[1] : undefined;\n var pos = position ? Number(position) : 0;\n if (pos != pos) {\n pos = 0;\n }\n var start = Math.min(Math.max(pos, 0), stringLength);\n if (searchLength + start > stringLength) {\n return false;\n }\n return indexOf.call(string, searchString, pos) != -1;\n };\n Object.defineProperty(String.prototype, \"includes\", {\n \"value\": includes,\n \"configurable\": true,\n \"writable\": true\n });\n })();\n}\nif (!String.prototype.repeat) {\n (function () {\n \"use strict\";\n var repeat = function (count) {\n if (this == null) {\n throw TypeError();\n }\n var string = String(this);\n var n = count ? Number(count) : 0;\n if (n != n) {\n n = 0;\n }\n if (n < 0 || n == Infinity) {\n throw RangeError();\n }\n var result = \"\";\n while (n) {\n if (n % 2 == 1) {\n result += string;\n }\n if (n > 1) {\n string += string;\n }\n n >>= 1;\n }\n return result;\n };\n Object.defineProperty(String.prototype, \"repeat\", {\n \"value\": repeat,\n \"configurable\": true,\n \"writable\": true\n });\n })();\n}\nif (!String.prototype.padStart) {\n String.prototype.padStart = function padStart(targetLength, padString) {\n targetLength = targetLength >> 0;\n padString = String(typeof padString !== \"undefined\" ? padString : \" \");\n if (this.length > targetLength) {\n return String(this);\n } else {\n targetLength = targetLength - this.length;\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length);\n }\n return padString.slice(0, targetLength) + String(this);\n }\n };\n}\nif (!String.prototype.padEnd) {\n String.prototype.padEnd = function padEnd(targetLength, padString) {\n targetLength = targetLength >> 0;\n padString = String(typeof padString !== \"undefined\" ? padString : \" \");\n if (this.length > targetLength) {\n return String(this);\n } else {\n targetLength = targetLength - this.length;\n if (targetLength > padString.length) {\n padString += padString.repeat(targetLength / padString.length);\n }\n return String(this) + padString.slice(0, targetLength);\n }\n };\n}\n","if (!Object.entries) {\n\tObject.entries = function( obj ){\n\t\tvar ownProps = Object.keys( obj ),\n\t\t\ti = ownProps.length,\n\t\t\tresArray = new Array(i); // preallocate the Array\n\t\twhile (i--)\n\t\t\tresArray[i] = [ownProps[i], obj[ownProps[i]]];\n\n\t\treturn resArray;\n\t};\n}\n","if (!Array.prototype.fill) {\n\tObject.defineProperty(Array.prototype, 'fill', {\n\t\tvalue: function(value) {\n\n\t\t\t// Steps 1-2.\n\t\t\tif (this == null) {\n\t\t\t\tthrow new TypeError('this is null or not defined');\n\t\t\t}\n\n\t\t\tvar O = Object(this);\n\n\t\t\t// Steps 3-5.\n\t\t\tvar len = O.length >>> 0;\n\n\t\t\t// Steps 6-7.\n\t\t\tvar start = arguments[1];\n\t\t\tvar relativeStart = start >> 0;\n\n\t\t\t// Step 8.\n\t\t\tvar k = relativeStart < 0 ?\n\t\t\t\tMath.max(len + relativeStart, 0) :\n\t\t\t\tMath.min(relativeStart, len);\n\n\t\t\t// Steps 9-10.\n\t\t\tvar end = arguments[2];\n\t\t\tvar relativeEnd = end === undefined ?\n\t\t\t\tlen : end >> 0;\n\n\t\t\t// Step 11.\n\t\t\tvar final = relativeEnd < 0 ?\n\t\t\t\tMath.max(len + relativeEnd, 0) :\n\t\t\t\tMath.min(relativeEnd, len);\n\n\t\t\t// Step 12.\n\t\t\twhile (k < final) {\n\t\t\t\tO[k] = value;\n\t\t\t\tk++;\n\t\t\t}\n\n\t\t\t// Step 13.\n\t\t\treturn O;\n\t\t}\n\t});\n}\n","// https://tc39.github.io/ecma262/#sec-array.prototype.find\nif (!Array.prototype.find) {\n\tObject.defineProperty(Array.prototype, 'find', {\n\t\tvalue: function (predicate) {\n\t\t\t// 1. Let O be ? ToObject(this value).\n\t\t\tif (this == null) {\n\t\t\t\tthrow TypeError('\"this\" is null or not defined');\n\t\t\t}\n\n\t\t\tvar o = Object(this);\n\n\t\t\t// 2. Let len be ? ToLength(? Get(O, \"length\")).\n\t\t\tvar len = o.length >>> 0;\n\n\t\t\t// 3. If IsCallable(predicate) is false, throw a TypeError exception.\n\t\t\tif (typeof predicate !== 'function') {\n\t\t\t\tthrow TypeError('predicate must be a function');\n\t\t\t}\n\n\t\t\t// 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n\t\t\tvar thisArg = arguments[1];\n\n\t\t\t// 5. Let k be 0.\n\t\t\tvar k = 0;\n\n\t\t\t// 6. Repeat, while k < len\n\t\t\twhile (k < len) {\n\t\t\t\t// a. Let Pk be ! ToString(k).\n\t\t\t\t// b. Let kValue be ? Get(O, Pk).\n\t\t\t\t// c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n\t\t\t\t// d. If testResult is true, return kValue.\n\t\t\t\tvar kValue = o[k];\n\t\t\t\tif (predicate.call(thisArg, kValue, k, o)) {\n\t\t\t\t\treturn kValue;\n\t\t\t\t}\n\t\t\t\t// e. Increase k by 1.\n\t\t\t\tk++;\n\t\t\t}\n\n\t\t\t// 7. Return undefined.\n\t\t\treturn undefined;\n\t\t},\n\t\tconfigurable: true,\n\t\twritable: true\n\t});\n}\n","// https://tc39.github.io/ecma262/#sec-array.prototype.includes\nif (!Array.prototype.includes) {\n\tObject.defineProperty(Array.prototype, 'includes', {\n\t\tvalue: function(searchElement, fromIndex) {\n\n\t\t\tif (this == null) {\n\t\t\t\tthrow new TypeError('\"this\" is null or not defined');\n\t\t\t}\n\n\t\t\t// 1. Let O be ? ToObject(this value).\n\t\t\tvar o = Object(this);\n\n\t\t\t// 2. Let len be ? ToLength(? Get(O, \"length\")).\n\t\t\tvar len = o.length >>> 0;\n\n\t\t\t// 3. If len is 0, return false.\n\t\t\tif (len === 0) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// 4. Let n be ? ToInteger(fromIndex).\n\t\t\t// (If fromIndex is undefined, this step produces the value 0.)\n\t\t\tvar n = fromIndex | 0;\n\n\t\t\t// 5. If n ≥ 0, then\n\t\t\t// a. Let k be n.\n\t\t\t// 6. Else n < 0,\n\t\t\t// a. Let k be len + n.\n\t\t\t// b. If k < 0, let k be 0.\n\t\t\tvar k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n\t\t\tfunction sameValueZero(x, y) {\n\t\t\t\treturn x === y || (typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y));\n\t\t\t}\n\n\t\t\t// 7. Repeat, while k < len\n\t\t\twhile (k < len) {\n\t\t\t\t// a. Let elementK be the result of ? Get(O, ! ToString(k)).\n\t\t\t\t// b. If SameValueZero(searchElement, elementK) is true, return true.\n\t\t\t\tif (sameValueZero(o[k], searchElement)) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\t// c. Increase k by 1.\n\t\t\t\tk++;\n\t\t\t}\n\n\t\t\t// 8. Return false\n\t\t\treturn false;\n\t\t}\n\t});\n}\n","if (!Map.prototype.keys) {\n\tMap.prototype.keys = function() {\n\t\tconst keys = [];\n\t\tthis.forEach((value, key) => {\n\t\t\tkeys.push(key);\n\t\t});\n\t\treturn keys;\n\t}\n}\n","Number.isInteger = Number.isInteger || function(value) {\n\treturn typeof value === 'number' &&\n\t\tisFinite(value) &&\n\t\tMath.floor(value) === value;\n};\n","Number.isNaN = Number.isNaN || window.isNaN;\n","Number.parseInt = Number.parseInt || window.parseInt;\n","if (Element && !Element.prototype.matches) {\n\tvar proto = Element.prototype;\n\tproto.matches = proto.matchesSelector ||\n\t\tproto.mozMatchesSelector || proto.msMatchesSelector ||\n\t\tproto.oMatchesSelector || proto.webkitMatchesSelector;\n}\n","if (!Element.prototype.closest) {\n\tElement.prototype.closest = function(s) {\n\t\tvar el = this;\n\t\tif (!document.documentElement.contains(el)) return null;\n\t\tdo {\n\t\t\tif (el.matches(s)) return el;\n\t\t\tel = el.parentElement || el.parentNode;\n\t\t} while (el !== null && el.nodeType === 1);\n\t\treturn null;\n\t};\n}\n","if (!window.WeakSet) {\n\tvar counter = Date.now() % 1e9;\n\n\tfunction WeakSet(data) {\n\t\tthis.name = '__st' + (Math.random() * 1e9 >>> 0) + (counter++ + '__');\n\t\tdata && data.forEach && data.forEach(this.add, this);\n\t};\n\n\n\tvar proto = WeakSet.prototype;\n\n\tproto['add'] = function (val) {\n\t\tvar name = this.name;\n\t\tif (!val[name]) Object.defineProperty(val, name, {value: true, writable: true});\n\t\treturn this;\n\t};\n\tproto['delete'] = function (val) {\n\t\tif (!val[this.name]) return false;\n\t\tval[this.name] = undefined;\n\t\treturn true;\n\t};\n\tproto['has'] = function (val) {\n\t\treturn !!val[this.name];\n\t};\n\n\twindow.WeakSet = WeakSet;\n}\n","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)})});\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n!(function(global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n }\n // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n return;\n }\n\n // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n runtime.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] =\n GeneratorFunction.displayName = \"GeneratorFunction\";\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n prototype[method] = function(arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n runtime.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n runtime.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n runtime.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n runtime.async = function(innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList)\n );\n\n return runtime.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n Gp[toStringTagSymbol] = \"Generator\";\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n Gp[iteratorSymbol] = function() {\n return this;\n };\n\n Gp.toString = function() {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n runtime.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n})(\n // In sloppy mode, unbound `this` refers to the global object, fallback to\n // Function constructor if we're in global strict mode. That is sadly a form\n // of indirect eval which violates Content Security Policy.\n (function() {\n return this || (typeof self === \"object\" && self);\n })() || Function(\"return this\")()\n);\n","/**\n *\n *\n * @author Jerry Bendy <jerry@icewingcc.com>\n * @licence MIT\n *\n */\n\n(function(self) {\n 'use strict';\n\n var nativeURLSearchParams = (self.URLSearchParams && self.URLSearchParams.prototype.get) ? self.URLSearchParams : null,\n isSupportObjectConstructor = nativeURLSearchParams && (new nativeURLSearchParams({a: 1})).toString() === 'a=1',\n // There is a bug in safari 10.1 (and earlier) that incorrectly decodes `%2B` as an empty space and not a plus.\n decodesPlusesCorrectly = nativeURLSearchParams && (new nativeURLSearchParams('s=%2B').get('s') === '+'),\n __URLSearchParams__ = \"__URLSearchParams__\",\n // Fix bug in Edge which cannot encode ' &' correctly\n encodesAmpersandsCorrectly = nativeURLSearchParams ? (function() {\n var ampersandTest = new nativeURLSearchParams();\n ampersandTest.append('s', ' &');\n return ampersandTest.toString() === 's=+%26';\n })() : true,\n prototype = URLSearchParamsPolyfill.prototype,\n iterable = !!(self.Symbol && self.Symbol.iterator);\n\n if (nativeURLSearchParams && isSupportObjectConstructor && decodesPlusesCorrectly && encodesAmpersandsCorrectly) {\n return;\n }\n\n\n /**\n * Make a URLSearchParams instance\n *\n * @param {object|string|URLSearchParams} search\n * @constructor\n */\n function URLSearchParamsPolyfill(search) {\n search = search || \"\";\n\n // support construct object with another URLSearchParams instance\n if (search instanceof URLSearchParams || search instanceof URLSearchParamsPolyfill) {\n search = search.toString();\n }\n this [__URLSearchParams__] = parseToDict(search);\n }\n\n\n /**\n * Appends a specified key/value pair as a new search parameter.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.append = function(name, value) {\n appendTo(this [__URLSearchParams__], name, value);\n };\n\n /**\n * Deletes the given search parameter, and its associated value,\n * from the list of all search parameters.\n *\n * @param {string} name\n */\n prototype['delete'] = function(name) {\n delete this [__URLSearchParams__] [name];\n };\n\n /**\n * Returns the first value associated to the given search parameter.\n *\n * @param {string} name\n * @returns {string|null}\n */\n prototype.get = function(name) {\n var dict = this [__URLSearchParams__];\n return name in dict ? dict[name][0] : null;\n };\n\n /**\n * Returns all the values association with a given search parameter.\n *\n * @param {string} name\n * @returns {Array}\n */\n prototype.getAll = function(name) {\n var dict = this [__URLSearchParams__];\n return name in dict ? dict [name].slice(0) : [];\n };\n\n /**\n * Returns a Boolean indicating if such a search parameter exists.\n *\n * @param {string} name\n * @returns {boolean}\n */\n prototype.has = function(name) {\n return name in this [__URLSearchParams__];\n };\n\n /**\n * Sets the value associated to a given search parameter to\n * the given value. If there were several values, delete the\n * others.\n *\n * @param {string} name\n * @param {string} value\n */\n prototype.set = function set(name, value) {\n this [__URLSearchParams__][name] = ['' + value];\n };\n\n /**\n * Returns a string containg a query string suitable for use in a URL.\n *\n * @returns {string}\n */\n prototype.toString = function() {\n var dict = this[__URLSearchParams__], query = [], i, key, name, value;\n for (key in dict) {\n name = encode(key);\n for (i = 0, value = dict[key]; i < value.length; i++) {\n query.push(name + '=' + encode(value[i]));\n }\n }\n return query.join('&');\n };\n\n // There is a bug in Safari 10.1 and `Proxy`ing it is not enough.\n var forSureUsePolyfill = !decodesPlusesCorrectly;\n var useProxy = (!forSureUsePolyfill && nativeURLSearchParams && !isSupportObjectConstructor && self.Proxy)\n /*\n * Apply polifill to global object and append other prototype into it\n */\n Object.defineProperty(self, 'URLSearchParams', {\n value: (useProxy ?\n // Safari 10.0 doesn't support Proxy, so it won't extend URLSearchParams on safari 10.0\n new Proxy(nativeURLSearchParams, {\n construct: function(target, args) {\n return new target((new URLSearchParamsPolyfill(args[0]).toString()));\n }\n }) :\n URLSearchParamsPolyfill)\n });\n\n var USPProto = self.URLSearchParams.prototype;\n\n USPProto.polyfill = true;\n\n /**\n *\n * @param {function} callback\n * @param {object} thisArg\n */\n USPProto.forEach = USPProto.forEach || function(callback, thisArg) {\n var dict = parseToDict(this.toString());\n Object.getOwnPropertyNames(dict).forEach(function(name) {\n dict[name].forEach(function(value) {\n callback.call(thisArg, value, name, this);\n }, this);\n }, this);\n };\n\n /**\n * Sort all name-value pairs\n */\n USPProto.sort = USPProto.sort || function() {\n var dict = parseToDict(this.toString()), keys = [], k, i, j;\n for (k in dict) {\n keys.push(k);\n }\n keys.sort();\n\n for (i = 0; i < keys.length; i++) {\n this['delete'](keys[i]);\n }\n for (i = 0; i < keys.length; i++) {\n var key = keys[i], values = dict[key];\n for (j = 0; j < values.length; j++) {\n this.append(key, values[j]);\n }\n }\n };\n\n /**\n * Returns an iterator allowing to go through all keys of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n USPProto.keys = USPProto.keys || function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push(name);\n });\n return makeIterator(items);\n };\n\n /**\n * Returns an iterator allowing to go through all values of\n * the key/value pairs contained in this object.\n *\n * @returns {function}\n */\n USPProto.values = USPProto.values || function() {\n var items = [];\n this.forEach(function(item) {\n items.push(item);\n });\n return makeIterator(items);\n };\n\n /**\n * Returns an iterator allowing to go through all key/value\n * pairs contained in this object.\n *\n * @returns {function}\n */\n USPProto.entries = USPProto.entries || function() {\n var items = [];\n this.forEach(function(item, name) {\n items.push([name, item]);\n });\n return makeIterator(items);\n };\n\n\n if (iterable) {\n USPProto[self.Symbol.iterator] = USPProto[self.Symbol.iterator] || USPProto.entries;\n }\n\n\n function encode(str) {\n var replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'\\(\\)~]|%20|%00/g, function(match) {\n return replace[match];\n });\n }\n\n function decode(str) {\n return decodeURIComponent(str.replace(/\\+/g, ' '));\n }\n\n function makeIterator(arr) {\n var iterator = {\n next: function() {\n var value = arr.shift();\n return {done: value === undefined, value: value};\n }\n };\n\n if (iterable) {\n iterator[self.Symbol.iterator] = function() {\n return iterator;\n };\n }\n\n return iterator;\n }\n\n function parseToDict(search) {\n var dict = {};\n\n if (typeof search === \"object\") {\n for (var key in search) {\n if (search.hasOwnProperty(key)) {\n appendTo(dict, key, search[key])\n }\n }\n\n } else {\n // remove first '?'\n if (search.indexOf(\"?\") === 0) {\n search = search.slice(1);\n }\n\n var pairs = search.split(\"&\");\n for (var j = 0; j < pairs.length; j++) {\n var value = pairs [j],\n index = value.indexOf('=');\n\n if (-1 < index) {\n appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)));\n\n } else {\n if (value) {\n appendTo(dict, decode(value), '');\n }\n }\n }\n }\n\n return dict;\n }\n\n function appendTo(dict, name, value) {\n var val = typeof value === 'string' ? value : (\n value !== null && value !== undefined && typeof value.toString === 'function' ? value.toString() : JSON.stringify(value)\n )\n\n if (name in dict) {\n dict[name].push(val);\n } else {\n dict[name] = [val];\n }\n }\n\n})(typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : this));\n","const patchNodeValue = () => {\n\tif (!window.ShadyDOM) {\n\t\treturn;\n\t}\n\tconst nativeNodeValue = Object.getOwnPropertyDescriptor(Node.prototype, \"nodeValue\");\n\tObject.defineProperty(Node.prototype, \"nodeValue\", {\n\t\tget() {\n\t\t\treturn nativeNodeValue.get.apply(this);\n\t\t},\n\t\tset(text) {\n\t\t\tnativeNodeValue.set.apply(this, arguments); // eslint-disable-line\n\n\t\t\t// Call manually the mutation observer callback\n\t\t\tconst parentElement = this.parentNode;\n\t\t\tif (parentElement instanceof HTMLElement && parentElement.isUI5Element) {\n\t\t\t\tparentElement._processChildren();\n\t\t\t}\n\t\t},\n\t});\n};\n\npatchNodeValue();\n\nexport default {};\n","// CSS Custom Properties\nimport cssVars from \"css-vars-ponyfill/dist/css-vars-ponyfill.esm.js\";\n\n// String\nimport \"@ui5/webcomponents-utils/dist/sap/ui/thirdparty/es6-string-methods.js\";\n\n// Object\nimport \"../../thirdparty/Object.entries.js\";\n\n// Array\nimport \"../../thirdparty/Array.prototype.fill.js\";\nimport \"../../thirdparty/Array.prototype.find.js\";\nimport \"../../thirdparty/Array.prototype.includes.js\";\n\n// Map\nimport \"../../thirdparty/Map.prototype.keys.js\";\n\n// Number\nimport \"../../thirdparty/Number.isInteger.js\";\nimport \"../../thirdparty/Number.isNaN.js\";\nimport \"../../thirdparty/Number.parseInt.js\";\n\n// Element\nimport \"../../thirdparty/Element.prototype.matches.js\";\nimport \"../../thirdparty/Element.prototype.closest.js\";\n\n// WeakSet\nimport \"../../thirdparty/WeakSet.js\";\n\n// fetch\nimport \"../../thirdparty/fetch.js\";\n\n// async - await\nimport \"regenerator-runtime/runtime.js\";\n\n// Plus all polyfills needed for Edge are also needed for IE11\nimport \"./Edge.js\";\n\nwindow.CSSVarsPonyfill = {\n\tcssVars,\n};\n","let jQuery = {};\nexport { jQuery as default };\nexport const inject = (jQueryNew) => {\n jQuery = jQueryNew;\n}","var class2type = {};\nvar hasOwn = class2type.hasOwnProperty;\nvar toString = class2type.toString;\nvar fnToString = hasOwn.toString;\nvar ObjectFunctionString = fnToString.call(Object);\nvar fnIsPlainObject = function (obj) {\n var proto, Ctor;\n if (!obj || toString.call(obj) !== \"[object Object]\") {\n return false;\n }\n proto = Object.getPrototypeOf(obj);\n if (!proto) {\n return true;\n }\n Ctor = hasOwn.call(proto, \"constructor\") && proto.constructor;\n return typeof Ctor === \"function\" && fnToString.call(Ctor) === ObjectFunctionString;\n};\nexport default fnIsPlainObject;\n","/* eslint-disable */\nimport { inject as injectJQuery } from \"@ui5/webcomponents-utils/dist/sap/ui/thirdparty/jquery.js\";\nimport isPlainObject from \"@ui5/webcomponents-utils/dist/sap/base/util/isPlainObject.js\";\n\nvar jQuery = {\n\textend: function() {\n\t\tvar options, name, src, copy, copyIsArray, clone,\n\t\t\ttarget = arguments[ 0 ] || {},\n\t\t\ti = 1,\n\t\t\tlength = arguments.length,\n\t\t\tdeep = false;\n\n\t\t// Handle a deep copy situation\n\t\tif ( typeof target === \"boolean\" ) {\n\t\t\tdeep = target;\n\n\t\t\t// Skip the boolean and the target\n\t\t\ttarget = arguments[ i ] || {};\n\t\t\ti++;\n\t\t}\n\n\t\t// Handle case when target is a string or something (possible in deep copy)\n\t\tif ( typeof target !== \"object\" && typeof target !== \"function\" ) {\n\t\t\ttarget = {};\n\t\t}\n\n\t\t// Extend jQuery itself if only one argument is passed\n\t\tif ( i === length ) {\n\t\t\ttarget = this;\n\t\t\ti--;\n\t\t}\n\n\t\tfor ( ; i < length; i++ ) {\n\n\t\t\t// Only deal with non-null/undefined values\n\t\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t\t// Extend the base object\n\t\t\t\tfor ( name in options ) {\n\t\t\t\t\tsrc = target[ name ];\n\t\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t\t// Prevent never-ending loop\n\t\t\t\t\tif ( target === copy ) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif ( deep && copy && ( isPlainObject( copy ) ||\n\t\t\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\n\t\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && Array.isArray( src ) ? src : [];\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject( src ) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\ttarget[ name ] = extend( deep, clone, copy );\n\n\t\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Return the modified object\n\t\treturn target;\n\t},\n\tajaxSettings: {\n\t\tconverters: {\n\t\t\t\"text json\": (data) => JSON.parse( data + \"\" )\n\t\t}\n\t},\n\ttrim: function (str) {\n\t\treturn str.trim();\n\t}\n};\n\nwindow.jQuery = window.jQuery || jQuery;\ninjectJQuery(jQuery);\n\nexport default jQuery;\n\n/* eslint-enable */\n","export default value => {\n\tconst m = /\\$([-a-z0-9A-Z._]+)(?::([^$]*))?\\$/.exec(value);\n\treturn m && m[2] ? m[2].split(/,/) : null;\n};\n","import getDesigntimePropertyAsArray from \"./util/getDesigntimePropertyAsArray.js\";\n\nconst rLocale = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;\n\nclass Locale {\n\tconstructor(sLocaleId) {\n\t\tconst aResult = rLocale.exec(sLocaleId.replace(/_/g, \"-\"));\n\t\tif (aResult === null) {\n\t\t\tthrow new Error(`The given language ${sLocaleId} does not adhere to BCP-47.`);\n\t\t}\n\t\tthis.sLocaleId = sLocaleId;\n\t\tthis.sLanguage = aResult[1] || null;\n\t\tthis.sScript = aResult[2] || null;\n\t\tthis.sRegion = aResult[3] || null;\n\t\tthis.sVariant = (aResult[4] && aResult[4].slice(1)) || null;\n\t\tthis.sExtension = (aResult[5] && aResult[5].slice(1)) || null;\n\t\tthis.sPrivateUse = aResult[6] || null;\n\t\tif (this.sLanguage) {\n\t\t\tthis.sLanguage = this.sLanguage.toLowerCase();\n\t\t}\n\t\tif (this.sScript) {\n\t\t\tthis.sScript = this.sScript.toLowerCase().replace(/^[a-z]/, s => {\n\t\t\t\treturn s.toUpperCase();\n\t\t\t});\n\t\t}\n\t\tif (this.sRegion) {\n\t\t\tthis.sRegion = this.sRegion.toUpperCase();\n\t\t}\n\t}\n\n\tgetLanguage() {\n\t\treturn this.sLanguage;\n\t}\n\n\tgetScript() {\n\t\treturn this.sScript;\n\t}\n\n\tgetRegion() {\n\t\treturn this.sRegion;\n\t}\n\n\tgetVariant() {\n\t\treturn this.sVariant;\n\t}\n\n\tgetVariantSubtags() {\n\t\treturn this.sVariant ? this.sVariant.split(\"-\") : [];\n\t}\n\n\tgetExtension() {\n\t\treturn this.sExtension;\n\t}\n\n\tgetExtensionSubtags() {\n\t\treturn this.sExtension ? this.sExtension.slice(2).split(\"-\") : [];\n\t}\n\n\tgetPrivateUse() {\n\t\treturn this.sPrivateUse;\n\t}\n\n\tgetPrivateUseSubtags() {\n\t\treturn this.sPrivateUse ? this.sPrivateUse.slice(2).split(\"-\") : [];\n\t}\n\n\thasPrivateUseSubtag(sSubtag) {\n\t\treturn this.getPrivateUseSubtags().indexOf(sSubtag) >= 0;\n\t}\n\n\ttoString() {\n\t\tconst r = [this.sLanguage];\n\n\t\tif (this.sScript) {\n\t\t\tr.push(this.sScript);\n\t\t}\n\t\tif (this.sRegion) {\n\t\t\tr.push(this.sRegion);\n\t\t}\n\t\tif (this.sVariant) {\n\t\t\tr.push(this.sVariant);\n\t\t}\n\t\tif (this.sExtension) {\n\t\t\tr.push(this.sExtension);\n\t\t}\n\t\tif (this.sPrivateUse) {\n\t\t\tr.push(this.sPrivateUse);\n\t\t}\n\t\treturn r.join(\"-\");\n\t}\n\n\tstatic get _cldrLocales() {\n\t\treturn getDesigntimePropertyAsArray(\"$cldr-locales:ar,ar_EG,ar_SA,bg,br,ca,cs,da,de,de_AT,de_CH,el,el_CY,en,en_AU,en_GB,en_HK,en_IE,en_IN,en_NZ,en_PG,en_SG,en_ZA,es,es_AR,es_BO,es_CL,es_CO,es_MX,es_PE,es_UY,es_VE,et,fa,fi,fr,fr_BE,fr_CA,fr_CH,fr_LU,he,hi,hr,hu,id,it,it_CH,ja,kk,ko,lt,lv,ms,nb,nl,nl_BE,nn,pl,pt,pt_PT,ro,ru,ru_UA,sk,sl,sr,sv,th,tr,uk,vi,zh_CN,zh_HK,zh_SG,zh_TW$\");\n\t}\n\n\tstatic get _coreI18nLocales() {\n\t\treturn getDesigntimePropertyAsArray(\"$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,es,et,fi,fr,hi,hr,hu,it,iw,ja,ko,lt,lv,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$\");\n\t}\n}\n\nexport default Locale;\n","export default () => {\n\tconst browserLanguages = navigator.languages;\n\n\tconst navigatorLanguage = () => {\n\t\treturn navigator.language;\n\t};\n\n\tconst rawLocale = (browserLanguages && browserLanguages[0]) || navigatorLanguage() || navigator.userLanguage || navigator.browserLanguage;\n\n\treturn rawLocale || \"en\";\n};\n","let initialized = false;\n\nconst initialConfig = {\n\tanimationMode: \"full\",\n\ttheme: \"sap_fiori_3\",\n\trtl: null,\n\tlanguage: null,\n\tcalendarType: null,\n\tnoConflict: false, // no URL\n\tformatSettings: {},\n};\n\n/* General settings */\nconst getAnimationMode = () => {\n\tinitConfiguration();\n\treturn initialConfig.animationMode;\n};\n\nconst getTheme = () => {\n\tinitConfiguration();\n\treturn initialConfig.theme;\n};\n\nconst getRTL = () => {\n\tinitConfiguration();\n\treturn initialConfig.rtl;\n};\n\nconst getLanguage = () => {\n\tinitConfiguration();\n\treturn initialConfig.language;\n};\n\nconst getNoConflict = () => {\n\tinitConfiguration();\n\treturn initialConfig.noConflict;\n};\n\nconst getCalendarType = () => {\n\tinitConfiguration();\n\treturn initialConfig.calendarType;\n};\n\nconst getFormatSettings = () => {\n\tinitConfiguration();\n\treturn initialConfig.formatSettings;\n};\n\nconst booleanMapping = new Map();\nbooleanMapping.set(\"true\", true);\nbooleanMapping.set(\"false\", false);\n\nlet runtimeConfig = {};\n\nconst parseConfigurationScript = () => {\n\tconst configScript = document.querySelector(\"[data-ui5-config]\") || document.querySelector(\"[data-id='sap-ui-config']\"); // for backward compatibility\n\n\tlet configJSON;\n\n\tif (configScript) {\n\t\ttry {\n\t\t\tconfigJSON = JSON.parse(configScript.innerHTML);\n\t\t} catch (err) {\n\t\t\tconsole.warn(\"Incorrect data-sap-ui-config format. Please use JSON\"); /* eslint-disable-line */\n\t\t}\n\n\t\tif (configJSON) {\n\t\t\truntimeConfig = Object.assign({}, configJSON);\n\t\t}\n\t}\n};\n\nconst parseURLParameters = () => {\n\tconst params = new URLSearchParams(window.location.search);\n\n\tparams.forEach((value, key) => {\n\t\tif (!key.startsWith(\"sap-ui\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst lowerCaseValue = value.toLowerCase();\n\n\t\tconst param = key.split(\"sap-ui-\")[1];\n\n\t\tif (booleanMapping.has(value)) {\n\t\t\tvalue = booleanMapping.get(lowerCaseValue);\n\t\t}\n\n\t\truntimeConfig[param] = value;\n\t});\n};\n\nconst applyConfigurations = () => {\n\tObject.keys(runtimeConfig).forEach(key => {\n\t\tinitialConfig[key] = runtimeConfig[key];\n\t});\n};\n\nconst initConfiguration = () => {\n\tif (initialized) {\n\t\treturn;\n\t}\n\n\tparseConfigurationScript();\n\tparseURLParameters();\n\tapplyConfigurations();\n\n\tinitialized = true;\n};\n\nexport {\n\tgetAnimationMode,\n\tgetTheme,\n\tgetRTL,\n\tgetLanguage,\n\tgetNoConflict,\n\tgetCalendarType,\n\tgetFormatSettings,\n};\n","import { getLanguage as getConfiguredLanguage } from \"../InitialConfiguration.js\";\n\nconst language = getConfiguredLanguage();\n\nconst getLanguage = () => {\n\treturn language;\n};\n\nexport { getLanguage }; // eslint-disable-line\n","import Locale from \"./Locale.js\";\nimport detectNavigatorLanguage from \"./util/detectNavigatorLanguage.js\";\nimport { getLanguage as getConfigLanguage } from \"./config/Language.js\";\n\nconst convertToLocaleOrNull = lang => {\n\ttry {\n\t\tif (lang && typeof lang === \"string\") {\n\t\t\treturn new Locale(lang);\n\t\t}\n\t} catch (e) {\n\t\t// ignore\n\t}\n};\n\n/**\n * Returns the locale based on the configured language Configuration#getLanguage\n * If no language has been configured - a new locale based on browser language is returned\n */\nconst getLocale = () => {\n\tif (getConfigLanguage()) {\n\t\treturn new Locale(getConfigLanguage());\n\t}\n\n\treturn convertToLocaleOrNull(detectNavigatorLanguage());\n};\n\n/**\n * Returns the language of #getLocale return value\n */\nconst getLanguage = () => {\n\treturn getLocale().sLanguage;\n};\n\nexport { getLocale, getLanguage };\n","import { getLocale } from \"./LocaleProvider.js\";\n\nconst mSettings = {};\n\nconst getFormatLocale = () => {\n\treturn getLocale();\n};\n\nconst SETTINGS = {\n\tconfiguration: null,\n};\n\nconst setConfiguration = configuration => {\n\tSETTINGS.configuration = configuration;\n};\n\nconst getCustomLocaleData = () => {\n\treturn mSettings;\n};\n\n// needed for compatibilty\nconst getLegacyDateFormat = () => {};\nconst getLegacyDateCalendarCustomizing = () => {};\n\nexport {\n\tsetConfiguration,\n\tgetFormatLocale,\n\tgetLegacyDateFormat,\n\tgetLegacyDateCalendarCustomizing,\n\tgetCustomLocaleData,\n};\n","var CalendarType = {\n Gregorian: \"Gregorian\",\n Islamic: \"Islamic\",\n Japanese: \"Japanese\",\n Persian: \"Persian\",\n Buddhist: \"Buddhist\"\n};\nexport default CalendarType;\n","import CalendarType from \"@ui5/webcomponents-utils/dist/sap/ui/core/CalendarType.js\";\nimport { getCalendarType as getConfiguredCalendarType } from \"../InitialConfiguration.js\";\n\nconst calendarType = getConfiguredCalendarType();\n\nconst getCalendarType = () => {\n\tif (calendarType) {\n\t\tconst type = Object.keys(CalendarType).find(calType => calType === calendarType);\n\n\t\tif (type) {\n\t\t\treturn type;\n\t\t}\n\t}\n\n\treturn CalendarType.Gregorian;\n};\n\nexport { getCalendarType }; // eslint-disable-line\n","import { getFormatSettings } from \"../InitialConfiguration.js\";\n\nconst formatSettings = getFormatSettings();\n\nconst getFirstDayOfWeek = () => {\n\treturn formatSettings.firstDayOfWeek;\n};\n\nexport { getFirstDayOfWeek }; // eslint-disable-line\n","import { inject as injectCore } from \"@ui5/webcomponents-utils/dist/sap/ui/core/Core.js\";\nimport * as FormatSettings from \"../FormatSettings.js\";\nimport { getLanguage } from \"../config/Language.js\";\nimport { getCalendarType } from \"../config/CalendarType.js\";\nimport { getFirstDayOfWeek } from \"../config/FormatSettings.js\";\nimport getDesigntimePropertyAsArray from \"../util/getDesigntimePropertyAsArray.js\";\n\n/**\n * Shim for the OpenUI5 core\n * @deprecated - do not add new functionality\n */\n\nconst Configuration = {\n\tgetLanguage,\n\tgetCalendarType,\n\tgetFirstDayOfWeek,\n\tgetSupportedLanguages: () => {\n\t\treturn getDesigntimePropertyAsArray(\"$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,es,et,fi,fr,hi,hr,hu,it,iw,ja,ko,lt,lv,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$\");\n\t},\n\tgetOriginInfo: () => {},\n};\n\nconst Core = {\n\t/**\n\t * @deprecated - must be here for compatibility\n\t */\n\tgetConfiguration() {\n\t\treturn Configuration;\n\t},\n\n\t/**\n\t * @deprecated - must be here for compatibility\n\t */\n\tgetLibraryResourceBundle() {\n\t},\n\n\tgetFormatSettings() {\n\t\treturn FormatSettings;\n\t},\n};\n\nwindow.sap = window.sap || {};\nwindow.sap.ui = window.sap.ui || {};\n\n/**\n * @deprecated\n */\nwindow.sap.ui.getWCCore = function getWCCore() {\n\treturn Core;\n};\n\ninjectCore(Core);\n","const fetchPromises = new Map();\nconst jsonPromises = new Map();\nconst textPromises = new Map();\n\nconst fetchTextOnce = async url => {\n\tif (!fetchPromises.get(url)) {\n\t\tfetchPromises.set(url, fetch(url));\n\t}\n\tconst response = await fetchPromises.get(url);\n\n\tif (!textPromises.get(url)) {\n\t\ttextPromises.set(url, response.text());\n\t}\n\n\treturn textPromises.get(url);\n};\n\nconst fetchJsonOnce = async url => {\n\tif (!fetchPromises.get(url)) {\n\t\tfetchPromises.set(url, fetch(url));\n\t}\n\tconst response = await fetchPromises.get(url);\n\n\tif (!jsonPromises.get(url)) {\n\t\tjsonPromises.set(url, response.json());\n\t}\n\n\treturn jsonPromises.get(url);\n};\n\nexport { fetchTextOnce, fetchJsonOnce };\n","/* global sap */\n\nconst resources = new Map();\n\n// date formatters from the core do not know about this new mechanism of fetching assets,\n// but we can use the sap.ui.loader._.getModuleContent as a hook and provide the preloaded data,\n// so that a sync request via jQuery is never triggered.\nwindow.sap = window.sap || {};\nwindow.sap.ui = window.sap.ui || {};\n\nsap.ui.loader = sap.ui.loader || {};\nsap.ui.loader._ = sap.ui.loader._ || {};\nconst getModuleContentOrig = sap.ui.loader._.getModuleContent;\n\nsap.ui.loader._.getModuleContent = (moduleName, url) => {\n\tconst customContent = resources.get(moduleName) || resources.get(url);\n\n\tif (customContent) {\n\t\treturn customContent;\n\t}\n\tif (getModuleContentOrig) {\n\t\treturn getModuleContentOrig(moduleName, url);\n\t}\n\n\tconst missingModule = moduleName.match(/sap\\/ui\\/core\\/cldr\\/(\\w+)\\.json/);\n\n\tif (missingModule) {\n\t\tthrow new Error(`CLDR data for locale ${missingModule[1]} is not loaded!`);\n\t}\n\n\treturn \"\";\n};\n\nconst registerModuleContent = (moduleName, content) => {\n\tresources.set(moduleName, content);\n};\n\nexport { registerModuleContent }; // eslint-disable-line\n","import { fetchJsonOnce } from \"../util/FetchHelper.js\";\n\nconst themeURLs = new Map();\nconst themeStyles = new Map();\nconst registeredPackages = new Set();\nconst registeredThemes = new Set();\n\n/**\n * Used to provide CSS Vars for a specific theme for a specific package.\n * The CSS Vars can be passed directly as a string (containing them), as an object with a \"_\" property(containing them in the \"_\" property), or as a URL.\n * This URL must point to a JSON file, containing a \"_\" property.\n *\n * Example usage:\n * 1) Pass the CSS Vars as a string directly.\n * registerThemeProperties(\"my-package\", \"my_theme\", \":root{--var1: red;}\");\n * 2) Pass the CSS Vars as an object directly\n * registerThemeProperties(\"my-package\", \"my_theme\", {\"_\": \":root{--var1: red;}\"});\n * 3) Pass a URL to a JSON file, containing the CSS Vars in its \"_\" property. Will be fetched on demand, not upon registration.\n * registerThemeProperties(\"my-package\", \"my_theme\", \"http://url/to/my/theme.json\");\n *\n * @public\n * @param packageName - the NPM package for which CSS Vars are registered\n * @param themeName - the theme which the CSS Vars implement\n * @param style - can be one of three options: a string, an object with a \"_\" property or a URL to a JSON file with a \"_\" property\n */\nconst registerThemeProperties = (packageName, themeName, style) => {\n\tif (style._) {\n\t\t// JSON object like ({\"_\": \":root\"})\n\t\tthemeStyles.set(`${packageName}_${themeName}`, style._);\n\t} else if (style.includes(\":root\")) {\n\t\t// pure string\n\t\tthemeStyles.set(`${packageName}_${themeName}`, style);\n\t} else {\n\t\t// url for fetching\n\t\tthemeURLs.set(`${packageName}_${themeName}`, style);\n\t}\n\tregisteredPackages.add(packageName);\n\tregisteredThemes.add(themeName);\n};\n\nconst getThemeProperties = async (packageName, themeName) => {\n\tconst style = themeStyles.get(`${packageName}_${themeName}`);\n\tif (style) {\n\t\treturn style;\n\t}\n\n\tif (!registeredThemes.has(themeName)) {\n\t\tconst regThemesStr = [...registeredThemes.values()].join(\", \");\n\t\tconsole.warn(`You have requested a non-registered theme - falling back to sap_fiori_3. Registered themes are: ${regThemesStr}`); /* eslint-disable-line */\n\t\treturn themeStyles.get(`${packageName}_sap_fiori_3`);\n\t}\n\n\tconst data = await fetchThemeProperties(packageName, themeName);\n\tthemeStyles.set(`${packageName}_${themeName}`, data._);\n\treturn data._;\n};\n\nconst fetchThemeProperties = async (packageName, themeName) => {\n\tconst url = themeURLs.get(`${packageName}_${themeName}`);\n\n\tif (!url) {\n\t\tthrow new Error(`You have to import the ${packageName}/dist/Assets.js module to switch to additional themes`);\n\t}\n\treturn fetchJsonOnce(url);\n};\n\nconst getRegisteredPackages = () => {\n\treturn registeredPackages;\n};\n\nexport {\n\tregisterThemeProperties,\n\tgetThemeProperties,\n\tgetRegisteredPackages,\n};\n","var BaseObject;\nvar Interface = function (oObject, aMethods, bFacade) {\n if (!oObject) {\n return oObject;\n }\n BaseObject = BaseObject || sap.ui.requireSync(\"sap/ui/base/Object\");\n function fCreateDelegator(oObject, sMethodName) {\n return function () {\n var tmp = oObject[sMethodName].apply(oObject, arguments);\n if (bFacade) {\n return this;\n } else {\n return tmp instanceof BaseObject ? tmp.getInterface() : tmp;\n }\n };\n }\n if (!aMethods) {\n return {};\n }\n var sMethodName;\n for (var i = 0, ml = aMethods.length; i < ml; i++) {\n sMethodName = aMethods[i];\n if (!oObject[sMethodName] || typeof oObject[sMethodName] === \"function\") {\n this[sMethodName] = fCreateDelegator(oObject, sMethodName);\n }\n }\n};\nexport default Interface;\n","var ObjectPath = {};\nvar defaultRootContext = window;\nfunction getObjectPathArray(vObjectPath) {\n return Array.isArray(vObjectPath) ? vObjectPath : vObjectPath.split(\".\");\n}\nObjectPath.create = function (vObjectPath, oRootContext) {\n var oObject = oRootContext || defaultRootContext;\n var aNames = getObjectPathArray(vObjectPath);\n for (var i = 0; i < aNames.length; i++) {\n var sName = aNames[i];\n if (oObject[sName] === null || oObject[sName] !== undefined && (typeof oObject[sName] !== \"object\" && typeof oObject[sName] !== \"function\")) {\n throw new Error(\"Could not set object-path for '\" + aNames.join(\".\") + \"', path segment '\" + sName + \"' already exists.\");\n }\n oObject[sName] = oObject[sName] || ({});\n oObject = oObject[sName];\n }\n return oObject;\n};\nObjectPath.get = function (vObjectPath, oRootContext) {\n var oObject = oRootContext || defaultRootContext;\n var aNames = getObjectPathArray(vObjectPath);\n var sPropertyName = aNames.pop();\n for (var i = 0; i < aNames.length && oObject; i++) {\n oObject = oObject[aNames[i]];\n }\n return oObject ? oObject[sPropertyName] : undefined;\n};\nObjectPath.set = function (vObjectPath, vValue, oRootContext) {\n oRootContext = oRootContext || defaultRootContext;\n var aNames = getObjectPathArray(vObjectPath);\n var sPropertyName = aNames.pop();\n var oObject = ObjectPath.create(aNames, oRootContext);\n oObject[sPropertyName] = vValue;\n};\nexport default ObjectPath;\n","var fnNow = !(typeof window != \"undefined\" && window.performance && performance.now && performance.timing) ? Date.now : (function () {\n var iNavigationStart = performance.timing.navigationStart;\n return function perfnow() {\n return iNavigationStart + performance.now();\n };\n})();\nexport default fnNow;\n","import now from './util/now.js';\nvar Log = {};\nLog.Level = {\n NONE: -1,\n FATAL: 0,\n ERROR: 1,\n WARNING: 2,\n INFO: 3,\n DEBUG: 4,\n TRACE: 5,\n ALL: 5 + 1\n};\nvar sDefaultComponent, aLog = [], mMaxLevel = { '': Log.Level.ERROR }, oListener = null, bLogSupportInfo = false;\nfunction pad0(i, w) {\n return ('000' + String(i)).slice(-w);\n}\nfunction level(sComponent) {\n return !sComponent || isNaN(mMaxLevel[sComponent]) ? mMaxLevel[''] : mMaxLevel[sComponent];\n}\nfunction getLogEntryListenerInstance() {\n if (!oListener) {\n oListener = {\n listeners: [],\n onLogEntry: function (oLogEntry) {\n for (var i = 0; i < oListener.listeners.length; i++) {\n if (oListener.listeners[i].onLogEntry) {\n oListener.listeners[i].onLogEntry(oLogEntry);\n }\n }\n },\n attach: function (oLog, oLstnr) {\n if (oLstnr) {\n oListener.listeners.push(oLstnr);\n if (oLstnr.onAttachToLog) {\n oLstnr.onAttachToLog(oLog);\n }\n }\n },\n detach: function (oLog, oLstnr) {\n for (var i = 0; i < oListener.listeners.length; i++) {\n if (oListener.listeners[i] === oLstnr) {\n if (oLstnr.onDetachFromLog) {\n oLstnr.onDetachFromLog(oLog);\n }\n oListener.listeners.splice(i, 1);\n return;\n }\n }\n }\n };\n }\n return oListener;\n}\nLog.fatal = function (sMessage, sDetails, sComponent, fnSupportInfo) {\n log(Log.Level.FATAL, sMessage, sDetails, sComponent, fnSupportInfo);\n};\nLog.error = function (sMessage, sDetails, sComponent, fnSupportInfo) {\n log(Log.Level.ERROR, sMessage, sDetails, sComponent, fnSupportInfo);\n};\nLog.warning = function (sMessage, sDetails, sComponent, fnSupportInfo) {\n log(Log.Level.WARNING, sMessage, sDetails, sComponent, fnSupportInfo);\n};\nLog.info = function (sMessage, sDetails, sComponent, fnSupportInfo) {\n log(Log.Level.INFO, sMessage, sDetails, sComponent, fnSupportInfo);\n};\nLog.debug = function (sMessage, sDetails, sComponent, fnSupportInfo) {\n log(Log.Level.DEBUG, sMessage, sDetails, sComponent, fnSupportInfo);\n};\nLog.trace = function (sMessage, sDetails, sComponent, fnSupportInfo) {\n log(Log.Level.TRACE, sMessage, sDetails, sComponent, fnSupportInfo);\n};\nLog.setLevel = function (iLogLevel, sComponent, _bDefault) {\n sComponent = sComponent || sDefaultComponent || '';\n if (!_bDefault || mMaxLevel[sComponent] == null) {\n mMaxLevel[sComponent] = iLogLevel;\n var sLogLevel;\n Object.keys(Log.Level).forEach(function (sLevel) {\n if (Log.Level[sLevel] === iLogLevel) {\n sLogLevel = sLevel;\n }\n });\n log(Log.Level.INFO, 'Changing log level ' + (sComponent ? 'for \\'' + sComponent + '\\' ' : '') + 'to ' + sLogLevel, '', 'sap.base.log');\n }\n};\nLog.getLevel = function (sComponent) {\n return level(sComponent || sDefaultComponent);\n};\nLog.isLoggable = function (iLevel, sComponent) {\n return (iLevel == null ? Log.Level.DEBUG : iLevel) <= level(sComponent || sDefaultComponent);\n};\nLog.logSupportInfo = function (bEnabled) {\n bLogSupportInfo = bEnabled;\n};\nfunction log(iLevel, sMessage, sDetails, sComponent, fnSupportInfo) {\n if (bLogSupportInfo) {\n if (!fnSupportInfo && !sComponent && typeof sDetails === 'function') {\n fnSupportInfo = sDetails;\n sDetails = '';\n }\n if (!fnSupportInfo && typeof sComponent === 'function') {\n fnSupportInfo = sComponent;\n sComponent = '';\n }\n }\n sComponent = sComponent || sDefaultComponent;\n if (iLevel <= level(sComponent)) {\n var fNow = now(), oNow = new Date(fNow), iMicroSeconds = Math.floor((fNow - Math.floor(fNow)) * 1000), oLogEntry = {\n time: pad0(oNow.getHours(), 2) + ':' + pad0(oNow.getMinutes(), 2) + ':' + pad0(oNow.getSeconds(), 2) + '.' + pad0(oNow.getMilliseconds(), 3) + pad0(iMicroSeconds, 3),\n date: pad0(oNow.getFullYear(), 4) + '-' + pad0(oNow.getMonth() + 1, 2) + '-' + pad0(oNow.getDate(), 2),\n timestamp: fNow,\n level: iLevel,\n message: String(sMessage || ''),\n details: String(sDetails || ''),\n component: String(sComponent || '')\n };\n if (bLogSupportInfo && typeof fnSupportInfo === 'function') {\n oLogEntry.supportInfo = fnSupportInfo();\n }\n aLog.push(oLogEntry);\n if (oListener) {\n oListener.onLogEntry(oLogEntry);\n }\n if (console) {\n var logText = oLogEntry.date + ' ' + oLogEntry.time + ' ' + oLogEntry.message + ' - ' + oLogEntry.details + ' ' + oLogEntry.component;\n switch (iLevel) {\n case Log.Level.FATAL:\n case Log.Level.ERROR:\n console.error(logText);\n break;\n case Log.Level.WARNING:\n console.warn(logText);\n break;\n case Log.Level.INFO:\n console.info ? console.info(logText) : console.log(logText);\n break;\n case Log.Level.DEBUG:\n console.debug ? console.debug(logText) : console.log(logText);\n break;\n case Log.Level.TRACE:\n console.trace ? console.trace(logText) : console.log(logText);\n break;\n }\n if (console.info && oLogEntry.supportInfo) {\n console.info(oLogEntry.supportInfo);\n }\n }\n return oLogEntry;\n }\n}\nLog.getLogEntries = function () {\n return aLog.slice();\n};\nLog.addLogListener = function (oListener) {\n getLogEntryListenerInstance().attach(this, oListener);\n};\nLog.removeLogListener = function (oListener) {\n getLogEntryListenerInstance().detach(this, oListener);\n};\nfunction Logger(sComponent) {\n this.fatal = function (msg, detail, comp, support) {\n Log.fatal(msg, detail, comp || sComponent, support);\n return this;\n };\n this.error = function (msg, detail, comp, support) {\n Log.error(msg, detail, comp || sComponent, support);\n return this;\n };\n this.warning = function (msg, detail, comp, support) {\n Log.warning(msg, detail, comp || sComponent, support);\n return this;\n };\n this.info = function (msg, detail, comp, support) {\n Log.info(msg, detail, comp || sComponent, support);\n return this;\n };\n this.debug = function (msg, detail, comp, support) {\n Log.debug(msg, detail, comp || sComponent, support);\n return this;\n };\n this.trace = function (msg, detail, comp, support) {\n Log.trace(msg, detail, comp || sComponent, support);\n return this;\n };\n this.setLevel = function (level, comp) {\n Log.setLevel(level, comp || sComponent);\n return this;\n };\n this.getLevel = function (comp) {\n return Log.getLevel(comp || sComponent);\n };\n this.isLoggable = function (level, comp) {\n return Log.isLoggable(level, comp || sComponent);\n };\n}\nLog.getLogger = function (sComponent, iDefaultLogLevel) {\n if (!isNaN(iDefaultLogLevel) && mMaxLevel[sComponent] == null) {\n mMaxLevel[sComponent] = iDefaultLogLevel;\n }\n return new Logger(sComponent);\n};\nexport default Log;","import Log from './Log.js';\nvar fnAssert = function (bResult, vMessage) {\n if (!bResult) {\n var sMessage = typeof vMessage === 'function' ? vMessage() : vMessage;\n if (console && console.assert) {\n console.assert(bResult, sMessage);\n } else {\n Log.debug('[Assertions] ' + sMessage);\n }\n }\n};\nexport default fnAssert;","import assert from '../../assert.js';\nvar fnUniqueSort = function (aArray) {\n assert(aArray instanceof Array, 'uniqueSort: input parameter must be an Array');\n var l = aArray.length;\n if (l > 1) {\n aArray.sort();\n var j = 0;\n for (var i = 1; i < l; i++) {\n if (aArray[i] !== aArray[j]) {\n aArray[++j] = aArray[i];\n }\n }\n if (++j < l) {\n aArray.splice(j, l - j);\n }\n }\n return aArray;\n};\nexport default fnUniqueSort;","import ObjectPath from '../../base/util/ObjectPath.js';\nimport assert from '../../base/assert.js';\nimport Log from '../../base/Log.js';\nimport uniqueSort from '../../base/util/array/uniqueSort.js';\nvar Metadata = function (sClassName, oClassInfo) {\n assert(typeof sClassName === 'string' && sClassName, 'Metadata: sClassName must be a non-empty string');\n assert(typeof oClassInfo === 'object', 'Metadata: oClassInfo must be empty or an object');\n if (!oClassInfo || typeof oClassInfo.metadata !== 'object') {\n oClassInfo = {\n metadata: oClassInfo || {},\n constructor: ObjectPath.get(sClassName)\n };\n oClassInfo.metadata.__version = 1;\n }\n oClassInfo.metadata.__version = oClassInfo.metadata.__version || 2;\n if (typeof oClassInfo.constructor !== 'function') {\n throw Error('constructor for class ' + sClassName + ' must have been declared before creating metadata for it');\n }\n this._sClassName = sClassName;\n this._oClass = oClassInfo.constructor;\n this.extend(oClassInfo);\n};\nMetadata.prototype.extend = function (oClassInfo) {\n this.applySettings(oClassInfo);\n this.afterApplySettings();\n};\nMetadata.prototype.applySettings = function (oClassInfo) {\n var that = this, oStaticInfo = oClassInfo.metadata, oPrototype;\n if (oStaticInfo.baseType) {\n var oParentClass = ObjectPath.get(oStaticInfo.baseType);\n if (typeof oParentClass !== 'function') {\n Log.fatal('base class \\'' + oStaticInfo.baseType + '\\' does not exist');\n }\n if (oParentClass.getMetadata) {\n this._oParent = oParentClass.getMetadata();\n assert(oParentClass === oParentClass.getMetadata().getClass(), 'Metadata: oParentClass must match the class in the parent metadata');\n } else {\n this._oParent = new Metadata(oStaticInfo.baseType, {});\n }\n } else {\n this._oParent = undefined;\n }\n this._bAbstract = !!oStaticInfo['abstract'];\n this._bFinal = !!oStaticInfo['final'];\n this._sStereotype = oStaticInfo.stereotype || (this._oParent ? this._oParent._sStereotype : 'object');\n this._bDeprecated = !!oStaticInfo['deprecated'];\n this._aInterfaces = oStaticInfo.interfaces || [];\n this._aPublicMethods = oStaticInfo.publicMethods || [];\n this._bInterfacesUnique = false;\n oPrototype = this._oClass.prototype;\n for (var n in oClassInfo) {\n if (n !== 'metadata' && n !== 'constructor') {\n oPrototype[n] = oClassInfo[n];\n if (!n.match(/^_|^on|^init$|^exit$/)) {\n that._aPublicMethods.push(n);\n }\n }\n }\n};\nMetadata.prototype.afterApplySettings = function () {\n if (this._oParent) {\n this._aAllPublicMethods = this._oParent._aAllPublicMethods.concat(this._aPublicMethods);\n this._bInterfacesUnique = false;\n } else {\n this._aAllPublicMethods = this._aPublicMethods;\n }\n};\nMetadata.prototype.getStereotype = function () {\n return this._sStereotype;\n};\nMetadata.prototype.getName = function () {\n return this._sClassName;\n};\nMetadata.prototype.getClass = function () {\n return this._oClass;\n};\nMetadata.prototype.getParent = function () {\n return this._oParent;\n};\nMetadata.prototype._dedupInterfaces = function () {\n if (!this._bInterfacesUnique) {\n uniqueSort(this._aInterfaces);\n uniqueSort(this._aPublicMethods);\n uniqueSort(this._aAllPublicMethods);\n this._bInterfacesUnique = true;\n }\n};\nMetadata.prototype.getPublicMethods = function () {\n this._dedupInterfaces();\n return this._aPublicMethods;\n};\nMetadata.prototype.getAllPublicMethods = function () {\n this._dedupInterfaces();\n return this._aAllPublicMethods;\n};\nMetadata.prototype.getInterfaces = function () {\n this._dedupInterfaces();\n return this._aInterfaces;\n};\nMetadata.prototype.isInstanceOf = function (sInterface) {\n if (this._oParent) {\n if (this._oParent.isInstanceOf(sInterface)) {\n return true;\n }\n }\n var a = this._aInterfaces;\n for (var i = 0, l = a.length; i < l; i++) {\n if (a[i] === sInterface) {\n return true;\n }\n }\n return false;\n};\nvar WRITABLE_IFF_PHANTOM = false;\nObject.defineProperty(Metadata.prototype, '_mImplementedTypes', {\n get: function () {\n if (this === Metadata.prototype) {\n throw new Error('sap.ui.base.Metadata: The \\'_mImplementedTypes\\' property must not be accessed on the prototype');\n }\n var result = Object.create(this._oParent ? this._oParent._mImplementedTypes : null);\n result[this._sClassName] = true;\n var aInterfaces = this._aInterfaces, i = aInterfaces.length;\n while (i-- > 0) {\n if (!result[aInterfaces[i]]) {\n result[aInterfaces[i]] = true;\n }\n }\n Object.defineProperty(this, '_mImplementedTypes', {\n value: Object.freeze(result),\n writable: WRITABLE_IFF_PHANTOM,\n configurable: false\n });\n return result;\n },\n configurable: true\n});\nMetadata.prototype.isA = function (vTypeName) {\n var mTypes = this._mImplementedTypes;\n if (Array.isArray(vTypeName)) {\n for (var i = 0; i < vTypeName.length; i++) {\n if (vTypeName[i] in mTypes) {\n return true;\n }\n }\n return false;\n }\n return vTypeName in mTypes;\n};\nMetadata.prototype.isAbstract = function () {\n return this._bAbstract;\n};\nMetadata.prototype.isFinal = function () {\n return this._bFinal;\n};\nMetadata.prototype.isDeprecated = function () {\n return this._bDeprecated;\n};\nMetadata.prototype.addPublicMethods = function (sMethod) {\n var aNames = sMethod instanceof Array ? sMethod : arguments;\n Array.prototype.push.apply(this._aPublicMethods, aNames);\n Array.prototype.push.apply(this._aAllPublicMethods, aNames);\n this._bInterfacesUnique = false;\n};\nMetadata.createClass = function (fnBaseClass, sClassName, oClassInfo, FNMetaImpl) {\n if (typeof fnBaseClass === 'string') {\n FNMetaImpl = oClassInfo;\n oClassInfo = sClassName;\n sClassName = fnBaseClass;\n fnBaseClass = null;\n }\n assert(!fnBaseClass || typeof fnBaseClass === 'function');\n assert(typeof sClassName === 'string' && !!sClassName);\n assert(!oClassInfo || typeof oClassInfo === 'object');\n assert(!FNMetaImpl || typeof FNMetaImpl === 'function');\n FNMetaImpl = FNMetaImpl || Metadata;\n if (typeof FNMetaImpl.preprocessClassInfo === 'function') {\n oClassInfo = FNMetaImpl.preprocessClassInfo(oClassInfo);\n }\n oClassInfo = oClassInfo || {};\n oClassInfo.metadata = oClassInfo.metadata || {};\n if (!oClassInfo.hasOwnProperty('constructor')) {\n oClassInfo.constructor = undefined;\n }\n var fnClass = oClassInfo.constructor;\n assert(!fnClass || typeof fnClass === 'function');\n if (fnBaseClass) {\n if (!fnClass) {\n if (oClassInfo.metadata.deprecated) {\n fnClass = function () {\n Log.warning('Usage of deprecated class: ' + sClassName);\n fnBaseClass.apply(this, arguments);\n };\n } else {\n fnClass = function () {\n fnBaseClass.apply(this, arguments);\n };\n }\n }\n fnClass.prototype = Object.create(fnBaseClass.prototype);\n fnClass.prototype.constructor = fnClass;\n oClassInfo.metadata.baseType = fnBaseClass.getMetadata().getName();\n } else {\n fnClass = fnClass || function () {\n };\n delete oClassInfo.metadata.baseType;\n }\n oClassInfo.constructor = fnClass;\n ObjectPath.set(sClassName, fnClass);\n var oMetadata = new FNMetaImpl(sClassName, oClassInfo);\n fnClass.getMetadata = fnClass.prototype.getMetadata = function () {\n return oMetadata;\n };\n if (!fnClass.getMetadata().isFinal()) {\n fnClass.extend = function (sSCName, oSCClassInfo, fnSCMetaImpl) {\n return Metadata.createClass(fnClass, sSCName, oSCClassInfo, fnSCMetaImpl || FNMetaImpl);\n };\n }\n return fnClass;\n};\nexport default Metadata;","import Interface from './Interface.js';\nimport Metadata from './Metadata.js';\nimport Log from '../../base/Log.js';\nvar BaseObject = Metadata.createClass('sap.ui.base.Object', {\n constructor: function () {\n if (!(this instanceof BaseObject)) {\n throw Error('Cannot instantiate object: \"new\" is missing!');\n }\n }\n});\nBaseObject.prototype.destroy = function () {\n};\nBaseObject.prototype.getInterface = function () {\n var oInterface = new Interface(this, this.getMetadata().getAllPublicMethods());\n this.getInterface = function () {\n return oInterface;\n };\n return oInterface;\n};\nBaseObject.defineClass = function (sClassName, oStaticInfo, FNMetaImpl) {\n var oMetadata = new (FNMetaImpl || Metadata)(sClassName, oStaticInfo);\n var fnClass = oMetadata.getClass();\n fnClass.getMetadata = fnClass.prototype.getMetadata = function () {\n return oMetadata;\n };\n if (!oMetadata.isFinal()) {\n fnClass.extend = function (sSCName, oSCClassInfo, fnSCMetaImpl) {\n return Metadata.createClass(fnClass, sSCName, oSCClassInfo, fnSCMetaImpl || FNMetaImpl);\n };\n }\n Log.debug('defined class \\'' + sClassName + '\\'' + (oMetadata.getParent() ? ' as subclass of ' + oMetadata.getParent().getName() : ''));\n return oMetadata;\n};\nBaseObject.prototype.isA = function (vTypeName) {\n return this.getMetadata().isA(vTypeName);\n};\nBaseObject.isA = function (oObject, vTypeName) {\n return oObject instanceof BaseObject && oObject.isA(vTypeName);\n};\nexport default BaseObject;","import BaseObject from '../base/Object.js';\nimport assert from '../../base/assert.js';\nvar rLocale = /^((?:[A-Z]{2,3}(?:-[A-Z]{3}){0,3})|[A-Z]{4}|[A-Z]{5,8})(?:-([A-Z]{4}))?(?:-([A-Z]{2}|[0-9]{3}))?((?:-[0-9A-Z]{5,8}|-[0-9][0-9A-Z]{3})*)((?:-[0-9A-WYZ](?:-[0-9A-Z]{2,8})+)*)(?:-(X(?:-[0-9A-Z]{1,8})+))?$/i;\nvar Locale = BaseObject.extend('sap.ui.core.Locale', {\n constructor: function (sLocaleId) {\n BaseObject.apply(this);\n var aResult = rLocale.exec(sLocaleId.replace(/_/g, '-'));\n if (aResult === null) {\n throw 'The given language \\'' + sLocaleId + '\\' does not adhere to BCP-47.';\n }\n this.sLocaleId = sLocaleId;\n this.sLanguage = aResult[1] || null;\n this.sScript = aResult[2] || null;\n this.sRegion = aResult[3] || null;\n this.sVariant = aResult[4] && aResult[4].slice(1) || null;\n this.sExtension = aResult[5] && aResult[5].slice(1) || null;\n this.sPrivateUse = aResult[6] || null;\n if (this.sLanguage) {\n this.sLanguage = this.sLanguage.toLowerCase();\n }\n if (this.sScript) {\n this.sScript = this.sScript.toLowerCase().replace(/^[a-z]/, function ($) {\n return $.toUpperCase();\n });\n }\n if (this.sRegion) {\n this.sRegion = this.sRegion.toUpperCase();\n }\n },\n getLanguage: function () {\n return this.sLanguage;\n },\n getScript: function () {\n return this.sScript;\n },\n getRegion: function () {\n return this.sRegion;\n },\n getVariant: function () {\n return this.sVariant;\n },\n getVariantSubtags: function () {\n return this.sVariant ? this.sVariant.split('-') : [];\n },\n getExtension: function () {\n return this.sExtension;\n },\n getExtensionSubtags: function () {\n return this.sExtension ? this.sExtension.slice(2).split('-') : [];\n },\n getPrivateUse: function () {\n return this.sPrivateUse;\n },\n getPrivateUseSubtags: function () {\n return this.sPrivateUse ? this.sPrivateUse.slice(2).split('-') : [];\n },\n hasPrivateUseSubtag: function (sSubtag) {\n assert(sSubtag && sSubtag.match(/^[0-9A-Z]{1,8}$/i), 'subtag must be a valid BCP47 private use tag');\n return this.getPrivateUseSubtags().indexOf(sSubtag) >= 0;\n },\n toString: function () {\n var r = [this.sLanguage];\n if (this.sScript) {\n r.push(this.sScript);\n }\n if (this.sRegion) {\n r.push(this.sRegion);\n }\n if (this.sVariant) {\n r.push(this.sVariant);\n }\n if (this.sExtension) {\n r.push(this.sExtension);\n }\n if (this.sPrivateUse) {\n r.push(this.sPrivateUse);\n }\n return r.join('-');\n },\n getSAPLogonLanguage: function () {\n var sLanguage = this.sLanguage || '', m;\n if (sLanguage.indexOf('-') >= 0) {\n sLanguage = sLanguage.slice(0, sLanguage.indexOf('-'));\n }\n sLanguage = M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;\n if (sLanguage === 'zh') {\n if (this.sScript === 'Hant' || !this.sScript && this.sRegion === 'TW') {\n sLanguage = 'zf';\n }\n }\n if (this.sPrivateUse && (m = /-(saptrc|sappsd)(?:-|$)/i.exec(this.sPrivateUse))) {\n sLanguage = m[1].toLowerCase() === 'saptrc' ? '1Q' : '2Q';\n }\n return sLanguage.toUpperCase();\n }\n});\nvar M_ISO639_OLD_TO_NEW = {\n 'iw': 'he',\n 'ji': 'yi',\n 'in': 'id',\n 'sh': 'sr'\n};\nfunction getDesigntimePropertyAsArray(sValue) {\n var m = /\\$([-a-z0-9A-Z._]+)(?::([^$]*))?\\$/.exec(sValue);\n return m && m[2] ? m[2].split(/,/) : null;\n}\nvar A_RTL_LOCALES = getDesigntimePropertyAsArray('$cldr-rtl-locales:ar,fa,he$') || [];\nLocale._cldrLocales = getDesigntimePropertyAsArray('$cldr-locales:ar,ar_EG,ar_SA,bg,br,ca,cs,da,de,de_AT,de_CH,el,el_CY,en,en_AU,en_GB,en_HK,en_IE,en_IN,en_NZ,en_PG,en_SG,en_ZA,es,es_AR,es_BO,es_CL,es_CO,es_MX,es_PE,es_UY,es_VE,et,fa,fi,fr,fr_BE,fr_CA,fr_CH,fr_LU,he,hi,hr,hu,id,it,it_CH,ja,kk,ko,lt,lv,ms,nb,nl,nl_BE,nn,pl,pt,pt_PT,ro,ru,ru_UA,sk,sl,sr,sv,th,tr,uk,vi,zh_CN,zh_HK,zh_SG,zh_TW$');\nLocale._coreI18nLocales = getDesigntimePropertyAsArray('$core-i18n-locales:,ar,bg,ca,cs,da,de,el,en,es,et,fi,fr,hi,hr,hu,it,iw,ja,ko,lt,lv,nl,no,pl,pt,ro,ru,sh,sk,sl,sv,th,tr,uk,vi,zh_CN,zh_TW$');\nLocale._impliesRTL = function (vLanguage) {\n var oLocale = vLanguage instanceof Locale ? vLanguage : new Locale(vLanguage);\n var sLanguage = oLocale.getLanguage() || '';\n sLanguage = sLanguage && M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;\n var sRegion = oLocale.getRegion() || '';\n if (sRegion && A_RTL_LOCALES.indexOf(sLanguage + '_' + sRegion) >= 0) {\n return true;\n }\n return A_RTL_LOCALES.indexOf(sLanguage) >= 0;\n};\nexport default Locale;","export default {\n loadResource: function (name) {\n return sap.ui.loader._.getModuleContent(name);\n }\n};\n","import jQuery from '../thirdparty/jquery.js';\nimport BaseObject from '../base/Object.js';\nimport CalendarType from './CalendarType.js';\nimport Locale from './Locale.js';\nimport assert from '../../base/assert.js';\nimport LoaderExtensions from '../../base/util/LoaderExtensions.js';\nvar LocaleData = BaseObject.extend('sap.ui.core.LocaleData', {\n constructor: function (oLocale) {\n this.oLocale = oLocale;\n BaseObject.apply(this);\n this.mData = getData(oLocale);\n },\n _get: function () {\n return this._getDeep(this.mData, arguments);\n },\n _getMerged: function () {\n return this._get.apply(this, arguments);\n },\n _getDeep: function (oObject, aPropertyNames) {\n var oResult = oObject;\n for (var i = 0; i < aPropertyNames.length; i++) {\n oResult = oResult[aPropertyNames[i]];\n if (oResult === undefined) {\n break;\n }\n }\n return oResult;\n },\n getOrientation: function () {\n return this._get('orientation');\n },\n getLanguages: function () {\n return this._get('languages');\n },\n getScripts: function () {\n return this._get('scripts');\n },\n getTerritories: function () {\n return this._get('territories');\n },\n getMonths: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide', 'sWidth must be narrow, abbreviated or wide');\n return this._get(getCLDRCalendarName(sCalendarType), 'months', 'format', sWidth);\n },\n getMonthsStandAlone: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide', 'sWidth must be narrow, abbreviated or wide');\n return this._get(getCLDRCalendarName(sCalendarType), 'months', 'stand-alone', sWidth);\n },\n getDays: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide' || sWidth == 'short', 'sWidth must be narrow, abbreviate, wide or short');\n return this._get(getCLDRCalendarName(sCalendarType), 'days', 'format', sWidth);\n },\n getDaysStandAlone: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide' || sWidth == 'short', 'sWidth must be narrow, abbreviated, wide or short');\n return this._get(getCLDRCalendarName(sCalendarType), 'days', 'stand-alone', sWidth);\n },\n getQuarters: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide', 'sWidth must be narrow, abbreviated or wide');\n return this._get(getCLDRCalendarName(sCalendarType), 'quarters', 'format', sWidth);\n },\n getQuartersStandAlone: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide', 'sWidth must be narrow, abbreviated or wide');\n return this._get(getCLDRCalendarName(sCalendarType), 'quarters', 'stand-alone', sWidth);\n },\n getDayPeriods: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide', 'sWidth must be narrow, abbreviated or wide');\n return this._get(getCLDRCalendarName(sCalendarType), 'dayPeriods', 'format', sWidth);\n },\n getDayPeriodsStandAlone: function (sWidth, sCalendarType) {\n assert(sWidth == 'narrow' || sWidth == 'abbreviated' || sWidth == 'wide', 'sWidth must be narrow, abbreviated or wide');\n return this._get(getCLDRCalendarName(sCalendarType), 'dayPeriods', 'stand-alone', sWidth);\n },\n getDatePattern: function (sStyle, sCalendarType) {\n assert(sStyle == 'short' || sStyle == 'medium' || sStyle == 'long' || sStyle == 'full', 'sStyle must be short, medium, long or full');\n return this._get(getCLDRCalendarName(sCalendarType), 'dateFormats', sStyle);\n },\n getTimePattern: function (sStyle, sCalendarType) {\n assert(sStyle == 'short' || sStyle == 'medium' || sStyle == 'long' || sStyle == 'full', 'sStyle must be short, medium, long or full');\n return this._get(getCLDRCalendarName(sCalendarType), 'timeFormats', sStyle);\n },\n getDateTimePattern: function (sStyle, sCalendarType) {\n assert(sStyle == 'short' || sStyle == 'medium' || sStyle == 'long' || sStyle == 'full', 'sStyle must be short, medium, long or full');\n return this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', sStyle);\n },\n getCombinedDateTimePattern: function (sDateStyle, sTimeStyle, sCalendarType) {\n assert(sDateStyle == 'short' || sDateStyle == 'medium' || sDateStyle == 'long' || sDateStyle == 'full', 'sStyle must be short, medium, long or full');\n assert(sTimeStyle == 'short' || sTimeStyle == 'medium' || sTimeStyle == 'long' || sTimeStyle == 'full', 'sStyle must be short, medium, long or full');\n var sDateTimePattern = this.getDateTimePattern(sDateStyle, sCalendarType), sDatePattern = this.getDatePattern(sDateStyle, sCalendarType), sTimePattern = this.getTimePattern(sTimeStyle, sCalendarType);\n return sDateTimePattern.replace('{0}', sTimePattern).replace('{1}', sDatePattern);\n },\n getCustomDateTimePattern: function (sSkeleton, sCalendarType) {\n var oAvailableFormats = this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', 'availableFormats');\n return this._getFormatPattern(sSkeleton, oAvailableFormats, sCalendarType);\n },\n getIntervalPattern: function (sId, sCalendarType) {\n var oIntervalFormats = this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', 'intervalFormats'), aIdParts, sIntervalId, sDifference, oInterval, sPattern;\n if (sId) {\n aIdParts = sId.split('-');\n sIntervalId = aIdParts[0];\n sDifference = aIdParts[1];\n oInterval = oIntervalFormats[sIntervalId];\n if (oInterval) {\n sPattern = oInterval[sDifference];\n if (sPattern) {\n return sPattern;\n }\n }\n }\n return oIntervalFormats.intervalFormatFallback;\n },\n getCombinedIntervalPattern: function (sPattern, sCalendarType) {\n var oIntervalFormats = this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', 'intervalFormats'), sFallbackPattern = oIntervalFormats.intervalFormatFallback;\n return sFallbackPattern.replace(/\\{(0|1)\\}/g, sPattern);\n },\n getCustomIntervalPattern: function (sSkeleton, vGreatestDiff, sCalendarType) {\n var oAvailableFormats = this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', 'intervalFormats');\n return this._getFormatPattern(sSkeleton, oAvailableFormats, sCalendarType, vGreatestDiff);\n },\n _getFormatPattern: function (sSkeleton, oAvailableFormats, sCalendarType, vDiff) {\n var vPattern, aPatterns, oIntervalFormats;\n if (!vDiff) {\n vPattern = oAvailableFormats[sSkeleton];\n } else if (typeof vDiff === 'string') {\n if (vDiff == 'j' || vDiff == 'J') {\n vDiff = this.getPreferredHourSymbol();\n }\n oIntervalFormats = oAvailableFormats[sSkeleton];\n vPattern = oIntervalFormats && oIntervalFormats[vDiff];\n }\n if (vPattern) {\n if (typeof vPattern === 'object') {\n aPatterns = Object.keys(vPattern).map(function (sKey) {\n return vPattern[sKey];\n });\n } else {\n return vPattern;\n }\n }\n if (!aPatterns) {\n aPatterns = this._createFormatPattern(sSkeleton, oAvailableFormats, sCalendarType, vDiff);\n }\n if (aPatterns && aPatterns.length === 1) {\n return aPatterns[0];\n }\n return aPatterns;\n },\n _createFormatPattern: function (sSkeleton, oAvailableFormats, sCalendarType, vDiff) {\n var aTokens = this._parseSkeletonFormat(sSkeleton), aPatterns, oBestMatch = this._findBestMatch(aTokens, sSkeleton, oAvailableFormats), oToken, oAvailableDateTimeFormats, sPattern, sSinglePattern, sDiffSymbol, sDiffGroup, rMixedSkeleton = /^([GyYqQMLwWEecdD]+)([hHkKjJmszZvVOXx]+)$/, bSingleDate, i;\n if (vDiff) {\n if (typeof vDiff === 'string') {\n sDiffGroup = mCLDRSymbols[vDiff] ? mCLDRSymbols[vDiff].group : '';\n if (sDiffGroup) {\n bSingleDate = mCLDRSymbolGroups[sDiffGroup].index > aTokens[aTokens.length - 1].index;\n }\n sDiffSymbol = vDiff;\n } else {\n bSingleDate = true;\n for (i = aTokens.length - 1; i >= 0; i--) {\n oToken = aTokens[i];\n if (vDiff[oToken.group]) {\n bSingleDate = false;\n break;\n }\n }\n for (i = 0; i < aTokens.length; i++) {\n oToken = aTokens[i];\n if (vDiff[oToken.group]) {\n sDiffSymbol = oToken.symbol;\n break;\n }\n }\n if ((sDiffSymbol == 'h' || sDiffSymbol == 'K') && vDiff.DayPeriod) {\n sDiffSymbol = 'a';\n }\n }\n if (bSingleDate) {\n return [this.getCustomDateTimePattern(sSkeleton, sCalendarType)];\n }\n if (oBestMatch && oBestMatch.missingTokens.length === 0) {\n sPattern = oBestMatch.pattern[sDiffSymbol];\n if (sPattern && oBestMatch.distance > 0) {\n sPattern = this._expandFields(sPattern, oBestMatch.patternTokens, aTokens);\n }\n }\n if (!sPattern) {\n oAvailableDateTimeFormats = this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', 'availableFormats');\n if (rMixedSkeleton.test(sSkeleton) && 'ahHkKjJms'.indexOf(sDiffSymbol) >= 0) {\n sPattern = this._getMixedFormatPattern(sSkeleton, oAvailableDateTimeFormats, sCalendarType, vDiff);\n } else {\n sSinglePattern = this._getFormatPattern(sSkeleton, oAvailableDateTimeFormats, sCalendarType);\n sPattern = this.getCombinedIntervalPattern(sSinglePattern, sCalendarType);\n }\n }\n aPatterns = [sPattern];\n } else if (!oBestMatch) {\n sPattern = sSkeleton;\n aPatterns = [sPattern];\n } else {\n if (typeof oBestMatch.pattern === 'string') {\n aPatterns = [oBestMatch.pattern];\n } else if (typeof oBestMatch.pattern === 'object') {\n aPatterns = [];\n for (var sKey in oBestMatch.pattern) {\n sPattern = oBestMatch.pattern[sKey];\n aPatterns.push(sPattern);\n }\n }\n if (oBestMatch.distance > 0) {\n if (oBestMatch.missingTokens.length > 0) {\n if (rMixedSkeleton.test(sSkeleton)) {\n aPatterns = [this._getMixedFormatPattern(sSkeleton, oAvailableFormats, sCalendarType)];\n } else {\n aPatterns = this._expandFields(aPatterns, oBestMatch.patternTokens, aTokens);\n aPatterns = this._appendItems(aPatterns, oBestMatch.missingTokens, sCalendarType);\n }\n } else {\n aPatterns = this._expandFields(aPatterns, oBestMatch.patternTokens, aTokens);\n }\n }\n }\n if (sSkeleton.indexOf('J') >= 0) {\n aPatterns.forEach(function (sPattern, iIndex) {\n aPatterns[iIndex] = sPattern.replace(/ ?[abB](?=([^']*'[^']*')*[^']*)$/g, '');\n });\n }\n return aPatterns;\n },\n _parseSkeletonFormat: function (sSkeleton) {\n var aTokens = [], oToken = { index: -1 }, sSymbol, oSymbol, oGroup;\n for (var i = 0; i < sSkeleton.length; i++) {\n sSymbol = sSkeleton.charAt(i);\n if (sSymbol == 'j' || sSymbol == 'J') {\n sSymbol = this.getPreferredHourSymbol();\n }\n if (sSymbol == oToken.symbol) {\n oToken.length++;\n continue;\n }\n oSymbol = mCLDRSymbols[sSymbol];\n oGroup = mCLDRSymbolGroups[oSymbol.group];\n if (oSymbol.group == 'Other' || oGroup.diffOnly) {\n throw new Error('Symbol \\'' + sSymbol + '\\' is not allowed in skeleton format \\'' + sSkeleton + '\\'');\n }\n if (oGroup.index <= oToken.index) {\n throw new Error('Symbol \\'' + sSymbol + '\\' at wrong position or duplicate in skeleton format \\'' + sSkeleton + '\\'');\n }\n oToken = {\n symbol: sSymbol,\n group: oSymbol.group,\n match: oSymbol.match,\n index: oGroup.index,\n field: oGroup.field,\n length: 1\n };\n aTokens.push(oToken);\n }\n return aTokens;\n },\n _findBestMatch: function (aTokens, sSkeleton, oAvailableFormats) {\n var aTestTokens, aMissingTokens, oToken, oTestToken, iTest, iDistance, bMatch, iFirstDiffPos, oTokenSymbol, oTestTokenSymbol, oBestMatch = {\n distance: 10000,\n firstDiffPos: -1\n };\n for (var sTestSkeleton in oAvailableFormats) {\n if (sTestSkeleton === 'intervalFormatFallback' || sTestSkeleton.indexOf('B') > -1) {\n continue;\n }\n aTestTokens = this._parseSkeletonFormat(sTestSkeleton);\n iDistance = 0;\n aMissingTokens = [];\n bMatch = true;\n if (aTokens.length < aTestTokens.length) {\n continue;\n }\n iTest = 0;\n iFirstDiffPos = aTokens.length;\n for (var i = 0; i < aTokens.length; i++) {\n oToken = aTokens[i];\n oTestToken = aTestTokens[iTest];\n if (iFirstDiffPos === aTokens.length) {\n iFirstDiffPos = i;\n }\n if (oTestToken) {\n oTokenSymbol = mCLDRSymbols[oToken.symbol];\n oTestTokenSymbol = mCLDRSymbols[oTestToken.symbol];\n if (oToken.symbol === oTestToken.symbol) {\n if (oToken.length === oTestToken.length) {\n if (iFirstDiffPos === i) {\n iFirstDiffPos = aTokens.length;\n }\n } else {\n if (oToken.length < oTokenSymbol.numericCeiling ? oTestToken.length < oTestTokenSymbol.numericCeiling : oTestToken.length >= oTestTokenSymbol.numericCeiling) {\n iDistance += Math.abs(oToken.length - oTestToken.length);\n } else {\n iDistance += 5;\n }\n }\n iTest++;\n continue;\n } else {\n if (oToken.match == oTestToken.match) {\n iDistance += Math.abs(oToken.length - oTestToken.length) + 10;\n iTest++;\n continue;\n }\n }\n }\n aMissingTokens.push(oToken);\n iDistance += 50 - i;\n }\n if (iTest < aTestTokens.length) {\n bMatch = false;\n }\n if (bMatch && (iDistance < oBestMatch.distance || iDistance === oBestMatch.distance && iFirstDiffPos > oBestMatch.firstDiffPos)) {\n oBestMatch.distance = iDistance;\n oBestMatch.firstDiffPos = iFirstDiffPos;\n oBestMatch.missingTokens = aMissingTokens;\n oBestMatch.pattern = oAvailableFormats[sTestSkeleton];\n oBestMatch.patternTokens = aTestTokens;\n }\n }\n if (oBestMatch.pattern) {\n return oBestMatch;\n }\n },\n _expandFields: function (vPattern, aPatternTokens, aTokens) {\n var bSinglePattern = typeof vPattern === 'string';\n var aPatterns;\n if (bSinglePattern) {\n aPatterns = [vPattern];\n } else {\n aPatterns = vPattern;\n }\n var aResult = aPatterns.map(function (sPattern) {\n var mGroups = {}, mPatternGroups = {}, sResultPatterm = '', bQuoted = false, i = 0, iSkeletonLength, iPatternLength, iOldLength, iNewLength, oSkeletonToken, oBestToken, oSymbol, oSkeletonSymbol, oBestSymbol, sChar;\n aTokens.forEach(function (oToken) {\n mGroups[oToken.group] = oToken;\n });\n aPatternTokens.forEach(function (oToken) {\n mPatternGroups[oToken.group] = oToken;\n });\n while (i < sPattern.length) {\n sChar = sPattern.charAt(i);\n if (bQuoted) {\n sResultPatterm += sChar;\n if (sChar == '\\'') {\n bQuoted = false;\n }\n } else {\n oSymbol = mCLDRSymbols[sChar];\n if (oSymbol && mGroups[oSymbol.group] && mPatternGroups[oSymbol.group]) {\n oSkeletonToken = mGroups[oSymbol.group];\n oBestToken = mPatternGroups[oSymbol.group];\n oSkeletonSymbol = mCLDRSymbols[oSkeletonToken.symbol];\n oBestSymbol = mCLDRSymbols[oBestToken.symbol];\n iSkeletonLength = oSkeletonToken.length;\n iPatternLength = oBestToken.length;\n iOldLength = 1;\n while (sPattern.charAt(i + 1) == sChar) {\n i++;\n iOldLength++;\n }\n if (iSkeletonLength === iPatternLength || (iSkeletonLength < oSkeletonSymbol.numericCeiling ? iPatternLength >= oBestSymbol.numericCeiling : iPatternLength < oBestSymbol.numericCeiling)) {\n iNewLength = iOldLength;\n } else {\n iNewLength = Math.max(iOldLength, iSkeletonLength);\n }\n for (var j = 0; j < iNewLength; j++) {\n sResultPatterm += sChar;\n }\n } else {\n sResultPatterm += sChar;\n if (sChar == '\\'') {\n bQuoted = true;\n }\n }\n }\n i++;\n }\n return sResultPatterm;\n });\n return bSinglePattern ? aResult[0] : aResult;\n },\n _appendItems: function (aPatterns, aMissingTokens, sCalendarType) {\n var oAppendItems = this._get(getCLDRCalendarName(sCalendarType), 'dateTimeFormats', 'appendItems');\n aPatterns.forEach(function (sPattern, iIndex) {\n var sDisplayName, sAppendPattern, sAppendField;\n aMissingTokens.forEach(function (oToken) {\n sAppendPattern = oAppendItems[oToken.group];\n sDisplayName = '\\'' + this.getDisplayName(oToken.field) + '\\'';\n sAppendField = '';\n for (var i = 0; i < oToken.length; i++) {\n sAppendField += oToken.symbol;\n }\n aPatterns[iIndex] = sAppendPattern.replace(/\\{0\\}/, sPattern).replace(/\\{1\\}/, sAppendField).replace(/\\{2\\}/, sDisplayName);\n }.bind(this));\n }.bind(this));\n return aPatterns;\n },\n _getMixedFormatPattern: function (sSkeleton, oAvailableFormats, sCalendarType, vDiff) {\n var rMixedSkeleton = /^([GyYqQMLwWEecdD]+)([hHkKjJmszZvVOXx]+)$/, rWideMonth = /MMMM|LLLL/, rAbbrevMonth = /MMM|LLL/, rWeekDay = /E|e|c/, oResult, sDateSkeleton, sTimeSkeleton, sStyle, sDatePattern, sTimePattern, sDateTimePattern, sResultPattern;\n oResult = rMixedSkeleton.exec(sSkeleton);\n sDateSkeleton = oResult[1];\n sTimeSkeleton = oResult[2];\n sDatePattern = this._getFormatPattern(sDateSkeleton, oAvailableFormats, sCalendarType);\n if (vDiff) {\n sTimePattern = this.getCustomIntervalPattern(sTimeSkeleton, vDiff, sCalendarType);\n } else {\n sTimePattern = this._getFormatPattern(sTimeSkeleton, oAvailableFormats, sCalendarType);\n }\n if (rWideMonth.test(sDateSkeleton)) {\n sStyle = rWeekDay.test(sDateSkeleton) ? 'full' : 'long';\n } else if (rAbbrevMonth.test(sDateSkeleton)) {\n sStyle = 'medium';\n } else {\n sStyle = 'short';\n }\n sDateTimePattern = this.getDateTimePattern(sStyle, sCalendarType);\n sResultPattern = sDateTimePattern.replace(/\\{1\\}/, sDatePattern).replace(/\\{0\\}/, sTimePattern);\n return sResultPattern;\n },\n getNumberSymbol: function (sType) {\n assert(sType == 'decimal' || sType == 'group' || sType == 'plusSign' || sType == 'minusSign' || sType == 'percentSign', 'sType must be decimal, group, plusSign, minusSign or percentSign');\n return this._get('symbols-latn-' + sType);\n },\n getDecimalPattern: function () {\n return this._get('decimalFormat').standard;\n },\n getCurrencyPattern: function (sContext) {\n return this._get('currencyFormat')[sContext] || this._get('currencyFormat').standard;\n },\n getCurrencySpacing: function (sPosition) {\n return this._get('currencyFormat', 'currencySpacing', sPosition === 'after' ? 'afterCurrency' : 'beforeCurrency');\n },\n getPercentPattern: function () {\n return this._get('percentFormat').standard;\n },\n getMinimalDaysInFirstWeek: function () {\n return this._get('weekData-minDays');\n },\n getFirstDayOfWeek: function () {\n return this._get('weekData-firstDay');\n },\n getWeekendStart: function () {\n return this._get('weekData-weekendStart');\n },\n getWeekendEnd: function () {\n return this._get('weekData-weekendEnd');\n },\n getCurrencyDigits: function (sCurrency) {\n var mCustomCurrencies = this._get('currency');\n if (mCustomCurrencies) {\n if (mCustomCurrencies[sCurrency] && mCustomCurrencies[sCurrency].hasOwnProperty('digits')) {\n return mCustomCurrencies[sCurrency].digits;\n } else if (mCustomCurrencies['DEFAULT'] && mCustomCurrencies['DEFAULT'].hasOwnProperty('digits')) {\n return mCustomCurrencies['DEFAULT'].digits;\n }\n }\n var iDigits = this._get('currencyDigits', sCurrency);\n if (iDigits == null) {\n iDigits = this._get('currencyDigits', 'DEFAULT');\n if (iDigits == null) {\n iDigits = 2;\n }\n }\n return iDigits;\n },\n getCurrencySymbol: function (sCurrency) {\n var oCurrencySymbols = this._get('currencySymbols');\n return oCurrencySymbols && oCurrencySymbols[sCurrency] || sCurrency;\n },\n getCurrencyCodeBySymbol: function (sCurrencySymbol) {\n var oCurrencySymbols = this._get('currencySymbols'), sCurrencyCode;\n for (sCurrencyCode in oCurrencySymbols) {\n if (oCurrencySymbols[sCurrencyCode] === sCurrencySymbol) {\n return sCurrencyCode;\n }\n }\n return sCurrencySymbol;\n },\n getUnitDisplayName: function (sUnit) {\n var mUnitFormat = this.getUnitFormat(sUnit);\n return mUnitFormat && mUnitFormat['displayName'] || '';\n },\n getRelativePatterns: function (aScales, sStyle) {\n if (sStyle === undefined) {\n sStyle = 'wide';\n }\n assert(sStyle === 'wide' || sStyle === 'short' || sStyle === 'narrow', 'sStyle is only allowed to be set with \\'wide\\', \\'short\\' or \\'narrow\\'');\n var aPatterns = [], aPluralCategories = this.getPluralCategories(), oScale, oTimeEntry, iValue, iSign;\n if (!aScales) {\n aScales = [\n 'year',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second'\n ];\n }\n aScales.forEach(function (sScale) {\n oScale = this._get('dateFields', sScale + '-' + sStyle);\n for (var sEntry in oScale) {\n if (sEntry.indexOf('relative-type-') === 0) {\n iValue = parseInt(sEntry.substr(14));\n aPatterns.push({\n scale: sScale,\n value: iValue,\n pattern: oScale[sEntry]\n });\n } else if (sEntry.indexOf('relativeTime-type-') == 0) {\n oTimeEntry = oScale[sEntry];\n iSign = sEntry.substr(18) === 'past' ? -1 : 1;\n aPluralCategories.forEach(function (sKey) {\n aPatterns.push({\n scale: sScale,\n sign: iSign,\n pattern: oTimeEntry['relativeTimePattern-count-' + sKey]\n });\n });\n }\n }\n }.bind(this));\n return aPatterns;\n },\n getRelativePattern: function (sScale, iDiff, bFuture, sStyle) {\n var sPattern, oTypes, sKey, sPluralCategory;\n if (typeof bFuture === 'string') {\n sStyle = bFuture;\n bFuture = undefined;\n }\n if (bFuture === undefined) {\n bFuture = iDiff > 0;\n }\n if (sStyle === undefined) {\n sStyle = 'wide';\n }\n assert(sStyle === 'wide' || sStyle === 'short' || sStyle === 'narrow', 'sStyle is only allowed to be set with \\'wide\\', \\'short\\' or \\'narrow\\'');\n sKey = sScale + '-' + sStyle;\n if (iDiff === 0 || iDiff === -2 || iDiff === 2) {\n sPattern = this._get('dateFields', sKey, 'relative-type-' + iDiff);\n }\n if (!sPattern) {\n oTypes = this._get('dateFields', sKey, 'relativeTime-type-' + (bFuture ? 'future' : 'past'));\n sPluralCategory = this.getPluralCategory(Math.abs(iDiff).toString());\n sPattern = oTypes['relativeTimePattern-count-' + sPluralCategory];\n }\n return sPattern;\n },\n getRelativeSecond: function (iDiff, sStyle) {\n return this.getRelativePattern('second', iDiff, sStyle);\n },\n getRelativeMinute: function (iDiff, sStyle) {\n if (iDiff == 0) {\n return null;\n }\n return this.getRelativePattern('minute', iDiff, sStyle);\n },\n getRelativeHour: function (iDiff, sStyle) {\n if (iDiff == 0) {\n return null;\n }\n return this.getRelativePattern('hour', iDiff, sStyle);\n },\n getRelativeDay: function (iDiff, sStyle) {\n return this.getRelativePattern('day', iDiff, sStyle);\n },\n getRelativeWeek: function (iDiff, sStyle) {\n return this.getRelativePattern('week', iDiff, sStyle);\n },\n getRelativeMonth: function (iDiff, sStyle) {\n return this.getRelativePattern('month', iDiff, sStyle);\n },\n getDisplayName: function (sType, sStyle) {\n assert(sType == 'second' || sType == 'minute' || sType == 'hour' || sType == 'zone' || sType == 'day' || sType == 'weekday' || sType == 'week' || sType == 'month' || sType == 'quarter' || sType == 'year' || sType == 'era', 'sType must be second, minute, hour, zone, day, weekday, week, month, quarter, year, era');\n if (sStyle === undefined) {\n sStyle = 'wide';\n }\n assert(sStyle === 'wide' || sStyle === 'short' || sStyle === 'narrow', 'sStyle is only allowed to be set with \\'wide\\', \\'short\\' or \\'narrow\\'');\n var aSingleFormFields = [\n 'era',\n 'weekday',\n 'zone'\n ], sKey = aSingleFormFields.indexOf(sType) === -1 ? sType + '-' + sStyle : sType;\n return this._get('dateFields', sKey, 'displayName');\n },\n getRelativeYear: function (iDiff, sStyle) {\n return this.getRelativePattern('year', iDiff, sStyle);\n },\n getDecimalFormat: function (sStyle, sNumber, sPlural) {\n var sFormat;\n var oFormats;\n switch (sStyle) {\n case 'long':\n oFormats = this._get('decimalFormat-long');\n break;\n default:\n oFormats = this._get('decimalFormat-short');\n break;\n }\n if (oFormats) {\n var sName = sNumber + '-' + sPlural;\n sFormat = oFormats[sName];\n if (!sFormat) {\n sName = sNumber + '-other';\n sFormat = oFormats[sName];\n }\n }\n return sFormat;\n },\n getCurrencyFormat: function (sStyle, sNumber, sPlural) {\n var sFormat;\n var oFormats;\n switch (sStyle) {\n default:\n oFormats = this._get('currencyFormat-short');\n break;\n }\n if (oFormats) {\n var sName = sNumber + '-' + sPlural;\n sFormat = oFormats[sName];\n if (!sFormat) {\n sName = sNumber + '-other';\n sFormat = oFormats[sName];\n }\n }\n return sFormat;\n },\n getListFormat: function (sType, sStyle) {\n var oFormats = this._get('listPattern-' + (sType || 'standard') + '-' + (sStyle || 'wide'));\n if (oFormats) {\n return oFormats;\n }\n return {};\n },\n getResolvedUnitFormat: function (sUnit) {\n sUnit = this.getUnitFromMapping(sUnit) || sUnit;\n return this.getUnitFormat(sUnit);\n },\n getUnitFormat: function (sUnit) {\n return this._get('units', 'short', sUnit);\n },\n getUnitFormats: function () {\n return this._getMerged('units', 'short');\n },\n getUnitFromMapping: function (sMapping) {\n return this._get('unitMappings', sMapping);\n },\n getEras: function (sWidth, sCalendarType) {\n assert(sWidth == 'wide' || sWidth == 'abbreviated' || sWidth == 'narrow', 'sWidth must be wide, abbreviate or narrow');\n var oEras = this._get(getCLDRCalendarName(sCalendarType), 'era-' + sWidth), aEras = [];\n for (var i in oEras) {\n aEras[parseInt(i)] = oEras[i];\n }\n return aEras;\n },\n getEraDates: function (sCalendarType) {\n var oEraDates = this._get('eras-' + sCalendarType.toLowerCase()), aEraDates = [];\n for (var i in oEraDates) {\n aEraDates[parseInt(i)] = oEraDates[i];\n }\n return aEraDates;\n },\n getCalendarWeek: function (sStyle, iWeekNumber) {\n assert(sStyle == 'wide' || sStyle == 'narrow', 'sStyle must be wide or narrow');\n var oMessageBundle = sap.ui.getWCCore().getLibraryResourceBundle('sap.ui.core', this.oLocale.toString()), sKey = 'date.week.calendarweek.' + sStyle;\n return oMessageBundle.getText(sKey, iWeekNumber);\n },\n getPreferredCalendarType: function () {\n var sCalendarPreference = this._get('calendarPreference'), aCalendars = sCalendarPreference ? sCalendarPreference.split(' ') : [], sCalendarName, sType, i;\n for (i = 0; i < aCalendars.length; i++) {\n sCalendarName = aCalendars[i].split('-')[0];\n for (sType in CalendarType) {\n if (sCalendarName === sType.toLowerCase()) {\n return sType;\n }\n }\n }\n return CalendarType.Gregorian;\n },\n getPreferredHourSymbol: function () {\n return this._get('timeData', '_preferred');\n },\n getPluralCategories: function () {\n var oPlurals = this._get('plurals'), aCategories = Object.keys(oPlurals);\n aCategories.push('other');\n return aCategories;\n },\n getPluralCategory: function (sNumber) {\n var oPlurals = this._get('plurals');\n if (typeof sNumber === 'number') {\n sNumber = sNumber.toString();\n }\n if (!this._pluralTest) {\n this._pluralTest = {};\n }\n for (var sCategory in oPlurals) {\n var fnTest = this._pluralTest[sCategory];\n if (!fnTest) {\n fnTest = this._parsePluralRule(oPlurals[sCategory]);\n this._pluralTest[sCategory] = fnTest;\n }\n if (fnTest(sNumber)) {\n return sCategory;\n }\n }\n return 'other';\n },\n _parsePluralRule: function (sRule) {\n var OP_OR = 'or', OP_AND = 'and', OP_MOD = '%', OP_EQ = '=', OP_NEQ = '!=', OPD_N = 'n', OPD_I = 'i', OPD_F = 'f', OPD_T = 't', OPD_V = 'v', OPD_W = 'w', RANGE = '..', SEP = ',';\n var i = 0, aTokens;\n aTokens = sRule.split(' ');\n function accept(sToken) {\n if (aTokens[i] === sToken) {\n i++;\n return true;\n }\n return false;\n }\n function consume() {\n var sToken = aTokens[i];\n i++;\n return sToken;\n }\n function or_condition() {\n var fnAnd, fnOr;\n fnAnd = and_condition();\n if (accept(OP_OR)) {\n fnOr = or_condition();\n return function (o) {\n return fnAnd(o) || fnOr(o);\n };\n }\n return fnAnd;\n }\n function and_condition() {\n var fnRelation, fnAnd;\n fnRelation = relation();\n if (accept(OP_AND)) {\n fnAnd = and_condition();\n return function (o) {\n return fnRelation(o) && fnAnd(o);\n };\n }\n return fnRelation;\n }\n function relation() {\n var fnExpr, fnRangeList, bEq;\n fnExpr = expr();\n if (accept(OP_EQ)) {\n bEq = true;\n } else if (accept(OP_NEQ)) {\n bEq = false;\n } else {\n throw new Error('Expected \\'=\\' or \\'!=\\'');\n }\n fnRangeList = range_list();\n if (bEq) {\n return function (o) {\n return fnRangeList(o).indexOf(fnExpr(o)) >= 0;\n };\n } else {\n return function (o) {\n return fnRangeList(o).indexOf(fnExpr(o)) === -1;\n };\n }\n }\n function expr() {\n var fnOperand;\n fnOperand = operand();\n if (accept(OP_MOD)) {\n var iDivisor = parseInt(consume());\n return function (o) {\n return fnOperand(o) % iDivisor;\n };\n }\n return fnOperand;\n }\n function operand() {\n if (accept(OPD_N)) {\n return function (o) {\n return o.n;\n };\n } else if (accept(OPD_I)) {\n return function (o) {\n return o.i;\n };\n } else if (accept(OPD_F)) {\n return function (o) {\n return o.f;\n };\n } else if (accept(OPD_T)) {\n return function (o) {\n return o.t;\n };\n } else if (accept(OPD_V)) {\n return function (o) {\n return o.v;\n };\n } else if (accept(OPD_W)) {\n return function (o) {\n return o.w;\n };\n } else {\n throw new Error('Unknown operand: ' + consume());\n }\n }\n function range_list() {\n var aValues = [], sRangeList = consume(), aParts = sRangeList.split(SEP), aRange, iFrom, iTo;\n aParts.forEach(function (sPart) {\n aRange = sPart.split(RANGE);\n if (aRange.length === 1) {\n aValues.push(parseInt(sPart));\n } else {\n iFrom = parseInt(aRange[0]);\n iTo = parseInt(aRange[1]);\n for (var i = iFrom; i <= iTo; i++) {\n aValues.push(i);\n }\n }\n });\n return function (o) {\n return aValues;\n };\n }\n var fnOr = or_condition();\n if (i != aTokens.length) {\n throw new Error('Not completely parsed');\n }\n return function (sValue) {\n var iDotPos = sValue.indexOf('.'), sDecimal, sFraction, sFractionNoZeros, o;\n if (iDotPos === -1) {\n sDecimal = sValue;\n sFraction = '';\n sFractionNoZeros = '';\n } else {\n sDecimal = sValue.substr(0, iDotPos);\n sFraction = sValue.substr(iDotPos + 1);\n sFractionNoZeros = sFraction.replace(/0+$/, '');\n }\n o = {\n n: parseFloat(sValue),\n i: parseInt(sDecimal),\n v: sFraction.length,\n w: sFractionNoZeros.length,\n f: parseInt(sFraction),\n t: parseInt(sFractionNoZeros)\n };\n return fnOr(o);\n };\n }\n});\nvar mCLDRSymbolGroups = {\n 'Era': {\n field: 'era',\n index: 0\n },\n 'Year': {\n field: 'year',\n index: 1\n },\n 'Quarter': {\n field: 'quarter',\n index: 2\n },\n 'Month': {\n field: 'month',\n index: 3\n },\n 'Week': {\n field: 'week',\n index: 4\n },\n 'Day-Of-Week': {\n field: 'weekday',\n index: 5\n },\n 'Day': {\n field: 'day',\n index: 6\n },\n 'DayPeriod': {\n field: 'hour',\n index: 7,\n diffOnly: true\n },\n 'Hour': {\n field: 'hour',\n index: 8\n },\n 'Minute': {\n field: 'minute',\n index: 9\n },\n 'Second': {\n field: 'second',\n index: 10\n },\n 'Timezone': {\n field: 'zone',\n index: 11\n }\n};\nvar mCLDRSymbols = {\n 'G': {\n group: 'Era',\n match: 'Era',\n numericCeiling: 1\n },\n 'y': {\n group: 'Year',\n match: 'Year',\n numericCeiling: 100\n },\n 'Y': {\n group: 'Year',\n match: 'Year',\n numericCeiling: 100\n },\n 'Q': {\n group: 'Quarter',\n match: 'Quarter',\n numericCeiling: 3\n },\n 'q': {\n group: 'Quarter',\n match: 'Quarter',\n numericCeiling: 3\n },\n 'M': {\n group: 'Month',\n match: 'Month',\n numericCeiling: 3\n },\n 'L': {\n group: 'Month',\n match: 'Month',\n numericCeiling: 3\n },\n 'w': {\n group: 'Week',\n match: 'Week',\n numericCeiling: 100\n },\n 'W': {\n group: 'Week',\n match: 'Week',\n numericCeiling: 100\n },\n 'd': {\n group: 'Day',\n match: 'Day',\n numericCeiling: 100\n },\n 'D': {\n group: 'Day',\n match: 'Day',\n numericCeiling: 100\n },\n 'E': {\n group: 'Day-Of-Week',\n match: 'Day-Of-Week',\n numericCeiling: 1\n },\n 'e': {\n group: 'Day-Of-Week',\n match: 'Day-Of-Week',\n numericCeiling: 3\n },\n 'c': {\n group: 'Day-Of-Week',\n match: 'Day-Of-Week',\n numericCeiling: 2\n },\n 'h': {\n group: 'Hour',\n match: 'Hour12',\n numericCeiling: 100\n },\n 'H': {\n group: 'Hour',\n match: 'Hour24',\n numericCeiling: 100\n },\n 'k': {\n group: 'Hour',\n match: 'Hour24',\n numericCeiling: 100\n },\n 'K': {\n group: 'Hour',\n match: 'Hour12',\n numericCeiling: 100\n },\n 'm': {\n group: 'Minute',\n match: 'Minute',\n numericCeiling: 100\n },\n 's': {\n group: 'Second',\n match: 'Second',\n numericCeiling: 100\n },\n 'z': {\n group: 'Timezone',\n match: 'Timezone',\n numericCeiling: 1\n },\n 'Z': {\n group: 'Timezone',\n match: 'Timezone',\n numericCeiling: 1\n },\n 'O': {\n group: 'Timezone',\n match: 'Timezone',\n numericCeiling: 1\n },\n 'v': {\n group: 'Timezone',\n match: 'Timezone',\n numericCeiling: 1\n },\n 'V': {\n group: 'Timezone',\n match: 'Timezone',\n numericCeiling: 1\n },\n 'X': {\n group: 'Timezone',\n match: 'Timezone',\n numericCeiling: 1\n },\n 'x': {\n group: 'Timezone',\n match: 'Timezone',\n numericCeiling: 1\n },\n 'S': {\n group: 'Other',\n numericCeiling: 100\n },\n 'u': {\n group: 'Other',\n numericCeiling: 100\n },\n 'U': {\n group: 'Other',\n numericCeiling: 1\n },\n 'r': {\n group: 'Other',\n numericCeiling: 100\n },\n 'F': {\n group: 'Other',\n numericCeiling: 100\n },\n 'g': {\n group: 'Other',\n numericCeiling: 100\n },\n 'a': {\n group: 'DayPeriod',\n numericCeiling: 1\n },\n 'b': {\n group: 'Other',\n numericCeiling: 1\n },\n 'B': {\n group: 'Other',\n numericCeiling: 1\n },\n 'A': {\n group: 'Other',\n numericCeiling: 100\n }\n};\nvar M_DEFAULT_DATA = {};\nvar M_ISO639_OLD_TO_NEW = {\n 'iw': 'he',\n 'ji': 'yi',\n 'in': 'id',\n 'sh': 'sr'\n};\nvar M_SUPPORTED_LOCALES = function () {\n var LOCALES = Locale._cldrLocales, result = {}, i;\n if (LOCALES) {\n for (i = 0; i < LOCALES.length; i++) {\n result[LOCALES[i]] = true;\n }\n }\n return result;\n}();\nvar mLocaleDatas = {};\nfunction getCLDRCalendarName(sCalendarType) {\n if (!sCalendarType) {\n sCalendarType = sap.ui.getWCCore().getConfiguration().getCalendarType();\n }\n return 'ca-' + sCalendarType.toLowerCase();\n}\nfunction getData(oLocale) {\n var sLanguage = oLocale.getLanguage() || '', sScript = oLocale.getScript() || '', sRegion = oLocale.getRegion() || '', mData;\n function merge(obj, fallbackObj) {\n var name, value, fallbackValue;\n if (!fallbackObj) {\n return;\n }\n for (name in fallbackObj) {\n if (fallbackObj.hasOwnProperty(name)) {\n value = obj[name];\n fallbackValue = fallbackObj[name];\n if (value === undefined) {\n obj[name] = fallbackValue;\n } else if (value === null) {\n delete obj[name];\n } else if (typeof value === 'object' && typeof fallbackValue === 'object') {\n merge(value, fallbackValue);\n }\n }\n }\n }\n function getOrLoad(sId) {\n if (!mLocaleDatas[sId] && (!M_SUPPORTED_LOCALES || M_SUPPORTED_LOCALES[sId] === true)) {\n var data = mLocaleDatas[sId] = LoaderExtensions.loadResource('sap/ui/core/cldr/' + sId + '.json', {\n dataType: 'json',\n failOnError: false\n });\n if (data && data.__fallbackLocale) {\n merge(data, getOrLoad(data.__fallbackLocale));\n delete data.__fallbackLocale;\n }\n }\n return mLocaleDatas[sId];\n }\n sLanguage = sLanguage && M_ISO639_OLD_TO_NEW[sLanguage] || sLanguage;\n if (sLanguage === 'no') {\n sLanguage = 'nb';\n }\n if (sLanguage === 'zh' && !sRegion) {\n if (sScript === 'Hans') {\n sRegion = 'CN';\n } else if (sScript === 'Hant') {\n sRegion = 'TW';\n }\n }\n var sId = sLanguage + '_' + sRegion;\n if (sLanguage && sRegion) {\n mData = getOrLoad(sId);\n }\n if (!mData && sLanguage) {\n mData = getOrLoad(sLanguage);\n }\n mLocaleDatas[sId] = mData || M_DEFAULT_DATA;\n return mLocaleDatas[sId];\n}\nvar CustomLocaleData = LocaleData.extend('sap.ui.core.CustomLocaleData', {\n constructor: function (oLocale) {\n LocaleData.apply(this, arguments);\n this.mCustomData = sap.ui.getWCCore().getFormatSettings().getCustomLocaleData();\n },\n _get: function () {\n var aArguments = Array.prototype.slice.call(arguments), sCalendar, sKey;\n if (aArguments[0].indexOf('ca-') == 0) {\n sCalendar = aArguments[0];\n if (sCalendar == getCLDRCalendarName()) {\n aArguments = aArguments.slice(1);\n }\n }\n sKey = aArguments.join('-');\n var vValue = this.mCustomData[sKey];\n if (vValue == null) {\n vValue = this._getDeep(this.mCustomData, arguments);\n if (vValue == null) {\n vValue = this._getDeep(this.mData, arguments);\n }\n }\n return vValue;\n },\n _getMerged: function () {\n var mData = this._getDeep(this.mData, arguments);\n var mCustomData = this._getDeep(this.mCustomData, arguments);\n return jQuery.extend({}, mData, mCustomData);\n }\n});\nLocaleData.getInstance = function (oLocale) {\n return oLocale.hasPrivateUseSubtag('sapufmt') ? new CustomLocaleData(oLocale) : new LocaleData(oLocale);\n};\nexport default LocaleData;","import CalendarType from '../CalendarType.js';\nvar registry = new Map();\nexport default {\n getCalendarClass: function (calendarType) {\n return registry.get(calendarType);\n },\n setCalendarClass: function (calendarType, Klass) {\n registry.set(calendarType, Klass);\n }\n};","import BaseObject from '../../base/Object.js';\nimport LocaleData from '../LocaleData.js';\nimport CalendarClassRegistry from './CalendarClassRegistry.js';\nvar UniversalDate = BaseObject.extend('sap.ui.core.date.UniversalDate', {\n constructor: function () {\n var clDate = UniversalDate.getClass();\n return this.createDate(clDate, arguments);\n }\n});\nUniversalDate.UTC = function () {\n var clDate = UniversalDate.getClass();\n return clDate.UTC.apply(clDate, arguments);\n};\nUniversalDate.now = function () {\n return Date.now();\n};\nUniversalDate.prototype.createDate = function (clDate, aArgs) {\n switch (aArgs.length) {\n case 0:\n return new clDate();\n case 1:\n return new clDate(aArgs[0]);\n case 2:\n return new clDate(aArgs[0], aArgs[1]);\n case 3:\n return new clDate(aArgs[0], aArgs[1], aArgs[2]);\n case 4:\n return new clDate(aArgs[0], aArgs[1], aArgs[2], aArgs[3]);\n case 5:\n return new clDate(aArgs[0], aArgs[1], aArgs[2], aArgs[3], aArgs[4]);\n case 6:\n return new clDate(aArgs[0], aArgs[1], aArgs[2], aArgs[3], aArgs[4], aArgs[5]);\n case 7:\n return new clDate(aArgs[0], aArgs[1], aArgs[2], aArgs[3], aArgs[4], aArgs[5], aArgs[6]);\n }\n};\nUniversalDate.getInstance = function (oDate, sCalendarType) {\n var clDate, oInstance;\n if (oDate instanceof UniversalDate) {\n oDate = oDate.getJSDate();\n }\n if (!sCalendarType) {\n sCalendarType = sap.ui.getWCCore().getConfiguration().getCalendarType();\n }\n clDate = UniversalDate.getClass(sCalendarType);\n oInstance = Object.create(clDate.prototype);\n oInstance.oDate = oDate;\n oInstance.sCalendarType = sCalendarType;\n return oInstance;\n};\nUniversalDate.getClass = function (sCalendarType) {\n if (!sCalendarType) {\n sCalendarType = sap.ui.getWCCore().getConfiguration().getCalendarType();\n }\n var Klass = CalendarClassRegistry.getCalendarClass(sCalendarType);\n if (!Klass) {\n if (!sap || !sap.ui || !sap.ui.requireSync) {\n throw new Error('Calendar type [' + sCalendarType + '] is not imported');\n }\n Klass = sap.ui.requireSync('sap/ui/core/date/' + sCalendarType);\n }\n return Klass;\n};\n[\n 'getDate',\n 'getMonth',\n 'getFullYear',\n 'getYear',\n 'getDay',\n 'getHours',\n 'getMinutes',\n 'getSeconds',\n 'getMilliseconds',\n 'getUTCDate',\n 'getUTCMonth',\n 'getUTCFullYear',\n 'getUTCDay',\n 'getUTCHours',\n 'getUTCMinutes',\n 'getUTCSeconds',\n 'getUTCMilliseconds',\n 'getTime',\n 'valueOf',\n 'getTimezoneOffset',\n 'toString',\n 'toDateString',\n 'setDate',\n 'setFullYear',\n 'setYear',\n 'setMonth',\n 'setHours',\n 'setMinutes',\n 'setSeconds',\n 'setMilliseconds',\n 'setUTCDate',\n 'setUTCFullYear',\n 'setUTCMonth',\n 'setUTCHours',\n 'setUTCMinutes',\n 'setUTCSeconds',\n 'setUTCMilliseconds'\n].forEach(function (sName) {\n UniversalDate.prototype[sName] = function () {\n return this.oDate[sName].apply(this.oDate, arguments);\n };\n});\nUniversalDate.prototype.getJSDate = function () {\n return this.oDate;\n};\nUniversalDate.prototype.getCalendarType = function () {\n return this.sCalendarType;\n};\nUniversalDate.prototype.getEra = function () {\n return UniversalDate.getEraByDate(this.sCalendarType, this.oDate.getFullYear(), this.oDate.getMonth(), this.oDate.getDate());\n};\nUniversalDate.prototype.setEra = function (iEra) {\n};\nUniversalDate.prototype.getUTCEra = function () {\n return UniversalDate.getEraByDate(this.sCalendarType, this.oDate.getUTCFullYear(), this.oDate.getUTCMonth(), this.oDate.getUTCDate());\n};\nUniversalDate.prototype.setUTCEra = function (iEra) {\n};\nUniversalDate.prototype.getWeek = function () {\n return UniversalDate.getWeekByDate(this.sCalendarType, this.getFullYear(), this.getMonth(), this.getDate());\n};\nUniversalDate.prototype.setWeek = function (oWeek) {\n var oDate = UniversalDate.getFirstDateOfWeek(this.sCalendarType, oWeek.year || this.getFullYear(), oWeek.week);\n this.setFullYear(oDate.year, oDate.month, oDate.day);\n};\nUniversalDate.prototype.getUTCWeek = function () {\n return UniversalDate.getWeekByDate(this.sCalendarType, this.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate());\n};\nUniversalDate.prototype.setUTCWeek = function (oWeek) {\n var oDate = UniversalDate.getFirstDateOfWeek(this.sCalendarType, oWeek.year || this.getFullYear(), oWeek.week);\n this.setUTCFullYear(oDate.year, oDate.month, oDate.day);\n};\nUniversalDate.prototype.getQuarter = function () {\n return Math.floor(this.getMonth() / 3);\n};\nUniversalDate.prototype.getUTCQuarter = function () {\n return Math.floor(this.getUTCMonth() / 3);\n};\nUniversalDate.prototype.getDayPeriod = function () {\n if (this.getHours() < 12) {\n return 0;\n } else {\n return 1;\n }\n};\nUniversalDate.prototype.getUTCDayPeriod = function () {\n if (this.getUTCHours() < 12) {\n return 0;\n } else {\n return 1;\n }\n};\nUniversalDate.prototype.getTimezoneShort = function () {\n if (this.oDate.getTimezoneShort) {\n return this.oDate.getTimezoneShort();\n }\n};\nUniversalDate.prototype.getTimezoneLong = function () {\n if (this.oDate.getTimezoneLong) {\n return this.oDate.getTimezoneLong();\n }\n};\nvar iMillisecondsInWeek = 7 * 24 * 60 * 60 * 1000;\nUniversalDate.getWeekByDate = function (sCalendarType, iYear, iMonth, iDay) {\n var oLocale = sap.ui.getWCCore().getFormatSettings().getFormatLocale(), clDate = this.getClass(sCalendarType), oFirstDay = getFirstDayOfFirstWeek(clDate, iYear), oDate = new clDate(clDate.UTC(iYear, iMonth, iDay)), iWeek, iLastYear, iNextYear, oLastFirstDay, oNextFirstDay;\n if (oLocale.getRegion() === 'US') {\n iWeek = calculateWeeks(oFirstDay, oDate);\n } else {\n iLastYear = iYear - 1;\n iNextYear = iYear + 1;\n oLastFirstDay = getFirstDayOfFirstWeek(clDate, iLastYear);\n oNextFirstDay = getFirstDayOfFirstWeek(clDate, iNextYear);\n if (oDate >= oNextFirstDay) {\n iYear = iNextYear;\n iWeek = 0;\n } else if (oDate < oFirstDay) {\n iYear = iLastYear;\n iWeek = calculateWeeks(oLastFirstDay, oDate);\n } else {\n iWeek = calculateWeeks(oFirstDay, oDate);\n }\n }\n return {\n year: iYear,\n week: iWeek\n };\n};\nUniversalDate.getFirstDateOfWeek = function (sCalendarType, iYear, iWeek) {\n var oLocale = sap.ui.getWCCore().getFormatSettings().getFormatLocale(), clDate = this.getClass(sCalendarType), oFirstDay = getFirstDayOfFirstWeek(clDate, iYear), oDate = new clDate(oFirstDay.valueOf() + iWeek * iMillisecondsInWeek);\n if (oLocale.getRegion() === 'US' && iWeek === 0 && oFirstDay.getUTCFullYear() < iYear) {\n return {\n year: iYear,\n month: 0,\n day: 1\n };\n }\n return {\n year: oDate.getUTCFullYear(),\n month: oDate.getUTCMonth(),\n day: oDate.getUTCDate()\n };\n};\nfunction getFirstDayOfFirstWeek(clDate, iYear) {\n var oLocale = sap.ui.getWCCore().getFormatSettings().getFormatLocale(), oLocaleData = LocaleData.getInstance(oLocale), iMinDays = oLocaleData.getMinimalDaysInFirstWeek(), iFirstDayOfWeek = sap.ui.getConfiguration().getFirstDateOfWeek() || oLocaleData.getFirstDayOfWeek(), oFirstDay = new clDate(clDate.UTC(iYear, 0, 1)), iDayCount = 7;\n while (oFirstDay.getUTCDay() !== iFirstDayOfWeek) {\n oFirstDay.setUTCDate(oFirstDay.getUTCDate() - 1);\n iDayCount--;\n }\n if (iDayCount < iMinDays) {\n oFirstDay.setUTCDate(oFirstDay.getUTCDate() + 7);\n }\n return oFirstDay;\n}\nfunction calculateWeeks(oFromDate, oToDate) {\n return Math.floor((oToDate.valueOf() - oFromDate.valueOf()) / iMillisecondsInWeek);\n}\nvar mEras = {};\nUniversalDate.getEraByDate = function (sCalendarType, iYear, iMonth, iDay) {\n var aEras = getEras(sCalendarType), iTimestamp = new Date(0).setUTCFullYear(iYear, iMonth, iDay), oEra;\n for (var i = aEras.length - 1; i >= 0; i--) {\n oEra = aEras[i];\n if (!oEra) {\n continue;\n }\n if (oEra._start && iTimestamp >= oEra._startInfo.timestamp) {\n return i;\n }\n if (oEra._end && iTimestamp < oEra._endInfo.timestamp) {\n return i;\n }\n }\n};\nUniversalDate.getCurrentEra = function (sCalendarType) {\n var oNow = new Date();\n return this.getEraByDate(sCalendarType, oNow.getFullYear(), oNow.getMonth(), oNow.getDate());\n};\nUniversalDate.getEraStartDate = function (sCalendarType, iEra) {\n var aEras = getEras(sCalendarType), oEra = aEras[iEra] || aEras[0];\n if (oEra._start) {\n return oEra._startInfo;\n }\n};\nfunction getEras(sCalendarType) {\n var oLocale = sap.ui.getWCCore().getFormatSettings().getFormatLocale(), oLocaleData = LocaleData.getInstance(oLocale), aEras = mEras[sCalendarType];\n if (!aEras) {\n var aEras = oLocaleData.getEraDates(sCalendarType);\n if (!aEras[0]) {\n aEras[0] = { _start: '1-1-1' };\n }\n for (var i = 0; i < aEras.length; i++) {\n var oEra = aEras[i];\n if (!oEra) {\n continue;\n }\n if (oEra._start) {\n oEra._startInfo = parseDateString(oEra._start);\n }\n if (oEra._end) {\n oEra._endInfo = parseDateString(oEra._end);\n }\n }\n mEras[sCalendarType] = aEras;\n }\n return aEras;\n}\nfunction parseDateString(sDateString) {\n var aParts = sDateString.split('-'), iYear, iMonth, iDay;\n if (aParts[0] == '') {\n iYear = -parseInt(aParts[1]);\n iMonth = parseInt(aParts[2]) - 1;\n iDay = parseInt(aParts[3]);\n } else {\n iYear = parseInt(aParts[0]);\n iMonth = parseInt(aParts[1]) - 1;\n iDay = parseInt(aParts[2]);\n }\n return {\n timestamp: new Date(0).setUTCFullYear(iYear, iMonth, iDay),\n year: iYear,\n month: iMonth,\n day: iDay\n };\n}\nexport default UniversalDate;","import UniversalDate from './UniversalDate.js';\nimport CalendarType from '../CalendarType.js';\nimport CalendarClassRegistry from './CalendarClassRegistry.js';\nvar Buddhist = UniversalDate.extend('sap.ui.core.date.Buddhist', {\n constructor: function () {\n var aArgs = arguments;\n if (aArgs.length > 1) {\n aArgs = toGregorianArguments(aArgs);\n }\n this.oDate = this.createDate(Date, aArgs);\n this.sCalendarType = CalendarType.Buddhist;\n }\n});\nBuddhist.UTC = function () {\n var aArgs = toGregorianArguments(arguments);\n return Date.UTC.apply(Date, aArgs);\n};\nBuddhist.now = function () {\n return Date.now();\n};\nfunction toBuddhist(oGregorian) {\n var iEraStartYear = UniversalDate.getEraStartDate(CalendarType.Buddhist, 0).year, iYear = oGregorian.year - iEraStartYear + 1;\n if (oGregorian.year < 1941 && oGregorian.month < 3) {\n iYear -= 1;\n }\n if (oGregorian.year === null) {\n iYear = undefined;\n }\n return {\n year: iYear,\n month: oGregorian.month,\n day: oGregorian.day\n };\n}\nfunction toGregorian(oBuddhist) {\n var iEraStartYear = UniversalDate.getEraStartDate(CalendarType.Buddhist, 0).year, iYear = oBuddhist.year + iEraStartYear - 1;\n if (iYear < 1941 && oBuddhist.month < 3) {\n iYear += 1;\n }\n if (oBuddhist.year === null) {\n iYear = undefined;\n }\n return {\n year: iYear,\n month: oBuddhist.month,\n day: oBuddhist.day\n };\n}\nfunction toGregorianArguments(aArgs) {\n var oBuddhist, oGregorian;\n oBuddhist = {\n year: aArgs[0],\n month: aArgs[1],\n day: aArgs[2] !== undefined ? aArgs[2] : 1\n };\n oGregorian = toGregorian(oBuddhist);\n aArgs[0] = oGregorian.year;\n return aArgs;\n}\nBuddhist.prototype._getBuddhist = function () {\n var oGregorian = {\n year: this.oDate.getFullYear(),\n month: this.oDate.getMonth(),\n day: this.oDate.getDate()\n };\n return toBuddhist(oGregorian);\n};\nBuddhist.prototype._setBuddhist = function (oBuddhist) {\n var oGregorian = toGregorian(oBuddhist);\n return this.oDate.setFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nBuddhist.prototype._getUTCBuddhist = function () {\n var oGregorian = {\n year: this.oDate.getUTCFullYear(),\n month: this.oDate.getUTCMonth(),\n day: this.oDate.getUTCDate()\n };\n return toBuddhist(oGregorian);\n};\nBuddhist.prototype._setUTCBuddhist = function (oBuddhist) {\n var oGregorian = toGregorian(oBuddhist);\n return this.oDate.setUTCFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nBuddhist.prototype.getYear = function () {\n return this._getBuddhist().year;\n};\nBuddhist.prototype.getFullYear = function () {\n return this._getBuddhist().year;\n};\nBuddhist.prototype.getUTCFullYear = function () {\n return this._getUTCBuddhist().year;\n};\nBuddhist.prototype.setYear = function (iYear) {\n var oBuddhist = this._getBuddhist();\n oBuddhist.year = iYear;\n return this._setBuddhist(oBuddhist);\n};\nBuddhist.prototype.setFullYear = function (iYear, iMonth, iDay) {\n var oBuddhist = this._getBuddhist();\n oBuddhist.year = iYear;\n if (iMonth !== undefined) {\n oBuddhist.month = iMonth;\n }\n if (iDay !== undefined) {\n oBuddhist.day = iDay;\n }\n return this._setBuddhist(oBuddhist);\n};\nBuddhist.prototype.setUTCFullYear = function (iYear, iMonth, iDay) {\n var oBuddhist = this._getUTCBuddhist();\n oBuddhist.year = iYear;\n if (iMonth !== undefined) {\n oBuddhist.month = iMonth;\n }\n if (iDay !== undefined) {\n oBuddhist.day = iDay;\n }\n return this._setUTCBuddhist(oBuddhist);\n};\nBuddhist.prototype.getWeek = function () {\n return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getFullYear(), this.getMonth(), this.getDate());\n};\nBuddhist.prototype.getUTCWeek = function () {\n return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate());\n};\nCalendarClassRegistry.setCalendarClass(CalendarType.Buddhist, Buddhist);\nexport default Buddhist;","import UniversalDate from './UniversalDate.js';\nimport CalendarType from '../CalendarType.js';\nimport CalendarClassRegistry from './CalendarClassRegistry.js';\nimport Log from '../../../base/Log.js';\nvar Islamic = UniversalDate.extend('sap.ui.core.date.Islamic', {\n constructor: function () {\n var aArgs = arguments;\n if (aArgs.length > 1) {\n aArgs = toGregorianArguments(aArgs);\n }\n this.oDate = this.createDate(Date, aArgs);\n this.sCalendarType = CalendarType.Islamic;\n }\n});\nIslamic.UTC = function () {\n var aArgs = toGregorianArguments(arguments);\n return Date.UTC.apply(Date, aArgs);\n};\nIslamic.now = function () {\n return Date.now();\n};\nvar BASE_YEAR = 1400, GREGORIAN_EPOCH_DAYS = 1721425.5, ISLAMIC_EPOCH_DAYS = 1948439.5, ISLAMIC_MILLIS = -42521587200000, ONE_DAY = 86400000;\nvar oCustomizationMap = null;\nfunction toIslamic(oGregorian) {\n var iGregorianYear = oGregorian.year, iGregorianMonth = oGregorian.month, iGregorianDay = oGregorian.day, iIslamicYear, iIslamicMonth, iIslamicDay, iMonths, iDays, iLeapAdj, iJulianDay;\n iLeapAdj = 0;\n if (iGregorianMonth + 1 > 2) {\n iLeapAdj = isGregorianLeapYear(iGregorianYear) ? -1 : -2;\n }\n iJulianDay = GREGORIAN_EPOCH_DAYS - 1 + 365 * (iGregorianYear - 1) + Math.floor((iGregorianYear - 1) / 4) + -Math.floor((iGregorianYear - 1) / 100) + Math.floor((iGregorianYear - 1) / 400) + Math.floor((367 * (iGregorianMonth + 1) - 362) / 12 + iLeapAdj + iGregorianDay);\n iJulianDay = Math.floor(iJulianDay) + 0.5;\n iDays = iJulianDay - ISLAMIC_EPOCH_DAYS;\n iMonths = Math.floor(iDays / 29.530588853);\n if (iMonths < 0) {\n iIslamicYear = Math.floor(iMonths / 12) + 1;\n iIslamicMonth = iMonths % 12;\n if (iIslamicMonth < 0) {\n iIslamicMonth += 12;\n }\n iIslamicDay = iDays - monthStart(iIslamicYear, iIslamicMonth) + 1;\n } else {\n iMonths++;\n while (getCustomMonthStartDays(iMonths) > iDays) {\n iMonths--;\n }\n iIslamicYear = Math.floor(iMonths / 12) + 1;\n iIslamicMonth = iMonths % 12;\n iIslamicDay = iDays - getCustomMonthStartDays(12 * (iIslamicYear - 1) + iIslamicMonth) + 1;\n }\n return {\n day: iIslamicDay,\n month: iIslamicMonth,\n year: iIslamicYear\n };\n}\nfunction toGregorian(oIslamic) {\n var iIslamicYear = oIslamic.year, iIslamicMonth = oIslamic.month, iIslamicDate = oIslamic.day, iMonthStart = iIslamicYear < 1 ? monthStart(iIslamicYear, iIslamicMonth) : getCustomMonthStartDays(12 * (iIslamicYear - 1) + iIslamicMonth), iJulianDay = iIslamicDate + iMonthStart + ISLAMIC_EPOCH_DAYS - 1, iJulianDayNoon = Math.floor(iJulianDay - 0.5) + 0.5, iDaysSinceGregorianEpoch = iJulianDayNoon - GREGORIAN_EPOCH_DAYS, iQuadricent = Math.floor(iDaysSinceGregorianEpoch / 146097), iQuadricentNormalized = mod(iDaysSinceGregorianEpoch, 146097), iCent = Math.floor(iQuadricentNormalized / 36524), iCentNormalized = mod(iQuadricentNormalized, 36524), iQuad = Math.floor(iCentNormalized / 1461), iQuadNormalized = mod(iCentNormalized, 1461), iYearIndex = Math.floor(iQuadNormalized / 365), iYear = iQuadricent * 400 + iCent * 100 + iQuad * 4 + iYearIndex, iMonth, iDay, iGregorianYearStartDays, iDayOfYear, tjd, tjd2, iLeapAdj, iLeapAdj2;\n if (!(iCent == 4 || iYearIndex == 4)) {\n iYear++;\n }\n iGregorianYearStartDays = GREGORIAN_EPOCH_DAYS + 365 * (iYear - 1) + Math.floor((iYear - 1) / 4) - Math.floor((iYear - 1) / 100) + Math.floor((iYear - 1) / 400);\n iDayOfYear = iJulianDayNoon - iGregorianYearStartDays;\n tjd = GREGORIAN_EPOCH_DAYS - 1 + 365 * (iYear - 1) + Math.floor((iYear - 1) / 4) - Math.floor((iYear - 1) / 100) + Math.floor((iYear - 1) / 400) + Math.floor(739 / 12 + (isGregorianLeapYear(iYear) ? -1 : -2) + 1);\n iLeapAdj = 0;\n if (iJulianDayNoon < tjd) {\n iLeapAdj = 0;\n } else {\n iLeapAdj = isGregorianLeapYear(iYear) ? 1 : 2;\n }\n iMonth = Math.floor(((iDayOfYear + iLeapAdj) * 12 + 373) / 367);\n tjd2 = GREGORIAN_EPOCH_DAYS - 1 + 365 * (iYear - 1) + Math.floor((iYear - 1) / 4) - Math.floor((iYear - 1) / 100) + Math.floor((iYear - 1) / 400);\n iLeapAdj2 = 0;\n if (iMonth > 2) {\n iLeapAdj2 = isGregorianLeapYear(iYear) ? -1 : -2;\n }\n tjd2 += Math.floor((367 * iMonth - 362) / 12 + iLeapAdj2 + 1);\n iDay = iJulianDayNoon - tjd2 + 1;\n return {\n day: iDay,\n month: iMonth - 1,\n year: iYear\n };\n}\nfunction toGregorianArguments(aArgs) {\n var aGregorianArgs = Array.prototype.slice.call(aArgs), oIslamic, oGregorian;\n oIslamic = {\n year: aArgs[0],\n month: aArgs[1],\n day: aArgs[2] !== undefined ? aArgs[2] : 1\n };\n oGregorian = toGregorian(oIslamic);\n aGregorianArgs[0] = oGregorian.year;\n aGregorianArgs[1] = oGregorian.month;\n aGregorianArgs[2] = oGregorian.day;\n return aGregorianArgs;\n}\nfunction initCustomizationMap() {\n var sDateFormat, oCustomizationJSON;\n oCustomizationMap = {};\n sDateFormat = sap.ui.getWCCore().getFormatSettings().getLegacyDateFormat();\n oCustomizationJSON = sap.ui.getWCCore().getFormatSettings().getLegacyDateCalendarCustomizing();\n oCustomizationJSON = oCustomizationJSON || [];\n if (!sDateFormat && !oCustomizationJSON.length) {\n Log.info('No calendar customizations.');\n return;\n }\n if (sDateFormat && !oCustomizationJSON.length || !sDateFormat && oCustomizationJSON.length) {\n Log.warning('There is an inconsistency between customization data [' + JSON.stringify(oCustomizationJSON) + '] and the date format [' + sDateFormat + ']. Calendar customization won\\'t be used.');\n return;\n }\n oCustomizationJSON.forEach(function (oEntry) {\n if (oEntry.dateFormat === sDateFormat) {\n var date = parseDate(oEntry.gregDate);\n var iGregorianDate = new Date(Date.UTC(date.year, date.month - 1, date.day));\n var iMillis = iGregorianDate.getTime();\n var iIslamicMonthStartDays = (iMillis - ISLAMIC_MILLIS) / ONE_DAY;\n date = parseDate(oEntry.islamicMonthStart);\n var iIslamicMonths = (date.year - 1) * 12 + date.month - 1;\n oCustomizationMap[iIslamicMonths] = iIslamicMonthStartDays;\n }\n });\n Log.info('Working with date format: [' + sDateFormat + '] and customization: ' + JSON.stringify(oCustomizationJSON));\n}\nfunction parseDate(sDate) {\n return {\n year: parseInt(sDate.substr(0, 4)),\n month: parseInt(sDate.substr(4, 2)),\n day: parseInt(sDate.substr(6, 2))\n };\n}\nfunction getCustomMonthStartDays(months) {\n if (!oCustomizationMap) {\n initCustomizationMap();\n }\n var iIslamicMonthStartDays = oCustomizationMap[months];\n if (!iIslamicMonthStartDays) {\n var year = Math.floor(months / 12) + 1;\n var month = months % 12;\n iIslamicMonthStartDays = monthStart(year, month);\n }\n return iIslamicMonthStartDays;\n}\nfunction monthStart(year, month) {\n return Math.ceil(29.5 * month) + (year - 1) * 354 + Math.floor((3 + 11 * year) / 30);\n}\nfunction mod(a, b) {\n return a - b * Math.floor(a / b);\n}\nfunction isGregorianLeapYear(iYear) {\n return !(iYear % 400) || !(iYear % 4) && !!(iYear % 100);\n}\nIslamic.prototype._getIslamic = function () {\n return toIslamic({\n day: this.oDate.getDate(),\n month: this.oDate.getMonth(),\n year: this.oDate.getFullYear()\n });\n};\nIslamic.prototype._setIslamic = function (oIslamic) {\n var oGregorian = toGregorian(oIslamic);\n return this.oDate.setFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nIslamic.prototype._getUTCIslamic = function () {\n return toIslamic({\n day: this.oDate.getUTCDate(),\n month: this.oDate.getUTCMonth(),\n year: this.oDate.getUTCFullYear()\n });\n};\nIslamic.prototype._setUTCIslamic = function (oIslamic) {\n var oGregorian = toGregorian(oIslamic);\n return this.oDate.setUTCFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nIslamic.prototype.getDate = function (iDate) {\n return this._getIslamic().day;\n};\nIslamic.prototype.getMonth = function () {\n return this._getIslamic().month;\n};\nIslamic.prototype.getYear = function () {\n return this._getIslamic().year - BASE_YEAR;\n};\nIslamic.prototype.getFullYear = function () {\n return this._getIslamic().year;\n};\nIslamic.prototype.setDate = function (iDate) {\n var oIslamic = this._getIslamic();\n oIslamic.day = iDate;\n return this._setIslamic(oIslamic);\n};\nIslamic.prototype.setMonth = function (iMonth, iDay) {\n var oIslamic = this._getIslamic();\n oIslamic.month = iMonth;\n if (iDay !== undefined) {\n oIslamic.day = iDay;\n }\n return this._setIslamic(oIslamic);\n};\nIslamic.prototype.setYear = function (iYear) {\n var oIslamic = this._getIslamic();\n oIslamic.year = iYear + BASE_YEAR;\n return this._setIslamic(oIslamic);\n};\nIslamic.prototype.setFullYear = function (iYear, iMonth, iDay) {\n var oIslamic = this._getIslamic();\n oIslamic.year = iYear;\n if (iMonth !== undefined) {\n oIslamic.month = iMonth;\n }\n if (iDay !== undefined) {\n oIslamic.day = iDay;\n }\n return this._setIslamic(oIslamic);\n};\nIslamic.prototype.getUTCDate = function (iDate) {\n return this._getUTCIslamic().day;\n};\nIslamic.prototype.getUTCMonth = function () {\n return this._getUTCIslamic().month;\n};\nIslamic.prototype.getUTCFullYear = function () {\n return this._getUTCIslamic().year;\n};\nIslamic.prototype.setUTCDate = function (iDate) {\n var oIslamic = this._getUTCIslamic();\n oIslamic.day = iDate;\n return this._setUTCIslamic(oIslamic);\n};\nIslamic.prototype.setUTCMonth = function (iMonth, iDay) {\n var oIslamic = this._getUTCIslamic();\n oIslamic.month = iMonth;\n if (iDay !== undefined) {\n oIslamic.day = iDay;\n }\n return this._setUTCIslamic(oIslamic);\n};\nIslamic.prototype.setUTCFullYear = function (iYear, iMonth, iDay) {\n var oIslamic = this._getUTCIslamic();\n oIslamic.year = iYear;\n if (iMonth !== undefined) {\n oIslamic.month = iMonth;\n }\n if (iDay !== undefined) {\n oIslamic.day = iDay;\n }\n return this._setUTCIslamic(oIslamic);\n};\nCalendarClassRegistry.setCalendarClass(CalendarType.Islamic, Islamic);\nexport default Islamic;","import UniversalDate from './UniversalDate.js';\nimport CalendarType from '../CalendarType.js';\nimport CalendarClassRegistry from './CalendarClassRegistry.js';\nvar Japanese = UniversalDate.extend('sap.ui.core.date.Japanese', {\n constructor: function () {\n var aArgs = arguments;\n if (aArgs.length > 1) {\n aArgs = toGregorianArguments(aArgs);\n }\n this.oDate = this.createDate(Date, aArgs);\n this.sCalendarType = CalendarType.Japanese;\n }\n});\nJapanese.UTC = function () {\n var aArgs = toGregorianArguments(arguments);\n return Date.UTC.apply(Date, aArgs);\n};\nJapanese.now = function () {\n return Date.now();\n};\nfunction toJapanese(oGregorian) {\n var iEra = UniversalDate.getEraByDate(CalendarType.Japanese, oGregorian.year, oGregorian.month, oGregorian.day), iEraStartYear = UniversalDate.getEraStartDate(CalendarType.Japanese, iEra).year;\n return {\n era: iEra,\n year: oGregorian.year - iEraStartYear + 1,\n month: oGregorian.month,\n day: oGregorian.day\n };\n}\nfunction toGregorian(oJapanese) {\n var iEraStartYear = UniversalDate.getEraStartDate(CalendarType.Japanese, oJapanese.era).year;\n return {\n year: iEraStartYear + oJapanese.year - 1,\n month: oJapanese.month,\n day: oJapanese.day\n };\n}\nfunction toGregorianArguments(aArgs) {\n var oJapanese, oGregorian, iEra, vYear = aArgs[0];\n if (typeof vYear == 'number') {\n if (vYear >= 100) {\n return aArgs;\n } else {\n iEra = UniversalDate.getCurrentEra(CalendarType.Japanese);\n vYear = [\n iEra,\n vYear\n ];\n }\n } else if (!Array.isArray(vYear)) {\n vYear = [];\n }\n oJapanese = {\n era: vYear[0],\n year: vYear[1],\n month: aArgs[1],\n day: aArgs[2] !== undefined ? aArgs[2] : 1\n };\n oGregorian = toGregorian(oJapanese);\n aArgs[0] = oGregorian.year;\n return aArgs;\n}\nJapanese.prototype._getJapanese = function () {\n var oGregorian = {\n year: this.oDate.getFullYear(),\n month: this.oDate.getMonth(),\n day: this.oDate.getDate()\n };\n return toJapanese(oGregorian);\n};\nJapanese.prototype._setJapanese = function (oJapanese) {\n var oGregorian = toGregorian(oJapanese);\n return this.oDate.setFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nJapanese.prototype._getUTCJapanese = function () {\n var oGregorian = {\n year: this.oDate.getUTCFullYear(),\n month: this.oDate.getUTCMonth(),\n day: this.oDate.getUTCDate()\n };\n return toJapanese(oGregorian);\n};\nJapanese.prototype._setUTCJapanese = function (oJapanese) {\n var oGregorian = toGregorian(oJapanese);\n return this.oDate.setUTCFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nJapanese.prototype.getYear = function () {\n return this._getJapanese().year;\n};\nJapanese.prototype.getFullYear = function () {\n return this._getJapanese().year;\n};\nJapanese.prototype.getEra = function () {\n return this._getJapanese().era;\n};\nJapanese.prototype.getUTCFullYear = function () {\n return this._getUTCJapanese().year;\n};\nJapanese.prototype.getUTCEra = function () {\n return this._getUTCJapanese().era;\n};\nJapanese.prototype.setYear = function (iYear) {\n var oJapanese = this._getJapanese();\n oJapanese.year = iYear;\n return this._setJapanese(oJapanese);\n};\nJapanese.prototype.setFullYear = function (iYear, iMonth, iDay) {\n var oJapanese = this._getJapanese();\n oJapanese.year = iYear;\n if (iMonth !== undefined) {\n oJapanese.month = iMonth;\n }\n if (iDay !== undefined) {\n oJapanese.day = iDay;\n }\n return this._setJapanese(oJapanese);\n};\nJapanese.prototype.setEra = function (iEra, iYear, iMonth, iDay) {\n var oEraStartDate = UniversalDate.getEraStartDate(CalendarType.Japanese, iEra), oJapanese = toJapanese(oEraStartDate);\n if (iYear !== undefined) {\n oJapanese.year = iYear;\n }\n if (iMonth !== undefined) {\n oJapanese.month = iMonth;\n }\n if (iDay !== undefined) {\n oJapanese.day = iDay;\n }\n return this._setJapanese(oJapanese);\n};\nJapanese.prototype.setUTCFullYear = function (iYear, iMonth, iDay) {\n var oJapanese = this._getUTCJapanese();\n oJapanese.year = iYear;\n if (iMonth !== undefined) {\n oJapanese.month = iMonth;\n }\n if (iDay !== undefined) {\n oJapanese.day = iDay;\n }\n return this._setUTCJapanese(oJapanese);\n};\nJapanese.prototype.setUTCEra = function (iEra, iYear, iMonth, iDay) {\n var oEraStartDate = UniversalDate.getEraStartDate(CalendarType.Japanese, iEra), oJapanese = toJapanese(oEraStartDate);\n if (iYear !== undefined) {\n oJapanese.year = iYear;\n }\n if (iMonth !== undefined) {\n oJapanese.month = iMonth;\n }\n if (iDay !== undefined) {\n oJapanese.day = iDay;\n }\n return this._setUTCJapanese(oJapanese);\n};\nJapanese.prototype.getWeek = function () {\n return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getFullYear(), this.getMonth(), this.getDate());\n};\nJapanese.prototype.getUTCWeek = function () {\n return UniversalDate.getWeekByDate(this.sCalendarType, this.oDate.getUTCFullYear(), this.getUTCMonth(), this.getUTCDate());\n};\nCalendarClassRegistry.setCalendarClass(CalendarType.Japanese, Japanese);\nexport default Japanese;","import UniversalDate from './UniversalDate.js';\nimport CalendarType from '../CalendarType.js';\nimport CalendarClassRegistry from './CalendarClassRegistry.js';\nvar Persian = UniversalDate.extend('sap.ui.core.date.Persian', {\n constructor: function () {\n var aArgs = arguments;\n if (aArgs.length > 1) {\n aArgs = toGregorianArguments(aArgs);\n }\n this.oDate = this.createDate(Date, aArgs);\n this.sCalendarType = CalendarType.Persian;\n }\n});\nPersian.UTC = function () {\n var aArgs = toGregorianArguments(arguments);\n return Date.UTC.apply(Date, aArgs);\n};\nPersian.now = function () {\n return Date.now();\n};\nvar BASE_YEAR = 1300;\nfunction toPersian(oGregorian) {\n var iJulianDayNumber = g2d(oGregorian.year, oGregorian.month + 1, oGregorian.day);\n return d2j(iJulianDayNumber);\n}\nfunction toGregorian(oPersian) {\n var iJulianDayNumber = j2d(oPersian.year, oPersian.month + 1, oPersian.day);\n return d2g(iJulianDayNumber);\n}\nfunction toGregorianArguments(aArgs) {\n var aGregorianArgs = Array.prototype.slice.call(aArgs), oPersian, oGregorian;\n if (typeof aArgs[0] !== 'number' || typeof aArgs[1] !== 'number' || aArgs[2] !== undefined && typeof aArgs[2] != 'number') {\n aGregorianArgs[0] = NaN;\n aGregorianArgs[1] = NaN;\n aGregorianArgs[2] = NaN;\n return aGregorianArgs;\n }\n oPersian = {\n year: aArgs[0],\n month: aArgs[1],\n day: aArgs[2] !== undefined ? aArgs[2] : 1\n };\n oGregorian = toGregorian(oPersian);\n aGregorianArgs[0] = oGregorian.year;\n aGregorianArgs[1] = oGregorian.month;\n aGregorianArgs[2] = oGregorian.day;\n return aGregorianArgs;\n}\nfunction jalCal(jy) {\n var breaks = [\n -61,\n 9,\n 38,\n 199,\n 426,\n 686,\n 756,\n 818,\n 1111,\n 1181,\n 1210,\n 1635,\n 2060,\n 2097,\n 2192,\n 2262,\n 2324,\n 2394,\n 2456,\n 3178\n ], bl = breaks.length, gy = jy + 621, leapJ = -14, jp = breaks[0], jm, jump, leap, leapG, march, n, i;\n for (i = 1; i < bl; i += 1) {\n jm = breaks[i];\n jump = jm - jp;\n if (jy < jm) {\n break;\n }\n leapJ = leapJ + div(jump, 33) * 8 + div(mod(jump, 33), 4);\n jp = jm;\n }\n n = jy - jp;\n leapJ = leapJ + div(n, 33) * 8 + div(mod(n, 33) + 3, 4);\n if (mod(jump, 33) === 4 && jump - n === 4) {\n leapJ += 1;\n }\n leapG = div(gy, 4) - div((div(gy, 100) + 1) * 3, 4) - 150;\n march = 20 + leapJ - leapG;\n if (jump - n < 6) {\n n = n - jump + div(jump + 4, 33) * 33;\n }\n leap = mod(mod(n + 1, 33) - 1, 4);\n if (leap === -1) {\n leap = 4;\n }\n return {\n leap: leap,\n gy: gy,\n march: march\n };\n}\nfunction j2d(jy, jm, jd) {\n while (jm < 1) {\n jm += 12;\n jy--;\n }\n while (jm > 12) {\n jm -= 12;\n jy++;\n }\n var r = jalCal(jy);\n return g2d(r.gy, 3, r.march) + (jm - 1) * 31 - div(jm, 7) * (jm - 7) + jd - 1;\n}\nfunction d2j(jdn) {\n var gy = d2g(jdn).year, jy = gy - 621, r = jalCal(jy), jdn1f = g2d(gy, 3, r.march), jd, jm, k;\n k = jdn - jdn1f;\n if (k >= 0) {\n if (k <= 185) {\n jm = 1 + div(k, 31);\n jd = mod(k, 31) + 1;\n return {\n year: jy,\n month: jm - 1,\n day: jd\n };\n } else {\n k -= 186;\n }\n } else {\n jy -= 1;\n k += 179;\n if (r.leap === 1) {\n k += 1;\n }\n }\n jm = 7 + div(k, 30);\n jd = mod(k, 30) + 1;\n return {\n year: jy,\n month: jm - 1,\n day: jd\n };\n}\nfunction g2d(gy, gm, gd) {\n var d = div((gy + div(gm - 8, 6) + 100100) * 1461, 4) + div(153 * mod(gm + 9, 12) + 2, 5) + gd - 34840408;\n d = d - div(div(gy + 100100 + div(gm - 8, 6), 100) * 3, 4) + 752;\n return d;\n}\nfunction d2g(jdn) {\n var j, i, gd, gm, gy;\n j = 4 * jdn + 139361631;\n j = j + div(div(4 * jdn + 183187720, 146097) * 3, 4) * 4 - 3908;\n i = div(mod(j, 1461), 4) * 5 + 308;\n gd = div(mod(i, 153), 5) + 1;\n gm = mod(div(i, 153), 12) + 1;\n gy = div(j, 1461) - 100100 + div(8 - gm, 6);\n return {\n year: gy,\n month: gm - 1,\n day: gd\n };\n}\nfunction div(a, b) {\n return ~~(a / b);\n}\nfunction mod(a, b) {\n return a - ~~(a / b) * b;\n}\nPersian.prototype._getPersian = function () {\n return toPersian({\n day: this.oDate.getDate(),\n month: this.oDate.getMonth(),\n year: this.oDate.getFullYear()\n });\n};\nPersian.prototype._setPersian = function (oPersian) {\n var oGregorian = toGregorian(oPersian);\n return this.oDate.setFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nPersian.prototype._getUTCPersian = function () {\n return toPersian({\n day: this.oDate.getUTCDate(),\n month: this.oDate.getUTCMonth(),\n year: this.oDate.getUTCFullYear()\n });\n};\nPersian.prototype._setUTCPersian = function (oPersian) {\n var oGregorian = toGregorian(oPersian);\n return this.oDate.setUTCFullYear(oGregorian.year, oGregorian.month, oGregorian.day);\n};\nPersian.prototype.getDate = function (iDate) {\n return this._getPersian().day;\n};\nPersian.prototype.getMonth = function () {\n return this._getPersian().month;\n};\nPersian.prototype.getYear = function () {\n return this._getPersian().year - BASE_YEAR;\n};\nPersian.prototype.getFullYear = function () {\n return this._getPersian().year;\n};\nPersian.prototype.setDate = function (iDate) {\n var oPersian = this._getPersian();\n oPersian.day = iDate;\n return this._setPersian(oPersian);\n};\nPersian.prototype.setMonth = function (iMonth, iDay) {\n var oPersian = this._getPersian();\n oPersian.month = iMonth;\n if (iDay !== undefined) {\n oPersian.day = iDay;\n }\n return this._setPersian(oPersian);\n};\nPersian.prototype.setYear = function (iYear) {\n var oPersian = this._getPersian();\n oPersian.year = iYear + BASE_YEAR;\n return this._setPersian(oPersian);\n};\nPersian.prototype.setFullYear = function (iYear, iMonth, iDay) {\n var oPersian = this._getPersian();\n oPersian.year = iYear;\n if (iMonth !== undefined) {\n oPersian.month = iMonth;\n }\n if (iDay !== undefined) {\n oPersian.day = iDay;\n }\n return this._setPersian(oPersian);\n};\nPersian.prototype.getUTCDate = function (iDate) {\n return this._getUTCPersian().day;\n};\nPersian.prototype.getUTCMonth = function () {\n return this._getUTCPersian().month;\n};\nPersian.prototype.getUTCFullYear = function () {\n return this._getUTCPersian().year;\n};\nPersian.prototype.setUTCDate = function (iDate) {\n var oPersian = this._getUTCPersian();\n oPersian.day = iDate;\n return this._setUTCPersian(oPersian);\n};\nPersian.prototype.setUTCMonth = function (iMonth, iDay) {\n var oPersian = this._getUTCPersian();\n oPersian.month = iMonth;\n if (iDay !== undefined) {\n oPersian.day = iDay;\n }\n return this._setUTCPersian(oPersian);\n};\nPersian.prototype.setUTCFullYear = function (iYear, iMonth, iDay) {\n var oPersian = this._getUTCPersian();\n oPersian.year = iYear;\n if (iMonth !== undefined) {\n oPersian.month = iMonth;\n }\n if (iDay !== undefined) {\n oPersian.day = iDay;\n }\n return this._setUTCPersian(oPersian);\n};\nCalendarClassRegistry.setCalendarClass(CalendarType.Persian, Persian);\nexport default Persian;","import isPlainObject from './isPlainObject.js';\nvar fnMerge = function () {\n var src, copyIsArray, copy, name, options, clone, target = arguments[0] || {}, i = 1, length = arguments.length;\n if (typeof target !== 'object' && typeof target !== 'function') {\n target = {};\n }\n for (; i < length; i++) {\n options = arguments[i];\n for (name in options) {\n src = target[name];\n copy = options[name];\n if (target === copy) {\n continue;\n }\n if (copy && (isPlainObject(copy) || (copyIsArray = Array.isArray(copy)))) {\n if (copyIsArray) {\n copyIsArray = false;\n clone = Array.isArray(src) ? src : [];\n } else {\n clone = src && isPlainObject(src) ? src : {};\n }\n target[name] = fnMerge(clone, copy);\n } else {\n target[name] = copy;\n }\n }\n }\n return target;\n};\nexport default fnMerge;","const whenDOMReady = () => {\n\treturn new Promise(resolve => {\n\t\tif (document.body) {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tdocument.addEventListener(\"DOMContentLoaded\", () => {\n\t\t\t\tresolve();\n\t\t\t});\n\t\t}\n\t});\n};\n\nexport default whenDOMReady;\n","/**\n * Creates a <style> tag in the <head> tag\n * @param cssText - the CSS\n * @param attributes - optional attributes to add to the tag\n * @returns {HTMLElement}\n */\nconst createStyleInHead = (cssText, attributes = {}) => {\n\tconst style = document.createElement(\"style\");\n\tstyle.type = \"text/css\";\n\n\tObject.entries(attributes).forEach(pair => style.setAttribute(...pair));\n\n\tstyle.textContent = cssText;\n\tdocument.head.appendChild(style);\n\treturn style;\n};\n\nexport default createStyleInHead;\n","/**\n * CSS font face used for the texts provided by SAP.\n */\nimport createStyleInHead from \"./util/createStyleInHead.js\";\n\n/* CDN Locations */\nconst font72RegularWoff = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff?ui5-webcomponents`;\nconst font72RegularWoff2 = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular.woff2?ui5-webcomponents`;\n\nconst font72RegularFullWoff = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff?ui5-webcomponents`;\nconst font72RegularFullWoff2 = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Regular-full.woff2?ui5-webcomponents`;\n\nconst font72BoldWoff = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff?ui5-webcomponents`;\nconst font72BoldWoff2 = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold.woff2?ui5-webcomponents`;\n\nconst font72BoldFullWoff = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff?ui5-webcomponents`;\nconst font72BoldFullWoff2 = `https://ui5.sap.com/sdk/resources/sap/ui/core/themes/sap_fiori_3/fonts/72-Bold-full.woff2?ui5-webcomponents`;\n\nconst fontFaceCSS = `\n\t@font-face {\n\t\tfont-family: \"72\";\n\t\tfont-style: normal;\n\t\tfont-weight: 400;\n\t\tsrc: local(\"72\"),\n\t\t\turl(${font72RegularWoff2}) format(\"woff2\"),\n\t\t\turl(${font72RegularWoff}) format(\"woff\");\n\t}\n\t\n\t@font-face {\n\t\tfont-family: \"72full\";\n\t\tfont-style: normal;\n\t\tfont-weight: 400;\n\t\tsrc: local('72-full'),\n\t\t\turl(${font72RegularFullWoff2}) format(\"woff2\"),\n\t\t\turl(${font72RegularFullWoff}) format(\"woff\");\n\t\t\n\t}\n\t\n\t@font-face {\n\t\tfont-family: \"72\";\n\t\tfont-style: normal;\n\t\tfont-weight: 700;\n\t\tsrc: local('72-Bold'),\n\t\t\turl(${font72BoldWoff2}) format(\"woff2\"),\n\t\t\turl(${font72BoldWoff}) format(\"woff\");\n\t}\n\t\n\t@font-face {\n\t\tfont-family: \"72full\";\n\t\tfont-style: normal;\n\t\tfont-weight: 700;\n\t\tsrc: local('72-Bold-full'),\n\t\t\turl(${font72BoldFullWoff2}) format(\"woff2\"),\n\t\t\turl(${font72BoldFullWoff}) format(\"woff\");\n\t}\n`;\n\nconst insertFontFace = () => {\n\tif (document.querySelector(`head>style[data-ui5-font-face]`)) {\n\t\treturn;\n\t}\n\n\tcreateStyleInHead(fontFaceCSS, { \"data-ui5-font-face\": \"\" });\n};\n\nexport default insertFontFace;\n","const customCSSFor = {};\n\nconst addCustomCSS = (tag, css, ...rest) => {\n\tif (rest.length) {\n\t\tthrow new Error(\"addCustomCSS no longer accepts theme specific CSS. new signature is `addCustomCSS(tag, css)`\");\n\t}\n\n\tif (!customCSSFor[tag]) {\n\t\tcustomCSSFor[tag] = [];\n\t}\n\n\tcustomCSSFor[tag].push(css);\n};\n\nconst getCustomCSS = tag => {\n\treturn customCSSFor[tag] ? customCSSFor[tag].join(\"\") : \"\";\n};\n\nexport { addCustomCSS, getCustomCSS };\n","import createStyleInHead from \"../util/createStyleInHead.js\";\n\nlet ponyfillTimer;\n\nconst ponyfillNeeded = () => !!window.CSSVarsPonyfill;\n\nconst runPonyfill = () => {\n\tponyfillTimer = undefined;\n\n\twindow.CSSVarsPonyfill.cssVars({\n\t\trootElement: document.head,\n\t\tinclude: \"style[data-ui5-theme-properties],style[data-ui5-element-styles]\",\n\t\tsilent: true,\n\t});\n};\n\nconst schedulePonyfill = () => {\n\tif (!ponyfillTimer) {\n\t\tponyfillTimer = window.setTimeout(runPonyfill, 0);\n\t}\n};\n\n/**\n * Creates/updates a style element holding all CSS Custom Properties\n * @param cssText\n * @param packageName\n */\nconst injectThemeProperties = (cssText, packageName) => {\n\t// Needed for all browsers\n\tconst styleElement = document.head.querySelector(`style[data-ui5-theme-properties=\"${packageName}\"]`);\n\tif (styleElement) {\n\t\tstyleElement.textContent = cssText || \"\";\t// in case of undefined\n\t} else {\n\t\tconst attributes = {\n\t\t\t\"data-ui5-theme-properties\": packageName,\n\t\t};\n\t\tcreateStyleInHead(cssText, attributes);\n\t}\n\n\t// When changing the theme, run the ponyfill immediately\n\tif (ponyfillNeeded()) {\n\t\trunPonyfill();\n\t}\n};\n\n/**\n * Creates a style element holding the CSS for a web component (and resolves CSS Custom Properties for IE)\n * @param tagName\n * @param cssText\n */\nconst injectWebComponentStyle = (tagName, cssText) => {\n\t// Edge and IE\n\tcreateStyleInHead(cssText, {\n\t\t\"data-ui5-element-styles\": tagName,\n\t\t\"disabled\": \"disabled\",\n\t});\n\n\t// When injecting component styles, more might come in the same tick, so run the ponyfill async (to avoid double work)\n\tif (ponyfillNeeded()) {\n\t\tschedulePonyfill();\n\t}\n};\n\nexport {\n\tinjectThemeProperties,\n\tinjectWebComponentStyle,\n};\n","import { addCustomCSS, getCustomCSS } from \"./theming/CustomStyle.js\";\nimport { getThemeProperties, getRegisteredPackages } from \"./asset-registries/Themes.js\";\nimport { injectThemeProperties } from \"./theming/StyleInjection.js\";\n\nconst themeChangeCallbacks = [];\n\nconst attachThemeChange = function attachThemeChange(callback) {\n\tif (themeChangeCallbacks.indexOf(callback) === -1) {\n\t\tthemeChangeCallbacks.push(callback);\n\t}\n};\n\nconst _applyTheme = async theme => {\n\tlet cssText = \"\";\n\n\tconst registeredPackages = getRegisteredPackages();\n\tregisteredPackages.forEach(async packageName => {\n\t\tcssText = await getThemeProperties(packageName, theme);\n\t\tinjectThemeProperties(cssText, packageName);\n\t});\n\n\t_executeThemeChangeCallbacks(theme);\n};\n\nconst _executeThemeChangeCallbacks = theme => {\n\tthemeChangeCallbacks.forEach(callback => callback(theme));\n};\n\nconst getEffectiveStyle = ElementClass => {\n\tconst tag = ElementClass.getMetadata().getTag();\n\tconst customStyle = getCustomCSS(tag) || \"\";\n\tlet componentStyles = ElementClass.styles;\n\n\tif (Array.isArray(componentStyles)) {\n\t\tcomponentStyles = componentStyles.join(\" \");\n\t}\n\treturn `${componentStyles} ${customStyle}`;\n};\n\nexport {\n\tattachThemeChange,\n\t_applyTheme,\n\tgetEffectiveStyle,\n\taddCustomCSS,\n};\n","import { getTheme as getConfiguredTheme } from \"../InitialConfiguration.js\";\nimport { _applyTheme } from \"../Theming.js\";\n\nlet theme = getConfiguredTheme();\n\nconst getTheme = () => {\n\treturn theme;\n};\n\nconst setTheme = async newTheme => {\n\tif (theme === newTheme) {\n\t\treturn;\n\t}\n\n\ttheme = newTheme;\n\n\t// Update CSS Custom Properties\n\tawait _applyTheme(theme);\n};\n\nexport {\n\tgetTheme,\n\tsetTheme,\n};\n","let polyfillLoadedPromise;\n\nconst whenPolyfillLoaded = () => {\n\tif (polyfillLoadedPromise) {\n\t\treturn polyfillLoadedPromise;\n\t}\n\n\tpolyfillLoadedPromise = new Promise(resolve => {\n\t\tif (window.WebComponents\n\t\t\t&& !window.WebComponents.ready\n\t\t\t&& window.WebComponents.waitFor) {\n\t\t\t// the polyfill loader is present\n\t\t\twindow.WebComponents.waitFor(() => {\n\t\t\t\t// the polyfills are loaded, safe to execute code depending on their APIs\n\t\t\t\tresolve();\n\t\t\t});\n\t\t} else {\n\t\t\t// polyfill loader missing, modern browsers only\n\t\t\tresolve();\n\t\t}\n\t});\n\n\treturn polyfillLoadedPromise;\n};\n\nexport default whenPolyfillLoaded;\n","import whenDOMReady from \"./util/whenDOMReady.js\";\nimport insertFontFace from \"./FontFace.js\";\nimport { getTheme } from \"./config/Theme.js\";\nimport { _applyTheme } from \"./Theming.js\";\nimport whenPolyfillLoaded from \"./compatibility/whenPolyfillLoaded.js\";\n\nlet bootPromise;\n\nconst boot = () => {\n\tif (bootPromise) {\n\t\treturn bootPromise;\n\t}\n\n\tbootPromise = new Promise(async resolve => {\n\t\tawait whenDOMReady();\n\t\tawait _applyTheme(getTheme());\n\t\tinsertFontFace();\n\t\tawait whenPolyfillLoaded();\n\t\tresolve();\n\t});\n\n\treturn bootPromise;\n};\n\nexport default boot;\n","import { getNoConflict as getConfiguredNoConflict } from \"../InitialConfiguration.js\";\n\n// Fire these events even with noConflict: true\nconst excludeList = [\n\t\"value-changed\",\n];\n\nconst shouldFireOriginalEvent = eventName => {\n\treturn excludeList.includes(eventName);\n};\n\nlet noConflict = getConfiguredNoConflict();\n\nconst shouldNotFireOriginalEvent = eventName => {\n\treturn !(noConflict.events && noConflict.events.includes && noConflict.events.includes(eventName));\n};\n\nconst getNoConflict = () => {\n\treturn noConflict;\n};\n\nconst skipOriginalEvent = eventName => {\n\t// Always fire these events\n\tif (shouldFireOriginalEvent(eventName)) {\n\t\treturn false;\n\t}\n\n\t// Read from the configuration\n\tif (noConflict === true) {\n\t\treturn true;\n\t}\n\n\treturn !shouldNotFireOriginalEvent(eventName);\n};\n\nconst setNoConflict = noConflictData => {\n\tnoConflict = noConflictData;\n};\n\nexport {\n\tgetNoConflict,\n\tsetNoConflict,\n\tskipOriginalEvent,\n};\n","// Shorthands\nconst w = window;\n\n// Map of observer objects per dom node\nconst observers = new WeakMap();\n\n/**\n * Implements universal DOM node observation methods.\n */\nclass DOMObserver {\n\tconstructor() {\n\t\tthrow new Error(\"Static class\");\n\t}\n\n\t/**\n\t * This function abstracts out mutation observer usage inside shadow DOM.\n\t * For native shadow DOM the native mutation observer is used.\n\t * When the polyfill is used, the observeChildren ShadyDOM method is used instead.\n\t *\n\t * @throws Exception\n\t * Note: does not allow several mutation observers per node. If there is a valid use-case, this behavior can be changed.\n\t *\n\t * @param node\n\t * @param callback\n\t * @param options - Only used for the native mutation observer\n\t */\n\tstatic observeDOMNode(node, callback, options) {\n\t\tlet observerObject = observers.get(node);\n\t\tif (observerObject) {\n\t\t\tthrow new Error(\"A mutation/ShadyDOM observer is already assigned to this node.\");\n\t\t}\n\n\t\tif (w.ShadyDOM) {\n\t\t\tobserverObject = w.ShadyDOM.observeChildren(node, callback);\n\t\t} else {\n\t\t\tobserverObject = new MutationObserver(callback);\n\t\t\tobserverObject.observe(node, options);\n\t\t}\n\n\t\tobservers.set(node, observerObject);\n\t}\n\n\t/**\n\t * De-registers the mutation observer, depending on its type\n\t * @param node\n\t */\n\tstatic unobserveDOMNode(node) {\n\t\tconst observerObject = observers.get(node);\n\t\tif (!observerObject) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (observerObject instanceof MutationObserver) {\n\t\t\tobserverObject.disconnect();\n\t\t} else {\n\t\t\tw.ShadyDOM.unobserveChildren(observerObject);\n\t\t}\n\t\tobservers.delete(node);\n\t}\n}\n\nexport default DOMObserver;\n","/**\n * Base class for all data types.\n *\n * @class\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.base.types.DataType\n * @public\n */\nclass DataType {\n\tstatic isValid(value) {\n\t}\n\n\tstatic generataTypeAcessors(types) {\n\t\tObject.keys(types).forEach(type => {\n\t\t\tObject.defineProperty(this, type, {\n\t\t\t\tget() {\n\t\t\t\t\treturn types[type];\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n}\n\nexport default DataType;\n","const isDescendantOf = (klass, baseKlass, inclusive = false) => {\n\tif (typeof klass !== \"function\" || typeof baseKlass !== \"function\") {\n\t\treturn false;\n\t}\n\tif (inclusive && klass === baseKlass) {\n\t\treturn true;\n\t}\n\tlet parent = klass;\n\tdo {\n\t\tparent = Object.getPrototypeOf(parent);\n\t} while (parent !== null && parent !== baseKlass);\n\treturn parent === baseKlass;\n};\n\nexport default isDescendantOf;\n","const kebabToCamelCase = string => toCamelCase(string.split(\"-\"));\n\nconst camelToKebabCase = string => string.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n\nconst toCamelCase = parts => {\n\treturn parts.map((string, index) => {\n\t\treturn index === 0 ? string.toLowerCase() : string.charAt(0).toUpperCase() + string.slice(1).toLowerCase();\n\t}).join(\"\");\n};\n\nexport { kebabToCamelCase, camelToKebabCase };\n","import DataType from \"./types/DataType.js\";\nimport isDescendantOf from \"./util/isDescendantOf.js\";\nimport { camelToKebabCase } from \"./util/StringHelper.js\";\n\n/**\n *\n * @class\n * @public\n */\nclass UI5ElementMetadata {\n\tconstructor(metadata) {\n\t\tthis.metadata = metadata;\n\t}\n\n\t/**\n\t * Only intended for use by UI5Element.js\n\t * @protected\n\t */\n\tstatic validatePropertyValue(value, propData) {\n\t\tconst isMultiple = propData.multiple;\n\t\tif (isMultiple) {\n\t\t\treturn value.map(propValue => validateSingleProperty(propValue, propData));\n\t\t}\n\t\treturn validateSingleProperty(value, propData);\n\t}\n\n\t/**\n\t * Only intended for use by UI5Element.js\n\t * @protected\n\t */\n\tstatic validateSlotValue(value, slotData) {\n\t\treturn validateSingleSlot(value, slotData);\n\t}\n\n\t/**\n\t * Returns the tag of the UI5 Element\n\t * @public\n\t */\n\tgetTag() {\n\t\treturn this.metadata.tag;\n\t}\n\n\t/**\n\t * Determines whether a property should have an attribute counterpart\n\t * @public\n\t * @param propName\n\t * @returns {boolean}\n\t */\n\thasAttribute(propName) {\n\t\tconst propData = this.getProperties()[propName];\n\t\treturn propData.type !== Object && !propData.noAttribute;\n\t}\n\n\t/**\n\t * Returns an array with the properties of the UI5 Element (in camelCase)\n\t * @public\n\t * @returns {string[]}\n\t */\n\tgetPropertiesList() {\n\t\treturn Object.keys(this.getProperties());\n\t}\n\n\t/**\n\t * Returns an array with the attributes of the UI5 Element (in kebab-case)\n\t * @public\n\t * @returns {string[]}\n\t */\n\tgetAttributesList() {\n\t\treturn this.getPropertiesList().filter(this.hasAttribute, this).map(camelToKebabCase);\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of slots and their metadata definitions\n\t * @public\n\t */\n\tgetSlots() {\n\t\treturn this.metadata.slots || {};\n\t}\n\n\t/**\n\t * Determines whether this UI5 Element supports any slots\n\t * @public\n\t */\n\thasSlots() {\n\t\treturn !!Object.entries(this.getSlots()).length;\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of properties and their metadata definitions\n\t * @public\n\t */\n\tgetProperties() {\n\t\treturn this.metadata.properties || {};\n\t}\n\n\t/**\n\t * Returns an object with key-value pairs of events and their metadata definitions\n\t * @public\n\t */\n\tgetEvents() {\n\t\treturn this.metadata.events || {};\n\t}\n}\n\nconst validateSingleProperty = (value, propData) => {\n\tconst propertyType = propData.type;\n\n\tif (propertyType === Boolean) {\n\t\treturn typeof value === \"boolean\" ? value : false;\n\t}\n\tif (propertyType === String) {\n\t\treturn (typeof value === \"string\" || typeof value === \"undefined\" || value === null) ? value : value.toString();\n\t}\n\tif (propertyType === Object) {\n\t\treturn typeof value === \"object\" ? value : propData.defaultValue;\n\t}\n\tif (isDescendantOf(propertyType, DataType)) {\n\t\treturn propertyType.isValid(value) ? value : propData.defaultValue;\n\t}\n};\n\nconst validateSingleSlot = (value, slotData) => {\n\tif (value === null) {\n\t\treturn value;\n\t}\n\n\tconst getSlottedNodes = el => {\n\t\tconst isTag = el instanceof HTMLElement;\n\t\tconst isSlot = isTag && el.localName === \"slot\";\n\n\t\tif (isSlot) {\n\t\t\treturn el.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement);\n\t\t}\n\n\t\treturn [el];\n\t};\n\n\tconst slottedNodes = getSlottedNodes(value);\n\tslottedNodes.forEach(el => {\n\t\tif (!(el instanceof slotData.type)) {\n\t\t\tthrow new Error(`${el} is not of type ${slotData.type}`);\n\t\t}\n\t});\n\n\treturn value;\n};\n\nexport default UI5ElementMetadata;\n","const getStaticAreaInstance = () => {\n\tlet staticArea = document.querySelector(\"ui5-static-area\");\n\n\tif (staticArea) {\n\t\treturn staticArea;\n\t}\n\n\t// Create static area if it is not present\n\tconst bodyElement = document.body;\n\tstaticArea = document.createElement(\"ui5-static-area\");\n\n\treturn bodyElement.insertBefore(staticArea, bodyElement.firstChild);\n};\n\nconst removeStaticArea = () => {\n\tgetStaticAreaInstance().destroy();\n};\n\nclass StaticAreaElement extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t}\n\n\tdestroy() {\n\t\tconst staticAreaDomRef = document.querySelector(this.tagName.toLowerCase());\n\t\tstaticAreaDomRef.parentElement.removeChild(staticAreaDomRef);\n\t}\n}\n\ncustomElements.define(\"ui5-static-area\", StaticAreaElement);\n\nexport {\n\tgetStaticAreaInstance,\n\tremoveStaticArea,\n};\n","import { getStaticAreaInstance, removeStaticArea } from \"./StaticArea.js\";\n\n/**\n * @class\n * @author SAP SE\n * @private\n * Defines and takes care of ui5-static-are-item items\n */\nclass StaticAreaItem {\n\tconstructor(_ui5ElementContext) {\n\t\tthis.ui5ElementContext = _ui5ElementContext;\n\t}\n\n\t/**\n\t * @protected\n\t */\n\t_updateFragment() {\n\t\tconst renderResult = this.ui5ElementContext.constructor.staticAreaTemplate(this.ui5ElementContext),\n\t\t\tstylesToAdd = this.ui5ElementContext.constructor.staticAreaStyles || false;\n\n\t\tif (!this.staticAreaItemDomRef) {\n\t\t\t// Initial rendering of fragment\n\n\t\t\tthis.staticAreaItemDomRef = document.createElement(\"ui5-static-area-item\");\n\t\t\tthis.staticAreaItemDomRef.attachShadow({ mode: \"open\" });\n\t\t\tthis.staticAreaItemDomRef.classList.add(this.ui5ElementContext._id); // used for getting the popover in the tests\n\n\t\t\tgetStaticAreaInstance().appendChild(this.staticAreaItemDomRef);\n\t\t}\n\n\t\tthis.ui5ElementContext.constructor.render(renderResult, this.staticAreaItemDomRef.shadowRoot, stylesToAdd, { eventContext: this.ui5ElementContext });\n\t}\n\n\t/**\n\t * @protected\n\t */\n\t_removeFragmentFromStaticArea() {\n\t\tconst staticArea = getStaticAreaInstance();\n\n\t\tstaticArea.removeChild(this.staticAreaItemDomRef);\n\n\t\tthis.staticAreaItemDomRef = null;\n\n\t\t// remove static area\n\t\tif (staticArea.childElementCount < 1) {\n\t\t\tremoveStaticArea();\n\t\t}\n\t}\n\n\t/**\n\t * @protected\n\t * Returns reference to the DOM element where the current fragment is added.\n\t */\n\tgetDomRef() {\n\t\treturn this.staticAreaItemDomRef.shadowRoot;\n\t}\n}\n\nclass StaticAreaItemElement extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t}\n}\n\ncustomElements.define(\"ui5-static-area-item\", StaticAreaItemElement);\n\nexport default StaticAreaItem;\n","import DataType from \"./DataType.js\";\n\nclass Integer extends DataType {\n\tstatic isValid(value) {\n\t\treturn Number.isInteger(value);\n\t}\n}\n\nexport default Integer;\n","class RenderQueue {\n\tconstructor() {\n\t\tthis.list = []; // Used to store the web components in order\n\t\tthis.promises = new Map(); // Used to store promises for web component rendering\n\t}\n\n\tadd(webComponent) {\n\t\tif (this.promises.has(webComponent)) {\n\t\t\treturn this.promises.get(webComponent);\n\t\t}\n\n\t\tlet deferredResolve;\n\t\tconst promise = new Promise(resolve => {\n\t\t\tdeferredResolve = resolve;\n\t\t});\n\t\tpromise._deferredResolve = deferredResolve;\n\n\t\tthis.list.push(webComponent);\n\t\tthis.promises.set(webComponent, promise);\n\n\t\treturn promise;\n\t}\n\n\tshift() {\n\t\tconst webComponent = this.list.shift();\n\t\tif (webComponent) {\n\t\t\tconst promise = this.promises.get(webComponent);\n\t\t\tthis.promises.delete(webComponent);\n\t\t\treturn { webComponent, promise };\n\t\t}\n\t}\n\n\tgetList() {\n\t\treturn this.list;\n\t}\n\n\tisAdded(webComponent) {\n\t\treturn this.promises.has(webComponent);\n\t}\n}\n\nexport default RenderQueue;\n","import RenderQueue from \"./RenderQueue.js\";\n\nconst MAX_RERENDER_COUNT = 10;\n\n// Tells whether a render task is currently scheduled\nlet renderTaskId;\n\n// Queue for invalidated web components\nconst invalidatedWebComponents = new RenderQueue();\n\nlet renderTaskPromise,\n\trenderTaskPromiseResolve,\n\ttaskResult;\n\nlet mutationObserverTimer;\n\n/**\n * Class that manages the rendering/re-rendering of web components\n * This is always asynchronous\n */\nclass RenderScheduler {\n\tconstructor() {\n\t\tthrow new Error(\"Static class\");\n\t}\n\n\t/**\n\t * Queues a web component for re-rendering\n\t * @param webComponent\n\t */\n\tstatic renderDeferred(webComponent) {\n\t\t// Enqueue the web component\n\t\tconst res = invalidatedWebComponents.add(webComponent);\n\n\t\t// Schedule a rendering task\n\t\tRenderScheduler.scheduleRenderTask();\n\t\treturn res;\n\t}\n\n\tstatic renderImmediately(webComponent) {\n\t\t// Enqueue the web component\n\t\tconst res = invalidatedWebComponents.add(webComponent);\n\n\t\t// Immediately start a render task\n\t\tRenderScheduler.runRenderTask();\n\t\treturn res;\n\t}\n\n\t/**\n\t * Schedules a rendering task, if not scheduled already\n\t */\n\tstatic scheduleRenderTask() {\n\t\tif (!renderTaskId) {\n\t\t\t// renderTaskId = window.setTimeout(RenderScheduler.renderWebComponents, 3000); // Task\n\t\t\t// renderTaskId = Promise.resolve().then(RenderScheduler.renderWebComponents); // Micro task\n\t\t\trenderTaskId = window.requestAnimationFrame(RenderScheduler.renderWebComponents); // AF\n\t\t}\n\t}\n\n\tstatic runRenderTask() {\n\t\tif (!renderTaskId) {\n\t\t\trenderTaskId = 1; // prevent another rendering task from being scheduled, all web components should use this task\n\t\t\tRenderScheduler.renderWebComponents();\n\t\t}\n\t}\n\n\tstatic renderWebComponents() {\n\t\t// console.log(\"------------- NEW RENDER TASK ---------------\");\n\n\t\tlet webComponentInfo,\n\t\t\twebComponent,\n\t\t\tpromise;\n\t\tconst renderStats = new Map();\n\t\twhile (webComponentInfo = invalidatedWebComponents.shift()) { // eslint-disable-line\n\t\t\twebComponent = webComponentInfo.webComponent;\n\t\t\tpromise = webComponentInfo.promise;\n\n\t\t\tconst timesRerendered = renderStats.get(webComponent) || 0;\n\t\t\tif (timesRerendered > MAX_RERENDER_COUNT) {\n\t\t\t\t// console.warn(\"WARNING RERENDER\", webComponent);\n\t\t\t\tthrow new Error(`Web component re-rendered too many times this task, max allowed is: ${MAX_RERENDER_COUNT}`);\n\t\t\t}\n\t\t\twebComponent._render();\n\t\t\tpromise._deferredResolve();\n\t\t\trenderStats.set(webComponent, timesRerendered + 1);\n\t\t}\n\n\t\t// wait for Mutation observer just in case\n\t\tif (!mutationObserverTimer) {\n\t\t\tmutationObserverTimer = setTimeout(() => {\n\t\t\t\tmutationObserverTimer = undefined;\n\t\t\t\tif (invalidatedWebComponents.getList().length === 0) {\n\t\t\t\t\tRenderScheduler._resolveTaskPromise();\n\t\t\t\t}\n\t\t\t}, 200);\n\t\t}\n\n\t\trenderTaskId = undefined;\n\t}\n\n\t/**\n\t * return a promise that will be resolved once all invalidated web components are rendered\n\t */\n\tstatic whenDOMUpdated() {\n\t\tif (renderTaskPromise) {\n\t\t\treturn renderTaskPromise;\n\t\t}\n\n\t\trenderTaskPromise = new Promise(resolve => {\n\t\t\trenderTaskPromiseResolve = resolve;\n\t\t\twindow.requestAnimationFrame(() => {\n\t\t\t\tif (invalidatedWebComponents.getList().length === 0) {\n\t\t\t\t\trenderTaskPromise = undefined;\n\t\t\t\t\tresolve();\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\treturn renderTaskPromise;\n\t}\n\n\tstatic getNotDefinedComponents() {\n\t\treturn Array.from(document.querySelectorAll(\"*\")).filter(el => el.localName.startsWith(\"ui5-\") && !el.isUI5Element);\n\t}\n\n\t/**\n\t * return a promise that will be resolved once all ui5 webcomponents on the page have their shadow root ready\n\t */\n\tstatic async whenShadowDOMReady() {\n\t\tconst undefinedElements = this.getNotDefinedComponents();\n\n\t\tconst definedPromises = undefinedElements.map(\n\t\t el => customElements.whenDefined(el.localName)\n\t\t);\n\t\tconst timeoutPromise = new Promise(resolve => setTimeout(resolve, 5000));\n\n\t\tawait Promise.race([Promise.all(definedPromises), timeoutPromise]);\n\t\tconst stillUndefined = this.getNotDefinedComponents();\n\t\tif (stillUndefined.length) {\n\t\t\t// eslint-disable-next-line\n\t\t\tconsole.warn(\"undefined elements after 5 seconds are: \" + [...stillUndefined].map(el => el.localName).join(\" ; \"));\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\tstatic async whenFinished() {\n\t\tawait RenderScheduler.whenShadowDOMReady();\n\t\tawait RenderScheduler.whenDOMUpdated();\n\t}\n\n\tstatic _resolveTaskPromise() {\n\t\tif (invalidatedWebComponents.getList().length > 0) {\n\t\t\t// More updates are pending. Resolve will be called again\n\t\t\treturn;\n\t\t}\n\n\t\tif (renderTaskPromiseResolve) {\n\t\t\trenderTaskPromiseResolve.call(this, taskResult);\n\t\t\trenderTaskPromiseResolve = undefined;\n\t\t\trenderTaskPromise = undefined;\n\t\t}\n\t}\n}\n\nexport default RenderScheduler;\n","const findClosingParenthesisPos = (str, openingParenthesisPos) => {\n\tlet opened = 1;\n\tfor (let pos = openingParenthesisPos + 1; pos < str.length; pos++) {\n\t\tconst char = str.charAt(pos);\n\t\tif (char === \"(\") {\n\t\t\topened++;\n\t\t} else if (char === \")\") {\n\t\t\topened--;\n\t\t}\n\t\tif (opened === 0) {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\nconst replaceSelector = (str, selector, selectorStartPos, replacement) => {\n\tconst charAfterSelectorPos = selectorStartPos + selector.length;\n\tconst charAfterSelector = str.charAt(charAfterSelectorPos);\n\n\tconst upToSelector = str.substring(0, selectorStartPos) + replacement;\n\tif (charAfterSelector === \"(\") {\n\t\tconst closingParenthesisPos = findClosingParenthesisPos(str, charAfterSelectorPos);\n\t\treturn upToSelector + str.substring(charAfterSelectorPos + 1, closingParenthesisPos) + str.substring(closingParenthesisPos + 1);\n\t}\n\n\treturn upToSelector + str.substring(charAfterSelectorPos);\n};\n\n/**\n * :host => ui5-button\n * :host([expr]) => ui5-button[expr]\n * ::slotted(expr) => expr\n * @param str - source string\n * @param selector - :host or ::slotted\n * @param replacement - normally tag name\n * @returns {*}\n */\nconst replaceSelectors = (str, selector, replacement) => {\n\tlet selectorStartPos = str.indexOf(selector);\n\twhile (selectorStartPos !== -1) {\n\t\tstr = replaceSelector(str, selector, selectorStartPos, replacement);\n\t\tselectorStartPos = str.indexOf(selector);\n\t}\n\treturn str;\n};\n\nconst adaptLinePart = (line, tag) => {\n\tline = line.trim();\n\tline = replaceSelectors(line, \"::slotted\", ``); // first remove all ::slotted() occurrences\n\n\t// Host selector - replace it\n\tif (line.startsWith(\":host\")) {\n\t\treturn replaceSelector(line, \":host\", 0, tag);\n\t}\n\n\t// Leave out @keyframes and keyframe values (0%, 100%, etc...)\n\t// csso shortens '100%' -> 'to', make sure to leave it untouched\n\tif (line.match(/^[@0-9]/) || line === \"to\" || line === \"to{\") {\n\t\treturn line;\n\t}\n\n\t// IE specific selector (directly written with the tag) - keep it\n\tif (line.match(new RegExp(`^${tag}[^a-zA-Z0-9-]`))) {\n\t\treturn line;\n\t}\n\n\t// No host and no tag in the beginning of the selector - prepend the tag\n\treturn `${tag} ${line}`;\n};\n\nconst adaptCSSForIE = (str, tag) => {\n\tstr = str.replace(/\\n/g, ` `);\n\tstr = str.replace(/([{}])/g, `$1\\n`);\n\tlet result = ``;\n\tconst lines = str.split(`\\n`);\n\tlines.forEach(line => {\n\t\tconst mustProcess = line.match(/{$/); // Only work on lines that end on {, otherwise just append to result\n\t\tif (mustProcess) {\n\t\t\tconst lineParts = line.split(\",\");\n\t\t\tconst processedLineParts = lineParts.map(linePart => {\n\t\t\t\treturn adaptLinePart(linePart, tag);\n\t\t\t});\n\t\t\tline = processedLineParts.join(\",\");\n\t\t}\n\t\tresult = `${result}${line}`;\n\t});\n\treturn result;\n};\n\nexport default adaptCSSForIE;\n","import { getEffectiveStyle } from \"./Theming.js\";\nimport { injectWebComponentStyle } from \"./theming/StyleInjection.js\";\nimport adaptCSSForIE from \"./util/CSSTransformUtils.js\";\n\nconst constructableStyleMap = new Map();\nconst IEStyleSet = new Set();\n\n/**\n * Creates the needed CSS for a web component class in the head tag\n * Note: IE11, Edge\n * @param ElementClass\n */\nconst createHeadStyle = ElementClass => {\n\tconst tag = ElementClass.getMetadata().getTag();\n\tif (IEStyleSet.has(tag)) {\n\t\treturn;\n\t}\n\n\tlet cssContent = getEffectiveStyle(ElementClass);\n\tcssContent = adaptCSSForIE(cssContent, tag);\n\tinjectWebComponentStyle(tag, cssContent);\n\tIEStyleSet.add(tag);\n};\n\n/**\n * Returns (and caches) a constructable style sheet for a web component class\n * Note: Chrome\n * @param ElementClass\n * @returns {*}\n */\nconst getConstructableStyle = ElementClass => {\n\tconst tagName = ElementClass.getMetadata().getTag();\n\tconst styleContent = getEffectiveStyle(ElementClass);\n\tif (constructableStyleMap.has(tagName)) {\n\t\treturn constructableStyleMap.get(tagName);\n\t}\n\n\tconst style = new CSSStyleSheet();\n\tstyle.replaceSync(styleContent);\n\n\tconstructableStyleMap.set(tagName, style);\n\treturn style;\n};\n\nexport {\n\tcreateHeadStyle,\n\tgetConstructableStyle,\n};\n","/**\n * Checks whether a property name is valid (does not collide with existing DOM API properties)\n * Note: disabled is present in IE so we explicitly allow it here.\n *\n * @param name\n * @returns {boolean}\n */\nconst isValidPropertyName = name => {\n\tif (name === \"disabled\") {\n\t\treturn true;\n\t}\n\tconst classes = [\n\t\tHTMLElement,\n\t\tElement,\n\t\tNode,\n\t];\n\treturn !classes.some(klass => klass.prototype.hasOwnProperty(name)); // eslint-disable-line\n};\n\nexport default isValidPropertyName;\n","import merge from \"@ui5/webcomponents-utils/dist/sap/base/util/merge.js\";\nimport boot from \"./boot.js\";\nimport { skipOriginalEvent } from \"./config/NoConflict.js\";\nimport DOMObserver from \"./compatibility/DOMObserver.js\";\nimport UI5ElementMetadata from \"./UI5ElementMetadata.js\";\nimport StaticAreaItem from \"./StaticAreaItem.js\";\nimport Integer from \"./types/Integer.js\";\nimport RenderScheduler from \"./RenderScheduler.js\";\nimport { getConstructableStyle, createHeadStyle } from \"./CSS.js\";\nimport { getEffectiveStyle } from \"./Theming.js\";\nimport { kebabToCamelCase, camelToKebabCase } from \"./util/StringHelper.js\";\nimport isValidPropertyName from \"./util/isValidPropertyName.js\";\n\nconst metadata = {\n\tevents: {\n\t\t_propertyChange: {},\n\t},\n};\n\nconst DefinitionsSet = new Set();\nconst IDMap = new Map();\n\nconst elementTimeouts = new Map();\n\n/**\n * Base class for all UI5 Web Components\n *\n * @class\n * @constructor\n * @author SAP SE\n * @alias sap.ui.webcomponents.base.UI5Element\n * @extends HTMLElement\n * @public\n */\nclass UI5Element extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\t\tthis._generateId();\n\t\tthis._initializeState();\n\t\tthis._upgradeAllProperties();\n\t\tthis._initializeContainers();\n\n\t\tlet deferredResolve;\n\t\tthis._domRefReadyPromise = new Promise(resolve => {\n\t\t\tdeferredResolve = resolve;\n\t\t});\n\t\tthis._domRefReadyPromise._deferredResolve = deferredResolve;\n\n\t\tthis._monitoredChildProps = new Map();\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_generateId() {\n\t\tthis._id = this.constructor._nextID();\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_initializeContainers() {\n\t\t// Init Shadow Root\n\t\tif (this.constructor._needsShadowDOM()) {\n\t\t\tthis.attachShadow({ mode: \"open\" });\n\n\t\t\t// IE11, Edge\n\t\t\tif (window.ShadyDOM) {\n\t\t\t\tcreateHeadStyle(this.constructor);\n\t\t\t}\n\n\t\t\t// Chrome\n\t\t\tif (document.adoptedStyleSheets) {\n\t\t\t\tconst style = getConstructableStyle(this.constructor);\n\t\t\t\tthis.shadowRoot.adoptedStyleSheets = [style];\n\t\t\t}\n\t\t}\n\n\t\t// Init StaticAreaItem only if needed\n\t\tif (this.constructor._needsStaticArea()) {\n\t\t\tthis.staticAreaItem = new StaticAreaItem(this);\n\t\t}\n\t}\n\n\t/**\n\t * Do not call this method from derivatives of UI5Element, use \"onEnterDOM\" only\n\t * @private\n\t */\n\tasync connectedCallback() {\n\t\t// Render the Shadow DOM\n\t\tif (this.constructor._needsShadowDOM()) {\n\t\t\t// always register the observer before yielding control to the main thread (await)\n\t\t\tthis._startObservingDOMChildren();\n\n\t\t\tawait this._processChildren();\n\t\t\tawait RenderScheduler.renderImmediately(this);\n\t\t\tthis._domRefReadyPromise._deferredResolve();\n\t\t\tif (typeof this.onEnterDOM === \"function\") {\n\t\t\t\tthis.onEnterDOM();\n\t\t\t}\n\t\t}\n\n\t\t// Render Fragment if neccessary\n\t\tif (this.constructor._needsStaticArea()) {\n\t\t\tthis.staticAreaItem._updateFragment(this);\n\t\t}\n\t}\n\n\t/**\n\t * Do not call this method from derivatives of UI5Element, use \"onExitDOM\" only\n\t * @private\n\t */\n\tdisconnectedCallback() {\n\t\tif (this.constructor._needsShadowDOM()) {\n\t\t\tthis._stopObservingDOMChildren();\n\t\t\tif (typeof this.onExitDOM === \"function\") {\n\t\t\t\tthis.onExitDOM();\n\t\t\t}\n\t\t}\n\n\t\tif (this.constructor._needsStaticArea()) {\n\t\t\tthis.staticAreaItem._removeFragmentFromStaticArea();\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_startObservingDOMChildren() {\n\t\tconst shouldObserveChildren = this.constructor.getMetadata().hasSlots();\n\t\tif (!shouldObserveChildren) {\n\t\t\treturn;\n\t\t}\n\t\tconst mutationObserverOptions = {\n\t\t\tchildList: true,\n\t\t\tsubtree: true,\n\t\t\tcharacterData: true,\n\t\t};\n\t\tDOMObserver.observeDOMNode(this, this._processChildren.bind(this), mutationObserverOptions);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_stopObservingDOMChildren() {\n\t\tDOMObserver.unobserveDOMNode(this);\n\t}\n\n\t/**\n\t * Note: this method is also manually called by \"compatibility/patchNodeValue.js\"\n\t * @private\n\t */\n\tasync _processChildren() {\n\t\tconst hasSlots = this.constructor.getMetadata().hasSlots();\n\t\tif (hasSlots) {\n\t\t\tawait this._updateSlots();\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\tasync _updateSlots() {\n\t\tconst slotsMap = this.constructor.getMetadata().getSlots();\n\t\tconst canSlotText = slotsMap.default && slotsMap.default.type === Node;\n\t\tconst domChildren = Array.from(canSlotText ? this.childNodes : this.children);\n\n\t\t// Init the _state object based on the supported slots\n\t\tfor (const [slotName, slotData] of Object.entries(slotsMap)) { // eslint-disable-line\n\t\t\tthis._clearSlot(slotName);\n\t\t}\n\n\t\tconst autoIncrementMap = new Map();\n\t\tconst slottedChildrenMap = new Map();\n\n\t\tconst allChildrenUpgraded = domChildren.map(async (child, idx) => {\n\t\t\t// Determine the type of the child (mainly by the slot attribute)\n\t\t\tconst slotName = this.constructor._getSlotName(child);\n\t\t\tconst slotData = slotsMap[slotName];\n\n\t\t\t// Check if the slotName is supported\n\t\t\tif (slotData === undefined) {\n\t\t\t\tconst validValues = Object.keys(slotsMap).join(\", \");\n\t\t\t\tconsole.warn(`Unknown slotName: ${slotName}, ignoring`, child, `Valid values are: ${validValues}`); // eslint-disable-line\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// For children that need individual slots, calculate them\n\t\t\tif (slotData.individualSlots) {\n\t\t\t\tconst nextId = (autoIncrementMap.get(slotName) || 0) + 1;\n\t\t\t\tautoIncrementMap.set(slotName, nextId);\n\t\t\t\tchild._individualSlot = `${slotName}-${nextId}`;\n\t\t\t}\n\n\t\t\t// Await for not-yet-defined custom elements\n\t\t\tif (child instanceof HTMLElement) {\n\t\t\t\tconst localName = child.localName;\n\t\t\t\tconst isCustomElement = localName.includes(\"-\");\n\t\t\t\tif (isCustomElement) {\n\t\t\t\t\tconst isDefined = window.customElements.get(localName);\n\t\t\t\t\tif (!isDefined) {\n\t\t\t\t\t\tconst whenDefinedPromise = window.customElements.whenDefined(localName); // Class registered, but instances not upgraded yet\n\t\t\t\t\t\tlet timeoutPromise = elementTimeouts.get(localName);\n\t\t\t\t\t\tif (!timeoutPromise) {\n\t\t\t\t\t\t\ttimeoutPromise = new Promise(resolve => setTimeout(resolve, 1000));\n\t\t\t\t\t\t\telementTimeouts.set(localName, timeoutPromise);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tawait Promise.race([whenDefinedPromise, timeoutPromise]);\n\t\t\t\t\t}\n\t\t\t\t\twindow.customElements.upgrade(child);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tchild = this.constructor.getMetadata().constructor.validateSlotValue(child, slotData);\n\n\t\t\tif (child.isUI5Element) {\n\t\t\t\tthis._attachChildPropertyUpdated(child, slotData);\n\t\t\t}\n\n\t\t\tconst propertyName = slotData.propertyName || slotName;\n\n\t\t\tif (slottedChildrenMap.has(propertyName)) {\n\t\t\t\tslottedChildrenMap.get(propertyName).push({ child, idx });\n\t\t\t} else {\n\t\t\t\tslottedChildrenMap.set(propertyName, [{ child, idx }]);\n\t\t\t}\n\t\t});\n\n\t\tawait Promise.all(allChildrenUpgraded);\n\n\t\t// Distribute the child in the _state object, keeping the Light DOM order,\n\t\t// not the order elements are defined.\n\t\tslottedChildrenMap.forEach((children, slot) => {\n\t\t\tthis._state[slot] = children.sort((a, b) => a.idx - b.idx).map(_ => _.child);\n\t\t});\n\t\tthis._invalidate();\n\t}\n\n\t/**\n\t * Removes all children from the slot and detaches listeners, if any\n\t * @private\n\t */\n\t_clearSlot(slotName) {\n\t\tconst slotData = this.constructor.getMetadata().getSlots()[slotName];\n\t\tconst propertyName = slotData.propertyName || slotName;\n\n\t\tlet children = this._state[propertyName];\n\t\tif (!Array.isArray(children)) {\n\t\t\tchildren = [children];\n\t\t}\n\n\t\tchildren.forEach(child => {\n\t\t\tif (child && child.isUI5Element) {\n\t\t\t\tthis._detachChildPropertyUpdated(child);\n\t\t\t}\n\t\t});\n\n\t\tthis._state[propertyName] = [];\n\t\tthis._invalidate(propertyName, []);\n\t}\n\n\t/**\n\t * Do not override this method in derivatives of UI5Element\n\t * @private\n\t */\n\tattributeChangedCallback(name, oldValue, newValue) {\n\t\tconst properties = this.constructor.getMetadata().getProperties();\n\t\tconst realName = name.replace(/^ui5-/, \"\");\n\t\tconst nameInCamelCase = kebabToCamelCase(realName);\n\t\tif (properties.hasOwnProperty(nameInCamelCase)) { // eslint-disable-line\n\t\t\tconst propertyTypeClass = properties[nameInCamelCase].type;\n\t\t\tif (propertyTypeClass === Boolean) {\n\t\t\t\tnewValue = newValue !== null;\n\t\t\t}\n\t\t\tif (propertyTypeClass === Integer) {\n\t\t\t\tnewValue = parseInt(newValue);\n\t\t\t}\n\t\t\tthis[nameInCamelCase] = newValue;\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_updateAttribute(name, newValue) {\n\t\tif (!this.constructor.getMetadata().hasAttribute(name)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (typeof newValue === \"object\") {\n\t\t\treturn;\n\t\t}\n\n\t\tconst attrName = camelToKebabCase(name);\n\t\tconst attrValue = this.getAttribute(attrName);\n\t\tif (typeof newValue === \"boolean\") {\n\t\t\tif (newValue === true && attrValue === null) {\n\t\t\t\tthis.setAttribute(attrName, \"\");\n\t\t\t} else if (newValue === false && attrValue !== null) {\n\t\t\t\tthis.removeAttribute(attrName);\n\t\t\t}\n\t\t} else if (attrValue !== newValue) {\n\t\t\tthis.setAttribute(attrName, newValue);\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_upgradeProperty(prop) {\n\t\tif (this.hasOwnProperty(prop)) { // eslint-disable-line\n\t\t\tconst value = this[prop];\n\t\t\tdelete this[prop];\n\t\t\tthis[prop] = value;\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_upgradeAllProperties() {\n\t\tconst allProps = this.constructor.getMetadata().getPropertiesList();\n\t\tallProps.forEach(this._upgradeProperty, this);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_initializeState() {\n\t\tconst defaultState = this.constructor._getDefaultState();\n\t\tthis._state = Object.assign({}, defaultState);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_attachChildPropertyUpdated(child, propData) {\n\t\tconst listenFor = propData.listenFor,\n\t\t\tchildMetadata = child.constructor.getMetadata(),\n\t\t\tslotName = this.constructor._getSlotName(child), // all slotted children have the same configuration\n\t\t\tchildProperties = childMetadata.getProperties();\n\n\t\tlet observedProps = [],\n\t\t\tnotObservedProps = [];\n\n\t\tif (!listenFor) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (Array.isArray(listenFor)) {\n\t\t\tobservedProps = listenFor;\n\t\t} else {\n\t\t\tobservedProps = Array.isArray(listenFor.props) ? listenFor.props : Object.keys(childProperties);\n\t\t\tnotObservedProps = Array.isArray(listenFor.exclude) ? listenFor.exclude : [];\n\t\t}\n\n\t\tif (!this._monitoredChildProps.has(slotName)) {\n\t\t\tthis._monitoredChildProps.set(slotName, { observedProps, notObservedProps });\n\t\t}\n\n\t\tchild.addEventListener(\"_propertyChange\", this._invalidateParentOnPropertyUpdate);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_detachChildPropertyUpdated(child) {\n\t\tchild.removeEventListener(\"_propertyChange\", this._invalidateParentOnPropertyUpdate);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_propertyChange(name, value) {\n\t\tthis._updateAttribute(name, value);\n\n\t\tconst customEvent = new CustomEvent(\"_propertyChange\", {\n\t\t\tdetail: { name, newValue: value },\n\t\t\tcomposed: false,\n\t\t\tbubbles: true,\n\t\t});\n\n\t\tthis.dispatchEvent(customEvent);\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_invalidateParentOnPropertyUpdate(prop) {\n\t\t// The web component to be invalidated\n\t\tconst parentNode = this.parentNode;\n\t\tif (!parentNode) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst slotName = parentNode.constructor._getSlotName(this);\n\t\tconst propsMetadata = parentNode._monitoredChildProps.get(slotName);\n\n\t\tif (!propsMetadata) {\n\t\t\treturn;\n\t\t}\n\t\tconst { observedProps, notObservedProps } = propsMetadata;\n\n\t\tif (observedProps.includes(prop.detail.name) && !notObservedProps.includes(prop.detail.name)) {\n\t\t\tparentNode._invalidate(\"_parent_\", this);\n\t\t}\n\t}\n\n\t/**\n\t * Asynchronously re-renders an already rendered web component\n\t * @private\n\t */\n\t_invalidate() {\n\t\tif (this._invalidated) {\n\t\t\t// console.log(\"already invalidated\", this, ...arguments);\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.getDomRef() && !this._suppressInvalidation) {\n\t\t\tthis._invalidated = true;\n\t\t\t// console.log(\"INVAL\", this, ...arguments);\n\t\t\tRenderScheduler.renderDeferred(this);\n\t\t}\n\t}\n\n\t/**\n\t * Do not call this method directly, only intended to be called by RenderScheduler.js\n\t * @protected\n\t */\n\t_render() {\n\t\t// suppress invalidation to prevent state changes scheduling another rendering\n\t\tthis._suppressInvalidation = true;\n\n\t\tif (typeof this.onBeforeRendering === \"function\") {\n\t\t\tthis.onBeforeRendering();\n\t\t}\n\n\t\t// Intended for framework usage only. Currently ItemNavigation updates tab indexes after the component has updated its state but before the template is rendered\n\t\tif (this._onComponentStateFinalized) {\n\t\t\tthis._onComponentStateFinalized();\n\t\t}\n\n\t\t// resume normal invalidation handling\n\t\tdelete this._suppressInvalidation;\n\n\t\t// Update the shadow root with the render result\n\t\t// console.log(this.getDomRef() ? \"RE-RENDER\" : \"FIRST RENDER\", this);\n\t\tdelete this._invalidated;\n\t\tthis._updateShadowRoot();\n\n\t\tif (this.constructor._needsStaticArea()) {\n\t\t\tthis.staticAreaItem._updateFragment(this);\n\t\t}\n\n\t\t// Safari requires that children get the slot attribute only after the slot tags have been rendered in the shadow DOM\n\t\tthis._assignIndividualSlotsToChildren();\n\n\t\t// Call the onAfterRendering hook\n\t\tif (typeof this.onAfterRendering === \"function\") {\n\t\t\tthis.onAfterRendering();\n\t\t}\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_updateShadowRoot() {\n\t\tlet styleToPrepend;\n\t\tconst renderResult = this.constructor.template(this);\n\n\t\tif (!document.adoptedStyleSheets && !window.ShadyDOM) {\n\t\t\tstyleToPrepend = getEffectiveStyle(this.constructor);\n\t\t}\n\t\tthis.constructor.render(renderResult, this.shadowRoot, styleToPrepend, { eventContext: this });\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_assignIndividualSlotsToChildren() {\n\t\tconst domChildren = Array.from(this.children);\n\n\t\tdomChildren.forEach(child => {\n\t\t\tif (child._individualSlot) {\n\t\t\t\tchild.setAttribute(\"slot\", child._individualSlot);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @private\n\t */\n\t_waitForDomRef() {\n\t\treturn this._domRefReadyPromise;\n\t}\n\n\t/**\n\t * Returns the DOM Element inside the Shadow Root that corresponds to the opening tag in the UI5 Web Component's template\n\t * Use this method instead of \"this.shadowRoot\" to read the Shadow DOM, if ever necessary\n\t * @public\n\t */\n\tgetDomRef() {\n\t\tif (!this.shadowRoot || this.shadowRoot.children.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\treturn this.shadowRoot.children.length === 1\n\t\t\t? this.shadowRoot.children[0] : this.shadowRoot.children[1];\n\t}\n\n\t/**\n\t * Returns the DOM Element marked with \"data-sap-focus-ref\" inside the template.\n\t * This is the element that will receive the focus by default.\n\t * @public\n\t */\n\tgetFocusDomRef() {\n\t\tconst domRef = this.getDomRef();\n\t\tif (domRef) {\n\t\t\tconst focusRef = domRef.querySelector(\"[data-sap-focus-ref]\");\n\t\t\treturn focusRef || domRef;\n\t\t}\n\t}\n\n\t/**\n\t * Set the focus to the element, returned by \"getFocusDomRef()\" (marked by \"data-sap-focus-ref\")\n\t * @public\n\t */\n\tasync focus() {\n\t\tawait this._waitForDomRef();\n\n\t\tconst focusDomRef = this.getFocusDomRef();\n\n\t\tif (focusDomRef && typeof focusDomRef.focus === \"function\") {\n\t\t\tfocusDomRef.focus();\n\t\t}\n\t}\n\n\t/**\n\t *\n\t * @public\n\t * @param name - name of the event\n\t * @param data - additional data for the event\n\t * @param cancelable - true, if the user can call preventDefault on the event object\n\t * @returns {boolean} false, if the event was cancelled (preventDefault called), true otherwise\n\t */\n\tfireEvent(name, data, cancelable) {\n\t\tlet compatEventResult = true; // Initialized to true, because if the event is not fired at all, it should be considered \"not-prevented\"\n\n\t\tconst noConflictEvent = new CustomEvent(`ui5-${name}`, {\n\t\t\tdetail: data,\n\t\t\tcomposed: false,\n\t\t\tbubbles: true,\n\t\t\tcancelable,\n\t\t});\n\n\t\t// This will be false if the compat event is prevented\n\t\tcompatEventResult = this.dispatchEvent(noConflictEvent);\n\n\t\tif (skipOriginalEvent(name)) {\n\t\t\treturn compatEventResult;\n\t\t}\n\n\t\tconst customEvent = new CustomEvent(name, {\n\t\t\tdetail: data,\n\t\t\tcomposed: false,\n\t\t\tbubbles: true,\n\t\t\tcancelable,\n\t\t});\n\n\t\t// This will be false if the normal event is prevented\n\t\tconst normalEventResult = this.dispatchEvent(customEvent);\n\n\t\t// Return false if any of the two events was prevented (its result was false).\n\t\treturn normalEventResult && compatEventResult;\n\t}\n\n\t/**\n\t * Returns the actual children, associated with a slot.\n\t * Useful when there are transitive slots in nested component scenarios and you don't want to get a list of the slots, but rather of their content.\n\t * @public\n\t */\n\tgetSlottedNodes(slotName) {\n\t\tconst reducer = (acc, curr) => {\n\t\t\tif (curr.localName !== \"slot\") {\n\t\t\t\treturn acc.concat([curr]);\n\t\t\t}\n\t\t\treturn acc.concat(curr.assignedNodes({ flatten: true }).filter(item => item instanceof HTMLElement));\n\t\t};\n\n\t\treturn this[slotName].reduce(reducer, []);\n\t}\n\n\t/**\n\t * Used to duck-type UI5 elements without using instanceof\n\t * @returns {boolean}\n\t * @public\n\t */\n\tget isUI5Element() {\n\t\treturn true;\n\t}\n\n\t/**\n\t * Do not override this method in derivatives of UI5Element, use metadata properties instead\n\t * @private\n\t */\n\tstatic get observedAttributes() {\n\t\treturn this.getMetadata().getAttributesList();\n\t}\n\n\t/**\n\t * Used to generate the next auto-increment id for the current class\n\t * @returns {string}\n\t * @private\n\t */\n\tstatic _nextID() {\n\t\tconst className = kebabToCamelCase(this.getMetadata().getTag());\n\t\tconst lastNumber = IDMap.get(className);\n\t\tconst nextNumber = lastNumber !== undefined ? lastNumber + 1 : 1;\n\t\tIDMap.set(className, nextNumber);\n\t\treturn `__${className}${nextNumber}`;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic _getSlotName(child) {\n\t\t// Text nodes can only go to the default slot\n\t\tif (!(child instanceof HTMLElement)) {\n\t\t\treturn \"default\";\n\t\t}\n\n\t\t// Discover the slot based on the real slot name (f.e. footer => footer, or content-32 => content)\n\t\tconst slot = child.getAttribute(\"slot\");\n\t\tif (slot) {\n\t\t\tconst match = slot.match(/^(.+?)-\\d+$/);\n\t\t\treturn match ? match[1] : slot;\n\t\t}\n\n\t\t// Use default slot as a fallback\n\t\treturn \"default\";\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic _needsShadowDOM() {\n\t\treturn !!this.template;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic _needsStaticArea() {\n\t\treturn typeof this.staticAreaTemplate === \"function\";\n\t}\n\n\t/**\n\t * @public\n\t */\n\tgetStaticAreaItemDomRef() {\n\t\treturn this.staticAreaItem.getDomRef();\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic _getDefaultState() {\n\t\tif (this._defaultState) {\n\t\t\treturn this._defaultState;\n\t\t}\n\n\t\tconst MetadataClass = this.getMetadata();\n\t\tconst defaultState = {};\n\n\t\t// Initialize properties\n\t\tconst props = MetadataClass.getProperties();\n\t\tfor (const propName in props) { // eslint-disable-line\n\t\t\tconst propType = props[propName].type;\n\t\t\tconst propDefaultValue = props[propName].defaultValue;\n\n\t\t\tif (propType === Boolean) {\n\t\t\t\tdefaultState[propName] = false;\n\n\t\t\t\tif (propDefaultValue !== undefined) {\n\t\t\t\t\tconsole.warn(\"The 'defaultValue' metadata key is ignored for all booleans properties, they would be initialized with 'false' by default\"); // eslint-disable-line\n\t\t\t\t}\n\t\t\t} else if (props[propName].multiple) {\n\t\t\t\tdefaultState[propName] = [];\n\t\t\t} else if (propType === Object) {\n\t\t\t\tdefaultState[propName] = \"defaultValue\" in props[propName] ? props[propName].defaultValue : {};\n\t\t\t} else if (propType === String) {\n\t\t\t\tdefaultState[propName] = \"defaultValue\" in props[propName] ? props[propName].defaultValue : \"\";\n\t\t\t} else {\n\t\t\t\tdefaultState[propName] = propDefaultValue;\n\t\t\t}\n\t\t}\n\n\t\t// Initialize slots\n\t\tconst slots = MetadataClass.getSlots();\n\t\tfor (const [slotName, slotData] of Object.entries(slots)) { // eslint-disable-line\n\t\t\tconst propertyName = slotData.propertyName || slotName;\n\t\t\tdefaultState[propertyName] = [];\n\t\t}\n\n\t\tthis._defaultState = defaultState;\n\t\treturn defaultState;\n\t}\n\n\t/**\n\t * @private\n\t */\n\tstatic _generateAccessors() {\n\t\tconst proto = this.prototype;\n\n\t\t// Properties\n\t\tconst properties = this.getMetadata().getProperties();\n\t\tfor (const [prop, propData] of Object.entries(properties)) { // eslint-disable-line\n\t\t\tif (!isValidPropertyName(prop)) {\n\t\t\t\tthrow new Error(`\"${prop}\" is not a valid property name. Use a name that does not collide with DOM APIs`);\n\t\t\t}\n\n\t\t\tif (propData.type === \"boolean\" && propData.defaultValue) {\n\t\t\t\tthrow new Error(`Cannot set a default value for property \"${prop}\". All booleans are false by default.`);\n\t\t\t}\n\n\t\t\tObject.defineProperty(proto, prop, {\n\t\t\t\tget() {\n\t\t\t\t\tif (this._state[prop] !== undefined) {\n\t\t\t\t\t\treturn this._state[prop];\n\t\t\t\t\t}\n\n\t\t\t\t\tconst propDefaultValue = propData.defaultValue;\n\n\t\t\t\t\tif (propData.type === Boolean) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t} else if (propData.type === String) { // eslint-disable-line\n\t\t\t\t\t\treturn propDefaultValue;\n\t\t\t\t\t} else if (propData.multiple) { // eslint-disable-line\n\t\t\t\t\t\treturn [];\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn propDefaultValue;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\tset(value) {\n\t\t\t\t\tvalue = this.constructor.getMetadata().constructor.validatePropertyValue(value, propData);\n\n\t\t\t\t\tconst oldState = this._state[prop];\n\n\t\t\t\t\tif (oldState !== value) {\n\t\t\t\t\t\tthis._state[prop] = value;\n\t\t\t\t\t\tthis._invalidate(prop, value);\n\t\t\t\t\t\tthis._propertyChange(prop, value);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\t// Slots\n\t\tconst slots = this.getMetadata().getSlots();\n\t\tfor (const [slotName, slotData] of Object.entries(slots)) { // eslint-disable-line\n\t\t\tif (!isValidPropertyName(slotName)) {\n\t\t\t\tthrow new Error(`\"${slotName}\" is not a valid property name. Use a name that does not collide with DOM APIs`);\n\t\t\t}\n\n\t\t\tconst propertyName = slotData.propertyName || slotName;\n\t\t\tObject.defineProperty(proto, propertyName, {\n\t\t\t\tget() {\n\t\t\t\t\tif (this._state[propertyName] !== undefined) {\n\t\t\t\t\t\treturn this._state[propertyName];\n\t\t\t\t\t}\n\t\t\t\t\treturn [];\n\t\t\t\t},\n\t\t\t\tset() {\n\t\t\t\t\tthrow new Error(\"Cannot set slots directly, use the DOM APIs\");\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * Returns the metadata object for this UI5 Web Component Class\n\t * @protected\n\t */\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\t/**\n\t * Returns the CSS for this UI5 Web Component Class\n\t * @protected\n\t */\n\tstatic get styles() {\n\t\treturn \"\";\n\t}\n\n\t/**\n\t * Registers a UI5 Web Component in the browser window object\n\t * @public\n\t * @returns {Promise<UI5Element>}\n\t */\n\tstatic async define() {\n\t\tawait boot();\n\t\tconst tag = this.getMetadata().getTag();\n\n\t\tconst definedLocally = DefinitionsSet.has(tag);\n\t\tconst definedGlobally = customElements.get(tag);\n\n\t\tif (definedGlobally && !definedLocally) {\n\t\t\tconsole.warn(`Skipping definition of tag ${tag}, because it was already defined by another instance of ui5-webcomponents.`); // eslint-disable-line\n\t\t} else if (!definedGlobally) {\n\t\t\tthis._generateAccessors();\n\t\t\tDefinitionsSet.add(tag);\n\t\t\twindow.customElements.define(tag, this);\n\t\t}\n\t\treturn this;\n\t}\n\n\t/**\n\t * Returns an instance of UI5ElementMetadata.js representing this UI5 Web Component's full metadata (its and its parents')\n\t * Note: not to be confused with the \"get metadata()\" method, which returns an object for this class's metadata only\n\t * @public\n\t * @returns {UI5ElementMetadata}\n\t */\n\tstatic getMetadata() {\n\t\tif (this.hasOwnProperty(\"_metadata\")) { // eslint-disable-line\n\t\t\treturn this._metadata;\n\t\t}\n\n\t\tconst metadataObjects = [this.metadata];\n\t\tlet klass = this; // eslint-disable-line\n\t\twhile (klass !== UI5Element) {\n\t\t\tklass = Object.getPrototypeOf(klass);\n\t\t\tmetadataObjects.unshift(klass.metadata);\n\t\t}\n\t\tconst mergedMetadata = merge({}, ...metadataObjects);\n\n\t\tthis._metadata = new UI5ElementMetadata(mergedMetadata);\n\t\treturn this._metadata;\n\t}\n}\n\nexport default UI5Element;\n","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nconst directives = new WeakMap();\n/**\n * Brands a function as a directive factory function so that lit-html will call\n * the function during template rendering, rather than passing as a value.\n *\n * A _directive_ is a function that takes a Part as an argument. It has the\n * signature: `(part: Part) => void`.\n *\n * A directive _factory_ is a function that takes arguments for data and\n * configuration and returns a directive. Users of directive usually refer to\n * the directive factory as the directive. For example, \"The repeat directive\".\n *\n * Usually a template author will invoke a directive factory in their template\n * with relevant arguments, which will then return a directive function.\n *\n * Here's an example of using the `repeat()` directive factory that takes an\n * array and a function to render an item:\n *\n * ```js\n * html`<ul><${repeat(items, (item) => html`<li>${item}</li>`)}</ul>`\n * ```\n *\n * When `repeat` is invoked, it returns a directive function that closes over\n * `items` and the template function. When the outer template is rendered, the\n * return directive function is called with the Part for the expression.\n * `repeat` then performs it's custom logic to render multiple items.\n *\n * @param f The directive factory function. Must be a function that returns a\n * function of the signature `(part: Part) => void`. The returned function will\n * be called with the part object.\n *\n * @example\n *\n * import {directive, html} from 'lit-html';\n *\n * const immutable = directive((v) => (part) => {\n * if (part.value !== v) {\n * part.setValue(v)\n * }\n * });\n */\nexport const directive = (f) => ((...args) => {\n const d = f(...args);\n directives.set(d, true);\n return d;\n});\nexport const isDirective = (o) => {\n return typeof o === 'function' && directives.has(o);\n};\n//# sourceMappingURL=directive.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * True if the custom elements polyfill is in use.\n */\nexport const isCEPolyfill = window.customElements !== undefined &&\n window.customElements.polyfillWrapFlushCallback !==\n undefined;\n/**\n * Reparents nodes, starting from `start` (inclusive) to `end` (exclusive),\n * into another container (could be the same container), before `before`. If\n * `before` is null, it appends the nodes to the container.\n */\nexport const reparentNodes = (container, start, end = null, before = null) => {\n while (start !== end) {\n const n = start.nextSibling;\n container.insertBefore(start, before);\n start = n;\n }\n};\n/**\n * Removes nodes, starting from `start` (inclusive) to `end` (exclusive), from\n * `container`.\n */\nexport const removeNodes = (container, start, end = null) => {\n while (start !== end) {\n const n = start.nextSibling;\n container.removeChild(start);\n start = n;\n }\n};\n//# sourceMappingURL=dom.js.map","/**\n * @license\n * Copyright (c) 2018 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * A sentinel value that signals that a value was handled by a directive and\n * should not be written to the DOM.\n */\nexport const noChange = {};\n/**\n * A sentinel value that signals a NodePart to fully clear its content.\n */\nexport const nothing = {};\n//# sourceMappingURL=part.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * An expression marker with embedded unique key to avoid collision with\n * possible text in templates.\n */\nexport const marker = `{{lit-${String(Math.random()).slice(2)}}}`;\n/**\n * An expression marker used text-positions, multi-binding attributes, and\n * attributes with markup-like text values.\n */\nexport const nodeMarker = `<!--${marker}-->`;\nexport const markerRegex = new RegExp(`${marker}|${nodeMarker}`);\n/**\n * Suffix appended to all bound attribute names.\n */\nexport const boundAttributeSuffix = '$lit$';\n/**\n * An updateable Template that tracks the location of dynamic parts.\n */\nexport class Template {\n constructor(result, element) {\n this.parts = [];\n this.element = element;\n const nodesToRemove = [];\n const stack = [];\n // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be null\n const walker = document.createTreeWalker(element.content, 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */, null, false);\n // Keeps track of the last index associated with a part. We try to delete\n // unnecessary nodes, but we never want to associate two different parts\n // to the same index. They must have a constant node between.\n let lastPartIndex = 0;\n let index = -1;\n let partIndex = 0;\n const { strings, values: { length } } = result;\n while (partIndex < length) {\n const node = walker.nextNode();\n if (node === null) {\n // We've exhausted the content inside a nested template element.\n // Because we still have parts (the outer for-loop), we know:\n // - There is a template in the stack\n // - The walker will find a nextNode outside the template\n walker.currentNode = stack.pop();\n continue;\n }\n index++;\n if (node.nodeType === 1 /* Node.ELEMENT_NODE */) {\n if (node.hasAttributes()) {\n const attributes = node.attributes;\n const { length } = attributes;\n // Per\n // https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap,\n // attributes are not guaranteed to be returned in document order.\n // In particular, Edge/IE can return them out of order, so we cannot\n // assume a correspondence between part index and attribute index.\n let count = 0;\n for (let i = 0; i < length; i++) {\n if (endsWith(attributes[i].name, boundAttributeSuffix)) {\n count++;\n }\n }\n while (count-- > 0) {\n // Get the template literal section leading up to the first\n // expression in this attribute\n const stringForPart = strings[partIndex];\n // Find the attribute name\n const name = lastAttributeNameRegex.exec(stringForPart)[2];\n // Find the corresponding attribute\n // All bound attributes have had a suffix added in\n // TemplateResult#getHTML to opt out of special attribute\n // handling. To look up the attribute value we also need to add\n // the suffix.\n const attributeLookupName = name.toLowerCase() + boundAttributeSuffix;\n const attributeValue = node.getAttribute(attributeLookupName);\n node.removeAttribute(attributeLookupName);\n const statics = attributeValue.split(markerRegex);\n this.parts.push({ type: 'attribute', index, name, strings: statics });\n partIndex += statics.length - 1;\n }\n }\n if (node.tagName === 'TEMPLATE') {\n stack.push(node);\n walker.currentNode = node.content;\n }\n }\n else if (node.nodeType === 3 /* Node.TEXT_NODE */) {\n const data = node.data;\n if (data.indexOf(marker) >= 0) {\n const parent = node.parentNode;\n const strings = data.split(markerRegex);\n const lastIndex = strings.length - 1;\n // Generate a new text node for each literal section\n // These nodes are also used as the markers for node parts\n for (let i = 0; i < lastIndex; i++) {\n let insert;\n let s = strings[i];\n if (s === '') {\n insert = createMarker();\n }\n else {\n const match = lastAttributeNameRegex.exec(s);\n if (match !== null && endsWith(match[2], boundAttributeSuffix)) {\n s = s.slice(0, match.index) + match[1] +\n match[2].slice(0, -boundAttributeSuffix.length) + match[3];\n }\n insert = document.createTextNode(s);\n }\n parent.insertBefore(insert, node);\n this.parts.push({ type: 'node', index: ++index });\n }\n // If there's no text, we must insert a comment to mark our place.\n // Else, we can trust it will stick around after cloning.\n if (strings[lastIndex] === '') {\n parent.insertBefore(createMarker(), node);\n nodesToRemove.push(node);\n }\n else {\n node.data = strings[lastIndex];\n }\n // We have a part for each match found\n partIndex += lastIndex;\n }\n }\n else if (node.nodeType === 8 /* Node.COMMENT_NODE */) {\n if (node.data === marker) {\n const parent = node.parentNode;\n // Add a new marker node to be the startNode of the Part if any of\n // the following are true:\n // * We don't have a previousSibling\n // * The previousSibling is already the start of a previous part\n if (node.previousSibling === null || index === lastPartIndex) {\n index++;\n parent.insertBefore(createMarker(), node);\n }\n lastPartIndex = index;\n this.parts.push({ type: 'node', index });\n // If we don't have a nextSibling, keep this node so we have an end.\n // Else, we can remove it to save future costs.\n if (node.nextSibling === null) {\n node.data = '';\n }\n else {\n nodesToRemove.push(node);\n index--;\n }\n partIndex++;\n }\n else {\n let i = -1;\n while ((i = node.data.indexOf(marker, i + 1)) !== -1) {\n // Comment node has a binding marker inside, make an inactive part\n // The binding won't work, but subsequent bindings will\n // TODO (justinfagnani): consider whether it's even worth it to\n // make bindings in comments work\n this.parts.push({ type: 'node', index: -1 });\n partIndex++;\n }\n }\n }\n }\n // Remove text binding nodes after the walk to not disturb the TreeWalker\n for (const n of nodesToRemove) {\n n.parentNode.removeChild(n);\n }\n }\n}\nconst endsWith = (str, suffix) => {\n const index = str.length - suffix.length;\n return index >= 0 && str.slice(index) === suffix;\n};\nexport const isTemplatePartActive = (part) => part.index !== -1;\n// Allows `document.createComment('')` to be renamed for a\n// small manual size-savings.\nexport const createMarker = () => document.createComment('');\n/**\n * This regex extracts the attribute name preceding an attribute-position\n * expression. It does this by matching the syntax allowed for attributes\n * against the string literal directly preceding the expression, assuming that\n * the expression is in an attribute-value position.\n *\n * See attributes in the HTML spec:\n * https://www.w3.org/TR/html5/syntax.html#elements-attributes\n *\n * \" \\x09\\x0a\\x0c\\x0d\" are HTML space characters:\n * https://www.w3.org/TR/html5/infrastructure.html#space-characters\n *\n * \"\\0-\\x1F\\x7F-\\x9F\" are Unicode control characters, which includes every\n * space character except \" \".\n *\n * So an attribute is:\n * * The name: any character except a control character, space character, ('),\n * (\"), \">\", \"=\", or \"/\"\n * * Followed by zero or more space characters\n * * Followed by \"=\"\n * * Followed by zero or more space characters\n * * Followed by:\n * * Any character except space, ('), (\"), \"<\", \">\", \"=\", (`), or\n * * (\") then any non-(\"), or\n * * (') then any non-(')\n */\nexport const lastAttributeNameRegex = /([ \\x09\\x0a\\x0c\\x0d])([^\\0-\\x1F\\x7F-\\x9F \"'>=/]+)([ \\x09\\x0a\\x0c\\x0d]*=[ \\x09\\x0a\\x0c\\x0d]*(?:[^ \\x09\\x0a\\x0c\\x0d\"'`<>=]*|\"[^\"]*|'[^']*))$/;\n//# sourceMappingURL=template.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { isCEPolyfill } from './dom.js';\nimport { isTemplatePartActive } from './template.js';\n/**\n * An instance of a `Template` that can be attached to the DOM and updated\n * with new values.\n */\nexport class TemplateInstance {\n constructor(template, processor, options) {\n this.__parts = [];\n this.template = template;\n this.processor = processor;\n this.options = options;\n }\n update(values) {\n let i = 0;\n for (const part of this.__parts) {\n if (part !== undefined) {\n part.setValue(values[i]);\n }\n i++;\n }\n for (const part of this.__parts) {\n if (part !== undefined) {\n part.commit();\n }\n }\n }\n _clone() {\n // There are a number of steps in the lifecycle of a template instance's\n // DOM fragment:\n // 1. Clone - create the instance fragment\n // 2. Adopt - adopt into the main document\n // 3. Process - find part markers and create parts\n // 4. Upgrade - upgrade custom elements\n // 5. Update - set node, attribute, property, etc., values\n // 6. Connect - connect to the document. Optional and outside of this\n // method.\n //\n // We have a few constraints on the ordering of these steps:\n // * We need to upgrade before updating, so that property values will pass\n // through any property setters.\n // * We would like to process before upgrading so that we're sure that the\n // cloned fragment is inert and not disturbed by self-modifying DOM.\n // * We want custom elements to upgrade even in disconnected fragments.\n //\n // Given these constraints, with full custom elements support we would\n // prefer the order: Clone, Process, Adopt, Upgrade, Update, Connect\n //\n // But Safari dooes not implement CustomElementRegistry#upgrade, so we\n // can not implement that order and still have upgrade-before-update and\n // upgrade disconnected fragments. So we instead sacrifice the\n // process-before-upgrade constraint, since in Custom Elements v1 elements\n // must not modify their light DOM in the constructor. We still have issues\n // when co-existing with CEv0 elements like Polymer 1, and with polyfills\n // that don't strictly adhere to the no-modification rule because shadow\n // DOM, which may be created in the constructor, is emulated by being placed\n // in the light DOM.\n //\n // The resulting order is on native is: Clone, Adopt, Upgrade, Process,\n // Update, Connect. document.importNode() performs Clone, Adopt, and Upgrade\n // in one step.\n //\n // The Custom Elements v1 polyfill supports upgrade(), so the order when\n // polyfilled is the more ideal: Clone, Process, Adopt, Upgrade, Update,\n // Connect.\n const fragment = isCEPolyfill ?\n this.template.element.content.cloneNode(true) :\n document.importNode(this.template.element.content, true);\n const stack = [];\n const parts = this.template.parts;\n // Edge needs all 4 parameters present; IE11 needs 3rd parameter to be null\n const walker = document.createTreeWalker(fragment, 133 /* NodeFilter.SHOW_{ELEMENT|COMMENT|TEXT} */, null, false);\n let partIndex = 0;\n let nodeIndex = 0;\n let part;\n let node = walker.nextNode();\n // Loop through all the nodes and parts of a template\n while (partIndex < parts.length) {\n part = parts[partIndex];\n if (!isTemplatePartActive(part)) {\n this.__parts.push(undefined);\n partIndex++;\n continue;\n }\n // Progress the tree walker until we find our next part's node.\n // Note that multiple parts may share the same node (attribute parts\n // on a single element), so this loop may not run at all.\n while (nodeIndex < part.index) {\n nodeIndex++;\n if (node.nodeName === 'TEMPLATE') {\n stack.push(node);\n walker.currentNode = node.content;\n }\n if ((node = walker.nextNode()) === null) {\n // We've exhausted the content inside a nested template element.\n // Because we still have parts (the outer for-loop), we know:\n // - There is a template in the stack\n // - The walker will find a nextNode outside the template\n walker.currentNode = stack.pop();\n node = walker.nextNode();\n }\n }\n // We've arrived at our part's node.\n if (part.type === 'node') {\n const part = this.processor.handleTextExpression(this.options);\n part.insertAfterNode(node.previousSibling);\n this.__parts.push(part);\n }\n else {\n this.__parts.push(...this.processor.handleAttributeExpressions(node, part.name, part.strings, this.options));\n }\n partIndex++;\n }\n if (isCEPolyfill) {\n document.adoptNode(fragment);\n customElements.upgrade(fragment);\n }\n return fragment;\n }\n}\n//# sourceMappingURL=template-instance.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { reparentNodes } from './dom.js';\nimport { boundAttributeSuffix, lastAttributeNameRegex, marker, nodeMarker } from './template.js';\nconst commentMarker = ` ${marker} `;\n/**\n * The return type of `html`, which holds a Template and the values from\n * interpolated expressions.\n */\nexport class TemplateResult {\n constructor(strings, values, type, processor) {\n this.strings = strings;\n this.values = values;\n this.type = type;\n this.processor = processor;\n }\n /**\n * Returns a string of HTML used to create a `<template>` element.\n */\n getHTML() {\n const l = this.strings.length - 1;\n let html = '';\n let isCommentBinding = false;\n for (let i = 0; i < l; i++) {\n const s = this.strings[i];\n // For each binding we want to determine the kind of marker to insert\n // into the template source before it's parsed by the browser's HTML\n // parser. The marker type is based on whether the expression is in an\n // attribute, text, or comment poisition.\n // * For node-position bindings we insert a comment with the marker\n // sentinel as its text content, like <!--{{lit-guid}}-->.\n // * For attribute bindings we insert just the marker sentinel for the\n // first binding, so that we support unquoted attribute bindings.\n // Subsequent bindings can use a comment marker because multi-binding\n // attributes must be quoted.\n // * For comment bindings we insert just the marker sentinel so we don't\n // close the comment.\n //\n // The following code scans the template source, but is *not* an HTML\n // parser. We don't need to track the tree structure of the HTML, only\n // whether a binding is inside a comment, and if not, if it appears to be\n // the first binding in an attribute.\n const commentOpen = s.lastIndexOf('<!--');\n // We're in comment position if we have a comment open with no following\n // comment close. Because <-- can appear in an attribute value there can\n // be false positives.\n isCommentBinding = (commentOpen > -1 || isCommentBinding) &&\n s.indexOf('-->', commentOpen + 1) === -1;\n // Check to see if we have an attribute-like sequence preceeding the\n // expression. This can match \"name=value\" like structures in text,\n // comments, and attribute values, so there can be false-positives.\n const attributeMatch = lastAttributeNameRegex.exec(s);\n if (attributeMatch === null) {\n // We're only in this branch if we don't have a attribute-like\n // preceeding sequence. For comments, this guards against unusual\n // attribute values like <div foo=\"<!--${'bar'}\">. Cases like\n // <!-- foo=${'bar'}--> are handled correctly in the attribute branch\n // below.\n html += s + (isCommentBinding ? commentMarker : nodeMarker);\n }\n else {\n // For attributes we use just a marker sentinel, and also append a\n // $lit$ suffix to the name to opt-out of attribute-specific parsing\n // that IE and Edge do for style and certain SVG attributes.\n html += s.substr(0, attributeMatch.index) + attributeMatch[1] +\n attributeMatch[2] + boundAttributeSuffix + attributeMatch[3] +\n marker;\n }\n }\n html += this.strings[l];\n return html;\n }\n getTemplateElement() {\n const template = document.createElement('template');\n template.innerHTML = this.getHTML();\n return template;\n }\n}\n/**\n * A TemplateResult for SVG fragments.\n *\n * This class wraps HTML in an `<svg>` tag in order to parse its contents in the\n * SVG namespace, then modifies the template to remove the `<svg>` tag so that\n * clones only container the original fragment.\n */\nexport class SVGTemplateResult extends TemplateResult {\n getHTML() {\n return `<svg>${super.getHTML()}</svg>`;\n }\n getTemplateElement() {\n const template = super.getTemplateElement();\n const content = template.content;\n const svgElement = content.firstChild;\n content.removeChild(svgElement);\n reparentNodes(content, svgElement.firstChild);\n return template;\n }\n}\n//# sourceMappingURL=template-result.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { isDirective } from './directive.js';\nimport { removeNodes } from './dom.js';\nimport { noChange, nothing } from './part.js';\nimport { TemplateInstance } from './template-instance.js';\nimport { TemplateResult } from './template-result.js';\nimport { createMarker } from './template.js';\nexport const isPrimitive = (value) => {\n return (value === null ||\n !(typeof value === 'object' || typeof value === 'function'));\n};\nexport const isIterable = (value) => {\n return Array.isArray(value) ||\n // tslint:disable-next-line:no-any\n !!(value && value[Symbol.iterator]);\n};\n/**\n * Writes attribute values to the DOM for a group of AttributeParts bound to a\n * single attibute. The value is only set once even if there are multiple parts\n * for an attribute.\n */\nexport class AttributeCommitter {\n constructor(element, name, strings) {\n this.dirty = true;\n this.element = element;\n this.name = name;\n this.strings = strings;\n this.parts = [];\n for (let i = 0; i < strings.length - 1; i++) {\n this.parts[i] = this._createPart();\n }\n }\n /**\n * Creates a single part. Override this to create a differnt type of part.\n */\n _createPart() {\n return new AttributePart(this);\n }\n _getValue() {\n const strings = this.strings;\n const l = strings.length - 1;\n let text = '';\n for (let i = 0; i < l; i++) {\n text += strings[i];\n const part = this.parts[i];\n if (part !== undefined) {\n const v = part.value;\n if (isPrimitive(v) || !isIterable(v)) {\n text += typeof v === 'string' ? v : String(v);\n }\n else {\n for (const t of v) {\n text += typeof t === 'string' ? t : String(t);\n }\n }\n }\n }\n text += strings[l];\n return text;\n }\n commit() {\n if (this.dirty) {\n this.dirty = false;\n this.element.setAttribute(this.name, this._getValue());\n }\n }\n}\n/**\n * A Part that controls all or part of an attribute value.\n */\nexport class AttributePart {\n constructor(committer) {\n this.value = undefined;\n this.committer = committer;\n }\n setValue(value) {\n if (value !== noChange && (!isPrimitive(value) || value !== this.value)) {\n this.value = value;\n // If the value is a not a directive, dirty the committer so that it'll\n // call setAttribute. If the value is a directive, it'll dirty the\n // committer if it calls setValue().\n if (!isDirective(value)) {\n this.committer.dirty = true;\n }\n }\n }\n commit() {\n while (isDirective(this.value)) {\n const directive = this.value;\n this.value = noChange;\n directive(this);\n }\n if (this.value === noChange) {\n return;\n }\n this.committer.commit();\n }\n}\n/**\n * A Part that controls a location within a Node tree. Like a Range, NodePart\n * has start and end locations and can set and update the Nodes between those\n * locations.\n *\n * NodeParts support several value types: primitives, Nodes, TemplateResults,\n * as well as arrays and iterables of those types.\n */\nexport class NodePart {\n constructor(options) {\n this.value = undefined;\n this.__pendingValue = undefined;\n this.options = options;\n }\n /**\n * Appends this part into a container.\n *\n * This part must be empty, as its contents are not automatically moved.\n */\n appendInto(container) {\n this.startNode = container.appendChild(createMarker());\n this.endNode = container.appendChild(createMarker());\n }\n /**\n * Inserts this part after the `ref` node (between `ref` and `ref`'s next\n * sibling). Both `ref` and its next sibling must be static, unchanging nodes\n * such as those that appear in a literal section of a template.\n *\n * This part must be empty, as its contents are not automatically moved.\n */\n insertAfterNode(ref) {\n this.startNode = ref;\n this.endNode = ref.nextSibling;\n }\n /**\n * Appends this part into a parent part.\n *\n * This part must be empty, as its contents are not automatically moved.\n */\n appendIntoPart(part) {\n part.__insert(this.startNode = createMarker());\n part.__insert(this.endNode = createMarker());\n }\n /**\n * Inserts this part after the `ref` part.\n *\n * This part must be empty, as its contents are not automatically moved.\n */\n insertAfterPart(ref) {\n ref.__insert(this.startNode = createMarker());\n this.endNode = ref.endNode;\n ref.endNode = this.startNode;\n }\n setValue(value) {\n this.__pendingValue = value;\n }\n commit() {\n while (isDirective(this.__pendingValue)) {\n const directive = this.__pendingValue;\n this.__pendingValue = noChange;\n directive(this);\n }\n const value = this.__pendingValue;\n if (value === noChange) {\n return;\n }\n if (isPrimitive(value)) {\n if (value !== this.value) {\n this.__commitText(value);\n }\n }\n else if (value instanceof TemplateResult) {\n this.__commitTemplateResult(value);\n }\n else if (value instanceof Node) {\n this.__commitNode(value);\n }\n else if (isIterable(value)) {\n this.__commitIterable(value);\n }\n else if (value === nothing) {\n this.value = nothing;\n this.clear();\n }\n else {\n // Fallback, will render the string representation\n this.__commitText(value);\n }\n }\n __insert(node) {\n this.endNode.parentNode.insertBefore(node, this.endNode);\n }\n __commitNode(value) {\n if (this.value === value) {\n return;\n }\n this.clear();\n this.__insert(value);\n this.value = value;\n }\n __commitText(value) {\n const node = this.startNode.nextSibling;\n value = value == null ? '' : value;\n // If `value` isn't already a string, we explicitly convert it here in case\n // it can't be implicitly converted - i.e. it's a symbol.\n const valueAsString = typeof value === 'string' ? value : String(value);\n if (node === this.endNode.previousSibling &&\n node.nodeType === 3 /* Node.TEXT_NODE */) {\n // If we only have a single text node between the markers, we can just\n // set its value, rather than replacing it.\n // TODO(justinfagnani): Can we just check if this.value is primitive?\n node.data = valueAsString;\n }\n else {\n this.__commitNode(document.createTextNode(valueAsString));\n }\n this.value = value;\n }\n __commitTemplateResult(value) {\n const template = this.options.templateFactory(value);\n if (this.value instanceof TemplateInstance &&\n this.value.template === template) {\n this.value.update(value.values);\n }\n else {\n // Make sure we propagate the template processor from the TemplateResult\n // so that we use its syntax extension, etc. The template factory comes\n // from the render function options so that it can control template\n // caching and preprocessing.\n const instance = new TemplateInstance(template, value.processor, this.options);\n const fragment = instance._clone();\n instance.update(value.values);\n this.__commitNode(fragment);\n this.value = instance;\n }\n }\n __commitIterable(value) {\n // For an Iterable, we create a new InstancePart per item, then set its\n // value to the item. This is a little bit of overhead for every item in\n // an Iterable, but it lets us recurse easily and efficiently update Arrays\n // of TemplateResults that will be commonly returned from expressions like:\n // array.map((i) => html`${i}`), by reusing existing TemplateInstances.\n // If _value is an array, then the previous render was of an\n // iterable and _value will contain the NodeParts from the previous\n // render. If _value is not an array, clear this part and make a new\n // array for NodeParts.\n if (!Array.isArray(this.value)) {\n this.value = [];\n this.clear();\n }\n // Lets us keep track of how many items we stamped so we can clear leftover\n // items from a previous render\n const itemParts = this.value;\n let partIndex = 0;\n let itemPart;\n for (const item of value) {\n // Try to reuse an existing part\n itemPart = itemParts[partIndex];\n // If no existing part, create a new one\n if (itemPart === undefined) {\n itemPart = new NodePart(this.options);\n itemParts.push(itemPart);\n if (partIndex === 0) {\n itemPart.appendIntoPart(this);\n }\n else {\n itemPart.insertAfterPart(itemParts[partIndex - 1]);\n }\n }\n itemPart.setValue(item);\n itemPart.commit();\n partIndex++;\n }\n if (partIndex < itemParts.length) {\n // Truncate the parts array so _value reflects the current state\n itemParts.length = partIndex;\n this.clear(itemPart && itemPart.endNode);\n }\n }\n clear(startNode = this.startNode) {\n removeNodes(this.startNode.parentNode, startNode.nextSibling, this.endNode);\n }\n}\n/**\n * Implements a boolean attribute, roughly as defined in the HTML\n * specification.\n *\n * If the value is truthy, then the attribute is present with a value of\n * ''. If the value is falsey, the attribute is removed.\n */\nexport class BooleanAttributePart {\n constructor(element, name, strings) {\n this.value = undefined;\n this.__pendingValue = undefined;\n if (strings.length !== 2 || strings[0] !== '' || strings[1] !== '') {\n throw new Error('Boolean attributes can only contain a single expression');\n }\n this.element = element;\n this.name = name;\n this.strings = strings;\n }\n setValue(value) {\n this.__pendingValue = value;\n }\n commit() {\n while (isDirective(this.__pendingValue)) {\n const directive = this.__pendingValue;\n this.__pendingValue = noChange;\n directive(this);\n }\n if (this.__pendingValue === noChange) {\n return;\n }\n const value = !!this.__pendingValue;\n if (this.value !== value) {\n if (value) {\n this.element.setAttribute(this.name, '');\n }\n else {\n this.element.removeAttribute(this.name);\n }\n this.value = value;\n }\n this.__pendingValue = noChange;\n }\n}\n/**\n * Sets attribute values for PropertyParts, so that the value is only set once\n * even if there are multiple parts for a property.\n *\n * If an expression controls the whole property value, then the value is simply\n * assigned to the property under control. If there are string literals or\n * multiple expressions, then the strings are expressions are interpolated into\n * a string first.\n */\nexport class PropertyCommitter extends AttributeCommitter {\n constructor(element, name, strings) {\n super(element, name, strings);\n this.single =\n (strings.length === 2 && strings[0] === '' && strings[1] === '');\n }\n _createPart() {\n return new PropertyPart(this);\n }\n _getValue() {\n if (this.single) {\n return this.parts[0].value;\n }\n return super._getValue();\n }\n commit() {\n if (this.dirty) {\n this.dirty = false;\n // tslint:disable-next-line:no-any\n this.element[this.name] = this._getValue();\n }\n }\n}\nexport class PropertyPart extends AttributePart {\n}\n// Detect event listener options support. If the `capture` property is read\n// from the options object, then options are supported. If not, then the thrid\n// argument to add/removeEventListener is interpreted as the boolean capture\n// value so we should only pass the `capture` property.\nlet eventOptionsSupported = false;\ntry {\n const options = {\n get capture() {\n eventOptionsSupported = true;\n return false;\n }\n };\n // tslint:disable-next-line:no-any\n window.addEventListener('test', options, options);\n // tslint:disable-next-line:no-any\n window.removeEventListener('test', options, options);\n}\ncatch (_e) {\n}\nexport class EventPart {\n constructor(element, eventName, eventContext) {\n this.value = undefined;\n this.__pendingValue = undefined;\n this.element = element;\n this.eventName = eventName;\n this.eventContext = eventContext;\n this.__boundHandleEvent = (e) => this.handleEvent(e);\n }\n setValue(value) {\n this.__pendingValue = value;\n }\n commit() {\n while (isDirective(this.__pendingValue)) {\n const directive = this.__pendingValue;\n this.__pendingValue = noChange;\n directive(this);\n }\n if (this.__pendingValue === noChange) {\n return;\n }\n const newListener = this.__pendingValue;\n const oldListener = this.value;\n const shouldRemoveListener = newListener == null ||\n oldListener != null &&\n (newListener.capture !== oldListener.capture ||\n newListener.once !== oldListener.once ||\n newListener.passive !== oldListener.passive);\n const shouldAddListener = newListener != null && (oldListener == null || shouldRemoveListener);\n if (shouldRemoveListener) {\n this.element.removeEventListener(this.eventName, this.__boundHandleEvent, this.__options);\n }\n if (shouldAddListener) {\n this.__options = getOptions(newListener);\n this.element.addEventListener(this.eventName, this.__boundHandleEvent, this.__options);\n }\n this.value = newListener;\n this.__pendingValue = noChange;\n }\n handleEvent(event) {\n if (typeof this.value === 'function') {\n this.value.call(this.eventContext || this.element, event);\n }\n else {\n this.value.handleEvent(event);\n }\n }\n}\n// We copy options because of the inconsistent behavior of browsers when reading\n// the third argument of add/removeEventListener. IE11 doesn't support options\n// at all. Chrome 41 only reads `capture` if the argument is an object.\nconst getOptions = (o) => o &&\n (eventOptionsSupported ?\n { capture: o.capture, passive: o.passive, once: o.once } :\n o.capture);\n//# sourceMappingURL=parts.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { AttributeCommitter, BooleanAttributePart, EventPart, NodePart, PropertyCommitter } from './parts.js';\n/**\n * Creates Parts when a template is instantiated.\n */\nexport class DefaultTemplateProcessor {\n /**\n * Create parts for an attribute-position binding, given the event, attribute\n * name, and string literals.\n *\n * @param element The element containing the binding\n * @param name The attribute name\n * @param strings The string literals. There are always at least two strings,\n * event for fully-controlled bindings with a single expression.\n */\n handleAttributeExpressions(element, name, strings, options) {\n const prefix = name[0];\n if (prefix === '.') {\n const committer = new PropertyCommitter(element, name.slice(1), strings);\n return committer.parts;\n }\n if (prefix === '@') {\n return [new EventPart(element, name.slice(1), options.eventContext)];\n }\n if (prefix === '?') {\n return [new BooleanAttributePart(element, name.slice(1), strings)];\n }\n const committer = new AttributeCommitter(element, name, strings);\n return committer.parts;\n }\n /**\n * Create parts for a text-position binding.\n * @param templateFactory\n */\n handleTextExpression(options) {\n return new NodePart(options);\n }\n}\nexport const defaultTemplateProcessor = new DefaultTemplateProcessor();\n//# sourceMappingURL=default-template-processor.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\nimport { marker, Template } from './template.js';\n/**\n * The default TemplateFactory which caches Templates keyed on\n * result.type and result.strings.\n */\nexport function templateFactory(result) {\n let templateCache = templateCaches.get(result.type);\n if (templateCache === undefined) {\n templateCache = {\n stringsArray: new WeakMap(),\n keyString: new Map()\n };\n templateCaches.set(result.type, templateCache);\n }\n let template = templateCache.stringsArray.get(result.strings);\n if (template !== undefined) {\n return template;\n }\n // If the TemplateStringsArray is new, generate a key from the strings\n // This key is shared between all templates with identical content\n const key = result.strings.join(marker);\n // Check if we already have a Template for this key\n template = templateCache.keyString.get(key);\n if (template === undefined) {\n // If we have not seen this key before, create a new Template\n template = new Template(result, result.getTemplateElement());\n // Cache the Template for this key\n templateCache.keyString.set(key, template);\n }\n // Cache all future queries for this TemplateStringsArray\n templateCache.stringsArray.set(result.strings, template);\n return template;\n}\nexport const templateCaches = new Map();\n//# sourceMappingURL=template-factory.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n * @module lit-html\n */\nimport { removeNodes } from './dom.js';\nimport { NodePart } from './parts.js';\nimport { templateFactory } from './template-factory.js';\nexport const parts = new WeakMap();\n/**\n * Renders a template result or other value to a container.\n *\n * To update a container with new values, reevaluate the template literal and\n * call `render` with the new result.\n *\n * @param result Any value renderable by NodePart - typically a TemplateResult\n * created by evaluating a template tag like `html` or `svg`.\n * @param container A DOM parent to render to. The entire contents are either\n * replaced, or efficiently updated if the same result type was previous\n * rendered there.\n * @param options RenderOptions for the entire render tree rendered to this\n * container. Render options must *not* change between renders to the same\n * container, as those changes will not effect previously rendered DOM.\n */\nexport const render = (result, container, options) => {\n let part = parts.get(container);\n if (part === undefined) {\n removeNodes(container, container.firstChild);\n parts.set(container, part = new NodePart(Object.assign({ templateFactory }, options)));\n part.appendInto(container);\n }\n part.setValue(result);\n part.commit();\n};\n//# sourceMappingURL=render.js.map","/**\n * @license\n * Copyright (c) 2017 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at\n * http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at\n * http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at\n * http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at\n * http://polymer.github.io/PATENTS.txt\n */\n/**\n *\n * Main lit-html module.\n *\n * Main exports:\n *\n * - [[html]]\n * - [[svg]]\n * - [[render]]\n *\n * @module lit-html\n * @preferred\n */\n/**\n * Do not remove this comment; it keeps typedoc from misplacing the module\n * docs.\n */\nimport { defaultTemplateProcessor } from './lib/default-template-processor.js';\nimport { SVGTemplateResult, TemplateResult } from './lib/template-result.js';\nexport { DefaultTemplateProcessor, defaultTemplateProcessor } from './lib/default-template-processor.js';\nexport { directive, isDirective } from './lib/directive.js';\n// TODO(justinfagnani): remove line when we get NodePart moving methods\nexport { removeNodes, reparentNodes } from './lib/dom.js';\nexport { noChange, nothing } from './lib/part.js';\nexport { AttributeCommitter, AttributePart, BooleanAttributePart, EventPart, isIterable, isPrimitive, NodePart, PropertyCommitter, PropertyPart } from './lib/parts.js';\nexport { parts, render } from './lib/render.js';\nexport { templateCaches, templateFactory } from './lib/template-factory.js';\nexport { TemplateInstance } from './lib/template-instance.js';\nexport { SVGTemplateResult, TemplateResult } from './lib/template-result.js';\nexport { createMarker, isTemplatePartActive, Template } from './lib/template.js';\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for lit-html usage.\n// TODO(justinfagnani): inject version number at build time\n(window['litHtmlVersions'] || (window['litHtmlVersions'] = [])).push('1.1.2');\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n */\nexport const html = (strings, ...values) => new TemplateResult(strings, values, 'html', defaultTemplateProcessor);\n/**\n * Interprets a template literal as an SVG template that can efficiently\n * render to and update a container.\n */\nexport const svg = (strings, ...values) => new SVGTemplateResult(strings, values, 'svg', defaultTemplateProcessor);\n//# sourceMappingURL=lit-html.js.map","import { html, render } from \"lit-html/lit-html.js\";\n\nconst litRender = (templateResult, domNode, styles, { eventContext } = {}) => {\n\tif (styles) {\n\t\ttemplateResult = html`<style>${styles}</style>${templateResult}`;\n\t}\n\trender(templateResult, domNode, { eventContext });\n};\n\nexport { html, svg } from \"lit-html/lit-html.js\";\nexport { repeat } from \"lit-html/directives/repeat.js\";\nexport { classMap } from \"lit-html/directives/class-map.js\";\nexport { styleMap } from \"lit-html/directives/style-map.js\";\n\nexport default litRender;\n","import UI5Element from \"../../UI5Element.js\";\nimport litRender, { html } from \"../../renderer/LitRenderer.js\";\n\nconst metadata = {\n\ttag: \"ui5-test-generic\",\n\tproperties: {\n\t\tstrProp: {\n\t\t\ttype: String,\n\t\t},\n\t\tboolProp: {\n\t\t\ttype: Boolean,\n\t\t},\n\t\tobjectProp: {\n\t\t\ttype: Object,\n\t\t},\n\t\tnoAttributeProp: {\n\t\t\ttype: String,\n\t\t\tnoAttribute: true,\n\t\t},\n\t\tmultiProp: {\n\t\t\ttype: String,\n\t\t\tmultiple: true,\n\t\t},\n\t\tdefaultValueProp: {\n\t\t\ttype: String,\n\t\t\tdefaultValue: \"Hello\",\n\t\t}\n\t},\n\tslots: {\n\t\tdefault: {\n\t\t\ttype: Node,\n\t\t},\n\t\tother: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t\tindividual: {\n\t\t\ttype: HTMLElement,\n\t\t\tindividualSlots: true,\n\t\t},\n\t\tnamed: {\n\t\t\ttype: HTMLElement,\n\t\t\tpropertyName: \"items\",\n\t\t}\n\t}\n};\n\nclass Generic extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn element => {\n\t\t\treturn html`<div><p>\n\t\t\t\t<slot></slot>\n\t\t\t\t<slot name=\"other\"></slot>\n\t\t\t\t<slot name=\"individual-1\"></slot>\n\t\t\t\t<slot name=\"individual-2\"></slot>\n\t\t\t</p></div>`;\n\t\t};\n\t}\n\n\tstatic get styles() {\n\t\treturn `:host {\n display: inline-block;\n border: 1px solid black;\n color: var(--var1);\n }`;\n\t}\n\n\tonBeforeRendering() {}\n\tonAfterRendering() {}\n\tonEnterDOM() {}\n\tonExitDOM() {}\n}\n\nGeneric.define();\n\nexport default Generic;\n","import UI5Element from \"../../UI5Element.js\";\n\nconst metadata = {\n\ttag: \"ui5-test-no-shadow\",\n};\n\nclass NoShadow extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n}\n\nNoShadow.define();\n","import UI5Element from \"../../UI5Element.js\";\nimport litRender, { html } from \"../../renderer/LitRenderer.js\";\n\nconst metadata = {\n\ttag: \"ui5-test-parent\",\n\tslots: {\n\t\tdefault: {\n\t\t\ttype: Node,\n\t\t\tlistenFor: [\"prop1\"],\n\t\t},\n\t\titems: {\n\t\t\ttype: HTMLElement,\n\t\t\tlistenFor: { include: [\"*\"], exclude: [\"prop3\"] }\n\t\t}\n\t}\n};\n\nclass Parent extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn element => {\n\t\t\treturn html`<div>\n\t\t\t\t<slot></slot>\n\t\t\t</div>`;\n\t\t};\n\t}\n}\n\nParent.define();\n","import UI5Element from \"../../UI5Element.js\";\nimport litRender, { html } from \"../../renderer/LitRenderer.js\";\n\nconst metadata = {\n\ttag: \"ui5-test-child\",\n\tproperties: {\n\t\tprop1: {\n\t\t\ttype: String,\n\t\t},\n\t\tprop2: {\n\t\t\ttype: String,\n\t\t},\n\t\tprop3: {\n\t\t\ttype: String,\n\t\t},\n\t}\n};\n\nclass Child extends UI5Element {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n\n\tstatic get render() {\n\t\treturn litRender;\n\t}\n\n\tstatic get template() {\n\t\treturn element => {\n\t\t\treturn html`<div></div>`;\n\t\t};\n\t}\n}\n\nChild.define();\n","import Generic from \"./Generic.js\";\n\nconst metadata = {\n\ttag: \"ui5-test-generic-ext\",\n\tproperties: {\n\t\textProp: {\n\t\t\ttype: String,\n\t\t},\n\t\tstrProp: {\n\t\t\tdefaultValue: \"Ext\",\n\t\t}\n\t},\n\tslots: {\n\t\textSlot: {\n\t\t\ttype: HTMLElement,\n\t\t},\n\t}\n};\n\nclass GenericExt extends Generic {\n\tstatic get metadata() {\n\t\treturn metadata;\n\t}\n}\n\nGenericExt.define();\n","import { registerThemeProperties } from \"../../asset-registries/Themes.js\";\n\nconst fiori3 = `:root{ --var1: red; }`;\nconst fiori3Dark = `:root{ --var1: green; }`;\nconst belize = `:root{ --var1: blue; }`;\nconst belizeHcb = `:root{ --var1: orange; }`;\n\nregisterThemeProperties(\"@ui5/webcomponents-base-test\", \"sap_fiori_3\", fiori3);\nregisterThemeProperties(\"@ui5/webcomponents-base-test\", \"sap_fiori_3_dark\", fiori3Dark);\nregisterThemeProperties(\"@ui5/webcomponents-base-test\", \"sap_belize\", belize);\nregisterThemeProperties(\"@ui5/webcomponents-base-test\", \"sap_belize_hcb\", belizeHcb);\n","/**\n * Device and Feature Detection API: Provides information about the used browser / device and cross platform support for certain events\n * like media queries, orientation change or resizing.\n *\n * This API is independent from any other part of the UI5 framework. This allows it to be loaded beforehand, if it is needed, to create the UI5 bootstrap\n * dynamically depending on the capabilities of the browser or device.\n *\n * @namespace\n * @name Device\n */\n\nconst Device = {};\n\n//* ******* OS Detection ********\n\n/**\n * Contains information about the operating system of the Device.\n * @name Device.os\n */\n\n/**\n * Enumeration containing the names of known operating systems.\n * @name Device.os.OS\n */\n\n/**\n * The name of the operating system.\n * @name Device.os.name\n * @type String\n */\n\n/**\n * The version of the operating system as <code>string</code>. Might be empty if no version can be determined.\n * @name Device.os.versionStr\n * @type String\n */\n\n/**\n * The version of the operating system as <code>float</code>. Might be <code>-1</code> if no version can be determined.\n * @name Device.os.version\n * @type float\n */\n\n/**\n * If this flag is set to <code>true</code>, a Windows operating system is used.\n * @name Device.os.windows\n * @type boolean\n */\n\n/**\n * If this flag is set to <code>true</code>, a Mac operating system is used.\n * @name Device.os.macintosh\n * @type boolean\n */\n\n/*\n * If this flag is set to <code>true</code>, an iOS operating system is used.\n * @name Device.os.ios\n * @type boolean\n */\n\n/**\n * If this flag is set to <code>true</code>, an Android operating system is used.\n * @name Device.os.android\n * @type boolean\n */\n\n/*\n * Windows operating system name.\n * @see Device.os.name\n * @name Device.os.OS.WINDOWS\n */\n\n/**\n * MAC operating system name.\n * @see Device.os.name\n * @name Device.os.OS.MACINTOSH\n */\n\n/**\n * iOS operating system name.\n * @see Device.os.name\n * @name Device.os.OS.IOS\n */\n\n/**\n * Android operating system name.\n * @see Device.os.name\n * @name Device.os.OS.ANDROID\n */\n\nconst OS = {\n\t\"WINDOWS\": \"win\",\n\t\"MACINTOSH\": \"mac\",\n\t\"IOS\": \"iOS\",\n\t\"ANDROID\": \"Android\",\n};\n\nconst _getMobileOS = () => {\n\tconst userAgent = navigator.userAgent;\n\n\tlet rPlatform, // regular expression for platform\n\t\taMatches;\n\n\t// iOS, Android\n\trPlatform = /\\(([a-zA-Z ]+);\\s(?:[U]?[;]?)([\\D]+)((?:[\\d._]*))(?:.*[)][^\\d]*)([\\d.]*)\\s/;\n\taMatches = userAgent.match(rPlatform);\n\n\tif (aMatches) {\n\t\tconst rAppleDevices = /iPhone|iPad|iPod/;\n\n\t\tif (aMatches[0].match(rAppleDevices)) {\n\t\t\taMatches[3] = aMatches[3].replace(/_/g, \".\");\n\n\t\t\treturn ({\n\t\t\t\t\"name\": OS.IOS,\n\t\t\t\t\"versionStr\": aMatches[3],\n\t\t\t});\n\t\t}\n\n\t\tif (aMatches[2].match(/Android/)) {\n\t\t\taMatches[2] = aMatches[2].replace(/\\s/g, \"\");\n\t\t\treturn ({\n\t\t\t\t\"name\": OS.ANDROID,\n\t\t\t\t\"versionStr\": aMatches[3],\n\t\t\t});\n\t\t}\n\t}\n\n\t// Firefox on Android\n\trPlatform = /\\((Android)[\\s]?([\\d][.\\d]*)?;.*Firefox\\/[\\d][.\\d]*/;\n\taMatches = userAgent.match(rPlatform);\n\tif (aMatches) {\n\t\treturn ({\n\t\t\t\"name\": OS.ANDROID,\n\t\t\t\"versionStr\": aMatches.length === 3 ? aMatches[2] : \"\",\n\t\t});\n\t}\n};\n\nconst _getDesktopOS = () => {\n\tconst sPlatform = navigator.platform;\n\tif (sPlatform.indexOf(\"Win\") !== -1) {\n\t\tconst rVersion = /Windows NT (\\d+).(\\d)/i; // userAgent since windows 10: Windows NT 10[...]\n\t\tconst uaResult = navigator.userAgent.match(rVersion);\n\n\t\treturn {\n\t\t\t\"name\": OS.WINDOWS,\n\t\t\t\"versionStr\": uaResult[1],\n\t\t};\n\t}\n\n\tif (sPlatform.indexOf(\"Mac\") !== -1) {\n\t\treturn {\n\t\t\t\"name\": OS.MACINTOSH,\n\t\t\t\"versionStr\": \"\",\n\t\t};\n\t}\n\n\treturn null;\n};\n\nconst _getOS = () => {\n\treturn _getMobileOS() || _getDesktopOS();\n};\n\nconst _setOS = () => {\n\tif (Device.os) {\n\t\treturn;\n\t}\n\n\tDevice.os = _getOS() || {};\n\tDevice.os.OS = OS;\n\tDevice.os.version = Device.os.versionStr ? parseFloat(Device.os.versionStr) : -1;\n\n\tif (Device.os.name) {\n\t\tObject.keys(OS).forEach(name => {\n\t\t\tif (OS[name] === Device.os.name) {\n\t\t\t\tDevice.os[name.toLowerCase()] = true;\n\t\t\t}\n\t\t});\n\t}\n};\n\nconst getOS = () => {\n\tif (!Device.os) {\n\t\t_setOS();\n\t}\n\n\treturn Device.os;\n};\n\nconst isAndroid = () => {\n\tif (!Device.os) {\n\t\t_setOS();\n\t}\n\n\treturn !!Device.os.android;\n};\n\n//* ******* Browser Detection ********\n\n/**\n * Contains information about the used browser.\n * @name Device.browser\n */\n\n/**\n * Enumeration containing the names of known browsers.\n * @name Device.browser.BROWSER\n *\n * The name of the browser.\n * @name Device.browser.name\n * @type String\n */\n\n/**\n * The version of the browser as <code>string</code>. Might be empty if no version can be determined.\n * @name Device.browser.versionStr\n * @type String\n */\n\n/**\n * The version of the browser as <code>float</code>. Might be <code>-1</code> if no version can be determined.\n * @name Device.browser.version\n * @type float\n */\n\n/**\n * If this flag is set to <code>true</code>, the mobile variant of the browser is used or\n * a tablet or phone device is detected. This information might not be available for all browsers.\n * @name Device.browser.mobile\n * @type boolean\n */\n\n/**\n * If this flag is set to <code>true</code>, the Microsoft Internet Explorer browser is used.\n * @name Device.browser.internet_explorer\n * @type boolean\n * @deprecated since 1.20, use {@link Device.browser.msie} instead.\n */\n\n/**\n * If this flag is set to <code>true</code>, the Microsoft Internet Explorer browser is used.\n * @name Device.browser.msie\n * @type boolean\n */\n\n/**\n * If this flag is set to <code>true</code>, the Microsoft Edge browser is used.\n * @name Device.browser.edge\n * @type boolean\n */\n\n/**\n * If this flag is set to <code>true</code>, the Mozilla Firefox browser is used.\n * @name Device.browser.firefox\n */\n\n/**\n * If this flag is set to <code>true</code>, the Google Chrome browser is used.\n * @name Device.browser.chrome\n * @type boolean\n *\n * If this flag is set to <code>true</code>, the Apple Safari browser is used.\n *\n * <b>Note:</b>\n * This flag is also <code>true</code> when the standalone (fullscreen) mode or webview is used on iOS devices.\n * Please also note the flags {@link Device.browser.fullscreen} and {@link Device.browser.webview}.\n *\n * @name Device.browser.safari\n * @type boolean\n */\n\n/**\n * If this flag is set to <code>true</code>, a browser featuring a Webkit engine is used.\n *\n * <b>Note:</b>\n * This flag is also <code>true</code> when the used browser was based on the Webkit engine, but\n * uses another rendering engine in the meantime. For example the Chrome browser started from version 28 and above\n * uses the Blink rendering engine.\n *\n * @name Device.browser.webkit\n * @type boolean\n */\n\n/**\n * If this flag is set to <code>true</code>, the Safari browser runs in standalone fullscreen mode on iOS.\n *\n * <b>Note:</b> This flag is only available if the Safari browser was detected. Furthermore, if this mode is detected,\n * technically not a standard Safari is used. There might be slight differences in behavior and detection, e.g.\n * the availability of {@link Device.browser.version}.\n *\n * @name Device.browser.fullscreen\n * @type boolean\n */\n\n/**\n * If this flag is set to <code>true</code>, the Safari browser runs in webview mode on iOS.\n *\n * <b>Note:</b> This flag is only available if the Safari browser was detected. Furthermore, if this mode is detected,\n * technically not a standard Safari is used. There might be slight differences in behavior and detection, e.g.\n * the availability of {@link Device.browser.version}.\n *\n * @name Device.browser.webview\n * @type boolean\n */\n\n/**\n * If this flag is set to <code>true</code>, the Phantom JS browser is used.\n * @name Device.browser.phantomJS\n * @type boolean\n */\n\n/**\n * The version of the used Webkit engine, if available.\n * @name Device.browser.webkitVersion\n * @type String\n */\n\n/**\n * If this flag is set to <code>true</code>, a browser featuring a Mozilla engine is used.\n * @name Device.browser.mozilla\n * @type boolean\n */\n\n/**\n * Internet Explorer browser name.\n * @name Device.browser.BROWSER.INTERNET_EXPLORER\n */\n\n/**\n * Edge browser name.\n * @name Device.browser.BROWSER.EDGE\n */\n\n/**\n * Firefox browser name.\n * @name Device.browser.BROWSER.FIREFOX\n */\n\n/**\n * Chrome browser name.\n * @name Device.browser.BROWSER.CHROME\n */\n\n/**\n * Safari browser name.\n * @name Device.browser.BROWSER.SAFARI\n */\n\n/**\n * Android stock browser name.\n * @name Device.browser.BROWSER.ANDROID\n */\n\nconst BROWSER = {\n\t\"INTERNET_EXPLORER\": \"ie\",\n\t\"EDGE\": \"ed\",\n\t\"FIREFOX\": \"ff\",\n\t\"CHROME\": \"cr\",\n\t\"SAFARI\": \"sf\",\n\t\"ANDROID\": \"an\",\n};\n\n/*!\n* Taken from jQuery JavaScript Library v1.7.1\n* http://jquery.com/\n*\n* Copyright 2011, John Resig\n* Dual licensed under the MIT or GPL Version 2 licenses.\n* http://jquery.org/license\n*\n* Includes Sizzle.js\n* http://sizzlejs.com/\n* Copyright 2011, The Dojo Foundation\n* Released under the MIT, BSD, and GPL Licenses.\n*\n* Date: Mon Nov 21 21:11:03 2011 -0500\n*/\nconst _calcBrowser = () => {\n\tconst sUserAgent = navigator.userAgent.toLowerCase();\n\n\tconst rwebkit = /(webkit)[ /]([\\w.]+)/;\n\tconst rmsie = /(msie) ([\\w.]+)/;\n\tconst rmsie11 = /(trident)\\/[\\w.]+;.*rv:([\\w.]+)/;\n\tconst redge = /(edge)[ /]([\\w.]+)/;\n\tconst rmozilla = /(mozilla)(?:.*? rv:([\\w.]+))?/;\n\n\t// WinPhone IE11 and MS Edge userAgents contain \"WebKit\" and \"Mozilla\" and therefore must be checked first\n\tconst browserMatch = redge.exec(sUserAgent)\n\t\t|| rmsie11.exec(sUserAgent)\n\t\t|| rwebkit.exec(sUserAgent)\n\t\t|| rmsie.exec(sUserAgent)\n\t\t|| (sUserAgent.indexOf(\"compatible\") < 0 && rmozilla.exec(sUserAgent)) || [];\n\n\tconst oRes = {\n\t\tbrowser: browserMatch[1] || \"\",\n\t\tversion: browserMatch[2] || \"0\",\n\t};\n\toRes[oRes.browser] = true;\n\treturn oRes;\n};\n\nconst _getBrowser = () => {\n\tconst oBrowser = _calcBrowser();\n\tconst sUserAgent = navigator.userAgent;\n\tconst oNavigator = window.navigator;\n\n\t// jQuery checks for user agent strings. We differentiate between browsers\n\tlet oExpMobile;\n\tlet oResult;\n\tlet fVersion;\n\n\t// Mozilla\n\tif (oBrowser.mozilla) {\n\t\toExpMobile = /Mobile/;\n\t\tif (sUserAgent.match(/Firefox\\/(\\d+\\.\\d+)/)) {\n\t\t\tfVersion = parseFloat(RegExp.$1);\n\t\t\toResult = {\n\t\t\t\tname: BROWSER.FIREFOX,\n\t\t\t\tversionStr: `${fVersion}`,\n\t\t\t\tversion: fVersion,\n\t\t\t\tmozilla: true,\n\t\t\t\tmobile: oExpMobile.test(sUserAgent),\n\t\t\t};\n\t\t} else {\n\t\t\t// unknown mozilla browser\n\t\t\toResult = {\n\t\t\t\tmobile: oExpMobile.test(sUserAgent),\n\t\t\t\tmozilla: true,\n\t\t\t\tversion: -1,\n\t\t\t};\n\t\t}\n\t} else if (oBrowser.webkit) {\n\t\t// webkit version is needed for calculation if the mobile android device is a tablet (calculation of other mobile devices work without)\n\t\tconst regExpWebkitVersion = sUserAgent.toLowerCase().match(/webkit[/]([\\d.]+)/);\n\t\tlet webkitVersion;\n\t\tif (regExpWebkitVersion) {\n\t\t\twebkitVersion = regExpWebkitVersion[1];\n\t\t}\n\t\toExpMobile = /Mobile/;\n\t\tconst aChromeMatch = sUserAgent.match(/(Chrome|CriOS)\\/(\\d+\\.\\d+).\\d+/);\n\t\tconst aFirefoxMatch = sUserAgent.match(/FxiOS\\/(\\d+\\.\\d+)/);\n\t\tconst aAndroidMatch = sUserAgent.match(/Android .+ Version\\/(\\d+\\.\\d+)/);\n\n\t\tif (aChromeMatch || aFirefoxMatch || aAndroidMatch) {\n\t\t\tlet sName,\n\t\t\t\tsVersion,\n\t\t\t\tbMobile;\n\n\t\t\tif (aChromeMatch) {\n\t\t\t\tsName = BROWSER.CHROME;\n\t\t\t\tbMobile = oExpMobile.test(sUserAgent);\n\t\t\t\tsVersion = parseFloat(aChromeMatch[2]);\n\t\t\t} else if (aFirefoxMatch) {\n\t\t\t\tsName = BROWSER.FIREFOX;\n\t\t\t\tbMobile = true;\n\t\t\t\tsVersion = parseFloat(aFirefoxMatch[1]);\n\t\t\t} else if (aAndroidMatch) {\n\t\t\t\tsName = BROWSER.ANDROID;\n\t\t\t\tbMobile = oExpMobile.test(sUserAgent);\n\t\t\t\tsVersion = parseFloat(aAndroidMatch[1]);\n\t\t\t}\n\n\t\t\toResult = {\n\t\t\t\tname: sName,\n\t\t\t\tmobile: bMobile,\n\t\t\t\tversionStr: `${sVersion}`,\n\t\t\t\tversion: sVersion,\n\t\t\t\twebkit: true,\n\t\t\t\twebkitVersion,\n\t\t\t};\n\t\t} else { // Safari might have an issue with sUserAgent.match(...); thus changing\n\t\t\tconst oExp = /(Version|PhantomJS)\\/(\\d+\\.\\d+).*Safari/;\n\t\t\tconst bStandalone = oNavigator.standalone;\n\t\t\tif (oExp.test(sUserAgent)) {\n\t\t\t\tconst aParts = oExp.exec(sUserAgent);\n\t\t\t\tfVersion = parseFloat(aParts[2]);\n\t\t\t\toResult = {\n\t\t\t\t\tname: BROWSER.SAFARI,\n\t\t\t\t\tversionStr: `${fVersion}`,\n\t\t\t\t\tfullscreen: false,\n\t\t\t\t\twebview: false,\n\t\t\t\t\tversion: fVersion,\n\t\t\t\t\tmobile: oExpMobile.test(sUserAgent),\n\t\t\t\t\twebkit: true,\n\t\t\t\t\twebkitVersion,\n\t\t\t\t\tphantomJS: aParts[1] === \"PhantomJS\",\n\t\t\t\t};\n\t\t\t} else if (/iPhone|iPad|iPod/.test(sUserAgent) && !(/CriOS/.test(sUserAgent)) && !(/FxiOS/.test(sUserAgent)) && (bStandalone === true || bStandalone === false)) {\n\t\t\t\t// WebView or Standalone mode on iOS\n\t\t\t\toResult = {\n\t\t\t\t\tname: BROWSER.SAFARI,\n\t\t\t\t\tversion: -1,\n\t\t\t\t\tfullscreen: bStandalone,\n\t\t\t\t\twebview: !bStandalone,\n\t\t\t\t\tmobile: oExpMobile.test(sUserAgent),\n\t\t\t\t\twebkit: true,\n\t\t\t\t\twebkitVersion,\n\t\t\t\t};\n\t\t\t} else { // other webkit based browser\n\t\t\t\toResult = {\n\t\t\t\t\tmobile: oExpMobile.test(sUserAgent),\n\t\t\t\t\twebkit: true,\n\t\t\t\t\twebkitVersion,\n\t\t\t\t\tversion: -1,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t} else if (oBrowser.msie || oBrowser.trident) {\n\t\tfVersion = parseFloat(oBrowser.version);\n\n\t\toResult = {\n\t\t\tname: BROWSER.INTERNET_EXPLORER,\n\t\t\tversionStr: `${fVersion}`,\n\t\t\tversion: fVersion,\n\t\t\tmsie: true,\n\t\t\tmobile: false,\n\t\t};\n\t} else if (oBrowser.edge) {\n\t\tfVersion = parseFloat(oBrowser.version);\n\t\toResult = {\n\t\t\tname: BROWSER.EDGE,\n\t\t\tversionStr: `${fVersion}`,\n\t\t\tversion: fVersion,\n\t\t\tedge: true,\n\t\t};\n\t} else {\n\t\toResult = {\n\t\t\tname: \"\",\n\t\t\tversionStr: \"\",\n\t\t\tversion: -1,\n\t\t\tmobile: false,\n\t\t};\n\t}\n\n\treturn oResult;\n};\n\nconst _setBrowser = () => {\n\tDevice.browser = _getBrowser();\n\tDevice.browser.BROWSER = BROWSER;\n\n\tif (Device.browser.name) {\n\t\tObject.keys(BROWSER).forEach(b => {\n\t\t\tif (BROWSER[b] === Device.browser.name) {\n\t\t\t\tDevice.browser[b.toLowerCase()] = true;\n\t\t\t}\n\t\t});\n\t}\n};\n\nconst getBrowser = () => {\n\tif (!Device.browser) {\n\t\t_setBrowser();\n\t}\n\treturn Device.browser;\n};\n\nconst isIE = () => {\n\tif (!Device.browser) {\n\t\t_setBrowser();\n\t}\n\treturn !!Device.browser.msie;\n};\n\nconst isEdge = () => {\n\tif (!Device.browser) {\n\t\t_setBrowser();\n\t}\n\treturn !!Device.browser.edge;\n};\n\nconst isChrome = () => {\n\tif (!Device.browser) {\n\t\t_setBrowser();\n\t}\n\treturn !!Device.browser.chrome;\n};\n\nconst isFF = () => {\n\tif (!Device.browser) {\n\t\t_setBrowser();\n\t}\n\treturn !!Device.browser.firefox;\n};\n\nconst isSafari = () => {\n\tif (!Device.browser) {\n\t\t_setBrowser();\n\t}\n\treturn !!Device.browser.safari;\n};\n\n//* ******* Support Detection ********\n\nconst _setSupport = () => {\n\tif (Device.support) {\n\t\treturn;\n\t}\n\n\tif (!Device.browser) {\n\t\t_setBrowser();\n\t}\n\n\tDevice.support = {};\n\tDevice.support.touch = !!((\"ontouchstart\" in window) || (navigator.maxTouchPoints > 0) || (window.DocumentTouch && document instanceof window.DocumentTouch));\n};\n\nconst supportTouch = () => {\n\tif (!Device.support) {\n\t\t_setSupport();\n\t}\n\n\treturn !!Device.support.touch;\n};\n\n//* ******* System Detection ********\n\n/**\n * Provides a basic categorization of the used device based on various indicators.\n *\n * <b>Note:</b> Depending on the capabilities of the device it is also possible that multiple flags are set to <code>true</code>.\n *\n * @namespace\n * @name Device.system\n */\n\n/**\n * If this flag is set to <code>true</code>, the device is recognized as a tablet.\n *\n * <b>Note:</b> This flag is also true for some browsers on desktop devices running on Windows 8 or higher.\n * Also see the documentation for {@link Device.system.combi} devices.\n * You can use the following logic to ensure that the current device is a tablet device:\n *\n * <pre>\n * if(Device.system.tablet && !Device.system.desktop){\n *\t...tablet related commands...\n * }\n * </pre>\n *\n * @name Device.system.tablet\n * @type boolean\n */\n\n/**\n * If this flag is set to <code>true</code>, the device is recognized as a phone.\n *\n * @name Device.system.phone\n * @type boolean\n */\n\n/**\n * If this flag is set to <code>true</code>, the device is recognized as a desktop system.\n *\n * @name Device.system.desktop\n * @type boolean\n */\n\n/**\n * Indicates if the device is recognized as a combination of a desktop system and tablet.\n *\n * <b>Note:</b> This property is mainly for Microsoft Windows 8 (and following) devices where the mouse and touch event may be supported\n * natively by the browser being used. This property is set to <code>true</code> only when both mouse and touch event are natively supported.\n *\n * @name Device.system.combi\n * @type boolean\n */\n\n/**\n * @name Device.system.SYSTEMTYPE\n * Enumeration containing the names of known types of the devices.\n */\n\nconst SYSTEMTYPE = {\n\t\"TABLET\": \"tablet\",\n\t\"PHONE\": \"phone\",\n\t\"DESKTOP\": \"desktop\",\n\t\"COMBI\": \"combi\",\n};\n\nconst _isTablet = () => {\n\tconst sUserAgent = navigator.userAgent;\n\tif (Device.os.name === Device.os.OS.IOS) {\n\t\treturn /ipad/i.test(sUserAgent);\n\t}\n\t// in real mobile device\n\tif (supportTouch()) {\n\t\tif (Device.os.windows && Device.os.version >= 8) {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (Device.browser.chrome && Device.os.android && Device.os.version >= 4.4) {\n\t\t\t// From Android version 4.4, WebView also uses Chrome as Kernel.\n\t\t\t// We can use the user agent pattern defined in Chrome to do phone/tablet detection\n\t\t\t// According to the information here: https://developer.chrome.com/multidevice/user-agent#chrome_for_android_user_agent,\n\t\t\t// the existence of \"Mobile\" indicates it's a phone. But because the crosswalk framework which is used in Fiori Client\n\t\t\t// inserts another \"Mobile\" to the user agent for both tablet and phone, we need to check whether \"Mobile Safari/<Webkit Rev>\" exists.\n\t\t\treturn !/Mobile Safari\\/[.0-9]+/.test(sUserAgent);\n\t\t}\n\t\tlet densityFactor = window.devicePixelRatio ? window.devicePixelRatio : 1; // may be undefined in Windows Phone devices\n\t\t// On Android sometimes window.screen.width returns the logical CSS pixels, sometimes the physical device pixels;\n\t\t// Tests on multiple devices suggest this depends on the Webkit version.\n\t\t// The Webkit patch which changed the behavior was done here: https://bugs.webkit.org/show_bug.cgi?id=106460\n\t\t// Chrome 27 with Webkit 537.36 returns the logical pixels,\n\t\t// Chrome 18 with Webkit 535.19 returns the physical pixels.\n\t\t// The BlackBerry 10 browser with Webkit 537.10+ returns the physical pixels.\n\t\t// So it appears like somewhere above Webkit 537.10 we do not hve to divide by the devicePixelRatio anymore.\n\t\tif (Device.os.android && Device.browser.webkit && (parseFloat(Device.browser.webkitVersion) > 537.10)) {\n\t\t\tdensityFactor = 1;\n\t\t}\n\n\t\t// this is how android distinguishes between tablet and phone\n\t\t// http://android-developers.blogspot.de/2011/07/new-tools-for-managing-screen-sizes.html\n\t\tconst bTablet = (Math.min(window.screen.width / densityFactor, window.screen.height / densityFactor) >= 600);\n\n\t\t// special workaround for Nexus 7 where the window.screen.width is 600px or 601px in portrait mode (=> tablet)\n\t\t// but window.screen.height 552px in landscape mode (=> phone), because the browser UI takes some space on top.\n\t\t// So the detected device type depends on the orientation :-(\n\t\t// actually this is a Chrome bug, as \"width\"/\"height\" should return the entire screen's dimensions and\n\t\t// \"availWidth\"/\"availHeight\" should return the size available after subtracting the browser UI\n\n\t\t/*\n\t\t\t\tif (isLandscape() &&\n\t\t\t\t\t(window.screen.height === 552 || window.screen.height === 553) // old/new Nexus 7\n\t\t\t\t\t&&\n\t\t\t\t\t(/Nexus 7/i.test(sUserAgent))) {\n\t\t\t\t\tbTablet = true;\n\t\t\t\t}\n\t\t\t\t*/\n\n\t\treturn bTablet;\n\t}\n\t// This simple android phone detection can be used here because this is the mobile emulation mode in desktop browser\n\tconst bAndroidPhone = (/(?=android)(?=.*mobile)/i.test(sUserAgent));\n\t// in desktop browser, it's detected as tablet when\n\t// 1. Windows 8 device with a touch screen where \"Touch\" is contained in the userAgent\n\t// 2. Android emulation and it's not an Android phone\n\treturn (Device.browser.msie && sUserAgent.indexOf(\"Touch\") !== -1) || (Device.os.android && !bAndroidPhone);\n};\n\nconst _getSystem = () => {\n\tconst bTabletDetected = _isTablet();\n\tconst isWin8Upwards = Device.os.windows && Device.os.version >= 8;\n\n\tconst oSystem = {};\n\toSystem.tablet = !!((Device.support.touch || isWin8Upwards) && bTabletDetected);\n\toSystem.phone = !!((Device.os.windows_phone || (Device.support.touch)) && !bTabletDetected);\n\toSystem.desktop = !!((!oSystem.tablet && !oSystem.phone) || isWin8Upwards);\n\toSystem.combi = oSystem.desktop && oSystem.tablet;\n\toSystem.SYSTEMTYPE = SYSTEMTYPE;\n\n\treturn oSystem;\n};\n\nconst _setSystem = () => {\n\t_setSupport();\n\t_setOS();\n\n\tDevice.system = {};\n\tDevice.system = _getSystem();\n\tif (Device.system.tablet || Device.system.phone) {\n\t\tDevice.browser.mobile = true;\n\t}\n};\n\nconst getSystem = () => {\n\tif (!Device.system) {\n\t\t_setSystem();\n\t}\n\n\treturn Device.system;\n};\n\nconst isDesktop = () => {\n\tif (!Device.system) {\n\t\t_setSystem();\n\t}\n\n\treturn Device.system.desktop;\n};\n\nconst isTablet = () => {\n\tif (!Device.system) {\n\t\t_setSystem();\n\t}\n\n\treturn Device.system.tablet;\n};\n\nconst isPhone = () => {\n\tif (!Device.system) {\n\t\t_setSystem();\n\t}\n\n\treturn Device.system.phone;\n};\n\nconst isMobile = () => {\n\tif (!Device.system) {\n\t\t_setSystem();\n\t}\n\n\treturn Device.browser.mobile;\n};\n\nexport {\n\tisIE,\n\tisEdge,\n\tisChrome,\n\tisFF,\n\tisSafari,\n\tisMobile,\n\tisDesktop,\n\tisTablet,\n\tisPhone,\n\tisAndroid,\n\tgetOS,\n\tgetSystem,\n\tgetBrowser,\n\tsupportTouch,\n};\n","import { getAnimationMode as getConfiguredAnimationMode } from \"../InitialConfiguration.js\";\n\nconst animationMode = getConfiguredAnimationMode();\n\nconst getAnimationMode = () => {\n\treturn animationMode;\n};\n\nexport { getAnimationMode }; // eslint-disable-line\n","import { getRTL as getConfiguredRTL } from \"../InitialConfiguration.js\";\nimport { getLanguage } from \"./Language.js\";\nimport getDesigntimePropertyAsArray from \"../util/getDesigntimePropertyAsArray.js\";\nimport detectNavigatorLanguage from \"../util/detectNavigatorLanguage.js\";\n\nconst M_ISO639_OLD_TO_NEW = {\n\t\"iw\": \"he\",\n\t\"ji\": \"yi\",\n\t\"in\": \"id\",\n\t\"sh\": \"sr\",\n};\n\nconst A_RTL_LOCALES = getDesigntimePropertyAsArray(\"$cldr-rtl-locales:ar,fa,he$\") || [];\n\nconst impliesRTL = language => {\n\tlanguage = (language && M_ISO639_OLD_TO_NEW[language]) || language;\n\n\treturn A_RTL_LOCALES.indexOf(language) >= 0;\n};\n\nconst getRTL = () => {\n\tconst configurationRTL = getConfiguredRTL();\n\n\tif (configurationRTL !== null) {\n\t\treturn !!configurationRTL;\n\t}\n\n\treturn impliesRTL(getLanguage() || detectNavigatorLanguage());\n};\n\nexport { getRTL }; // eslint-disable-line\n","const registry = new Map();\nconst iconCollectionPromises = new Map();\n\nconst DEFAULT_COLLECTION = \"SAP-icons\";\n\nconst calcKey = (name, collection) => {\n\t// silently support ui5-compatible URIs\n\tif (name.startsWith(\"sap-icon://\")) {\n\t\tname = name.replace(\"sap-icon://\", \"\");\n\t\t[name, collection] = name.split(\"/\").reverse();\n\t}\n\tcollection = collection || DEFAULT_COLLECTION;\n\treturn `${collection}:${name}`;\n};\n\nconst registerIcon = (name, { pathData, accData, collection } = {}) => {\n\tconst key = calcKey(name, collection);\n\tregistry.set(key, { pathData, accData });\n};\n\nconst getIconDataSync = (name, collection = DEFAULT_COLLECTION) => {\n\tconst key = calcKey(name, collection);\n\treturn registry.get(key);\n};\n\nconst getIconData = async (name, collection = DEFAULT_COLLECTION) => {\n\tconst key = calcKey(name, collection);\n\n\tif (!iconCollectionPromises.has(collection)) {\n\t\ticonCollectionPromises.set(collection, Promise.reject());\n\t}\n\n\tawait iconCollectionPromises.get(collection);\n\treturn registry.get(key);\n};\n\nconst getRegisteredNames = async () => {\n\tif (iconCollectionPromises.has(DEFAULT_COLLECTION)) {\n\t\tawait iconCollectionPromises.get(DEFAULT_COLLECTION);\n\t}\n\treturn Array.from(registry.keys()).map(k => k.split(\":\")[1]);\n};\n\nconst registerCollectionPromise = (collection, promise) => {\n\ticonCollectionPromises.set(collection, promise);\n};\n\nexport {\n\tgetIconData,\n\tgetIconDataSync,\n\tregisterIcon,\n\tgetRegisteredNames,\n\tregisterCollectionPromise,\n};\n","import { registerThemeProperties } from \"./dist/AssetRegistry.js\";\n\nimport \"./dist/features/calendar/Buddhist.js\";\nimport \"./dist/features/calendar/Islamic.js\";\nimport \"./dist/features/calendar/Japanese.js\";\nimport \"./dist/features/calendar/Persian.js\";\n\n// ESM bundle targets Edge + browsers with native support\nimport \"./dist/features/browsersupport/Edge.js\";\n\n// Test components\nimport \"./dist/test-resources/elements/Generic.js\";\nimport \"./dist/test-resources/elements/NoShadowDOM.js\";\nimport \"./dist/test-resources/elements/Parent.js\";\nimport \"./dist/test-resources/elements/Child.js\";\nimport \"./dist/test-resources/elements/GenericExt.js\";\n\n// Test themes - CSS Vars for the sap_fiori_3, sap_fiori_3_dark, sap_belize and sap_belize_hcb themes\nimport \"./dist/test-resources/assets/Themes.js\";\n\n// used in test pages\nimport RenderScheduler from \"./dist/RenderScheduler.js\";\nwindow.RenderScheduler = RenderScheduler;\nimport { isIE } from \"./dist/Device.js\";\nwindow.isIE = isIE; // attached to the window object for testing purposes\n\n// used for tests - to register a custom theme\nwindow.registerThemeProperties = registerThemeProperties;\n\n// Note: keep in sync with rollup.config value for IIFE\nimport { getAnimationMode } from \"./dist/config/AnimationMode.js\";\nimport { getLanguage } from \"./dist/config/Language.js\";\nimport { getCalendarType } from \"./dist/config/CalendarType.js\";\nimport { getTheme, setTheme } from \"./dist/config/Theme.js\";\nimport { getNoConflict, setNoConflict } from \"./dist/config/NoConflict.js\";\nimport { getRTL } from \"./dist/config/RTL.js\";\nimport { getFirstDayOfWeek } from \"./dist/config/FormatSettings.js\";\nimport { getRegisteredNames as getIconNames } from \"./dist/SVGIconRegistry.js\"\nwindow[\"sap-ui-webcomponents-bundle\"] = {\n\tconfiguration : {\n\t\tgetAnimationMode,\n\t\tgetLanguage,\n\t\tgetTheme,\n\t\tsetTheme,\n\t\tgetNoConflict,\n\t\tsetNoConflict,\n\t\tgetCalendarType,\n\t\tgetRTL,\n\t\tgetFirstDayOfWeek,\n\t},\n\tgetIconNames,\n};\n","// ES5 bundle targets IE11 only\nimport \"./dist/features/browsersupport/IE11.js\";\n\nimport \"./bundle.esm.js\";\n\nimport { getAnimationMode } from \"./dist/config/AnimationMode.js\";\nimport { getLanguage } from \"./dist/config/Language.js\";\nimport { getCalendarType } from \"./dist/config/CalendarType.js\";\nimport { getTheme, setTheme } from \"./dist/config/Theme.js\";\nimport { getNoConflict, setNoConflict } from \"./dist/config/NoConflict.js\";\nimport { getRTL } from \"./dist/config/RTL.js\";\nimport { getFirstDayOfWeek } from \"./dist/config/FormatSettings.js\";\nimport { getRegisteredNames as getIconNames } from \"./dist/SVGIconRegistry.js\"\nconst configuration = {\n\tgetAnimationMode,\n\tgetLanguage,\n\tgetTheme,\n\tsetTheme,\n\tgetNoConflict,\n\tsetNoConflict,\n\tgetCalendarType,\n\tgetRTL,\n\tgetFirstDayOfWeek,\n};\nexport {\n\tconfiguration,\n\tgetIconNames,\n};\n"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","Array","isArray","arr2","iter","Symbol","iterator","toString","from","TypeError","getUrls","urls","options","undefined","settings","mimeType","onBeforeSend","Function","onSuccess","onError","onComplete","urlArray","urlQueue","map","x","isValidCss","cssText","isHTML","trim","charAt","xhr","urlIndex","responseText","returnVal","indexOf","parser","document","createElement","forEach","url","setAttribute","href","String","isIElte9","Boolean","all","window","atob","isIElte9CORS","host","split","location","isSameProtocol","protocol","xdr","XDomainRequest","open","timeout","onprogress","ontimeout","onload","onerror","err","setTimeout","send","console","warn","concat","XMLHttpRequest","overrideMimeType","onreadystatechange","readyState","status","getCssData","regex","cssComments","cssImports","rootElement","include","exclude","filter","useCSSOM","sourceNodes","querySelectorAll","node","matchesSelector","cssArray","handleComplete","isComplete","join","handleSuccess","cssIndex","sourceUrl","resolveImports","resolvedCssText","errorData","data","test","parseImportData","baseUrl","ignoreRules","importData","rules","replace","match","rule","absoluteUrls","getFullUrl","absoluteRules","oldUrl","newUrl","callbackFn","__errorData","__errorRules","responseImportData","push","responseArray","importText","linkHref","getAttribute","linkRel","isLink","nodeName","toLowerCase","isStyle","textContent","sheet","cssRules","base","d","implementation","createHTMLDocument","b","a","head","appendChild","body","elm","selector","matches","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","balancedMatch","balanced","str","RegExp","maybeMatch","r","range","start","end","pre","slice","post","reg","m","begs","beg","left","right","result","ai","bi","pop","parseCss","css","defaults","preserveStatic","removeComments","errors","error","msg","Error","re","exec","close","whitespace","comment","type","comments","cmnts","c","s","declaration","comment_regexp","prop","val","ret","property","value","declarations","decls","keyframe","vals","values","at_keyframes","vendor","name","frame","frames","keyframes","at_page","sel","selectors","at_fontface","at_supports","supports","at_host","at_media","media","at_custom_m","at_document","at_x","at_rule","hasVarFunc","some","decl","obj","balancedMatch$1","hasVarDecl","core","stylesheet","parseVars","cssData","parseHost","store","onWarning","reVarDeclSelectors","stringifyCss","tree","delim","cb","renderMethods","charset","customMedia","visit","fontFace","_import","namespace","page","nodes","buf","n","txt","walkCss","fn","VAR_PROP_IDENTIFIER","VAR_FUNC_IDENTIFIER","transformCss","preserveVars","variables","splice","resolvedValue","resolveValue","fixNestedCalc","reCalcVal","newVal","__recursiveFallback","valueData","resolveFunc","fallback","replacement","unresolvedFallback","isEmptyVarFunc","isBrowser","isNativeSupport","CSS","counters","group","job","shadowDOM","onlyLegacy","silent","updateDOM","updateURLs","watch","cssKeyframes","cssMediaQueries","cssUrls","cssVarDeclRules","cssVarDecls","cssVarFunc","cssVars","variableStore","dom","user","cssVarsIsRunning","cssVarsObserver","cssVarsSrcNodeCount","debounceTimer","isShadowDOMReady","msgPrefix","handleError","message","sourceNode","handleWarning","addMutationObserver","disconnect","__benchmark","cssVarsDebounced","getTimeStamp","fixVarNames","outNodes","outNode","dataGroup","srcNode","querySelector","parentNode","removeChild","srcNodes","targetElm","documentElement","keys","style","setProperty","shadowRoot","nodeArray","responseUrl","responseURL","getFullUrl$1","statusText","errorMsg","fixRelativeCssUrls","jobVars","varStore","JSON","parse","stringify","hasVarChange","cssTree","__cssVars","resetCssNodes","outCssArray","outNodeArray","hasKeyframesWithVars","isSkip","outCss","outCssNoSpaces","hasAttribute","removeAttribute","insertBefore","nextSibling","elms","shadowSettings","fixKeyframes","addEventListener","init","evt","removeEventListener","reset","isStylesheet","tagName","disabled","isValidAddMutation","mutationNodes","isElm","nodeType","hasAttr","isStyleWithVars","isValid","isValidRemoveMutation","isOutNode","isSrcNode","orphanNode","MutationObserver","mutations","hasValidMutation","mutation","addedNodes","removedNodes","observe","attributes","attributeFilter","childList","subtree","delay","clearTimeout","animationNameProp","getComputedStyle","allNodes","getElementsByTagName","keyframeNodes","nameMarker","len","animationName","offsetHeight","_i","_len","nodeStyle","cssUrl","varObj","reLeadingHyphens","reduce","performance","now","Date","getTime","resetNodes","startsWith","search","string","stringLength","searchString","searchLength","position","pos","Number","Math","min","max","index","charCodeAt","defineProperty","endsWith","includes","repeat","count","Infinity","RangeError","padStart","targetLength","padString","padEnd","entries","ownProps","resArray","fill","O","relativeStart","k","relativeEnd","final","find","predicate","o","thisArg","kValue","configurable","writable","searchElement","fromIndex","abs","sameValueZero","y","isNaN","Map","isInteger","isFinite","floor","parseInt","Element","proto","closest","el","contains","parentElement","WeakSet","random","counter","add","fetch","e","Promise","t","method","headers","setRequestHeader","u","getAllResponseHeaders","ok","clone","text","resolve","json","then","blob","Blob","response","get","has","withCredentials","credentials","global","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","inModule","module","runtime","regeneratorRuntime","exports","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","_invoke","makeInvokeMethod","tryCatch","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","constructor","displayName","defineIteratorMethods","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","__await","AsyncIterator","invoke","reject","record","unwrapped","previousPromise","enqueue","callInvokeWithMethodAndArg","async","next","done","state","doneResult","delegate","delegateResult","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","info","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","object","reverse","iterable","iteratorMethod","skipTempReset","prev","stop","rootEntry","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","nativeURLSearchParams","URLSearchParams","isSupportObjectConstructor","decodesPlusesCorrectly","__URLSearchParams__","encodesAmpersandsCorrectly","ampersandTest","append","URLSearchParamsPolyfill","parseToDict","appendTo","dict","getAll","set","query","encode","forSureUsePolyfill","useProxy","Proxy","construct","args","USPProto","polyfill","callback","getOwnPropertyNames","sort","j","items","item","makeIterator","encodeURIComponent","decode","decodeURIComponent","shift","pairs","this","patchNodeValue","ShadyDOM","nativeNodeValue","getOwnPropertyDescriptor","Node","HTMLElement","isUI5Element","_processChildren","CSSVarsPonyfill","jQuery","inject","jQueryNew","class2type","fnToString","ObjectFunctionString","fnIsPlainObject","Ctor","extend","src","copy","copyIsArray","deep","isPlainObject","ajaxSettings","converters","injectJQuery","rLocale","Locale","sLocaleId","aResult","sLanguage","sScript","sRegion","sVariant","sExtension","sPrivateUse","toUpperCase","sSubtag","getPrivateUseSubtags","getDesigntimePropertyAsArray","browserLanguages","navigator","languages","navigatorLanguage","language","rawLocale","userLanguage","browserLanguage","initialized","initialConfig","animationMode","theme","rtl","calendarType","noConflict","formatSettings","getAnimationMode","initConfiguration","getTheme","getRTL","getLanguage","getNoConflict","getCalendarType","getFormatSettings","booleanMapping","runtimeConfig","parseConfigurationScript","configScript","configJSON","innerHTML","parseURLParameters","params","lowerCaseValue","param","applyConfigurations","getConfiguredLanguage","convertToLocaleOrNull","lang","getLocale","getConfigLanguage","detectNavigatorLanguage","mSettings","getFormatLocale","setConfiguration","configuration","SETTINGS","getCustomLocaleData","getLegacyDateFormat","getLegacyDateCalendarCustomizing","CalendarType","Gregorian","Islamic","Japanese","Persian","Buddhist","getConfiguredCalendarType","calType","getFirstDayOfWeek","firstDayOfWeek","Configuration","getSupportedLanguages","getOriginInfo","Core","getConfiguration","getLibraryResourceBundle","FormatSettings","sap","ui","getWCCore","fetchPromises","jsonPromises","fetchJsonOnce","resources","loader","_","getModuleContentOrig","getModuleContent","moduleName","customContent","missingModule","themeURLs","themeStyles","registeredPackages","Set","registeredThemes","registerThemeProperties","packageName","themeName","getThemeProperties","regThemesStr","fetchThemeProperties","getRegisteredPackages","BaseObject","Interface","oObject","aMethods","bFacade","requireSync","fCreateDelegator","sMethodName","tmp","getInterface","ml","ObjectPath","defaultRootContext","getObjectPathArray","vObjectPath","oRootContext","aNames","sName","sPropertyName","vValue","fnNow","timing","iNavigationStart","navigationStart","perfnow","Log","Level","NONE","FATAL","ERROR","WARNING","INFO","DEBUG","TRACE","ALL","sDefaultComponent","aLog","mMaxLevel","oListener","bLogSupportInfo","pad0","w","level","sComponent","getLogEntryListenerInstance","listeners","onLogEntry","oLogEntry","attach","oLog","oLstnr","onAttachToLog","detach","onDetachFromLog","fatal","sMessage","sDetails","fnSupportInfo","log","warning","debug","trace","setLevel","iLogLevel","_bDefault","sLogLevel","sLevel","getLevel","isLoggable","iLevel","logSupportInfo","bEnabled","fNow","oNow","iMicroSeconds","time","getHours","getMinutes","getSeconds","getMilliseconds","date","getFullYear","getMonth","getDate","timestamp","details","component","supportInfo","logText","getLogEntries","addLogListener","removeLogListener","Logger","detail","comp","support","getLogger","iDefaultLogLevel","fnAssert","bResult","vMessage","assert","fnUniqueSort","aArray","l","Metadata","sClassName","oClassInfo","metadata","__version","_sClassName","_oClass","applySettings","afterApplySettings","that","oStaticInfo","oPrototype","baseType","oParentClass","getMetadata","_oParent","getClass","_bAbstract","_bFinal","_sStereotype","stereotype","_bDeprecated","_aInterfaces","interfaces","_aPublicMethods","publicMethods","_bInterfacesUnique","_aAllPublicMethods","getStereotype","getName","getParent","_dedupInterfaces","uniqueSort","getPublicMethods","getAllPublicMethods","getInterfaces","isInstanceOf","sInterface","WRITABLE_IFF_PHANTOM","_mImplementedTypes","aInterfaces","freeze","isA","vTypeName","mTypes","isAbstract","isFinal","isDeprecated","addPublicMethods","sMethod","createClass","fnBaseClass","FNMetaImpl","preprocessClassInfo","fnClass","deprecated","oMetadata","sSCName","oSCClassInfo","fnSCMetaImpl","destroy","oInterface","defineClass","$","getScript","getRegion","getVariant","getVariantSubtags","getExtension","getExtensionSubtags","getPrivateUse","hasPrivateUseSubtag","getSAPLogonLanguage","M_ISO639_OLD_TO_NEW","sValue","A_RTL_LOCALES","_cldrLocales","_coreI18nLocales","_impliesRTL","vLanguage","oLocale","loadResource","LocaleData","mData","getData","_get","_getDeep","_getMerged","aPropertyNames","oResult","getOrientation","getLanguages","getScripts","getTerritories","getMonths","sWidth","sCalendarType","getCLDRCalendarName","getMonthsStandAlone","getDays","getDaysStandAlone","getQuarters","getQuartersStandAlone","getDayPeriods","getDayPeriodsStandAlone","getDatePattern","sStyle","getTimePattern","getDateTimePattern","getCombinedDateTimePattern","sDateStyle","sTimeStyle","sDateTimePattern","sDatePattern","sTimePattern","getCustomDateTimePattern","sSkeleton","oAvailableFormats","_getFormatPattern","getIntervalPattern","sId","oIntervalFormats","aIdParts","sIntervalId","sDifference","oInterval","sPattern","intervalFormatFallback","getCombinedIntervalPattern","sFallbackPattern","getCustomIntervalPattern","vGreatestDiff","vDiff","vPattern","aPatterns","getPreferredHourSymbol","sKey","_createFormatPattern","aTokens","_parseSkeletonFormat","oBestMatch","_findBestMatch","oToken","oAvailableDateTimeFormats","sSinglePattern","sDiffSymbol","sDiffGroup","rMixedSkeleton","bSingleDate","mCLDRSymbols","mCLDRSymbolGroups","symbol","DayPeriod","missingTokens","pattern","distance","_expandFields","patternTokens","_getMixedFormatPattern","_appendItems","iIndex","sSymbol","oSymbol","oGroup","diffOnly","field","aTestTokens","aMissingTokens","oTestToken","iTest","iDistance","bMatch","iFirstDiffPos","oTokenSymbol","oTestTokenSymbol","firstDiffPos","sTestSkeleton","numericCeiling","aPatternTokens","bSinglePattern","mGroups","mPatternGroups","sResultPatterm","bQuoted","iSkeletonLength","iPatternLength","iOldLength","iNewLength","oSkeletonToken","oBestToken","oSkeletonSymbol","oBestSymbol","sChar","oAppendItems","sDisplayName","sAppendPattern","sAppendField","getDisplayName","bind","rWideMonth","rAbbrevMonth","rWeekDay","sDateSkeleton","sTimeSkeleton","sResultPattern","getNumberSymbol","sType","getDecimalPattern","standard","getCurrencyPattern","sContext","getCurrencySpacing","sPosition","getPercentPattern","getMinimalDaysInFirstWeek","getWeekendStart","getWeekendEnd","getCurrencyDigits","sCurrency","mCustomCurrencies","digits","iDigits","getCurrencySymbol","oCurrencySymbols","getCurrencyCodeBySymbol","sCurrencySymbol","sCurrencyCode","getUnitDisplayName","sUnit","mUnitFormat","getUnitFormat","getRelativePatterns","aScales","aPluralCategories","getPluralCategories","oScale","oTimeEntry","iValue","iSign","sScale","sEntry","substr","scale","sign","getRelativePattern","iDiff","bFuture","oTypes","sPluralCategory","getPluralCategory","getRelativeSecond","getRelativeMinute","getRelativeHour","getRelativeDay","getRelativeWeek","getRelativeMonth","aSingleFormFields","getRelativeYear","getDecimalFormat","sNumber","sPlural","sFormat","oFormats","getCurrencyFormat","getListFormat","getResolvedUnitFormat","getUnitFromMapping","getUnitFormats","sMapping","getEras","oEras","aEras","getEraDates","oEraDates","aEraDates","getCalendarWeek","iWeekNumber","oMessageBundle","getText","getPreferredCalendarType","sCalendarPreference","aCalendars","sCalendarName","oPlurals","aCategories","_pluralTest","sCategory","fnTest","_parsePluralRule","sRule","OP_OR","OP_AND","OP_MOD","OP_EQ","OP_NEQ","OPD_N","OPD_I","OPD_F","OPD_T","OPD_V","OPD_W","RANGE","SEP","accept","sToken","consume","or_condition","fnAnd","fnOr","and_condition","fnRelation","relation","fnExpr","fnRangeList","bEq","expr","range_list","fnOperand","operand","iDivisor","f","v","aValues","sRangeList","aParts","aRange","iFrom","iTo","sPart","iDotPos","sDecimal","sFraction","sFractionNoZeros","parseFloat","M_DEFAULT_DATA","M_SUPPORTED_LOCALES","LOCALES","mLocaleDatas","merge","fallbackObj","fallbackValue","getOrLoad","LoaderExtensions","dataType","failOnError","__fallbackLocale","CustomLocaleData","mCustomData","aArguments","sCalendar","getInstance","registry","getCalendarClass","setCalendarClass","Klass","UniversalDate","clDate","createDate","UTC","aArgs","oDate","oInstance","getJSDate","CalendarClassRegistry","getEra","getEraByDate","setEra","iEra","getUTCEra","getUTCFullYear","getUTCMonth","getUTCDate","setUTCEra","getWeek","getWeekByDate","setWeek","oWeek","getFirstDateOfWeek","year","week","setFullYear","month","day","getUTCWeek","setUTCWeek","setUTCFullYear","getQuarter","getUTCQuarter","getDayPeriod","getUTCDayPeriod","getUTCHours","getTimezoneShort","getTimezoneLong","iMillisecondsInWeek","iYear","iMonth","iDay","oFirstDay","getFirstDayOfFirstWeek","iWeek","iLastYear","iNextYear","oLastFirstDay","oNextFirstDay","calculateWeeks","valueOf","oLocaleData","iMinDays","iFirstDayOfWeek","iDayCount","getUTCDay","setUTCDate","oFromDate","oToDate","mEras","iTimestamp","oEra","_start","_startInfo","_end","_endInfo","getCurrentEra","getEraStartDate","parseDateString","sDateString","toGregorianArguments","toBuddhist","oGregorian","iEraStartYear","toGregorian","oBuddhist","_getBuddhist","_setBuddhist","_getUTCBuddhist","_setUTCBuddhist","getYear","setYear","BASE_YEAR","GREGORIAN_EPOCH_DAYS","ISLAMIC_EPOCH_DAYS","ISLAMIC_MILLIS","ONE_DAY","oCustomizationMap","toIslamic","iGregorianYear","iGregorianMonth","iGregorianDay","iIslamicYear","iIslamicMonth","iIslamicDay","iMonths","iDays","iLeapAdj","iJulianDay","isGregorianLeapYear","monthStart","getCustomMonthStartDays","oIslamic","iIslamicDate","iMonthStart","iJulianDayNoon","iDaysSinceGregorianEpoch","iQuadricent","iQuadricentNormalized","mod","iCent","iCentNormalized","iQuad","iQuadNormalized","iYearIndex","iGregorianYearStartDays","iDayOfYear","tjd","tjd2","iLeapAdj2","aGregorianArgs","initCustomizationMap","sDateFormat","oCustomizationJSON","oEntry","dateFormat","parseDate","gregDate","iGregorianDate","iMillis","iIslamicMonthStartDays","islamicMonthStart","iIslamicMonths","sDate","months","ceil","_getIslamic","_setIslamic","_getUTCIslamic","_setUTCIslamic","iDate","setDate","setMonth","setUTCMonth","toJapanese","era","oJapanese","vYear","_getJapanese","_setJapanese","_getUTCJapanese","_setUTCJapanese","oEraStartDate","toPersian","iJulianDayNumber","g2d","d2j","oPersian","j2d","d2g","NaN","jalCal","jy","breaks","bl","gy","leapJ","jp","jm","jump","leap","leapG","march","div","jd","jdn","jdn1f","gm","gd","_getPersian","_setPersian","_getUTCPersian","_setUTCPersian","fnMerge","whenDOMReady","createStyleInHead","pair","font72RegularWoff","font72RegularWoff2","font72RegularFullWoff","font72RegularFullWoff2","font72BoldWoff","font72BoldWoff2","font72BoldFullWoff","font72BoldFullWoff2","fontFaceCSS","insertFontFace","customCSSFor","getCustomCSS","tag","ponyfillTimer","ponyfillNeeded","runPonyfill","schedulePonyfill","injectThemeProperties","styleElement","injectWebComponentStyle","themeChangeCallbacks","_applyTheme","_executeThemeChangeCallbacks","getEffectiveStyle","ElementClass","getTag","customStyle","componentStyles","styles","getConfiguredTheme","setTheme","newTheme","polyfillLoadedPromise","whenPolyfillLoaded","WebComponents","ready","waitFor","bootPromise","boot","excludeList","shouldFireOriginalEvent","eventName","getConfiguredNoConflict","shouldNotFireOriginalEvent","events","skipOriginalEvent","setNoConflict","noConflictData","observers","WeakMap","DOMObserver","observerObject","observeChildren","unobserveChildren","DataType","types","isDescendantOf","klass","baseKlass","inclusive","parent","kebabToCamelCase","toCamelCase","camelToKebabCase","parts","UI5ElementMetadata","propName","propData","getProperties","noAttribute","getPropertiesList","slots","getSlots","properties","isMultiple","multiple","propValue","validateSingleProperty","slotData","validateSingleSlot","propertyType","defaultValue","getSlottedNodes","isTag","isSlot","localName","assignedNodes","flatten","slottedNodes","getStaticAreaInstance","staticArea","bodyElement","firstChild","removeStaticArea","StaticAreaElement","staticAreaDomRef","customElements","define","StaticAreaItem","_ui5ElementContext","ui5ElementContext","renderResult","staticAreaTemplate","stylesToAdd","staticAreaStyles","staticAreaItemDomRef","attachShadow","mode","classList","_id","render","eventContext","childElementCount","StaticAreaItemElement","Integer","RenderQueue","list","promises","webComponent","deferredResolve","promise","_deferredResolve","MAX_RERENDER_COUNT","renderTaskId","invalidatedWebComponents","renderTaskPromise","renderTaskPromiseResolve","taskResult","mutationObserverTimer","RenderScheduler","res","scheduleRenderTask","runRenderTask","requestAnimationFrame","renderWebComponents","webComponentInfo","renderStats","timesRerendered","_render","getList","_resolveTaskPromise","undefinedElements","getNotDefinedComponents","definedPromises","whenDefined","timeoutPromise","race","stillUndefined","whenShadowDOMReady","whenDOMUpdated","findClosingParenthesisPos","openingParenthesisPos","opened","char","replaceSelector","selectorStartPos","charAfterSelectorPos","charAfterSelector","upToSelector","substring","closingParenthesisPos","replaceSelectors","adaptLinePart","line","adaptCSSForIE","lines","mustProcess","lineParts","processedLineParts","linePart","constructableStyleMap","IEStyleSet","createHeadStyle","cssContent","getConstructableStyle","styleContent","CSSStyleSheet","replaceSync","isValidPropertyName","classes","_propertyChange","DefinitionsSet","IDMap","elementTimeouts","UI5Element","_generateId","_initializeState","_upgradeAllProperties","_initializeContainers","_domRefReadyPromise","_monitoredChildProps","_nextID","_needsShadowDOM","adoptedStyleSheets","_needsStaticArea","staticAreaItem","_startObservingDOMChildren","renderImmediately","onEnterDOM","_updateFragment","_stopObservingDOMChildren","onExitDOM","_removeFragmentFromStaticArea","shouldObserveChildren","hasSlots","mutationObserverOptions","characterData","observeDOMNode","unobserveDOMNode","_updateSlots","slotsMap","canSlotText","domChildren","childNodes","children","slotName","_clearSlot","autoIncrementMap","slottedChildrenMap","allChildrenUpgraded","child","idx","_getSlotName","validValues","individualSlots","nextId","_individualSlot","isCustomElement","isDefined","whenDefinedPromise","upgrade","validateSlotValue","_attachChildPropertyUpdated","propertyName","slot","_state","_invalidate","_detachChildPropertyUpdated","oldValue","newValue","realName","nameInCamelCase","propertyTypeClass","attrName","attrValue","allProps","_upgradeProperty","defaultState","_getDefaultState","listenFor","childMetadata","childProperties","observedProps","notObservedProps","props","_invalidateParentOnPropertyUpdate","_updateAttribute","customEvent","CustomEvent","composed","bubbles","dispatchEvent","propsMetadata","_invalidated","getDomRef","_suppressInvalidation","renderDeferred","onBeforeRendering","_onComponentStateFinalized","_updateShadowRoot","_assignIndividualSlotsToChildren","onAfterRendering","styleToPrepend","template","domRef","focusRef","_waitForDomRef","focusDomRef","getFocusDomRef","focus","cancelable","compatEventResult","noConflictEvent","normalEventResult","reducer","acc","curr","className","lastNumber","nextNumber","_defaultState","MetadataClass","propType","propDefaultValue","validatePropertyValue","oldState","definedLocally","definedGlobally","_generateAccessors","_metadata","metadataObjects","unshift","mergedMetadata","getAttributesList","directives","isDirective","isCEPolyfill","polyfillWrapFlushCallback","removeNodes","container","noChange","nothing","marker","nodeMarker","markerRegex","boundAttributeSuffix","Template","element","nodesToRemove","stack","walker","createTreeWalker","content","lastPartIndex","partIndex","strings","nextNode","currentNode","hasAttributes","stringForPart","lastAttributeNameRegex","attributeLookupName","attributeValue","statics","lastIndex","insert","createMarker","createTextNode","previousSibling","suffix","isTemplatePartActive","part","createComment","TemplateInstance","processor","__parts","setValue","commit","fragment","cloneNode","importNode","nodeIndex","handleTextExpression","insertAfterNode","handleAttributeExpressions","adoptNode","commentMarker","TemplateResult","html","isCommentBinding","commentOpen","lastIndexOf","attributeMatch","getHTML","isPrimitive","isIterable","AttributeCommitter","dirty","_createPart","AttributePart","_getValue","committer","directive","NodePart","__pendingValue","startNode","endNode","ref","__insert","__commitText","__commitTemplateResult","__commitNode","__commitIterable","clear","valueAsString","templateFactory","update","instance","_clone","itemParts","itemPart","appendIntoPart","insertAfterPart","BooleanAttributePart","PropertyCommitter","single","PropertyPart","eventOptionsSupported","capture","_e","EventPart","__boundHandleEvent","handleEvent","newListener","oldListener","shouldRemoveListener","once","passive","shouldAddListener","__options","getOptions","event","DefaultTemplateProcessor","prefix","defaultTemplateProcessor","templateCache","templateCaches","stringsArray","keyString","getTemplateElement","appendInto","litRender","templateResult","domNode","strProp","boolProp","objectProp","noAttributeProp","multiProp","defaultValueProp","other","individual","named","Generic","NoShadow","Parent","prop1","prop2","prop3","Child","extProp","extSlot","GenericExt","fiori3","fiori3Dark","belize","belizeHcb","Device","BROWSER","_calcBrowser","sUserAgent","userAgent","rwebkit","rmsie","rmsie11","redge","rmozilla","browserMatch","oRes","browser","version","_getBrowser","oBrowser","oNavigator","oExpMobile","fVersion","mozilla","$1","FIREFOX","versionStr","mobile","webkit","regExpWebkitVersion","webkitVersion","aChromeMatch","aFirefoxMatch","aAndroidMatch","sVersion","bMobile","CHROME","ANDROID","oExp","bStandalone","standalone","SAFARI","fullscreen","webview","phantomJS","msie","trident","INTERNET_EXPLORER","edge","EDGE","_setBrowser","isIE","getConfiguredAnimationMode","impliesRTL","configurationRTL","getConfiguredRTL","iconCollectionPromises","DEFAULT_COLLECTION","getRegisteredNames","getIconNames"],"mappings":"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"}