@sapui5/sap.ushell 1.141.2 → 1.142.0

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 (776) hide show
  1. package/package.json +1 -1
  2. package/src/main/js/sap/ushell/.library +1 -7
  3. package/src/main/js/sap/ushell/ApplicationType/UrlPostProcessing.js +7 -11
  4. package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
  5. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +1 -1
  6. package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
  7. package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
  8. package/src/main/js/sap/ushell/URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
  9. package/src/main/js/sap/ushell/URLTemplateProcessor/DependencyGraph.js +1 -1
  10. package/src/main/js/sap/ushell/URLTemplateProcessor/Functions.js +1 -1
  11. package/src/main/js/sap/ushell/URLTemplateProcessor/Resolvers.js +1 -1
  12. package/src/main/js/sap/ushell/URLTemplateProcessor/TemplateParameterParser.js +1 -1
  13. package/src/main/js/sap/ushell/URLTemplateProcessor/utils.js +1 -1
  14. package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
  15. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
  16. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
  17. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
  18. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +1 -1
  19. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
  20. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -1
  21. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +1 -3
  22. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +1 -1
  23. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
  24. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationV2Adapter.js +1 -1
  25. package/src/main/js/sap/ushell/adapters/cdm/Settings/UserLanguageAndRegion/UserLanguageAndRegion.view.xml +5 -12
  26. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
  27. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
  28. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
  29. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
  30. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
  31. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
  32. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
  33. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +1 -2
  34. package/src/main/js/sap/ushell/adapters/cdm/v3/FlpLaunchPageAdapter.js +1 -1
  35. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +1 -1
  36. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
  40. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  41. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
  42. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/cep/MenuAdapter.js +41 -24
  44. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
  45. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionInternalAdapter.js +3 -2
  46. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +1 -1
  47. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
  48. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  49. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
  51. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +1 -1
  52. package/src/main/js/sap/ushell/adapters/local/FlpLaunchPageAdapter.js +1 -1
  53. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +1 -1
  54. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
  55. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionInternalAdapter.js +1 -1
  56. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  57. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
  58. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
  59. package/src/main/js/sap/ushell/adapters/local/PersonalizationV2Adapter.js +1 -1
  60. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +1 -1
  61. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +1 -1
  62. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +1 -1
  63. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  64. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -1
  65. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +1 -1
  66. package/src/main/js/sap/ushell/appIntegration/AppLifeCycle.js +4 -7
  67. package/src/main/js/sap/ushell/appIntegration/ApplicationContainer.js +43 -20
  68. package/src/main/js/sap/ushell/appIntegration/ApplicationContainerRenderer.js +0 -11
  69. package/src/main/js/sap/ushell/appIntegration/IframeApplicationContainer.js +89 -32
  70. package/src/main/js/sap/ushell/appIntegration/IframeApplicationContainerRenderer.js +53 -52
  71. package/src/main/js/sap/ushell/appIntegration/PostMessageHandler/NWBCHandler.js +1 -1
  72. package/src/main/js/sap/ushell/appIntegration/PostMessageManager.js +52 -15
  73. package/src/main/js/sap/ushell/appIntegration/PostMessagePluginInterface.js +4 -0
  74. package/src/main/js/sap/ushell/appIntegration/UI5ApplicationContainer.js +15 -28
  75. package/src/main/js/sap/ushell/appIntegration/contracts/EmbeddedUI5Handler.js +15 -26
  76. package/src/main/js/sap/ushell/appIntegration/contracts/StatefulContainerV2Handler.js +2 -2
  77. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +2 -1
  78. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +1 -1
  79. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppConfiguration.js +1 -1
  80. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycle.js +20 -3
  81. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +17 -6
  82. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +1 -1
  83. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +1 -1
  84. package/src/main/js/sap/ushell/appRuntime/ui5/services/BookmarkV2.js +1 -1
  85. package/src/main/js/sap/ushell/appRuntime/ui5/services/CommonDataModel.js +1 -1
  86. package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +1 -1
  87. package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +2 -2
  88. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension/Item.js +1 -1
  89. package/src/main/js/sap/ushell/appRuntime/ui5/services/Extension.js +1 -1
  90. package/src/main/js/sap/ushell/appRuntime/ui5/services/FlpLaunchPage.js +1 -1
  91. package/src/main/js/sap/ushell/appRuntime/ui5/services/FrameBoundExtension.js +1 -1
  92. package/src/main/js/sap/ushell/appRuntime/ui5/services/LaunchPage.js +1 -1
  93. package/src/main/js/sap/ushell/appRuntime/ui5/services/MessageBroker.js +1 -1
  94. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolution.js +1 -1
  95. package/src/main/js/sap/ushell/appRuntime/ui5/services/NavTargetResolutionInternal.js +1 -1
  96. package/src/main/js/sap/ushell/appRuntime/ui5/services/Navigation.js +2 -2
  97. package/src/main/js/sap/ushell/appRuntime/ui5/services/ReferenceResolver.js +1 -1
  98. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigation.js +1 -1
  99. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellNavigationInternal.js +1 -1
  100. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +1 -1
  101. package/src/main/js/sap/ushell/appRuntime/ui5/services/UserInfo.js +1 -1
  102. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  103. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/StepConfiguration.json +14 -17
  104. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/logger.js +1 -1
  105. package/src/main/js/sap/ushell/bootstrap/SchedulingAgent/state.js +1 -1
  106. package/src/main/js/sap/ushell/bootstrap/cdm/cdm.constants.js +0 -1
  107. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  108. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +18 -5
  109. package/src/main/js/sap/ushell/bootstrap/sandbox2.js +1 -1
  110. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  111. package/src/main/js/sap/ushell/components/contentFinder/CatalogService.js +1 -1
  112. package/src/main/js/sap/ushell/components/contentFinder/Component.js +1 -1
  113. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +1 -1
  114. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
  115. package/src/main/js/sap/ushell/components/contentFinder/dialog/Component.js +1 -1
  116. package/src/main/js/sap/ushell/components/contentFinder/dialog/manifest.json +1 -1
  117. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  118. package/src/main/js/sap/ushell/components/contentFinderStandalone/Component.js +1 -1
  119. package/src/main/js/sap/ushell/components/contentFinderStandalone/controller/ContentFinderStandalone.controller.js +1 -1
  120. package/src/main/js/sap/ushell/components/contentFinderStandalone/manifest.json +1 -1
  121. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  122. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +1 -1
  123. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +2 -2
  124. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -1
  125. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +1 -1
  126. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  127. package/src/main/js/sap/ushell/components/pages/ActionMode.js +1 -1
  128. package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
  129. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
  130. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +2 -2
  131. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  132. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +1 -1
  133. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  134. package/src/main/js/sap/ushell/components/shell/FloatingContainer/manifest.json +1 -1
  135. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  136. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +1 -1
  137. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenuButton.controller.js +1 -1
  138. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  139. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +25 -50
  140. package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsList.controller.js +1 -1
  141. package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsListPopoverContent.view.xml +2 -2
  142. package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsListPopoverHeader.fragment.xml +1 -1
  143. package/src/main/js/sap/ushell/components/shell/Notifications/NotificationsModule.js +169 -0
  144. package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +2 -2
  145. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +1 -1
  146. package/src/main/js/sap/ushell/components/shell/Search/Component.js +6 -2
  147. package/src/main/js/sap/ushell/components/shell/Search/SearchModule.js +58 -0
  148. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  149. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +1 -1
  150. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +1 -1
  151. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +1 -1
  152. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +1 -1
  153. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +1 -1
  154. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/Component.js +30 -21
  155. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/FrequentActivityProvider.js +1 -1
  156. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/RecentSearchProvider.js +1 -1
  157. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/SearchProvider.js +1 -1
  158. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/SearchProviders/SearchServiceProvider.js +1 -1
  159. package/src/main/js/sap/ushell/components/shell/SearchCEPNew/manifest.json +1 -1
  160. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +2 -2
  161. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.view.xml +0 -1
  162. package/src/main/js/sap/ushell/components/shell/ShellBar/controller/ShellBar.controller.js +11 -18
  163. package/src/main/js/sap/ushell/components/shell/ShellBar/manifest.json +1 -1
  164. package/src/main/js/sap/ushell/components/shell/ShellBar/view/ShellBar.view.xml +23 -18
  165. package/src/main/js/sap/ushell/components/shell/SideNavigation/Component.js +1 -1
  166. package/src/main/js/sap/ushell/components/shell/SideNavigation/manifest.json +1 -1
  167. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +1 -1
  168. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +5 -5
  169. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.fragment.xml +2 -2
  170. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +1 -1
  171. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +1 -1
  172. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  173. package/src/main/js/sap/ushell/library.js +1 -8
  174. package/src/main/js/sap/ushell/modules/BaseAPI.js +107 -0
  175. package/src/main/js/sap/ushell/modules/BaseProvider.js +43 -0
  176. package/src/main/js/sap/ushell/modules/Notifications/NotificationsAPI.js +253 -0
  177. package/src/main/js/sap/ushell/modules/Notifications/NotificationsProvider.js +50 -0
  178. package/src/main/js/sap/ushell/modules/Notifications.js +53 -0
  179. package/src/main/js/sap/ushell/modules/Search/SearchAPI.js +271 -0
  180. package/src/main/js/sap/ushell/modules/Search/SearchProvider.js +50 -0
  181. package/src/main/js/sap/ushell/modules/Search.js +55 -0
  182. package/src/main/js/sap/ushell/modules/loader/AbstractLoader.js +95 -0
  183. package/src/main/js/sap/ushell/modules/loader/NotificationsLoader.js +148 -0
  184. package/src/main/js/sap/ushell/modules/loader/SearchLoader.js +153 -0
  185. package/src/main/js/sap/ushell/navigationMode.js +1 -1
  186. package/src/main/js/sap/ushell/performance/FesrEnhancer.js +136 -40
  187. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +1 -1
  188. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +26 -1
  189. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  190. package/src/main/js/sap/ushell/plugins/ghostapp/FakeModel.js +19 -14
  191. package/src/main/js/sap/ushell/renderer/Renderer.js +4 -4
  192. package/src/main/js/sap/ushell/renderer/Shell.controller.js +108 -3
  193. package/src/main/js/sap/ushell/renderer/Shell.view.js +1 -1
  194. package/src/main/js/sap/ushell/renderer/resources/resources.properties +6 -8
  195. package/src/main/js/sap/ushell/renderer/resources/resources_ar.properties +0 -1
  196. package/src/main/js/sap/ushell/renderer/resources/resources_bg.properties +0 -1
  197. package/src/main/js/sap/ushell/renderer/resources/resources_ca.properties +0 -1
  198. package/src/main/js/sap/ushell/renderer/resources/resources_cnr.properties +0 -1
  199. package/src/main/js/sap/ushell/renderer/resources/resources_cs.properties +0 -1
  200. package/src/main/js/sap/ushell/renderer/resources/resources_cy.properties +0 -1
  201. package/src/main/js/sap/ushell/renderer/resources/resources_da.properties +0 -1
  202. package/src/main/js/sap/ushell/renderer/resources/resources_de.properties +0 -1
  203. package/src/main/js/sap/ushell/renderer/resources/resources_el.properties +0 -1
  204. package/src/main/js/sap/ushell/renderer/resources/resources_en.properties +0 -1
  205. package/src/main/js/sap/ushell/renderer/resources/resources_en_GB.properties +0 -1
  206. package/src/main/js/sap/ushell/renderer/resources/resources_en_US_saprigi.properties +0 -1
  207. package/src/main/js/sap/ushell/renderer/resources/resources_es.properties +1 -2
  208. package/src/main/js/sap/ushell/renderer/resources/resources_es_MX.properties +0 -1
  209. package/src/main/js/sap/ushell/renderer/resources/resources_et.properties +0 -1
  210. package/src/main/js/sap/ushell/renderer/resources/resources_fi.properties +0 -1
  211. package/src/main/js/sap/ushell/renderer/resources/resources_fr.properties +0 -1
  212. package/src/main/js/sap/ushell/renderer/resources/resources_fr_CA.properties +0 -1
  213. package/src/main/js/sap/ushell/renderer/resources/resources_hi.properties +0 -1
  214. package/src/main/js/sap/ushell/renderer/resources/resources_hr.properties +0 -1
  215. package/src/main/js/sap/ushell/renderer/resources/resources_hu.properties +0 -1
  216. package/src/main/js/sap/ushell/renderer/resources/resources_id.properties +0 -1
  217. package/src/main/js/sap/ushell/renderer/resources/resources_it.properties +0 -1
  218. package/src/main/js/sap/ushell/renderer/resources/resources_iw.properties +0 -1
  219. package/src/main/js/sap/ushell/renderer/resources/resources_ja.properties +0 -1
  220. package/src/main/js/sap/ushell/renderer/resources/resources_kk.properties +0 -1
  221. package/src/main/js/sap/ushell/renderer/resources/resources_ko.properties +0 -1
  222. package/src/main/js/sap/ushell/renderer/resources/resources_lt.properties +0 -1
  223. package/src/main/js/sap/ushell/renderer/resources/resources_lv.properties +0 -1
  224. package/src/main/js/sap/ushell/renderer/resources/resources_mk.properties +0 -1
  225. package/src/main/js/sap/ushell/renderer/resources/resources_ms.properties +0 -1
  226. package/src/main/js/sap/ushell/renderer/resources/resources_nl.properties +0 -1
  227. package/src/main/js/sap/ushell/renderer/resources/resources_no.properties +0 -1
  228. package/src/main/js/sap/ushell/renderer/resources/resources_pl.properties +0 -1
  229. package/src/main/js/sap/ushell/renderer/resources/resources_pt.properties +0 -1
  230. package/src/main/js/sap/ushell/renderer/resources/resources_pt_PT.properties +0 -1
  231. package/src/main/js/sap/ushell/renderer/resources/resources_ro.properties +0 -1
  232. package/src/main/js/sap/ushell/renderer/resources/resources_ru.properties +0 -1
  233. package/src/main/js/sap/ushell/renderer/resources/resources_sh.properties +0 -1
  234. package/src/main/js/sap/ushell/renderer/resources/resources_sk.properties +0 -1
  235. package/src/main/js/sap/ushell/renderer/resources/resources_sl.properties +0 -1
  236. package/src/main/js/sap/ushell/renderer/resources/resources_sr.properties +0 -1
  237. package/src/main/js/sap/ushell/renderer/resources/resources_sv.properties +0 -1
  238. package/src/main/js/sap/ushell/renderer/resources/resources_th.properties +0 -1
  239. package/src/main/js/sap/ushell/renderer/resources/resources_tr.properties +0 -1
  240. package/src/main/js/sap/ushell/renderer/resources/resources_uk.properties +0 -1
  241. package/src/main/js/sap/ushell/renderer/resources/resources_vi.properties +0 -1
  242. package/src/main/js/sap/ushell/renderer/resources/resources_zh_CN.properties +0 -1
  243. package/src/main/js/sap/ushell/renderer/resources/resources_zh_TW.properties +0 -1
  244. package/src/main/js/sap/ushell/renderer/search/searchComponent/manifest.json +1 -1
  245. package/src/main/js/sap/ushell/services/AppLifeCycle.js +44 -36
  246. package/src/main/js/sap/ushell/services/AppState.js +1 -1
  247. package/src/main/js/sap/ushell/services/Bookmark.js +1 -1
  248. package/src/main/js/sap/ushell/services/BookmarkV2.js +1 -1
  249. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Formatter.js +1 -1
  250. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundIndex.js +1 -1
  251. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/InboundProvider.js +1 -1
  252. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/PrelaunchOperations.js +1 -1
  253. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Search.js +1 -1
  254. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/StagedLogger.js +1 -1
  255. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/SystemContext.js +1 -1
  256. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/Utils.js +1 -1
  257. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/VirtualInbounds.js +1 -1
  258. package/src/main/js/sap/ushell/services/ClientSideTargetResolution/XAppStateProcessing.js +1 -1
  259. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +2 -1
  260. package/src/main/js/sap/ushell/services/CommonDataModel/SiteConverter.js +1 -1
  261. package/src/main/js/sap/ushell/services/CommonDataModel/vizTypeDefaults/VizTypeDefaults.js +1 -1
  262. package/src/main/js/sap/ushell/services/CommonDataModel.js +1 -1
  263. package/src/main/js/sap/ushell/services/Configuration.js +1 -1
  264. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +1 -1
  265. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
  266. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +1 -1
  267. package/src/main/js/sap/ushell/services/DarkModeSupport.js +1 -1
  268. package/src/main/js/sap/ushell/services/Extension/Item.js +1 -1
  269. package/src/main/js/sap/ushell/services/Extension.js +15 -3
  270. package/src/main/js/sap/ushell/services/FlpLaunchPage.js +1 -1
  271. package/src/main/js/sap/ushell/services/FrameBoundExtension/FloatingContainer.js +1 -1
  272. package/src/main/js/sap/ushell/services/FrameBoundExtension/Footer.js +1 -1
  273. package/src/main/js/sap/ushell/services/FrameBoundExtension/Item.js +1 -1
  274. package/src/main/js/sap/ushell/services/FrameBoundExtension/SidePane.js +1 -1
  275. package/src/main/js/sap/ushell/services/FrameBoundExtension/ToolArea.js +1 -1
  276. package/src/main/js/sap/ushell/services/FrameBoundExtension/UserSettingsEntry.js +1 -1
  277. package/src/main/js/sap/ushell/services/FrameBoundExtension.js +21 -8
  278. package/src/main/js/sap/ushell/services/LaunchPage.js +1 -1
  279. package/src/main/js/sap/ushell/services/Menu.js +1 -181
  280. package/src/main/js/sap/ushell/services/Message.js +1 -1
  281. package/src/main/js/sap/ushell/services/MessageBroker/MessageBrokerEngine.js +1 -1
  282. package/src/main/js/sap/ushell/services/MessageBroker.js +1 -1
  283. package/src/main/js/sap/ushell/services/MessageInternal.js +1 -1
  284. package/src/main/js/sap/ushell/services/Navigation/compatibility.js +1 -1
  285. package/src/main/js/sap/ushell/services/Navigation/utils.js +1 -1
  286. package/src/main/js/sap/ushell/services/Navigation.js +1 -1
  287. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +1 -1
  288. package/src/main/js/sap/ushell/services/PageBuilding.js +1 -1
  289. package/src/main/js/sap/ushell/services/PagePersistence.js +1 -1
  290. package/src/main/js/sap/ushell/services/PageReferencing.js +1 -1
  291. package/src/main/js/sap/ushell/services/Pages.js +1 -1
  292. package/src/main/js/sap/ushell/services/Personalization.js +1 -1
  293. package/src/main/js/sap/ushell/services/PersonalizationV2.js +1 -1
  294. package/src/main/js/sap/ushell/services/PluginManager/Extensions.js +1 -1
  295. package/src/main/js/sap/ushell/services/PluginManager/HeaderExtensions.js +1 -1
  296. package/src/main/js/sap/ushell/services/PluginManager/MenuExtensions.js +1 -1
  297. package/src/main/js/sap/ushell/services/PluginManager/SimpleExpression.js +1 -1
  298. package/src/main/js/sap/ushell/services/PluginManager.js +1 -2
  299. package/src/main/js/sap/ushell/services/ReferenceResolver.js +1 -1
  300. package/src/main/js/sap/ushell/services/Search.js +1 -1
  301. package/src/main/js/sap/ushell/services/SearchCEP.js +1 -1
  302. package/src/main/js/sap/ushell/services/SearchableContent.js +1 -1
  303. package/src/main/js/sap/ushell/services/ShellNavigation.js +1 -1
  304. package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
  305. package/src/main/js/sap/ushell/services/SpaceContent.js +1 -1
  306. package/src/main/js/sap/ushell/services/UITracer.js +1 -1
  307. package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
  308. package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
  309. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +5 -35
  310. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +1 -1
  311. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +1 -1
  312. package/src/main/js/sap/ushell/services/UserInfo.js +1 -1
  313. package/src/main/js/sap/ushell/services/UserRecents.js +1 -1
  314. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +1 -1
  315. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -1
  316. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
  317. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  318. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +1 -1
  319. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  320. package/src/main/js/sap/ushell/state/StateManager.js +5 -1
  321. package/src/main/js/sap/ushell/state/StateRules.js +10 -1
  322. package/src/main/js/sap/ushell/state/modules/BackNavigation.js +1 -1
  323. package/src/main/js/sap/ushell/state/modules/ContentDensity.js +1 -1
  324. package/src/main/js/sap/ushell/state/modules/Favicon.js +1 -1
  325. package/src/main/js/sap/ushell/state/modules/HeaderLogo.js +1 -1
  326. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
  327. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
  328. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  329. package/src/main/js/sap/ushell/ui/launchpad/Section.js +1 -1
  330. package/src/main/js/sap/ushell/ui/launchpad/VizInstanceCdm.js +0 -2
  331. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +1 -1
  332. package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +0 -8
  333. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -1
  334. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  335. package/src/main/js/sap/ushell/ui5service/ShellUIServiceFactory.js +1 -1
  336. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  337. package/src/main/js/sap/ushell/utils/SmartBusiness.js +102 -0
  338. package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
  339. package/src/main/js/sap/ushell/utils/workpage/WorkPageHost.js +1 -1
  340. package/src/main/js/sap/ushell/utils/workpage/WorkPageService.js +1 -1
  341. package/src/main/js/sap/ushell/utils/workpage/WorkPageVizInstantiation.js +1 -1
  342. package/src/main/js/sap/ushell/utils.js +10 -34
  343. package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
  344. package/ui5.yaml +19 -32
  345. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +0 -228
  346. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +0 -277
  347. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +0 -2128
  348. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.layout.js +0 -462
  349. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +0 -182
  350. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +0 -135
  351. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +0 -400
  352. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +0 -345
  353. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnRenderer.js +0 -103
  354. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +0 -147
  355. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRenderer.js +0 -60
  356. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +0 -277
  357. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRowRenderer.js +0 -96
  358. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +0 -59
  359. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources.properties +0 -177
  360. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ar.properties +0 -93
  361. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_bg.properties +0 -93
  362. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ca.properties +0 -93
  363. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_cnr.properties +0 -93
  364. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_cs.properties +0 -93
  365. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_cy.properties +0 -93
  366. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_da.properties +0 -93
  367. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_de.properties +0 -93
  368. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_el.properties +0 -93
  369. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_GB.properties +0 -93
  370. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_sappsd.properties +0 -79
  371. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_saprigi.properties +0 -93
  372. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_saptrc.properties +0 -90
  373. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_es.properties +0 -93
  374. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_es_MX.properties +0 -93
  375. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_et.properties +0 -93
  376. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fi.properties +0 -93
  377. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fr.properties +0 -93
  378. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fr_CA.properties +0 -93
  379. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hi.properties +0 -93
  380. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hr.properties +0 -93
  381. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hu.properties +0 -93
  382. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_id.properties +0 -93
  383. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_it.properties +0 -93
  384. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_iw.properties +0 -93
  385. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ja.properties +0 -93
  386. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_kk.properties +0 -93
  387. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ko.properties +0 -93
  388. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_lt.properties +0 -93
  389. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_lv.properties +0 -93
  390. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_mk.properties +0 -93
  391. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ms.properties +0 -93
  392. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_nl.properties +0 -93
  393. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_no.properties +0 -93
  394. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pl.properties +0 -93
  395. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pt.properties +0 -93
  396. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pt_PT.properties +0 -93
  397. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ro.properties +0 -93
  398. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ru.properties +0 -93
  399. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sh.properties +0 -93
  400. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sk.properties +0 -93
  401. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sl.properties +0 -93
  402. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sr.properties +0 -93
  403. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sv.properties +0 -93
  404. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_th.properties +0 -93
  405. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_tr.properties +0 -93
  406. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_uk.properties +0 -93
  407. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_vi.properties +0 -93
  408. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_zh_CN.properties +0 -93
  409. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_zh_TW.properties +0 -93
  410. package/src/main/js/sap/ushell/components/workPageBuilder/view/WorkPageBuilder.view.xml +0 -248
  411. package/src/main/js/sap/ushell/components/workPageBuilder/view/WorkPageCellDeleteDialog.fragment.xml +0 -25
  412. package/src/main/js/sap/ushell/components/workPageBuilder/view/WorkPageRowDeleteDialog.fragment.xml +0 -25
  413. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +0 -67
  414. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +0 -176
  415. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +0 -50
  416. package/src/main/js/sap/ushell/components/workPageRuntime/view/WorkPageRuntime.view.xml +0 -37
  417. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/Avatar.js +0 -118
  418. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/Button.js +0 -222
  419. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/Label.js +0 -74
  420. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/ListItem.js +0 -87
  421. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/ListItemBase.js +0 -46
  422. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/ListItemGroup.js +0 -152
  423. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/Menu.js +0 -184
  424. package/src/main/js/sap/ushell/gen/ui5/webcomponents/dist/MenuItem.js +0 -193
  425. package/src/main/js/sap/ushell/gen/ui5/webcomponents-base.js +0 -554
  426. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/IllustratedMessage.js +0 -97
  427. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/NotificationList.js +0 -134
  428. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/NotificationListGroupItem.js +0 -82
  429. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/NotificationListItem.js +0 -125
  430. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/NotificationListItemBase.js +0 -54
  431. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/Search.js +0 -162
  432. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/SearchItem.js +0 -74
  433. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/SearchItemGroup.js +0 -35
  434. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/SearchMessageArea.js +0 -52
  435. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/SearchScope.js +0 -54
  436. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/ShellBar.js +0 -379
  437. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/ShellBarBranding.js +0 -77
  438. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/ShellBarItem.js +0 -87
  439. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/ShellBarSearch.js +0 -156
  440. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/ShellBarSpacer.js +0 -48
  441. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/UserMenu.js +0 -196
  442. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/UserMenuAccount.js +0 -82
  443. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori/dist/UserMenuItem.js +0 -41
  444. package/src/main/js/sap/ushell/gen/ui5/webcomponents-fiori.js +0 -1716
  445. package/src/main/js/sap/ushell/gen/ui5/webcomponents.js +0 -3015
  446. package/src/main/js/sap/ushell/thirdparty/AccessibilityTextsHelper.js +0 -13
  447. package/src/main/js/sap/ushell/thirdparty/Avatar.js +0 -453
  448. package/src/main/js/sap/ushell/thirdparty/BusyIndicator.js +0 -233
  449. package/src/main/js/sap/ushell/thirdparty/Button.js +0 -7
  450. package/src/main/js/sap/ushell/thirdparty/Button2.js +0 -645
  451. package/src/main/js/sap/ushell/thirdparty/FocusableElements.js +0 -10
  452. package/src/main/js/sap/ushell/thirdparty/Icon.js +0 -313
  453. package/src/main/js/sap/ushell/thirdparty/Icons.js +0 -234
  454. package/src/main/js/sap/ushell/thirdparty/IllustratedMessage.js +0 -1297
  455. package/src/main/js/sap/ushell/thirdparty/Label.js +0 -115
  456. package/src/main/js/sap/ushell/thirdparty/Link.js +0 -316
  457. package/src/main/js/sap/ushell/thirdparty/List.js +0 -1254
  458. package/src/main/js/sap/ushell/thirdparty/ListBoxItemGroupTemplate.js +0 -14
  459. package/src/main/js/sap/ushell/thirdparty/ListItemAdditionalText.css.js +0 -10
  460. package/src/main/js/sap/ushell/thirdparty/ListItemBase.js +0 -251
  461. package/src/main/js/sap/ushell/thirdparty/ListItemCustom.js +0 -1689
  462. package/src/main/js/sap/ushell/thirdparty/ListItemGroup.js +0 -637
  463. package/src/main/js/sap/ushell/thirdparty/Menu.js +0 -389
  464. package/src/main/js/sap/ushell/thirdparty/MenuItem.js +0 -10
  465. package/src/main/js/sap/ushell/thirdparty/MenuItem2.js +0 -762
  466. package/src/main/js/sap/ushell/thirdparty/NotificationList.js +0 -291
  467. package/src/main/js/sap/ushell/thirdparty/NotificationListGroupItem.js +0 -310
  468. package/src/main/js/sap/ushell/thirdparty/NotificationListItem.js +0 -534
  469. package/src/main/js/sap/ushell/thirdparty/NotificationListItemBase.js +0 -98
  470. package/src/main/js/sap/ushell/thirdparty/ResponsivePopover.js +0 -2306
  471. package/src/main/js/sap/ushell/thirdparty/SearchItem.js +0 -128
  472. package/src/main/js/sap/ushell/thirdparty/SearchItemGroup.js +0 -44
  473. package/src/main/js/sap/ushell/thirdparty/SearchMessageArea.js +0 -49
  474. package/src/main/js/sap/ushell/thirdparty/SearchScope.js +0 -39
  475. package/src/main/js/sap/ushell/thirdparty/ShellBar.js +0 -1809
  476. package/src/main/js/sap/ushell/thirdparty/ShellBarBranding.js +0 -119
  477. package/src/main/js/sap/ushell/thirdparty/ShellBarItem.js +0 -89
  478. package/src/main/js/sap/ushell/thirdparty/ShellBarSearch.js +0 -7
  479. package/src/main/js/sap/ushell/thirdparty/ShellBarSearch2.js +0 -3380
  480. package/src/main/js/sap/ushell/thirdparty/ShellBarSpacer.js +0 -40
  481. package/src/main/js/sap/ushell/thirdparty/Tag.js +0 -302
  482. package/src/main/js/sap/ushell/thirdparty/Text.js +0 -127
  483. package/src/main/js/sap/ushell/thirdparty/Title.js +0 -167
  484. package/src/main/js/sap/ushell/thirdparty/UserMenu.js +0 -950
  485. package/src/main/js/sap/ushell/thirdparty/UserMenuAccount.js +0 -114
  486. package/src/main/js/sap/ushell/thirdparty/UserMenuItem.js +0 -61
  487. package/src/main/js/sap/ushell/thirdparty/ValueState.js +0 -7
  488. package/src/main/js/sap/ushell/thirdparty/WrappingType.js +0 -24
  489. package/src/main/js/sap/ushell/thirdparty/_dynamics/InputSuggestions.js +0 -397
  490. package/src/main/js/sap/ushell/thirdparty/_dynamics/ListItemStandardExpandableTextTemplate.js +0 -193
  491. package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons-TNT.js +0 -585
  492. package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons-TNT2.js +0 -585
  493. package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons-business-suite.js +0 -1194
  494. package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons-business-suite2.js +0 -1194
  495. package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons.js +0 -2509
  496. package/src/main/js/sap/ushell/thirdparty/_dynamics/SAP-icons2.js +0 -2509
  497. package/src/main/js/sap/ushell/thirdparty/_dynamics/ar.js +0 -7139
  498. package/src/main/js/sap/ushell/thirdparty/_dynamics/ar_EG.js +0 -7139
  499. package/src/main/js/sap/ushell/thirdparty/_dynamics/ar_SA.js +0 -7138
  500. package/src/main/js/sap/ushell/thirdparty/_dynamics/bg.js +0 -6031
  501. package/src/main/js/sap/ushell/thirdparty/_dynamics/ca.js +0 -6133
  502. package/src/main/js/sap/ushell/thirdparty/_dynamics/cnr.js +0 -6219
  503. package/src/main/js/sap/ushell/thirdparty/_dynamics/cs.js +0 -6759
  504. package/src/main/js/sap/ushell/thirdparty/_dynamics/da.js +0 -5977
  505. package/src/main/js/sap/ushell/thirdparty/_dynamics/de.js +0 -6098
  506. package/src/main/js/sap/ushell/thirdparty/_dynamics/de_AT.js +0 -6099
  507. package/src/main/js/sap/ushell/thirdparty/_dynamics/de_CH.js +0 -6097
  508. package/src/main/js/sap/ushell/thirdparty/_dynamics/el.js +0 -5882
  509. package/src/main/js/sap/ushell/thirdparty/_dynamics/el_CY.js +0 -5882
  510. package/src/main/js/sap/ushell/thirdparty/_dynamics/en.js +0 -6094
  511. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_AU.js +0 -6134
  512. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_GB.js +0 -6125
  513. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_HK.js +0 -6136
  514. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_IE.js +0 -6125
  515. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_IN.js +0 -6132
  516. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_NZ.js +0 -6125
  517. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_PG.js +0 -6126
  518. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_SG.js +0 -6132
  519. package/src/main/js/sap/ushell/thirdparty/_dynamics/en_ZA.js +0 -6126
  520. package/src/main/js/sap/ushell/thirdparty/_dynamics/es.js +0 -6153
  521. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_AR.js +0 -6156
  522. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_BO.js +0 -6155
  523. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_CL.js +0 -6048
  524. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_CO.js +0 -6048
  525. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_MX.js +0 -6157
  526. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_PE.js +0 -5939
  527. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_UY.js +0 -5941
  528. package/src/main/js/sap/ushell/thirdparty/_dynamics/es_VE.js +0 -5940
  529. package/src/main/js/sap/ushell/thirdparty/_dynamics/et.js +0 -6077
  530. package/src/main/js/sap/ushell/thirdparty/_dynamics/fa.js +0 -6002
  531. package/src/main/js/sap/ushell/thirdparty/_dynamics/fi.js +0 -6245
  532. package/src/main/js/sap/ushell/thirdparty/_dynamics/fr.js +0 -6047
  533. package/src/main/js/sap/ushell/thirdparty/_dynamics/fr_BE.js +0 -6047
  534. package/src/main/js/sap/ushell/thirdparty/_dynamics/fr_CA.js +0 -6041
  535. package/src/main/js/sap/ushell/thirdparty/_dynamics/fr_CH.js +0 -6065
  536. package/src/main/js/sap/ushell/thirdparty/_dynamics/fr_LU.js +0 -6047
  537. package/src/main/js/sap/ushell/thirdparty/_dynamics/he.js +0 -6593
  538. package/src/main/js/sap/ushell/thirdparty/_dynamics/hi.js +0 -5911
  539. package/src/main/js/sap/ushell/thirdparty/_dynamics/hr.js +0 -6246
  540. package/src/main/js/sap/ushell/thirdparty/_dynamics/hu.js +0 -5995
  541. package/src/main/js/sap/ushell/thirdparty/_dynamics/id.js +0 -5783
  542. package/src/main/js/sap/ushell/thirdparty/_dynamics/it.js +0 -6036
  543. package/src/main/js/sap/ushell/thirdparty/_dynamics/it_CH.js +0 -6036
  544. package/src/main/js/sap/ushell/thirdparty/_dynamics/ja.js +0 -5942
  545. package/src/main/js/sap/ushell/thirdparty/_dynamics/kk.js +0 -5989
  546. package/src/main/js/sap/ushell/thirdparty/_dynamics/ko.js +0 -5823
  547. package/src/main/js/sap/ushell/thirdparty/_dynamics/lt.js +0 -6628
  548. package/src/main/js/sap/ushell/thirdparty/_dynamics/lv.js +0 -6164
  549. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ar.js +0 -182
  550. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ar2.js +0 -845
  551. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ar3.js +0 -596
  552. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_bg.js +0 -182
  553. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_bg2.js +0 -845
  554. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_bg3.js +0 -596
  555. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ca.js +0 -182
  556. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ca2.js +0 -845
  557. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ca3.js +0 -596
  558. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cnr.js +0 -182
  559. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cnr2.js +0 -845
  560. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cnr3.js +0 -596
  561. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cs.js +0 -182
  562. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cs2.js +0 -845
  563. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cs3.js +0 -596
  564. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cy.js +0 -182
  565. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cy2.js +0 -845
  566. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_cy3.js +0 -596
  567. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_da.js +0 -182
  568. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_da2.js +0 -845
  569. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_da3.js +0 -596
  570. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_de.js +0 -182
  571. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_de2.js +0 -845
  572. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_de3.js +0 -596
  573. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_el.js +0 -182
  574. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_el2.js +0 -845
  575. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_el3.js +0 -596
  576. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en.js +0 -11
  577. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en2.js +0 -182
  578. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en3.js +0 -845
  579. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en4.js +0 -602
  580. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_GB.js +0 -182
  581. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_GB2.js +0 -845
  582. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_GB3.js +0 -596
  583. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_sappsd.js +0 -11
  584. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_sappsd2.js +0 -182
  585. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_sappsd3.js +0 -845
  586. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_sappsd4.js +0 -596
  587. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi.js +0 -11
  588. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi2.js +0 -182
  589. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi3.js +0 -845
  590. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi4.js +0 -602
  591. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saptrc.js +0 -11
  592. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saptrc2.js +0 -182
  593. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saptrc3.js +0 -845
  594. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saptrc4.js +0 -596
  595. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es.js +0 -182
  596. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es2.js +0 -845
  597. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es3.js +0 -596
  598. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es_MX.js +0 -182
  599. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es_MX2.js +0 -845
  600. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_es_MX3.js +0 -596
  601. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_et.js +0 -182
  602. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_et2.js +0 -845
  603. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_et3.js +0 -596
  604. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fi.js +0 -182
  605. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fi2.js +0 -845
  606. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fi3.js +0 -596
  607. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr.js +0 -182
  608. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr2.js +0 -845
  609. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr3.js +0 -596
  610. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr_CA.js +0 -182
  611. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr_CA2.js +0 -845
  612. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_fr_CA3.js +0 -596
  613. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hi.js +0 -182
  614. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hi2.js +0 -845
  615. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hi3.js +0 -596
  616. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hr.js +0 -182
  617. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hr2.js +0 -845
  618. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hr3.js +0 -596
  619. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hu.js +0 -182
  620. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hu2.js +0 -845
  621. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_hu3.js +0 -596
  622. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_id.js +0 -182
  623. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_id2.js +0 -845
  624. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_id3.js +0 -596
  625. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_it.js +0 -182
  626. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_it2.js +0 -845
  627. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_it3.js +0 -596
  628. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_iw.js +0 -182
  629. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_iw2.js +0 -845
  630. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_iw3.js +0 -596
  631. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ja.js +0 -182
  632. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ja2.js +0 -845
  633. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ja3.js +0 -596
  634. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_kk.js +0 -182
  635. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_kk2.js +0 -845
  636. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_kk3.js +0 -596
  637. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ko.js +0 -182
  638. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ko2.js +0 -845
  639. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ko3.js +0 -596
  640. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lt.js +0 -182
  641. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lt2.js +0 -845
  642. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lt3.js +0 -596
  643. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lv.js +0 -182
  644. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lv2.js +0 -845
  645. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_lv3.js +0 -596
  646. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_mk.js +0 -182
  647. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_mk2.js +0 -845
  648. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_mk3.js +0 -596
  649. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ms.js +0 -182
  650. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ms2.js +0 -845
  651. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ms3.js +0 -596
  652. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_nl.js +0 -182
  653. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_nl2.js +0 -845
  654. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_nl3.js +0 -596
  655. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_no.js +0 -182
  656. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_no2.js +0 -845
  657. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_no3.js +0 -596
  658. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pl.js +0 -182
  659. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pl2.js +0 -845
  660. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pl3.js +0 -596
  661. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt.js +0 -182
  662. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt2.js +0 -845
  663. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt3.js +0 -596
  664. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt_PT.js +0 -182
  665. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt_PT2.js +0 -845
  666. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_pt_PT3.js +0 -596
  667. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ro.js +0 -182
  668. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ro2.js +0 -845
  669. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ro3.js +0 -596
  670. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ru.js +0 -182
  671. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ru2.js +0 -845
  672. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_ru3.js +0 -596
  673. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sh.js +0 -182
  674. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sh2.js +0 -845
  675. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sh3.js +0 -596
  676. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sk.js +0 -182
  677. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sk2.js +0 -845
  678. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sk3.js +0 -596
  679. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sl.js +0 -182
  680. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sl2.js +0 -845
  681. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sl3.js +0 -596
  682. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sr.js +0 -182
  683. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sr2.js +0 -845
  684. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sr3.js +0 -596
  685. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sv.js +0 -182
  686. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sv2.js +0 -845
  687. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_sv3.js +0 -596
  688. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_th.js +0 -182
  689. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_th2.js +0 -845
  690. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_th3.js +0 -596
  691. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_tr.js +0 -182
  692. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_tr2.js +0 -845
  693. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_tr3.js +0 -596
  694. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_uk.js +0 -182
  695. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_uk2.js +0 -845
  696. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_uk3.js +0 -596
  697. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_vi.js +0 -182
  698. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_vi2.js +0 -845
  699. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_vi3.js +0 -596
  700. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_CN.js +0 -182
  701. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_CN2.js +0 -845
  702. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_CN3.js +0 -596
  703. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_TW.js +0 -182
  704. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_TW2.js +0 -845
  705. package/src/main/js/sap/ushell/thirdparty/_dynamics/messagebundle_zh_TW3.js +0 -596
  706. package/src/main/js/sap/ushell/thirdparty/_dynamics/mk.js +0 -6095
  707. package/src/main/js/sap/ushell/thirdparty/_dynamics/ms.js +0 -5617
  708. package/src/main/js/sap/ushell/thirdparty/_dynamics/nb.js +0 -6085
  709. package/src/main/js/sap/ushell/thirdparty/_dynamics/nl.js +0 -6252
  710. package/src/main/js/sap/ushell/thirdparty/_dynamics/nl_BE.js +0 -6252
  711. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css10.js +0 -7
  712. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css11.js +0 -7
  713. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css12.js +0 -7
  714. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css13.js +0 -7
  715. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css14.js +0 -7
  716. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css15.js +0 -7
  717. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css16.js +0 -7
  718. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css17.js +0 -7
  719. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css18.js +0 -7
  720. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css19.js +0 -7
  721. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css20.js +0 -7
  722. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css21.js +0 -7
  723. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css22.js +0 -7
  724. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css23.js +0 -7
  725. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css24.js +0 -7
  726. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css25.js +0 -7
  727. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css26.js +0 -7
  728. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css27.js +0 -7
  729. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css4.js +0 -7
  730. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css5.js +0 -7
  731. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css6.js +0 -7
  732. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css7.js +0 -7
  733. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css8.js +0 -7
  734. package/src/main/js/sap/ushell/thirdparty/_dynamics/parameters-bundle.css9.js +0 -7
  735. package/src/main/js/sap/ushell/thirdparty/_dynamics/pl.js +0 -6639
  736. package/src/main/js/sap/ushell/thirdparty/_dynamics/pt.js +0 -6165
  737. package/src/main/js/sap/ushell/thirdparty/_dynamics/pt_PT.js +0 -6230
  738. package/src/main/js/sap/ushell/thirdparty/_dynamics/ro.js +0 -6250
  739. package/src/main/js/sap/ushell/thirdparty/_dynamics/ru.js +0 -6553
  740. package/src/main/js/sap/ushell/thirdparty/_dynamics/ru_UA.js +0 -6553
  741. package/src/main/js/sap/ushell/thirdparty/_dynamics/sk.js +0 -6482
  742. package/src/main/js/sap/ushell/thirdparty/_dynamics/sl.js +0 -6494
  743. package/src/main/js/sap/ushell/thirdparty/_dynamics/sr.js +0 -6291
  744. package/src/main/js/sap/ushell/thirdparty/_dynamics/sr_Latn.js +0 -6278
  745. package/src/main/js/sap/ushell/thirdparty/_dynamics/sv.js +0 -6126
  746. package/src/main/js/sap/ushell/thirdparty/_dynamics/th.js +0 -5928
  747. package/src/main/js/sap/ushell/thirdparty/_dynamics/tr.js +0 -6146
  748. package/src/main/js/sap/ushell/thirdparty/_dynamics/uk.js +0 -6504
  749. package/src/main/js/sap/ushell/thirdparty/_dynamics/vi.js +0 -5720
  750. package/src/main/js/sap/ushell/thirdparty/_dynamics/zh_CN.js +0 -5770
  751. package/src/main/js/sap/ushell/thirdparty/_dynamics/zh_HK.js +0 -5779
  752. package/src/main/js/sap/ushell/thirdparty/_dynamics/zh_SG.js +0 -5779
  753. package/src/main/js/sap/ushell/thirdparty/_dynamics/zh_TW.js +0 -5846
  754. package/src/main/js/sap/ushell/thirdparty/encodeXML.js +0 -87
  755. package/src/main/js/sap/ushell/thirdparty/event-strict.js +0 -7
  756. package/src/main/js/sap/ushell/thirdparty/generateHighlightedMarkup.js +0 -9
  757. package/src/main/js/sap/ushell/thirdparty/i18n-defaults.js +0 -115
  758. package/src/main/js/sap/ushell/thirdparty/i18n-defaults2.js +0 -157
  759. package/src/main/js/sap/ushell/thirdparty/information.js +0 -100
  760. package/src/main/js/sap/ushell/thirdparty/information2.js +0 -13
  761. package/src/main/js/sap/ushell/thirdparty/overflow.js +0 -25
  762. package/src/main/js/sap/ushell/thirdparty/parameters-bundle.css.js +0 -11
  763. package/src/main/js/sap/ushell/thirdparty/parameters-bundle.css2.js +0 -44
  764. package/src/main/js/sap/ushell/thirdparty/parameters-bundle.css3.js +0 -8
  765. package/src/main/js/sap/ushell/thirdparty/query.js +0 -7
  766. package/src/main/js/sap/ushell/thirdparty/slim-arrow-down.js +0 -44
  767. package/src/main/js/sap/ushell/thirdparty/sys-enter-2.js +0 -7
  768. package/src/main/js/sap/ushell/thirdparty/toLowercaseEnumValue.js +0 -7
  769. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-icons/AllIcons.js +0 -26
  770. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-icons-business-suite/AllIcons.js +0 -26
  771. package/src/main/js/sap/ushell/thirdparty/ui5/webcomponents-icons-tnt/AllIcons.js +0 -26
  772. package/src/main/js/sap/ushell/thirdparty/webcomponents-base.js +0 -4300
  773. package/src/main/js/sap/ushell/thirdparty/webcomponents-base2.js +0 -7
  774. package/src/main/js/sap/ushell/thirdparty/webcomponents-fiori.js +0 -146
  775. package/src/main/js/sap/ushell/thirdparty/webcomponents.js +0 -381
  776. package/src/main/js/sap/ushell/thirdparty/willShowContent.js +0 -7
@@ -1,4300 +0,0 @@
1
- sap.ui.define(['require', 'exports', 'sap/ushell/thirdparty/Icons'], (function (require, exports, Icons) { 'use strict';
2
-
3
- const p$5=t=>{const e=t.prototype.openEnd;t.prototype.openEnd=function(){return this._mAttributes.popover&&delete this._mAttributes.popover,e.apply(this)};};
4
-
5
- const n$g=Icons.m("AllOpenedPopupsRegistry",{openedRegistry:[]}),l$a=e=>{n$g.openedRegistry.push(e);},u$6=e=>{const t=n$g.openedRegistry.findIndex(o=>o.instance===e);t>-1&&n$g.openedRegistry.splice(t,1);},y$4=()=>n$g.openedRegistry[n$g.openedRegistry.length-1].instance,g$4=e=>{for(let t=n$g.openedRegistry.length-1;t>=0;t--){const o=n$g.openedRegistry[t];if(o.type!=="OpenUI5")return false;if(o.instance===e)break}return true},h$2=e=>{e.setAttribute("popover","manual"),e.showPopover();},f$6=e=>{e.hasAttribute("popover")&&(e.hidePopover(),e.removeAttribute("popover"));},a$c=(e=document)=>e.querySelector(":popover-open")?true:Array.from(e.querySelectorAll("*")).some(t=>{const o=t.shadowRoot;return o&&a$c(o)}),v$4=e=>{const t=e.prototype.open;e.prototype.open=function(...p){t.apply(this,p);const s=a$c();if(["OPENING","OPEN"].includes(this.getOpenState())&&s){const r=this.getContent();if(r){const i=r instanceof HTMLElement?r:r?.getDomRef();i&&h$2(i);}}l$a({type:"OpenUI5",instance:this});};},O$3=e=>{const t=e.prototype._closed;e.prototype._closed=function(...p){const s=this.getContent(),c=s instanceof HTMLElement?s:s?.getDomRef();t.apply(this,p),c&&f$6(c),u$6(this);};},m$8=e=>{const t=e.prototype.onFocusEvent;e.prototype.onFocusEvent=function(p){g$4(this)&&t.call(this,p);};},I$3=()=>{const e=new CSSStyleSheet;e.replaceSync(".sapMPopup-CTX:popover-open { inset: unset; }"),document.adoptedStyleSheets=[...document.adoptedStyleSheets,e];},P$2=e=>{v$4(e),O$3(e),I$3(),m$8(e);};
6
-
7
- let a$b = class a{static isAtLeastVersion116(){if(!window.sap.ui.version)return true;const e=window.sap.ui.version.split(".");return !e||e.length<2?false:parseInt(e[0])>1||parseInt(e[1])>=116}static isOpenUI5Detected(){return typeof window.sap?.ui?.require=="function"}static init(){return a.isOpenUI5Detected()?(a.initPromise||(a.initPromise=new Promise(t=>{window.sap.ui.require(["sap/ui/core/Core"],async e=>{const i=()=>{let n=["sap/ui/core/Popup","sap/ui/core/Patcher","sap/ui/core/LocaleData"];a.isAtLeastVersion116()&&(n=[...n,"sap/base/i18n/Formatting","sap/base/i18n/Localization","sap/ui/core/ControlBehavior","sap/ui/core/Theming","sap/ui/core/date/CalendarUtils"]),window.sap.ui.require(n,(o,r)=>{p$5(r),P$2(o),t();});};a.isAtLeastVersion116()?(await e.ready(),i()):e.attachInit(i);});})),a.initPromise):Promise.resolve()}static getConfigurationSettingsObject(){if(!a.isOpenUI5Detected())return {};if(a.isAtLeastVersion116()){const n=window.sap.ui.require("sap/ui/core/ControlBehavior"),o=window.sap.ui.require("sap/base/i18n/Localization"),r=window.sap.ui.require("sap/ui/core/Theming"),s=window.sap.ui.require("sap/base/i18n/Formatting"),c=window.sap.ui.require("sap/ui/core/date/CalendarUtils");return {animationMode:n.getAnimationMode(),language:o.getLanguage(),theme:r.getTheme(),themeRoot:r.getThemeRoot(),rtl:o.getRTL(),timezone:o.getTimezone(),calendarType:s.getCalendarType(),formatSettings:{firstDayOfWeek:c.getWeekConfigurationValues().firstDayOfWeek,legacyDateCalendarCustomizing:s.getCustomIslamicCalendarData?.()??s.getLegacyDateCalendarCustomizing?.()}}}const e=window.sap.ui.require("sap/ui/core/Core").getConfiguration(),i=window.sap.ui.require("sap/ui/core/LocaleData");return {animationMode:e.getAnimationMode(),language:e.getLanguage(),theme:e.getTheme(),themeRoot:e.getThemeRoot(),rtl:e.getRTL(),timezone:e.getTimezone(),calendarType:e.getCalendarType(),formatSettings:{firstDayOfWeek:i?i.getInstance(e.getLocale()).getFirstDayOfWeek():void 0,legacyDateCalendarCustomizing:e.getFormatSettings().getLegacyDateCalendarCustomizing()}}}static getLocaleDataObject(){if(!a.isOpenUI5Detected())return;const t=window.sap.ui.require("sap/ui/core/LocaleData");if(a.isAtLeastVersion116()){const n=window.sap.ui.require("sap/base/i18n/Localization");return t.getInstance(n.getLanguageTag())._get()}const i=window.sap.ui.require("sap/ui/core/Core").getConfiguration();return t.getInstance(i.getLocale())._get()}static _listenForThemeChange(){if(a.isAtLeastVersion116()){const t=window.sap.ui.require("sap/ui/core/Theming");t.attachApplied(()=>{Icons.u$1(t.getTheme());});}else {const t=window.sap.ui.require("sap/ui/core/Core"),e=t.getConfiguration();t.attachThemeChanged(()=>{Icons.u$1(e.getTheme());});}}static attachListeners(){a.isOpenUI5Detected()&&a._listenForThemeChange();}static cssVariablesLoaded(){if(!a.isOpenUI5Detected())return;const t=[...document.head.children].find(e=>e.id==="sap-ui-theme-sap.ui.core");return t?!!t.href.match(/\/css(-|_)variables\.css/)||!!t.href.match(/\/library\.css/):false}static addOpenedPopup(t){l$a(t);}static removeOpenedPopup(t){u$6(t);}static getTopmostPopup(){return y$4()}};Icons.s("OpenUI5Support",a$b);
8
-
9
- /**
10
- * @license
11
- * Copyright 2017 Google LLC
12
- * SPDX-License-Identifier: BSD-3-Clause
13
- */
14
- var t$7;const i$9=window,s$e=i$9.trustedTypes,e$9=s$e?s$e.createPolicy("lit-html",{createHTML:t=>t}):void 0,o$8="$lit$",n$f=`lit$${(Math.random()+"").slice(9)}$`,l$9="?"+n$f,h$1=`<${l$9}>`,r$6=document,u$5=()=>r$6.createComment(""),d$4=t=>null===t||"object"!=typeof t&&"function"!=typeof t,c$6=Array.isArray,v$3=t=>c$6(t)||"function"==typeof(null==t?void 0:t[Symbol.iterator]),a$a="[ \t\n\f\r]",f$5=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,_$2=/-->/g,m$7=/>/g,p$4=RegExp(`>|${a$a}(?:([^\\s"'>=/]+)(${a$a}*=${a$a}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),g$3=/'/g,$=/"/g,y$3=/^(?:script|style|textarea|title)$/i,w=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x$1=w(1),b$7=w(2),T=Symbol.for("lit-noChange"),A$1=Symbol.for("lit-nothing"),E=new WeakMap,C$3=r$6.createTreeWalker(r$6,129,null,false);function P$1(t,i){if(!Array.isArray(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==e$9?e$9.createHTML(i):i}const V$1=(t,i)=>{const s=t.length-1,e=[];let l,r=2===i?"<svg>":"",u=f$5;for(let i=0;i<s;i++){const s=t[i];let d,c,v=-1,a=0;for(;a<s.length&&(u.lastIndex=a,c=u.exec(s),null!==c);)a=u.lastIndex,u===f$5?"!--"===c[1]?u=_$2:void 0!==c[1]?u=m$7:void 0!==c[2]?(y$3.test(c[2])&&(l=RegExp("</"+c[2],"g")),u=p$4):void 0!==c[3]&&(u=p$4):u===p$4?">"===c[0]?(u=null!=l?l:f$5,v=-1):void 0===c[1]?v=-2:(v=u.lastIndex-c[2].length,d=c[1],u=void 0===c[3]?p$4:'"'===c[3]?$:g$3):u===$||u===g$3?u=p$4:u===_$2||u===m$7?u=f$5:(u=p$4,l=void 0);const w=u===p$4&&t[i+1].startsWith("/>")?" ":"";r+=u===f$5?s+h$1:v>=0?(e.push(d),s.slice(0,v)+o$8+s.slice(v)+n$f+w):s+n$f+(-2===v?(e.push(void 0),i):w);}return [P$1(t,r+(t[s]||"<?>")+(2===i?"</svg>":"")),e]};let N$1 = class N{constructor({strings:t,_$litType$:i},e){let h;this.parts=[];let r=0,d=0;const c=t.length-1,v=this.parts,[a,f]=V$1(t,i);if(this.el=N.createElement(a,e),C$3.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes);}for(;null!==(h=C$3.nextNode())&&v.length<c;){if(1===h.nodeType){if(h.hasAttributes()){const t=[];for(const i of h.getAttributeNames())if(i.endsWith(o$8)||i.startsWith(n$f)){const s=f[d++];if(t.push(i),void 0!==s){const t=h.getAttribute(s.toLowerCase()+o$8).split(n$f),i=/([.?@])?(.*)/.exec(s);v.push({type:1,index:r,name:i[2],strings:t,ctor:"."===i[1]?H:"?"===i[1]?L:"@"===i[1]?z:k$1});}else v.push({type:6,index:r});}for(const i of t)h.removeAttribute(i);}if(y$3.test(h.tagName)){const t=h.textContent.split(n$f),i=t.length-1;if(i>0){h.textContent=s$e?s$e.emptyScript:"";for(let s=0;s<i;s++)h.append(t[s],u$5()),C$3.nextNode(),v.push({type:2,index:++r});h.append(t[i],u$5());}}}else if(8===h.nodeType)if(h.data===l$9)v.push({type:2,index:r});else {let t=-1;for(;-1!==(t=h.data.indexOf(n$f,t+1));)v.push({type:7,index:r}),t+=n$f.length-1;}r++;}}static createElement(t,i){const s=r$6.createElement("template");return s.innerHTML=t,s}};function S$1(t,i,s=t,e){var o,n,l,h;if(i===T)return i;let r=void 0!==e?null===(o=s._$Co)||void 0===o?void 0:o[e]:s._$Cl;const u=d$4(i)?void 0:i._$litDirective$;return (null==r?void 0:r.constructor)!==u&&(null===(n=null==r?void 0:r._$AO)||void 0===n||n.call(r,false),void 0===u?r=void 0:(r=new u(t),r._$AT(t,s,e)),void 0!==e?(null!==(l=(h=s)._$Co)&&void 0!==l?l:h._$Co=[])[e]=r:s._$Cl=r),void 0!==r&&(i=S$1(t,r._$AS(t,i.values),r,e)),i}let M$1 = class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i;}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var i;const{el:{content:s},parts:e}=this._$AD,o=(null!==(i=null==t?void 0:t.creationScope)&&void 0!==i?i:r$6).importNode(s,true);C$3.currentNode=o;let n=C$3.nextNode(),l=0,h=0,u=e[0];for(;void 0!==u;){if(l===u.index){let i;2===u.type?i=new R$3(n,n.nextSibling,this,t):1===u.type?i=new u.ctor(n,u.name,u.strings,this,t):6===u.type&&(i=new Z(n,this,t)),this._$AV.push(i),u=e[++h];}l!==(null==u?void 0:u.index)&&(n=C$3.nextNode(),l++);}return C$3.currentNode=r$6,o}v(t){let i=0;for(const s of this._$AV) void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++;}};let R$3 = class R{constructor(t,i,s,e){var o;this.type=2,this._$AH=A$1,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cp=null===(o=null==e?void 0:e.isConnected)||void 0===o||o;}get _$AU(){var t,i;return null!==(i=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==i?i:this._$Cp}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===(null==t?void 0:t.nodeType)&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S$1(this,t,i),d$4(t)?t===A$1||null==t||""===t?(this._$AH!==A$1&&this._$AR(),this._$AH=A$1):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):v$3(t)?this.T(t):this._(t);}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t));}_(t){this._$AH!==A$1&&d$4(this._$AH)?this._$AA.nextSibling.data=t:this.$(r$6.createTextNode(t)),this._$AH=t;}g(t){var i;const{values:s,_$litType$:e}=t,o="number"==typeof e?this._$AC(t):(void 0===e.el&&(e.el=N$1.createElement(P$1(e.h,e.h[0]),this.options)),e);if((null===(i=this._$AH)||void 0===i?void 0:i._$AD)===o)this._$AH.v(s);else {const t=new M$1(o,this),i=t.u(this.options);t.v(s),this.$(i),this._$AH=t;}}_$AC(t){let i=E.get(t.strings);return void 0===i&&E.set(t.strings,i=new N$1(t)),i}T(t){c$6(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const o of t)e===i.length?i.push(s=new R(this.k(u$5()),this.k(u$5()),this,this.options)):s=i[e],s._$AI(o),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e);}_$AR(t=this._$AA.nextSibling,i){var s;for(null===(s=this._$AP)||void 0===s||s.call(this,false,true,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i;}}setConnected(t){var i;void 0===this._$AM&&(this._$Cp=t,null===(i=this._$AP)||void 0===i||i.call(this,t));}};let k$1 = class k{constructor(t,i,s,e,o){this.type=1,this._$AH=A$1,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=o,s.length>2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A$1;}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=false;if(void 0===o)t=S$1(this,t,i,0),n=!d$4(t)||t!==this._$AH&&t!==T,n&&(this._$AH=t);else {const e=t;let l,h;for(t=o[0],l=0;l<o.length-1;l++)h=S$1(this,e[s+l],i,l),h===T&&(h=this._$AH[l]),n||(n=!d$4(h)||h!==this._$AH[l]),h===A$1?t=A$1:t!==A$1&&(t+=(null!=h?h:"")+o[l+1]),this._$AH[l]=h;}n&&!e&&this.j(t);}j(t){t===A$1?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:"");}};class H extends k$1{constructor(){super(...arguments),this.type=3;}j(t){this.element[this.name]=t===A$1?void 0:t;}}const I$2=s$e?s$e.emptyScript:"";class L extends k$1{constructor(){super(...arguments),this.type=4;}j(t){t&&t!==A$1?this.element.setAttribute(this.name,I$2):this.element.removeAttribute(this.name);}}class z extends k$1{constructor(t,i,s,e,o){super(t,i,s,e,o),this.type=5;}_$AI(t,i=this){var s;if((t=null!==(s=S$1(this,t,i,0))&&void 0!==s?s:A$1)===T)return;const e=this._$AH,o=t===A$1&&e!==A$1||t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive,n=t!==A$1&&(e===A$1||o);o&&this.element.removeEventListener(this.name,this,e),n&&this.element.addEventListener(this.name,this,t),this._$AH=t;}handleEvent(t){var i,s;"function"==typeof this._$AH?this._$AH.call(null!==(s=null===(i=this.options)||void 0===i?void 0:i.host)&&void 0!==s?s:this.element,t):this._$AH.handleEvent(t);}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s;}get _$AU(){return this._$AM._$AU}_$AI(t){S$1(this,t);}}const B=i$9.litHtmlPolyfillSupport;null==B||B(N$1,R$3),(null!==(t$7=i$9.litHtmlVersions)&&void 0!==t$7?t$7:i$9.litHtmlVersions=[]).push("2.8.0");
15
-
16
- /**
17
- * @license
18
- * Copyright 2020 Google LLC
19
- * SPDX-License-Identifier: BSD-3-Clause
20
- */const e$8=Symbol.for(""),l$8=t=>{if((null==t?void 0:t.r)===e$8)return null==t?void 0:t._$litStatic$},o$7=t=>({_$litStatic$:t,r:e$8}),s$d=new Map,a$9=t=>(r,...e)=>{const o=e.length;let i,a;const n=[],u=[];let c,$=0,f=false;for(;$<o;){for(c=r[$];$<o&&void 0!==(a=e[$],i=l$8(a));)c+=i+r[++$],f=true;$!==o&&u.push(a),n.push(c),$++;}if($===o&&n.push(r[o]),f){const t=n.join("$$lit$$");void 0===(r=s$d.get(t))&&(n.raw=n,s$d.set(t,r=n)),e=u;}return t(r,...e)},n$e=a$9(x$1),u$4=a$9(b$7);
21
-
22
- let t$6 = class t{static{this.html=n$e;}static{this.svg=u$4;}static{this.unsafeStatic=o$7;}};Icons.s("LitStatic",t$6);
23
-
24
- const a$8=async e=>{switch(e){case "en":return (await new Promise(function (resolve, reject) { require(['sap/ushell/thirdparty/_dynamics/messagebundle_en'], resolve, reject); })).default;case "en_US_sappsd":return (await new Promise(function (resolve, reject) { require(['sap/ushell/thirdparty/_dynamics/messagebundle_en_US_sappsd'], resolve, reject); })).default;case "en_US_saprigi":return (await new Promise(function (resolve, reject) { require(['sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saprigi'], resolve, reject); })).default;case "en_US_saptrc":return (await new Promise(function (resolve, reject) { require(['sap/ushell/thirdparty/_dynamics/messagebundle_en_US_saptrc'], resolve, reject); })).default;default:throw "unknown locale"}},r$5=async e=>{const t=await a$8(e);if(typeof t=="string"&&t.endsWith(".json"))throw new Error('[i18n] Invalid bundling detected - dynamic JSON imports bundled as URLs. Switch to inlining JSON files from the build. Check the "Assets" documentation for more information.');return t},i$8=["en","en_US_sappsd","en_US_saprigi","en_US_saptrc"];i$8.forEach(e=>{Icons.$("sap/ushell/gen/ui5/webcomponents-base",e,r$5);});
25
-
26
- const t$5=new WeakMap;let a$7 = class a{static get tasks(){return t$5}static enqueue(s,e){t$5.has(s)||t$5.set(s,[]),t$5.get(s).push(e);}static run(s,e){return t$5.has(s)||t$5.set(s,[]),e().then(()=>{const T=t$5.get(s);if(T.length>0)return a.run(s,T.shift());t$5.delete(s);})}static push(s,e){t$5.get(s)?a.enqueue(s,e):a.run(s,e);}};
27
-
28
- const f$4=e=>{let n=null,a=false,i,o,r;const m=new Promise((t,c)=>{r=u=>{n=n||u;const d=u-n,l=e.duration-d;if(d<=e.duration){const s=1-l/e.duration;e.advance(s),a||(i=requestAnimationFrame(r));}else e.advance(1),t();},o=()=>{a=true,cancelAnimationFrame(i),c(new Error("animation stopped"));};}).catch(t=>t);return a$7.push(e.element,()=>(typeof e.beforeStart=="function"&&e.beforeStart(),requestAnimationFrame(r),new Promise(t=>{m.then(()=>t());}))),{promise:()=>m,stop:()=>o}},v$2=400;
29
-
30
- const n$d=(r,c,a)=>{let o,l;return f$4({beforeStart:()=>{o=r.scrollLeft,l=r.scrollTop;},duration:v$2,element:r,advance:t=>{r.scrollLeft=o+t*c,r.scrollTop=l+t*a;}})};
31
-
32
- const b$6=t=>{let o,a,d,r,s,p,g,y,n,l,h,T;const B=f$4({beforeStart:()=>{t.style.display="block",o=getComputedStyle(t),a=parseFloat(o.paddingTop),d=parseFloat(o.paddingBottom),r=parseFloat(o.marginTop),s=parseFloat(o.marginBottom),p=parseFloat(o.height),g=t.style.overflow,y=t.style.paddingTop,n=t.style.paddingBottom,l=t.style.marginTop,h=t.style.marginBottom,T=t.style.height,t.style.overflow="hidden",t.style.paddingTop="0",t.style.paddingBottom="0",t.style.marginTop="0",t.style.marginBottom="0",t.style.height="0";},duration:v$2,element:t,advance:i=>{t.style.display="block",t.style.paddingTop=`${a*i}px`,t.style.paddingBottom=`${d*i}px`,t.style.marginTop=`${r*i}px`,t.style.marginBottom=`${s*i}px`,t.style.height=`${p*i}px`;}});return B.promise().then(()=>{t.style.overflow=g,t.style.paddingTop=y,t.style.paddingBottom=n,t.style.marginTop=l,t.style.marginBottom=h,t.style.height=T;}),B};
33
-
34
- const u$3=o=>{let i,a,r,d,n,s,p,g,e,l,y,m;const h=f$4({beforeStart:()=>{const t=o;i=getComputedStyle(t),a=parseFloat(i.paddingTop),r=parseFloat(i.paddingBottom),d=parseFloat(i.marginTop),n=parseFloat(i.marginBottom),s=parseFloat(i.height),p=t.style.overflow,g=t.style.paddingTop,e=t.style.paddingBottom,l=t.style.marginTop,y=t.style.marginBottom,m=t.style.height,t.style.overflow="hidden";},duration:v$2,element:o,advance:t=>{o.style.paddingTop=`${a-a*t}px`,o.style.paddingBottom=`${r-r*t}px`,o.style.marginTop=`${d-d*t}px`,o.style.marginBottom=`${n-n*t}px`,o.style.height=`${s-s*t}px`;}});return h.promise().then(t=>{t instanceof Error||(o.style.overflow=p,o.style.paddingTop=g,o.style.paddingBottom=e,o.style.marginTop=l,o.style.marginBottom=y,o.style.height=m,o.style.display="none");}),h};
35
-
36
- let n$c;Icons.i$1(()=>{n$c=void 0;});const d$3=()=>(n$c===void 0&&(n$c=Icons.C$1()),n$c),m$6=o=>{Object.values(Icons.u).includes(o)&&(n$c=o);};
37
-
38
- var s$c=(i=>(i.Gregorian="Gregorian",i.Islamic="Islamic",i.Japanese="Japanese",i.Buddhist="Buddhist",i.Persian="Persian",i))(s$c||{});
39
-
40
- let n$b;Icons.i$1(()=>{n$b=void 0;});const i$7=()=>(n$b===void 0&&(n$b=Icons.D$1()),n$b&&n$b in s$c?n$b:s$c.Gregorian);
41
-
42
- let t$4;let a$6 = class a{static getLegacyDateCalendarCustomizing(){return t$4===void 0&&(t$4=Icons.M()),t$4.legacyDateCalendarCustomizing||[]}};Icons.s("LegacyDateFormats",a$6);
43
-
44
- let e$7;Icons.i$1(()=>{e$7=void 0;});const n$a=()=>(e$7===void 0&&(e$7=Icons.M()),e$7.firstDayOfWeek),i$6=Icons.n$1("LegacyDateFormats"),m$5=i$6?a$6.getLegacyDateCalendarCustomizing:()=>[];
45
-
46
- var s$b = ":host{justify-content:center;align-items:center;display:flex;color:var(--sapList_TextColor);background-color:var(--sapList_Background);font-family:var(--sapFontFamily);height:var(--sapElement_LineHeight);border-bottom:var(--sapList_BorderWidth) solid var(--sapList_BorderColor);opacity:.8;position:absolute;padding:0 1rem;top:-1000px;left:-1000px}";
47
-
48
- const e$6={key:"DRAG_DROP_MULTIPLE_TEXT",defaultText:"{0} items"};
49
-
50
- const l$7=2;let a$5=null;const g$2=e=>{a$5=e;},d$2=()=>{a$5=null;},p$3=()=>a$5,u$2=async e=>{const t=document.createElement("div"),n=await Icons.f$2("sap/ushell/gen/ui5/webcomponents-base"),r=t.attachShadow({mode:"open"}),o=new CSSStyleSheet;return o.replaceSync(s$b),r.adoptedStyleSheets=[o],r.textContent=n.getText(e$6,e),t},m$4=async(e,t)=>{if(e<l$7){console.warn(`Cannot start multiple drag with count ${e}. Minimum is ${l$7}.`);return}if(!t.dataTransfer)return;const n=await u$2(e);document.body.appendChild(n),t.dataTransfer.setDragImage(n,0,0),requestAnimationFrame(()=>{n.remove();});},D$2={setDraggedElement:g$2,clearDraggedElement:d$2,getDraggedElement:p$3,startMultipleDrag:m$4};
51
-
52
- const c$5=["value-changed","click"];let e$5;Icons.i$1(()=>{e$5=void 0;});const s$a=t=>c$5.includes(t),l$6=t=>{const n=o$6();return !(typeof n!="boolean"&&n.events&&n.events.includes&&n.events.includes(t))},o$6=()=>(e$5===void 0&&(e$5=Icons.F()),e$5),f$3=t=>{e$5=t;},a$4=t=>{const n=o$6();return s$a(t)?false:n===true?true:!l$6(t)};
53
-
54
- const m$3=(a={})=>e=>{if(Object.prototype.hasOwnProperty.call(e,"metadata")||(e.metadata={}),typeof a=="string"){e.metadata.tag=a;return}const{tag:i,languageAware:o,themeAware:r,cldr:s,fastNavigation:l,formAssociated:n,shadowRootOptions:d}=a;e.metadata.tag=i,o&&(e.metadata.languageAware=o),s&&(e.metadata.cldr=s),r&&(e.metadata.themeAware=r),l&&(e.metadata.fastNavigation=l),n&&(e.metadata.formAssociated=n),d&&(e.metadata.shadowRootOptions=d),["renderer","template","styles","dependencies"].forEach(t=>{a[t]&&Object.defineProperty(e,t,{get:()=>a[t]});});};
55
-
56
- const b$5=(n,e={})=>t=>{Object.prototype.hasOwnProperty.call(t,"metadata")||(t.metadata={});const a=t.metadata;a.events||(a.events={});const l=a.events;l[n]||(e.bubbles=!!e.bubbles,e.cancelable=!!e.cancelable,l[n]=e);};
57
-
58
- const s$9=o=>(p,r)=>{const t=p.constructor;Object.prototype.hasOwnProperty.call(t,"metadata")||(t.metadata={});const e=t.metadata;e.properties||(e.properties={});const a=e.properties;a[r]||(a[r]=o??{});};
59
-
60
- const d$1=e=>(l,a)=>{const r=l.constructor;Object.prototype.hasOwnProperty.call(r,"metadata")||(r.metadata={});const o=r.metadata;o.slots||(o.slots={});const t=o.slots;if(e&&e.default&&t.default)throw new Error("Only one slot can be the default slot.");const n=e&&e.default?"default":a;e=e||{type:HTMLElement},e.type||(e.type=HTMLElement),t[n]||(t[n]=e),e.default&&(delete t.default.default,t.default.propertyName=a),r.metadata.managedSlots=true;};
61
-
62
- const y$2={BACKSPACE:8,TAB:9,ENTER:13,SHIFT:16,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,ARROW_LEFT:37,ARROW_UP:38,ARROW_RIGHT:39,ARROW_DOWN:40,DELETE:46,NUMPAD_PLUS:107,NUMPAD_MINUS:109,F4:115,F8:119,F10:121,PLUS:187,MINUS:219},b$4=o=>(o.key?o.key==="Enter":o.keyCode===y$2.ENTER)&&!a$3(o),i$5=o=>(o.key?o.key==="Enter":o.keyCode===y$2.ENTER)&&e$4(o,false,false,true),C$2=o=>e$4(o,true,false,false),A=o=>(o.key?o.key==="Spacebar"||o.key===" ":o.keyCode===y$2.SPACE)&&!a$3(o),K=o=>(o.key?o.key==="Spacebar"||o.key===" ":o.keyCode===y$2.SPACE)&&e$4(o,false,false,true),D$1=o=>(o.key?o.key==="ArrowLeft"||o.key==="Left":o.keyCode===y$2.ARROW_LEFT)&&!a$3(o),R$2=o=>(o.key?o.key==="ArrowRight"||o.key==="Right":o.keyCode===y$2.ARROW_RIGHT)&&!a$3(o),P=o=>(o.key?o.key==="ArrowUp"||o.key==="Up":o.keyCode===y$2.ARROW_UP)&&!a$3(o),_$1=o=>(o.key?o.key==="ArrowDown"||o.key==="Down":o.keyCode===y$2.ARROW_DOWN)&&!a$3(o),O$2=o=>(o.key?o.key==="ArrowUp"||o.key==="Up":o.keyCode===y$2.ARROW_UP)&&e$4(o,false,false,true),N=o=>(o.key?o.key==="ArrowDown"||o.key==="Down":o.keyCode===y$2.ARROW_DOWN)&&e$4(o,false,false,true),h=o=>(o.key?o.key==="ArrowLeft"||o.key==="Left":o.keyCode===y$2.ARROW_LEFT)&&e$4(o,false,false,true),I$1=o=>(o.key?o.key==="ArrowRight"||o.key==="Right":o.keyCode===y$2.ARROW_RIGHT)&&e$4(o,false,false,true),M=o=>(o.key?o.key==="Home":o.keyCode===y$2.HOME)&&!a$3(o),n$9=o=>(o.key?o.key==="End":o.keyCode===y$2.END)&&!a$3(o),m$2=o=>(o.key?o.key==="Escape"||o.key==="Esc":o.keyCode===y$2.ESCAPE)&&!a$3(o),x=o=>(o.key?o.key==="Tab":o.keyCode===y$2.TAB)&&!a$3(o),V=o=>(o.key?o.key==="Tab":o.keyCode===y$2.TAB)&&e$4(o,false,false,true),Q=o=>(o.key?o.key==="Backspace":o.keyCode===y$2.BACKSPACE)&&!a$3(o),X=o=>(o.key?o.key==="Delete":o.keyCode===y$2.DELETE)&&!a$3(o),j=o=>(o.key?o.key==="PageUp":o.keyCode===y$2.PAGE_UP)&&!a$3(o),q=o=>(o.key?o.key==="PageDown":o.keyCode===y$2.PAGE_DOWN)&&!a$3(o),ao=o=>(o.key?o.key==="+":o.keyCode===y$2.PLUS)||o.keyCode===y$2.NUMPAD_PLUS&&!a$3(o),so=o=>(o.key?o.key==="-":o.keyCode===y$2.MINUS)||o.keyCode===y$2.NUMPAD_MINUS&&!a$3(o),ko=o=>o.key?s$8(o)||Ao(o):o.keyCode===y$2.F4&&!a$3(o)||o.keyCode===y$2.ARROW_DOWN&&e$4(o,false,true,false),ro=o=>o.key==="F2"&&!a$3(o),s$8=o=>o.key==="F4"&&!a$3(o),Eo=o=>(o.key?o.key==="F10":o.keyCode===y$2.F10)&&e$4(o,false,false,true),Co=o=>(o.key?o.key==="F8":o.keyCode===y$2.F8)&&e$4(o,true,true,false),Ao=o=>(o.key==="ArrowDown"||o.key==="Down"||o.key==="ArrowUp"||o.key==="Up")&&e$4(o,false,true,false),Ko=o=>o.key==="Shift"||o.keyCode===y$2.SHIFT,a$3=o=>o.shiftKey||o.altKey||k(o),k=o=>!!(o.metaKey||o.ctrlKey),e$4=(o,r,l,E)=>o.shiftKey===E&&o.altKey===l&&k(o)===r;
63
-
64
- const t$3=()=>{let e=document.activeElement;for(;e&&e.shadowRoot&&e.shadowRoot.activeElement;)e=e.shadowRoot.activeElement;return e};
65
-
66
- var r$4=(l=>(l.Auto="Auto",l.Vertical="Vertical",l.Horizontal="Horizontal",l.Paging="Paging",l))(r$4||{});
67
-
68
- var l$5=(c=>(c.Static="Static",c.Cyclic="Cyclic",c))(l$5||{});
69
-
70
- const s$7=new Map,o$5=new Map,n$8=new Map,c$4=e=>{if(!s$7.has(e)){const a=b$3(e.split("-"));s$7.set(e,a);}return s$7.get(e)},l$4=e=>{if(!o$5.has(e)){const a=e.replace(/([a-z])([A-Z])/g,"$1-$2").toLowerCase();o$5.set(e,a);}return o$5.get(e)},p$2=e=>l$4(e),b$3=e=>e.map((a,t)=>t===0?a.toLowerCase():a.charAt(0).toUpperCase()+a.slice(1).toLowerCase()).join(""),C$1=e=>{const a=n$8.get(e);if(a)return a;const t=c$4(e),r=t.charAt(0).toUpperCase()+t.slice(1);return n$8.set(e,r),r};
71
-
72
- const o$4=t=>{if(!(t instanceof HTMLElement))return "default";const e=t.getAttribute("slot");if(e){const r=e.match(/^(.+?)-\d+$/);return r?r[1]:e}return "default"},n$7=t=>t instanceof HTMLSlotElement?t.assignedNodes({flatten:true}).filter(e=>e instanceof HTMLElement):[t],s$6=t=>t.reduce((e,r)=>e.concat(n$7(r)),[]);
73
-
74
- let p$1 = class p{constructor(t){this.metadata=t;}getInitialState(){if(Object.prototype.hasOwnProperty.call(this,"_initialState"))return this._initialState;const t={};if(this.slotsAreManaged()){const o=this.getSlots();for(const[e,s]of Object.entries(o)){const n=s.propertyName||e;t[n]=[],t[c$4(n)]=t[n];}}return this._initialState=t,t}static validateSlotValue(t,a){return g$1(t,a)}getPureTag(){return this.metadata.tag||""}getTag(){const t=this.metadata.tag;if(!t)return "";const a=Icons.g$1(t);return a?`${t}-${a}`:t}hasAttribute(t){const a=this.getProperties()[t];return a.type!==Object&&a.type!==Array&&!a.noAttribute}getPropertiesList(){return Object.keys(this.getProperties())}getAttributesList(){return this.getPropertiesList().filter(this.hasAttribute.bind(this)).map(l$4)}canSlotText(){return this.getSlots().default?.type===Node}hasSlots(){return !!Object.entries(this.getSlots()).length}hasIndividualSlots(){return this.slotsAreManaged()&&Object.values(this.getSlots()).some(t=>t.individualSlots)}slotsAreManaged(){return !!this.metadata.managedSlots}supportsF6FastNavigation(){return !!this.metadata.fastNavigation}getProperties(){return this.metadata.properties||(this.metadata.properties={}),this.metadata.properties}getEvents(){return this.metadata.events||(this.metadata.events={}),this.metadata.events}getSlots(){return this.metadata.slots||(this.metadata.slots={}),this.metadata.slots}isLanguageAware(){return !!this.metadata.languageAware}isThemeAware(){return !!this.metadata.themeAware}needsCLDR(){return !!this.metadata.cldr}getShadowRootOptions(){return this.metadata.shadowRootOptions||{}}isFormAssociated(){return !!this.metadata.formAssociated}shouldInvalidateOnChildChange(t,a,o){const e=this.getSlots()[t].invalidateOnChildChange;if(e===void 0)return false;if(typeof e=="boolean")return e;if(typeof e=="object"){if(a==="property"){if(e.properties===void 0)return false;if(typeof e.properties=="boolean")return e.properties;if(Array.isArray(e.properties))return e.properties.includes(o);throw new Error("Wrong format for invalidateOnChildChange.properties: boolean or array is expected")}if(a==="slot"){if(e.slots===void 0)return false;if(typeof e.slots=="boolean")return e.slots;if(Array.isArray(e.slots))return e.slots.includes(o);throw new Error("Wrong format for invalidateOnChildChange.slots: boolean or array is expected")}}throw new Error("Wrong format for invalidateOnChildChange: boolean or object is expected")}getI18n(){return this.metadata.i18n||(this.metadata.i18n={}),this.metadata.i18n}};const g$1=(r,t)=>(r&&n$7(r).forEach(a=>{if(!(a instanceof t.type))throw new Error(`The element is not of type ${t.type.toString()}`)}),r);
75
-
76
- const r$3=()=>Icons.m("CustomStyle.eventProvider",new Icons.i$2),n$6="CustomCSSChange",i$4=t=>{r$3().attachEvent(n$6,t);},u$1=t=>r$3().fireEvent(n$6,t),c$3=()=>Icons.m("CustomStyle.customCSSFor",{});let s$5;i$4(t=>{s$5||Icons.C$2({tag:t});});const g=(t,e)=>{const o=c$3();o[t]||(o[t]=[]),o[t].push(e),s$5=true;try{u$1(t);}finally{s$5=false;}return Icons.C$2({tag:t})},l$3=t=>{const e=c$3();return e[t]?e[t].join(""):""};
77
-
78
- const e$3=t=>Array.isArray(t)?t.filter(r=>!!r).flat(10).join(" "):t;
79
-
80
- const e$2=new Map;i$4(t=>{e$2.delete(`${t}_normal`);});const y$1=t=>{const o=t.getMetadata().getTag(),n=`${o}_normal`,s=Icons.n$1("OpenUI5Enablement");if(!e$2.has(n)){let l="";s&&(l=e$3(s.getBusyIndicatorStyles()));const a=l$3(o)||"",m=`${e$3(t.styles)} ${a} ${l}`;e$2.set(n,m);}return e$2.get(n)};
81
-
82
- const e$1=new Map;i$4(t=>{e$1.delete(`${t}_normal`);});const s$4=t=>{const n=`${t.getMetadata().getTag()}_normal`;if(!e$1.has(n)){const a=y$1(t),o=new CSSStyleSheet;o.replaceSync(a),e$1.set(n,[o]);}return e$1.get(n)};
83
-
84
- const s$3=o=>{const e=o.constructor,t=o.shadowRoot;if(!t){console.warn("There is no shadow root to update");return}t.adoptedStyleSheets=s$4(e),e.renderer(o,t);};
85
-
86
- const r$2=[],o$3=t=>r$2.some(s=>t.startsWith(s));
87
-
88
- const t$2=new WeakMap,n$5=(e,o,r)=>{const s=new MutationObserver(o);t$2.set(e,s),s.observe(e,r);},b$2=e=>{const o=t$2.get(e);o&&(o.disconnect(),t$2.delete(e));};
89
-
90
- const r$1=t=>t.matches(":dir(rtl)")?"rtl":"ltr";
91
-
92
- const s$2=["disabled","title","hidden","role","draggable"],r=e=>s$2.includes(e)||e.startsWith("aria")?true:![HTMLElement,Element,Node].some(t=>t.prototype.hasOwnProperty(e));
93
-
94
- const n$4=(t,r)=>{if(t.length!==r.length)return false;for(let e=0;e<t.length;e++)if(t[e]!==r[e])return false;return true};
95
-
96
- const n$3=(e,t)=>e.call(t);
97
-
98
- const o$2=t=>{s$1(t)&&e(t);},e=t=>{if(t._internals?.form){if(n$2(t),!t.name){t._internals?.setFormValue(null);return}t._internals.setFormValue(t.formFormattedValue);}},n$2=async t=>{if(t._internals?.form)if(t.formValidity&&Object.keys(t.formValidity).some(r=>r)){const r=await t.formElementAnchor?.();t._internals.setValidity(t.formValidity,t.formValidityMessage,r);}else t._internals.setValidity({});},i$3=t=>{t._internals?.form?.requestSubmit();},m$1=t=>{t._internals?.form?.reset();},s$1=t=>"formFormattedValue"in t&&"name"in t;
99
-
100
- const f$2=new Map,s=new Map,i$2=new Map,D=new Set;let d=false;const O$1={iw:"he",ji:"yi",in:"id"},l$2=t=>{d||(console.warn(`[LocaleData] Supported locale "${t}" not configured, import the "Assets.js" module from the webcomponents package you are using.`),d=true);},R$1=(t,e,n)=>{t=t&&O$1[t]||t,t==="no"&&(t="nb"),t==="zh"&&!e&&(n==="Hans"?e="CN":n==="Hant"&&(e="TW")),(t==="sh"||t==="sr"&&n==="Latn")&&(t="sr",e="Latn");let r=`${t}_${e}`;return Icons.l.includes(r)?s.has(r)?r:(l$2(r),Icons.r$1):(r=t,Icons.l.includes(r)?s.has(r)?r:(l$2(r),Icons.r$1):Icons.r$1)},m=(t,e)=>{f$2.set(t,e);},_=t=>{if(!i$2.get(t)){const e=s.get(t);if(!e)throw new Error(`CLDR data for locale ${t} is not loaded!`);i$2.set(t,e(t));}return i$2.get(t)},u=async(t,e,n)=>{const r=R$1(t,e,n),p=Icons.n$1("OpenUI5Support");if(p){const o=p.getLocaleDataObject();if(o){m(r,o);return}}try{const o=await _(r);m(r,o);}catch(o){const c=o;D.has(c.message)||(D.add(c.message),console.error(c.message));}},C=(t,e)=>{s.set(t,e);};C("en",async()=>(await fetch("https://sdk.openui5.org/1.120.17/resources/sap/ui/core/cldr/en.json")).json()),Icons.t(()=>{const t=Icons.s$1();return u(t.getLanguage(),t.getRegion(),t.getScript())});
101
-
102
- let it=0;const R=new Map,I=new Map,O={fromAttribute(c,f){return f===Boolean?c!==null:f===Number?c===null?void 0:parseFloat(c):c},toAttribute(c,f){return f===Boolean?c?"":null:f===Object||f===Array||c==null?null:String(c)}};function y(c){this._suppressInvalidation||this.constructor.getMetadata().isLanguageAware()&&Icons.s$2()||(this.onInvalidation(c),this._changedState.push(c),Icons.l$1(this),this._invalidationEventProvider.fireEvent("invalidate",{...c,target:this}));}function at(c,f){do{const t=Object.getOwnPropertyDescriptor(c,f);if(t)return t;c=Object.getPrototypeOf(c);}while(c&&c!==HTMLElement.prototype)}let b$1 = class b extends HTMLElement{constructor(){super();this.__shouldHydrate=false;this._rendered=false;const t=this.constructor;this._changedState=[],this._suppressInvalidation=true,this._inDOM=false,this._fullyConnected=false,this._childChangeListeners=new Map,this._slotChangeListeners=new Map,this._invalidationEventProvider=new Icons.i$2,this._componentStateFinalizedEventProvider=new Icons.i$2;let e;this._domRefReadyPromise=new Promise(n=>{e=n;}),this._domRefReadyPromise._deferredResolve=e,this._doNotSyncAttributes=new Set,this._slotsAssignedNodes=new WeakMap,this._state={...t.getMetadata().getInitialState()},this.initializedProperties=new Map,this.constructor.getMetadata().getPropertiesList().forEach(n=>{if(this.hasOwnProperty(n)){const o=this[n];this.initializedProperties.set(n,o);}}),this._internals=this.attachInternals(),this._initShadowRoot();}_initShadowRoot(){const t=this.constructor;if(t._needsShadowDOM()){const e={mode:"open"};this.shadowRoot?this.__shouldHydrate=true:this.attachShadow({...e,...t.getMetadata().getShadowRootOptions()}),t.getMetadata().slotsAreManaged()&&this.shadowRoot.addEventListener("slotchange",this._onShadowRootSlotChange.bind(this));}}_onShadowRootSlotChange(t){t.target?.getRootNode()===this.shadowRoot&&this._processChildren();}get _id(){return this.__id||(this.__id=`ui5wc_${++it}`),this.__id}render(){const t=this.constructor.template;return n$3(t,this)}async connectedCallback(){const t=this.constructor;this.setAttribute(t.getMetadata().getPureTag(),""),t.getMetadata().supportsF6FastNavigation()&&!this.hasAttribute("data-sap-ui-fastnavgroup")&&this.setAttribute("data-sap-ui-fastnavgroup","true");const e=t.getMetadata().slotsAreManaged();this._inDOM=true,e&&(this._startObservingDOMChildren(),await this._processChildren()),t.asyncFinished||await t.definePromise,this._inDOM&&(Icons.c$2(this),this._domRefReadyPromise._deferredResolve(),this._fullyConnected=true,this.onEnterDOM());}disconnectedCallback(){const e=this.constructor.getMetadata().slotsAreManaged();this._inDOM=false,e&&this._stopObservingDOMChildren(),this._fullyConnected&&(this.onExitDOM(),this._fullyConnected=false),this._domRefReadyPromise._deferredResolve(),Icons.h$1(this);}onBeforeRendering(){}onAfterRendering(){}onEnterDOM(){}onExitDOM(){}_startObservingDOMChildren(){const e=this.constructor.getMetadata();if(!e.hasSlots())return;const n=e.canSlotText(),o={childList:true,subtree:n,characterData:n};n$5(this,this._processChildren.bind(this),o);}_stopObservingDOMChildren(){b$2(this);}async _processChildren(){this.constructor.getMetadata().hasSlots()&&await this._updateSlots();}async _updateSlots(){const t=this.constructor,e$1=t.getMetadata().getSlots(),s=t.getMetadata().canSlotText(),n=Array.from(s?this.childNodes:this.children),o=new Map,a=new Map;for(const[l,u]of Object.entries(e$1)){const d=u.propertyName||l;a.set(d,l),o.set(d,[...this._state[d]]),this._clearSlot(l,u);}const r=new Map,i=new Map,h=n.map(async(l,u)=>{const d=o$4(l),g=e$1[d];if(g===void 0){if(d!=="default"){const p=Object.keys(e$1).join(", ");console.warn(`Unknown slotName: ${d}, ignoring`,l,`Valid values are: ${p}`);}return}if(g.individualSlots){const p=(r.get(d)||0)+1;r.set(d,p),l._individualSlot=`${d}-${p}`;}if(l instanceof HTMLElement){const p=l.localName;if(p.includes("-")&&!o$3(p)){if(!customElements.get(p)){const L=customElements.whenDefined(p);let E=R.get(p);E||(E=new Promise(U=>setTimeout(U,1e3)),R.set(p,E)),await Promise.race([L,E]);}customElements.upgrade(l);}}if(l=t.getMetadata().constructor.validateSlotValue(l,g),v$1(l)&&g.invalidateOnChildChange){const p=this._getChildChangeListener(d);l.attachInvalidate.call(l,p);}l instanceof HTMLSlotElement&&this._attachSlotChange(l,d,!!g.invalidateOnChildChange);const C=g.propertyName||d;i.has(C)?i.get(C).push({child:l,idx:u}):i.set(C,[{child:l,idx:u}]);});await Promise.all(h),i.forEach((l,u)=>{this._state[u]=l.sort((d,g)=>d.idx-g.idx).map(d=>d.child),this._state[c$4(u)]=this._state[u];});let _=false;for(const[l,u]of Object.entries(e$1)){const d=u.propertyName||l;n$4(o.get(d),this._state[d])||(y.call(this,{type:"slot",name:a.get(d),reason:"children"}),_=true,t.getMetadata().isFormAssociated()&&e(this));}_||y.call(this,{type:"slot",name:"default",reason:"textcontent"});}_clearSlot(t,e){const s=e.propertyName||t;this._state[s].forEach(o=>{if(v$1(o)){const a=this._getChildChangeListener(t);o.detachInvalidate.call(o,a);}o instanceof HTMLSlotElement&&this._detachSlotChange(o,t);}),this._state[s]=[],this._state[c$4(s)]=this._state[s];}attachInvalidate(t){this._invalidationEventProvider.attachEvent("invalidate",t);}detachInvalidate(t){this._invalidationEventProvider.detachEvent("invalidate",t);}_onChildChange(t,e){this.constructor.getMetadata().shouldInvalidateOnChildChange(t,e.type,e.name)&&y.call(this,{type:"slot",name:t,reason:"childchange",child:e.target});}attributeChangedCallback(t,e,s){let n;if(this._doNotSyncAttributes.has(t))return;const o=this.constructor.getMetadata().getProperties(),a=t.replace(/^ui5-/,""),r=c$4(a);if(o.hasOwnProperty(r)){const i=o[r];n=(i.converter??O).fromAttribute(s,i.type),this[r]=n;}}formAssociatedCallback(){this.constructor.getMetadata().isFormAssociated()&&o$2(this);}static get formAssociated(){return this.getMetadata().isFormAssociated()}_updateAttribute(t,e){const s=this.constructor;if(!s.getMetadata().hasAttribute(t))return;const o=s.getMetadata().getProperties()[t],a=l$4(t),i=(o.converter||O).toAttribute(e,o.type);this._doNotSyncAttributes.add(a),i==null?this.removeAttribute(a):this.setAttribute(a,i),this._doNotSyncAttributes.delete(a);}_getChildChangeListener(t){return this._childChangeListeners.has(t)||this._childChangeListeners.set(t,this._onChildChange.bind(this,t)),this._childChangeListeners.get(t)}_getSlotChangeListener(t){return this._slotChangeListeners.has(t)||this._slotChangeListeners.set(t,this._onSlotChange.bind(this,t)),this._slotChangeListeners.get(t)}_attachSlotChange(t,e,s){const n=this._getSlotChangeListener(e);t.addEventListener("slotchange",o=>{if(n.call(t,o),s){const a=this._slotsAssignedNodes.get(t);a&&a.forEach(i=>{if(v$1(i)){const h=this._getChildChangeListener(e);i.detachInvalidate.call(i,h);}});const r=s$6([t]);this._slotsAssignedNodes.set(t,r),r.forEach(i=>{if(v$1(i)){const h=this._getChildChangeListener(e);i.attachInvalidate.call(i,h);}});}});}_detachSlotChange(t,e){t.removeEventListener("slotchange",this._getSlotChangeListener(e));}_onSlotChange(t){y.call(this,{type:"slot",name:t,reason:"slotchange"});}onInvalidation(t){}updateAttributes(){const e=this.constructor.getMetadata().getProperties();for(const[s,n]of Object.entries(e))this._updateAttribute(s,this[s]);}_render(){const t=this.constructor,e=t.getMetadata().hasIndividualSlots();this.initializedProperties.size>0&&(Array.from(this.initializedProperties.entries()).forEach(([s,n])=>{delete this[s],this[s]=n;}),this.initializedProperties.clear()),this._suppressInvalidation=true;try{this.onBeforeRendering(),this._rendered||this.updateAttributes(),this._componentStateFinalizedEventProvider.fireEvent("componentStateFinalized");}finally{this._suppressInvalidation=false;}this._changedState=[],t._needsShadowDOM()&&s$3(this),this._rendered=true,e&&this._assignIndividualSlotsToChildren(),this.onAfterRendering();}_assignIndividualSlotsToChildren(){Array.from(this.children).forEach(e=>{e._individualSlot&&e.setAttribute("slot",e._individualSlot);});}_waitForDomRef(){return this._domRefReadyPromise}getDomRef(){if(typeof this._getRealDomRef=="function")return this._getRealDomRef();if(!(!this.shadowRoot||this.shadowRoot.children.length===0))return this.shadowRoot.children[0]}getFocusDomRef(){const t=this.getDomRef();if(t)return t.querySelector("[data-sap-focus-ref]")||t}async getFocusDomRefAsync(){return await this._waitForDomRef(),this.getFocusDomRef()}async focus(t){await this._waitForDomRef();const e=this.getFocusDomRef();e===this||!this.isConnected?HTMLElement.prototype.focus.call(this,t):e&&typeof e.focus=="function"&&e.focus(t);}fireEvent(t,e,s=false,n=true){const o=this._fireEvent(t,e,s,n),a=C$1(t);return a!==t?o&&this._fireEvent(a,e,s,n):o}fireDecoratorEvent(t,e){const s=this.getEventData(t),n=s?s.cancelable:false,o=s?s.bubbles:false,a=this._fireEvent(t,e,n,o),r=C$1(t);return r!==t?a&&this._fireEvent(r,e,n,o):a}_fireEvent(t,e,s=false,n=true){const o=new CustomEvent(`ui5-${t}`,{detail:e,composed:false,bubbles:n,cancelable:s}),a=this.dispatchEvent(o);if(a$4(t))return a;const r=new CustomEvent(t,{detail:e,composed:false,bubbles:n,cancelable:s});return this.dispatchEvent(r)&&a}getEventData(t){return this.constructor.getMetadata().getEvents()[t]}getSlottedNodes(t){return s$6(this[t])}attachComponentStateFinalized(t){this._componentStateFinalizedEventProvider.attachEvent("componentStateFinalized",t);}detachComponentStateFinalized(t){this._componentStateFinalizedEventProvider.detachEvent("componentStateFinalized",t);}get effectiveDir(){return Icons.n$2(this.constructor),r$1(this)}get isUI5Element(){return true}get isUI5AbstractElement(){return !this.constructor._needsShadowDOM()}get classes(){return {}}get accessibilityInfo(){return {}}static get observedAttributes(){return this.getMetadata().getAttributesList()}static get tagsToScope(){const t=this.getMetadata().getPureTag(),e=this.getUniqueDependencies().map(s=>s.getMetadata().getPureTag()).filter(Icons.i$3);return Icons.i$3(t)&&e.push(t),e}static _needsShadowDOM(){return !!this.template||Object.prototype.hasOwnProperty.call(this.prototype,"render")}static _generateAccessors(){const t=this.prototype,e$1=this.getMetadata().slotsAreManaged(),s=this.getMetadata().getProperties();for(const[n,o]of Object.entries(s)){r(n)||console.warn(`"${n}" is not a valid property name. Use a name that does not collide with DOM APIs`);const a=at(t,n);let r$1;a?.set&&(r$1=a.set);let i;a?.get&&(i=a.get),Object.defineProperty(t,n,{get(){return i?i.call(this):this._state[n]},set(h){const _=this.constructor,l=i?i.call(this):this._state[n];if(l!==h){if(r$1?r$1.call(this,h):this._state[n]=h,y.call(this,{type:"property",name:n,newValue:h,oldValue:l}),this._rendered){const d=i?i.call(this):this._state[n];this._updateAttribute(n,d);}_.getMetadata().isFormAssociated()&&e(this);}}});}if(e$1){const n=this.getMetadata().getSlots();for(const[o,a]of Object.entries(n)){r(o)||console.warn(`"${o}" is not a valid property name. Use a name that does not collide with DOM APIs`);const r$1=a.propertyName||o,i={get(){return this._state[r$1]!==void 0?this._state[r$1]:[]},set(){throw new Error("Cannot set slot content directly, use the DOM APIs (appendChild, removeChild, etc...)")}};Object.defineProperty(t,r$1,i),r$1!==c$4(r$1)&&Object.defineProperty(t,c$4(r$1),i);}}}static{this.metadata={};}static{this.styles="";}static get dependencies(){return []}static cacheUniqueDependencies(){const t=this.dependencies.filter((e,s,n)=>n.indexOf(e)===s);I.set(this,t);}static getUniqueDependencies(){return I.has(this)||this.cacheUniqueDependencies(),I.get(this)||[]}static async onDefine(){return Promise.resolve()}static fetchI18nBundles(){return Promise.all(Object.entries(this.getMetadata().getI18n()).map(t=>{const{bundleName:e}=t[1];return Icons.f$2(e)}))}static fetchCLDR(){return this.getMetadata().needsCLDR()?u(Icons.s$1().getLanguage(),Icons.s$1().getRegion(),Icons.s$1().getScript()):Promise.resolve()}static{this.i18nBundleStorage={};}static get i18nBundles(){return this.i18nBundleStorage}static define(){const t=async()=>{await Icons.b$1();const o=await Promise.all([this.fetchI18nBundles(),this.fetchCLDR(),this.onDefine()]),[a]=o;Object.entries(this.getMetadata().getI18n()).forEach((r,i)=>{const h=r[1].bundleName;this.i18nBundleStorage[h]=a[i];}),this.asyncFinished=true;};this.definePromise=t();const e=this.getMetadata().getTag(),s=Icons.w$1(e),n=customElements.get(e);return n&&!s?Icons.$$1(e):n||(this._generateAccessors(),Icons.h$2(e),customElements.define(e,this)),this}static getMetadata(){if(this.hasOwnProperty("_metadata"))return this._metadata;const t=[this.metadata];let e=this;for(;e!==b;)e=Object.getPrototypeOf(e),t.unshift(e.metadata);const s=Icons.e({},...t);return this._metadata=new p$1(s),this._metadata}get validity(){return this._internals.validity}get validationMessage(){return this._internals.validationMessage}checkValidity(){return this._internals.checkValidity()}reportValidity(){return this._internals.reportValidity()}};const v$1=c=>"isUI5Element"in c;
103
-
104
- let f$1 = class f{constructor(e,t){if(!e.isUI5Element)throw new Error("The root web component must be a UI5 Element instance");if(this.rootWebComponent=e,this.rootWebComponent.addEventListener("keydown",this._onkeydown.bind(this)),this._initBound=this._init.bind(this),this.rootWebComponent.attachComponentStateFinalized(this._initBound),typeof t.getItemsCallback!="function")throw new Error("getItemsCallback is required");this._getItems=t.getItemsCallback,this._currentIndex=t.currentIndex||0,this._rowSize=t.rowSize||1,this._behavior=t.behavior||l$5.Static,this._navigationMode=t.navigationMode||r$4.Auto,this._affectedPropertiesNames=t.affectedPropertiesNames||[],this._skipItemsSize=t.skipItemsSize||null;}setCurrentItem(e){const t=this._getItems().indexOf(e);if(t===-1){console.warn("The provided item is not managed by ItemNavigation",e);return}this._currentIndex=t,this._applyTabIndex();}setRowSize(e){this._rowSize=e;}_init(){this._getItems().forEach((e,t)=>{e.forcedTabIndex=t===this._currentIndex?"0":"-1";});}_onkeydown(e){if(!this._canNavigate())return;const t=this._navigationMode===r$4.Horizontal||this._navigationMode===r$4.Auto,i=this._navigationMode===r$4.Vertical||this._navigationMode===r$4.Auto,s=this.rootWebComponent.effectiveDir==="rtl";if(s&&D$1(e)&&t)this._handleRight();else if(s&&R$2(e)&&t)this._handleLeft();else if(D$1(e)&&t)this._handleLeft();else if(R$2(e)&&t)this._handleRight();else if(P(e)&&i)this._handleUp();else if(_$1(e)&&i)this._handleDown();else if(M(e))this._handleHome();else if(n$9(e))this._handleEnd();else if(j(e))this._handlePageUp();else if(q(e))this._handlePageDown();else return;e.preventDefault(),this._applyTabIndex(),this._focusCurrentItem();}_handleUp(){const e=this._getItems().length;if(this._currentIndex-this._rowSize>=0){this._currentIndex-=this._rowSize;return}if(this._behavior===l$5.Cyclic){const t=this._currentIndex%this._rowSize,i=t===0?this._rowSize-1:t-1,s=Math.ceil(e/this._rowSize);let o=i+(s-1)*this._rowSize;o>e-1&&(o-=this._rowSize),this._currentIndex=o;}else this._currentIndex=0;}_handleDown(){const e=this._getItems().length;if(this._currentIndex+this._rowSize<e){this._currentIndex+=this._rowSize;return}if(this._behavior===l$5.Cyclic){const i=(this._currentIndex%this._rowSize+1)%this._rowSize;this._currentIndex=i;}else this._currentIndex=e-1;}_handleLeft(){const e=this._getItems().length;if(this._currentIndex>0){this._currentIndex-=1;return}this._behavior===l$5.Cyclic&&(this._currentIndex=e-1);}_handleRight(){const e=this._getItems().length;if(this._currentIndex<e-1){this._currentIndex+=1;return}this._behavior===l$5.Cyclic&&(this._currentIndex=0);}_handleHome(){const e=this._rowSize>1?this._rowSize:this._getItems().length;this._currentIndex-=this._currentIndex%e;}_handleEnd(){const e=this._rowSize>1?this._rowSize:this._getItems().length;this._currentIndex+=e-1-this._currentIndex%e;}_handlePageUp(){this._rowSize>1||this._handlePageUpFlat();}_handlePageDown(){this._rowSize>1||this._handlePageDownFlat();}_handlePageUpFlat(){if(this._skipItemsSize===null){this._currentIndex-=this._currentIndex;return}this._currentIndex+1>this._skipItemsSize?this._currentIndex-=this._skipItemsSize:this._currentIndex-=this._currentIndex;}_handlePageDownFlat(){if(this._skipItemsSize===null){this._currentIndex=this._getItems().length-1;return}this._getItems().length-this._currentIndex-1>this._skipItemsSize?this._currentIndex+=this._skipItemsSize:this._currentIndex=this._getItems().length-1;}_applyTabIndex(){const e=this._getItems();for(let t=0;t<e.length;t++)e[t].forcedTabIndex=t===this._currentIndex?"0":"-1";this._affectedPropertiesNames.forEach(t=>{const i=this.rootWebComponent[t];this.rootWebComponent[t]=Array.isArray(i)?[...i]:{...i};});}_focusCurrentItem(){const e=this._getCurrentItem();e&&e.focus();}_canNavigate(){const e=this._getCurrentItem(),t=t$3();return e&&e===t}_getCurrentItem(){const e=this._getItems();if(!e.length)return;for(;this._currentIndex>=e.length;)this._currentIndex-=this._rowSize;this._currentIndex<0&&(this._currentIndex=0);const t=e[this._currentIndex];if(!t)return;if(v$1(t))return t.getFocusDomRef();const i=this.rootWebComponent.getDomRef();if(i&&t.id)return i.querySelector(`[id="${t.id}"]`)}};
105
-
106
- let n$1;const l$1=new Map,a$2=()=>(n$1||(n$1=new window.ResizeObserver(r=>{window.requestAnimationFrame(()=>{r.forEach(t=>{const s=l$1.get(t.target);s&&Promise.all(s.map(e=>e()));});});})),n$1),c$2=(r,t)=>{const s=l$1.get(r)||[];s.length||a$2().observe(r),l$1.set(r,[...s,t]);},b=(r,t)=>{const s=l$1.get(r)||[];if(s.length===0)return;const e=s.filter(o=>o!==t);e.length===0?(a$2().unobserve(r),l$1.delete(r)):l$1.set(r,e);};class f{static register(t,s){let e=t;v$1(e)&&(e=e.getDomRef()),e instanceof HTMLElement?c$2(e,s):console.warn("Cannot register ResizeHandler for element",t);}static deregister(t,s){let e=t;v$1(e)&&(e=e.getDomRef()),e instanceof HTMLElement?b(e,s):console.warn("Cannot deregister ResizeHandler for element",t);}}
107
-
108
- const l="scroll",p=Icons.l$2()?"touchend":"mouseup";class v extends Icons.i$2{constructor(t){super();this.supportsTouch=Icons.l$2();this.containerComponent=t,this.mouseMove=this.ontouchmove.bind(this),this.mouseUp=this.ontouchend.bind(this),this.touchStart=this.ontouchstart.bind(this),this.supportsTouch=Icons.l$2(),this.cachedValue={dragX:0,dragY:0},this.startX=0,this.startY=0,this.supportsTouch?(t.addEventListener("touchstart",this.touchStart,{passive:true}),t.addEventListener("touchmove",this.mouseMove,{passive:true}),t.addEventListener("touchend",this.mouseUp,{passive:true})):t.addEventListener("mousedown",this.touchStart,{passive:true});}set scrollContainer(t){this._container=t;}get scrollContainer(){return this._container}async scrollTo(t,e,s=0,o=0){let r=this.scrollContainer.clientHeight>0&&this.scrollContainer.clientWidth>0;for(;!r&&s>0;)await new Promise(n=>{setTimeout(()=>{r=this.scrollContainer.clientHeight>0&&this.scrollContainer.clientWidth>0,s--,n();},o);});this._container.scrollLeft=t,this._container.scrollTop=e;}move(t,e,s){if(s){this._container.scrollLeft+=t,this._container.scrollTop+=e;return}if(this._container)return n$d(this._container,t,e)}getScrollLeft(){return this._container.scrollLeft}getScrollTop(){return this._container.scrollTop}_isTouchInside(t){let e=null;this.supportsTouch&&t instanceof TouchEvent&&(e=t.touches[0]);const s=this._container.getBoundingClientRect(),o=this.supportsTouch?e.clientX:t.x,r=this.supportsTouch?e.clientY:t.y;return o>=s.left&&o<=s.right&&r>=s.top&&r<=s.bottom}ontouchstart(t){let e=null;this.supportsTouch&&t instanceof TouchEvent&&(e=t.touches[0]),e?(this.startX=e.pageX,this.startY=e.pageY):(document.addEventListener("mouseup",this.mouseUp,{passive:true}),document.addEventListener("mousemove",this.mouseMove,{passive:true})),e&&(this._prevDragX=e.pageX,this._prevDragY=e.pageY),t instanceof MouseEvent&&(this._prevDragX=t.x,this._prevDragY=t.y),this._canScroll=this._isTouchInside(t);}ontouchmove(t){if(!this._canScroll)return;const e=this._container,s=this.supportsTouch?t.touches[0]:null,o=this.supportsTouch?s.pageX:t.x,r=this.supportsTouch?s.pageY:t.y;e.scrollLeft+=this._prevDragX-o,e.scrollTop+=this._prevDragY-r,this.fireEvent(l,{isLeft:o>this._prevDragX,isRight:o<this._prevDragX}),this.cachedValue.dragX=this._prevDragX,this.cachedValue.dragY=this._prevDragY,this._prevDragX=o,this._prevDragY=r;}ontouchend(t){if(this.supportsTouch){const h=Math.abs(t.changedTouches[0].pageX-this.startX),c=Math.abs(t.changedTouches[0].pageY-this.startY);if(h<10&&c<10)return}if(!this._canScroll)return;const e=this._container,s=this.supportsTouch?t.changedTouches[0].pageX:t.x,o=this.supportsTouch?t.changedTouches[0].pageY:t.y;e.scrollLeft+=this._prevDragX-s,e.scrollTop+=this._prevDragY-o;const n=s===this._prevDragX?this.cachedValue.dragX:s;this.fireEvent(p,{isLeft:n<this._prevDragX,isRight:n>this._prevDragX}),this._prevDragX=s,this._prevDragY=o,this.supportsTouch||(document.removeEventListener("mousemove",this.mouseMove),document.removeEventListener("mouseup",this.mouseUp));}}
109
-
110
- const n=new Icons.i$2,t$1="directionChange",a$1=e=>{n.attachEvent(t$1,e);},c$1=e=>{n.detachEvent(t$1,e);},o$1=()=>n.fireEvent(t$1,void 0);
111
-
112
- const i$1=async()=>{const e=o$1();await Promise.all(e),await Icons.C$2({rtlAware:true});};
113
-
114
- // TODO-evo:assert on node throws an error if the assertion is violated
115
-
116
- /**
117
- * A simple assertion mechanism that logs a message when a given condition is not met.
118
- *
119
- * <b>Note:</b> Calls to this method might be removed when the JavaScript code
120
- * is optimized during build. Therefore, callers should not rely on any side effects
121
- * of this method.
122
- *
123
- * @function
124
- * @since 1.58
125
- * @alias module:sap/base/assert
126
- * @param {boolean} bResult Result of the checked assertion
127
- * @param {string|function():any} vMessage Message that will be logged when the result is <code>false</code>.
128
- * In case this is a function, the return value of the function will be displayed. This can be used to execute
129
- * complex code only if the assertion fails.
130
- * @public
131
- * @SecSink {1|SECRET} Could expose secret data in logs
132
- *
133
- */ /*!
134
- * OpenUI5
135
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
136
- * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
137
- */
138
-
139
- var fnAssert = function (bResult, vMessage) {
140
- if (!bResult) {
141
- var sMessage = vMessage;
142
- /*eslint-disable no-console */
143
- console.assert(bResult, sMessage);
144
- /*eslint-enable no-console */
145
- }
146
- };
147
-
148
- // validation regexes
149
- /*!
150
- * OpenUI5
151
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
152
- * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
153
- */
154
-
155
- var rBasicUrl = /^(?:([^:\/?#]+):)?((?:[\/\\]{2,}((?:\[[^\]]+\]|[^\/?#:]+))(?::([0-9]+))?)?([^?#]*))(?:\?([^#]*))?(?:#(.*))?$/;
156
- var rCheckPath = /^([a-z0-9-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*$/i;
157
- var rCheckQuery = /^([a-z0-9-._~!$&'()*+,;=:@\/?]|%[0-9a-f]{2})*$/i;
158
- var rCheckFragment = rCheckQuery;
159
- var rCheckMail = /^([a-z0-9!$'*+:^_`{|}~-]|%[0-9a-f]{2})+(?:\.([a-z0-9!$'*+:^_`{|}~-]|%[0-9a-f]{2})+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i;
160
- var rCheckIPv4 = /^([0-9]{1,3}\.){3}[0-9]{1,3}$/;
161
- var rCheckValidIPv4 = /^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$/;
162
- var rCheckIPv6 = /^\[[^\]]+\]$/;
163
- var rCheckValidIPv6 = /^\[(((([0-9a-f]{1,4}:){6}|(::([0-9a-f]{1,4}:){5})|(([0-9a-f]{1,4})?::([0-9a-f]{1,4}:){4})|((([0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){3})|((([0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::([0-9a-f]{1,4}:){2})|((([0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:)|((([0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::))(([0-9a-f]{1,4}:[0-9a-f]{1,4})|(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])))|((([0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4})|((([0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::))\]$/i;
164
- var rCheckHostName = /^([a-z0-9]([a-z0-9\-]*[a-z0-9])?\.)*[a-z0-9]([a-z0-9\-]*[a-z0-9])?$/i;
165
- var rSpecialSchemeURLs = /^((?:ftp|https?|wss?):)([\s\S]+)$/;
166
-
167
- /* eslint-disable no-control-regex */
168
- var rCheckWhitespaces = /[\u0009\u000A\u000D]/;
169
-
170
- /**
171
- * Registry to manage allowed URLs and validate against them.
172
- *
173
- * @namespace
174
- * @since 1.85
175
- * @alias module:sap/base/security/URLListValidator
176
- * @public
177
- */
178
- var oURLListValidator = {};
179
-
180
- /**
181
- * Creates a new URLListValidator.Entry object
182
- *
183
- * @param {string} [protocol] The protocol of the URL, can be falsy to allow all protocols for an entry e.g. "", "http", "mailto"
184
- * @param {string} [host] The host of the URL, can be falsy to allow all hosts. A wildcard asterisk can be set at the beginning, e.g. "examples.com", "*.example.com"
185
- * @param {string} [port] The port of the URL, can be falsy to allow all ports, e.g. "", "8080"
186
- * @param {string} [path] the path of the URL, path of the url, can be falsy to allow all paths. A wildcard asterisk can be set at the end, e.g. "/my-example*", "/my-news"
187
- * @returns {module:sap/base/security/URLListValidator.Entry|object}
188
- * @private
189
- */
190
- oURLListValidator._createEntry = function (protocol, host, port, path) {
191
- return new URLListValidatorEntry(protocol, host, port, path);
192
- };
193
-
194
- /**
195
- * Entry object of the URLListValidator.
196
- *
197
- * @public
198
- * @typedef {object} module:sap/base/security/URLListValidator.Entry
199
- * @property {string} [protocol] The protocol of the URL, can be falsy to allow all protocols for an entry e.g. "", "http", "mailto"
200
- * @property {string} [host] The host of the URL, can be falsy to allow all hosts. A wildcard asterisk can be set at the beginning, e.g. "examples.com", "*.example.com"
201
- * @property {string} [port] The port of the URL, can be falsy to allow all ports, e.g. "", "8080"
202
- * @property {string} [path] the path of the URL, path of the url, can be falsy to allow all paths. A wildcard asterisk can be set at the end, e.g. "/my-example*", "/my-news"
203
- */
204
- function URLListValidatorEntry(protocol, host, port, path) {
205
- Object.defineProperties(this, {
206
- protocol: {
207
- value: protocol && protocol.toUpperCase(),
208
- enumerable: true
209
- },
210
- host: {
211
- value: host && host.toUpperCase(),
212
- enumerable: true
213
- },
214
- port: {
215
- value: port,
216
- enumerable: true
217
- },
218
- path: {
219
- value: path,
220
- enumerable: true
221
- }
222
- });
223
- }
224
-
225
- /**
226
- * The internally managed allowed entries.
227
- * @private
228
- */
229
- var aAllowedEntries = [];
230
-
231
- /**
232
- * Clears the allowed entries for URL validation.
233
- * This makes all URLs allowed.
234
- *
235
- * @public
236
- */
237
- oURLListValidator.clear = function () {
238
- aAllowedEntries = [];
239
- };
240
-
241
- /**
242
- * Adds an allowed entry.
243
- *
244
- * Note:
245
- * Adding the first entry to the list of allowed entries will disallow all URLs but the ones matching the newly added entry.
246
- *
247
- * <b>Note</b>:
248
- * It is strongly recommended to set a path only in combination with an origin (never set a path alone).
249
- * There's almost no case where checking only the path of a URL would allow to ensure its validity.
250
- *
251
- * @param {string} [protocol] The protocol of the URL, can be falsy to allow all protocols for an entry e.g. "", "http", "mailto"
252
- * @param {string} [host] The host of the URL, can be falsy to allow all hosts. A wildcard asterisk can be set at the beginning, e.g. "examples.com", "*.example.com"
253
- * @param {string} [port] The port of the URL, can be falsy to allow all ports, e.g. "", "8080"
254
- * @param {string} [path] the path of the URL, path of the url, can be falsy to allow all paths. A wildcard asterisk can be set at the end, e.g. "/my-example*", "/my-news"
255
- * @public
256
- */
257
- oURLListValidator.add = function (protocol, host, port, path) {
258
- var oEntry = this._createEntry(protocol, host, port, path);
259
- aAllowedEntries.push(oEntry);
260
- };
261
-
262
- /**
263
- * Deletes an entry from the allowed entries.
264
- *
265
- * Note:
266
- * Deleting the last entry from the list of allowed entries will allow all URLs.
267
- *
268
- * @param {module:sap/base/security/URLListValidator.Entry} oEntry The entry to be deleted
269
- * @private
270
- */
271
- oURLListValidator._delete = function (oEntry) {
272
- aAllowedEntries.splice(aAllowedEntries.indexOf(oEntry), 1);
273
- };
274
-
275
- /**
276
- * Gets the list of allowed entries.
277
- *
278
- * @returns {module:sap/base/security/URLListValidator.Entry[]} The allowed entries
279
- * @public
280
- */
281
- oURLListValidator.entries = function () {
282
- return aAllowedEntries.slice();
283
- };
284
-
285
- /**
286
- * Validates a URL. Check if it's not a script or other security issue.
287
- *
288
- * <b>Note</b>:
289
- * It is strongly recommended to validate only absolute URLs. There's almost no case
290
- * where checking only the path of a URL would allow to ensure its validity.
291
- * For compatibility reasons, this API cannot automatically resolve URLs relative to
292
- * <code>document.baseURI</code>, but callers should do so. In that case, and when the
293
- * allow list is not empty, an entry for the origin of <code>document.baseURI</code>
294
- * must be added to the allow list.
295
- *
296
- * <h3>Details</h3>
297
- * Splits the given URL into components and checks for allowed characters according to RFC 3986:
298
- *
299
- * <pre>
300
- * authority = [ userinfo "@" ] host [ ":" port ]
301
- * userinfo = *( unreserved / pct-encoded / sub-delims / ":" )
302
- * host = IP-literal / IPv4address / reg-name
303
- *
304
- * IP-literal = "[" ( IPv6address / IPvFuture ) "]"
305
- * IPvFuture = "v" 1*HEXDIG "." 1*( unreserved / sub-delims / ":" )
306
- * IPv6address = 6( h16 ":" ) ls32
307
- * / "::" 5( h16 ":" ) ls32
308
- * / [ h16 ] "::" 4( h16 ":" ) ls32
309
- * / [ *1( h16 ":" ) h16 ] "::" 3( h16 ":" ) ls32
310
- * / [ *2( h16 ":" ) h16 ] "::" 2( h16 ":" ) ls32
311
- * / [ *3( h16 ":" ) h16 ] "::" h16 ":" ls32
312
- * / [ *4( h16 ":" ) h16 ] "::" ls32
313
- * / [ *5( h16 ":" ) h16 ] "::" h16
314
- * / [ *6( h16 ":" ) h16 ] "::"
315
- * ls32 = ( h16 ":" h16 ) / IPv4address
316
- * ; least-significant 32 bits of address
317
- * h16 = 1*4HEXDIG
318
- * ; 16 bits of address represented in hexadecimal
319
- *
320
- * IPv4address = dec-octet "." dec-octet "." dec-octet "." dec-octet
321
- * dec-octet = DIGIT ; 0-9
322
- * / %x31-39 DIGIT ; 10-99
323
- * / "1" 2DIGIT ; 100-199
324
- * / "2" %x30-34 DIGIT ; 200-249
325
- * / "25" %x30-35 ; 250-255
326
- *
327
- * reg-name = *( unreserved / pct-encoded / sub-delims )
328
- *
329
- * pct-encoded = "%" HEXDIG HEXDIG
330
- * reserved = gen-delims / sub-delims
331
- * gen-delims = ":" / "/" / "?" / "#" / "[" / "]" / "@"
332
- * sub-delims = "!" / "$" / "&" / "'" / "(" / ")"
333
- * / "*" / "+" / "," / ";" / "="
334
- * unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
335
- * pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
336
- *
337
- * path = path-abempty ; begins with "/" or is empty
338
- * / path-absolute ; begins with "/" but not "//"
339
- * / path-noscheme ; begins with a non-colon segment
340
- * / path-rootless ; begins with a segment
341
- * / path-empty ; zero characters
342
- *
343
- * path-abempty = *( "/" segment )
344
- * path-absolute = "/" [ segment-nz *( "/" segment ) ]
345
- * path-noscheme = segment-nz-nc *( "/" segment )
346
- * path-rootless = segment-nz *( "/" segment )
347
- * path-empty = 0<pchar>
348
- * segment = *pchar
349
- * segment-nz = 1*pchar
350
- * segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
351
- * ; non-zero-length segment without any colon ":"
352
- *
353
- * query = *( pchar / "/" / "?" )
354
- *
355
- * fragment = *( pchar / "/" / "?" )
356
- * </pre>
357
- *
358
- * For the hostname component, we are checking for valid DNS hostnames according to RFC 952 / RFC 1123:
359
- *
360
- * <pre>
361
- * hname = name *("." name)
362
- * name = let-or-digit ( *( let-or-digit-or-hyphen ) let-or-digit )
363
- * </pre>
364
- *
365
- *
366
- * When the URI uses the protocol 'mailto:', the address part is additionally checked
367
- * against the most commonly used parts of RFC 6068:
368
- *
369
- * <pre>
370
- * mailtoURI = "mailto:" [ to ] [ hfields ]
371
- * to = addr-spec *("," addr-spec )
372
- * hfields = "?" hfield *( "&" hfield )
373
- * hfield = hfname "=" hfvalue
374
- * hfname = *qchar
375
- * hfvalue = *qchar
376
- * addr-spec = local-part "@" domain
377
- * local-part = dot-atom-text // not accepted: quoted-string
378
- * domain = dot-atom-text // not accepted: "[" *dtext-no-obs "]"
379
- * dtext-no-obs = %d33-90 / ; Printable US-ASCII
380
- * %d94-126 ; characters not including
381
- * ; "[", "]", or "\"
382
- * qchar = unreserved / pct-encoded / some-delims
383
- * some-delims = "!" / "$" / "'" / "(" / ")" / "*"
384
- * / "+" / "," / ";" / ":" / "@"
385
- *
386
- * Note:
387
- * A number of characters that can appear in &lt;addr-spec> MUST be
388
- * percent-encoded. These are the characters that cannot appear in
389
- * a URI according to [STD66] as well as "%" (because it is used for
390
- * percent-encoding) and all the characters in gen-delims except "@"
391
- * and ":" (i.e., "/", "?", "#", "[", and "]"). Of the characters
392
- * in sub-delims, at least the following also have to be percent-
393
- * encoded: "&", ";", and "=". Care has to be taken both when
394
- * encoding as well as when decoding to make sure these operations
395
- * are applied only once.
396
- *
397
- * </pre>
398
- *
399
- * When a list of allowed entries has been configured using {@link #add},
400
- * any URL that passes the syntactic checks above, additionally will be tested against
401
- * the content of this list.
402
- *
403
- * @param {string} sUrl URL to be validated
404
- * @return {boolean} true if valid, false if not valid
405
- * @public
406
- */
407
- oURLListValidator.validate = function (sUrl) {
408
- // Test for not allowed whitespaces
409
- if (typeof sUrl === "string") {
410
- if (rCheckWhitespaces.test(sUrl)) {
411
- return false;
412
- }
413
- }
414
-
415
- // for 'special' URLs without a given base URL, the whatwg spec allows any number of slashes.
416
- // As the rBasicUrl regular expression cannot handle 'special' URLs, the URL is modified upfront,
417
- // if it wouldn't be recognized by the regex.
418
- // See https://url.spec.whatwg.org/#scheme-state (case 2.6.)
419
- var result = rSpecialSchemeURLs.exec(sUrl);
420
- if (result && !/^[\/\\]{2}/.test(result[2])) {
421
- sUrl = result[1] + "//" + result[2];
422
- }
423
- result = rBasicUrl.exec(sUrl);
424
- if (!result) {
425
- return false;
426
- }
427
- var sProtocol = result[1],
428
- sBody = result[2],
429
- sHost = result[3],
430
- sPort = result[4],
431
- sPath = result[5],
432
- sQuery = result[6],
433
- sHash = result[7];
434
-
435
- // protocol
436
- if (sProtocol) {
437
- sProtocol = sProtocol.toUpperCase();
438
- if (aAllowedEntries.length <= 0) {
439
- // no allowed entries -> check for default protocols
440
- if (!/^(https?|ftp)/i.test(sProtocol)) {
441
- return false;
442
- }
443
- }
444
- }
445
-
446
- // Host -> validity check for IP address or hostname
447
- if (sHost) {
448
- if (rCheckIPv4.test(sHost)) {
449
- if (!rCheckValidIPv4.test(sHost)) {
450
- //invalid ipv4 address
451
- return false;
452
- }
453
- } else if (rCheckIPv6.test(sHost)) {
454
- if (!rCheckValidIPv6.test(sHost)) {
455
- //invalid ipv6 address
456
- return false;
457
- }
458
- } else if (!rCheckHostName.test(sHost)) {
459
- // invalid host name
460
- return false;
461
- }
462
- sHost = sHost.toUpperCase();
463
- }
464
-
465
- // Path -> split for "/" and check if forbidden characters exist
466
- if (sPath) {
467
- if (sProtocol === "MAILTO") {
468
- var aAddresses = sBody.split(",");
469
- for (var i = 0; i < aAddresses.length; i++) {
470
- if (!rCheckMail.test(aAddresses[i])) {
471
- // forbidden character found
472
- return false;
473
- }
474
- }
475
- } else {
476
- var aComponents = sPath.split("/");
477
- for (var i = 0; i < aComponents.length; i++) {
478
- if (!rCheckPath.test(aComponents[i])) {
479
- // forbidden character found
480
- return false;
481
- }
482
- }
483
- }
484
- }
485
-
486
- // query
487
- if (sQuery) {
488
- if (!rCheckQuery.test(sQuery)) {
489
- // forbidden character found
490
- return false;
491
- }
492
- }
493
-
494
- // hash
495
- if (sHash) {
496
- if (!rCheckFragment.test(sHash)) {
497
- // forbidden character found
498
- return false;
499
- }
500
- }
501
-
502
- //filter allowed entries
503
- if (aAllowedEntries.length > 0) {
504
- var bFound = false;
505
- for (var i = 0; i < aAllowedEntries.length; i++) {
506
- if (!sProtocol || !aAllowedEntries[i].protocol || sProtocol == aAllowedEntries[i].protocol) {
507
- // protocol OK
508
- var bOk = false;
509
- if (sHost && aAllowedEntries[i].host && /^\*/.test(aAllowedEntries[i].host)) {
510
- // check for wildcard search at begin
511
- if (!aAllowedEntries[i]._hostRegexp) {
512
- var sHostEscaped = aAllowedEntries[i].host.slice(1).replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
513
- aAllowedEntries[i]._hostRegexp = RegExp(sHostEscaped + "$");
514
- }
515
- var rFilter = aAllowedEntries[i]._hostRegexp;
516
- if (rFilter.test(sHost)) {
517
- bOk = true;
518
- }
519
- } else if (!sHost || !aAllowedEntries[i].host || sHost == aAllowedEntries[i].host) {
520
- bOk = true;
521
- }
522
- if (bOk) {
523
- // host OK
524
- if (!sHost && !sPort || !aAllowedEntries[i].port || sPort == aAllowedEntries[i].port) {
525
- // port OK
526
- if (aAllowedEntries[i].path && /\*$/.test(aAllowedEntries[i].path)) {
527
- // check for wildcard search at end
528
- if (!aAllowedEntries[i]._pathRegexp) {
529
- var sPathEscaped = aAllowedEntries[i].path.slice(0, -1).replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
530
- aAllowedEntries[i]._pathRegexp = RegExp("^" + sPathEscaped);
531
- }
532
- var rFilter = aAllowedEntries[i]._pathRegexp;
533
- if (rFilter.test(sPath)) {
534
- bFound = true;
535
- }
536
- } else if (!aAllowedEntries[i].path || sPath == aAllowedEntries[i].path) {
537
- // path OK
538
- bFound = true;
539
- }
540
- }
541
- }
542
- }
543
- if (bFound) {
544
- break;
545
- }
546
- }
547
- if (!bFound) {
548
- return false;
549
- }
550
- }
551
- return true;
552
- };
553
-
554
- var cajaHtmlSanitizer = {};
555
-
556
- var hasRequiredCajaHtmlSanitizer;
557
-
558
- function requireCajaHtmlSanitizer () {
559
- if (hasRequiredCajaHtmlSanitizer) return cajaHtmlSanitizer;
560
- hasRequiredCajaHtmlSanitizer = 1;
561
- (function() {
562
- /* Copyright Google Inc.
563
- * Licensed under the Apache Licence Version 2.0
564
- * Autogenerated at Tue May 22 10:18:21 PDT 2012
565
- * \@overrides window
566
- * \@provides cssSchema, CSS_PROP_BIT_QUANTITY, CSS_PROP_BIT_HASH_VALUE, CSS_PROP_BIT_NEGATIVE_QUANTITY, CSS_PROP_BIT_QSTRING_CONTENT, CSS_PROP_BIT_QSTRING_URL, CSS_PROP_BIT_HISTORY_INSENSITIVE, CSS_PROP_BIT_Z_INDEX, CSS_PROP_BIT_ALLOWED_IN_LINK */
567
- /**
568
- * @const
569
- * @type {number}
570
- */
571
- var CSS_PROP_BIT_QUANTITY = 1;
572
- /**
573
- * @const
574
- * @type {number}
575
- */
576
- var CSS_PROP_BIT_HASH_VALUE = 2;
577
- /**
578
- * @const
579
- * @type {number}
580
- */
581
- var CSS_PROP_BIT_NEGATIVE_QUANTITY = 4;
582
- /**
583
- * @const
584
- * @type {number}
585
- */
586
- var CSS_PROP_BIT_QSTRING_CONTENT = 8;
587
- /**
588
- * @const
589
- * @type {number}
590
- */
591
- var CSS_PROP_BIT_QSTRING_URL = 16;
592
- /**
593
- * @const
594
- * @type {number}
595
- */
596
- var CSS_PROP_BIT_Z_INDEX = 64;
597
- /**
598
- * @const
599
- * @type {number}
600
- */
601
- var CSS_PROP_BIT_ALLOWED_IN_LINK = 128;
602
- var cssSchema = (function () {
603
- var s = [
604
- 'rgb(?:\\(\\s*(?:\\d+|0|\\d+(?:\\.\\d+)?%)\\s*,\\s*(?:\\d+|0|\\d+(?:\\.\\d+)?%)\\s*,\\s*(?:\\d+|0|\\d+(?:\\.\\d+)?%)|a\\(\\s*(?:\\d+|0|\\d+(?:\\.\\d+)?%)\\s*,\\s*(?:\\d+|0|\\d+(?:\\.\\d+)?%)\\s*,\\s*(?:\\d+|0|\\d+(?:\\.\\d+)?%)\\s*,\\s*(?:\\d+|0(?:\\.\\d+)?|\\.\\d+|1(?:\\.0+)?|0|\\d+(?:\\.\\d+)?%)) *\\)'
605
- ], c = [ /^ *$/i, RegExp('^ *(?:\\s*' + s[ 0 ] + '|(?:\\s*' + s[ 0 ] +
606
- ')?)+ *$', 'i'), RegExp('^ *\\s*' + s[ 0 ] + ' *$', 'i'),
607
- RegExp('^ *\\s*' + s[ 0 ] + '\\s*' + s[ 0 ] + ' *$', 'i') ], L = [ [
608
- 'aliceblue', 'antiquewhite', 'aqua', 'aquamarine', 'azure', 'beige',
609
- 'bisque', 'black', 'blanchedalmond', 'blue', 'blueviolet', 'brown',
610
- 'burlywood', 'cadetblue', 'chartreuse', 'chocolate', 'coral',
611
- 'cornflowerblue', 'cornsilk', 'crimson', 'cyan', 'darkblue',
612
- 'darkcyan', 'darkgoldenrod', 'darkgray', 'darkgreen', 'darkkhaki',
613
- 'darkmagenta', 'darkolivegreen', 'darkorange', 'darkorchid', 'darkred',
614
- 'darksalmon', 'darkseagreen', 'darkslateblue', 'darkslategray',
615
- 'darkturquoise', 'darkviolet', 'deeppink', 'deepskyblue', 'dimgray',
616
- 'dodgerblue', 'firebrick', 'floralwhite', 'forestgreen', 'fuchsia',
617
- 'gainsboro', 'ghostwhite', 'gold', 'goldenrod', 'gray', 'green',
618
- 'greenyellow', 'honeydew', 'hotpink', 'indianred', 'indigo', 'ivory',
619
- 'khaki', 'lavender', 'lavenderblush', 'lawngreen', 'lemonchiffon',
620
- 'lightblue', 'lightcoral', 'lightcyan', 'lightgoldenrodyellow',
621
- 'lightgreen', 'lightgrey', 'lightpink', 'lightsalmon', 'lightseagreen',
622
- 'lightskyblue', 'lightslategray', 'lightsteelblue', 'lightyellow',
623
- 'lime', 'limegreen', 'linen', 'magenta', 'maroon', 'mediumaquamarine',
624
- 'mediumblue', 'mediumorchid', 'mediumpurple', 'mediumseagreen',
625
- 'mediumslateblue', 'mediumspringgreen', 'mediumturquoise',
626
- 'mediumvioletred', 'midnightblue', 'mintcream', 'mistyrose',
627
- 'moccasin', 'navajowhite', 'navy', 'oldlace', 'olive', 'olivedrab',
628
- 'orange', 'orangered', 'orchid', 'palegoldenrod', 'palegreen',
629
- 'paleturquoise', 'palevioletred', 'papayawhip', 'peachpuff', 'peru',
630
- 'pink', 'plum', 'powderblue', 'purple', 'red', 'rosybrown',
631
- 'royalblue', 'saddlebrown', 'salmon', 'sandybrown', 'seagreen',
632
- 'seashell', 'sienna', 'silver', 'skyblue', 'slateblue', 'slategray',
633
- 'snow', 'springgreen', 'steelblue', 'tan', 'teal', 'thistle', 'tomato',
634
- 'turquoise', 'violet', 'wheat', 'white', 'whitesmoke', 'yellow',
635
- 'yellowgreen' ], [ 'all-scroll', 'col-resize', 'crosshair', 'default',
636
- 'e-resize', 'hand', 'help', 'move', 'n-resize', 'ne-resize', 'no-drop',
637
- 'not-allowed', 'nw-resize', 'pointer', 'progress', 'row-resize',
638
- 's-resize', 'se-resize', 'sw-resize', 'text', 'vertical-text',
639
- 'w-resize', 'wait' ], [ '-moz-inline-box', '-moz-inline-stack',
640
- 'block', 'inline', 'inline-block', 'inline-table', 'list-item',
641
- 'run-in', 'table', 'table-caption', 'table-cell', 'table-column',
642
- 'table-column-group', 'table-footer-group', 'table-header-group',
643
- 'table-row', 'table-row-group' ], [ 'armenian', 'circle', 'decimal',
644
- 'decimal-leading-zero', 'disc', 'georgian', 'lower-alpha',
645
- 'lower-greek', 'lower-latin', 'lower-roman', 'square', 'upper-alpha',
646
- 'upper-latin', 'upper-roman' ], [ '100', '200', '300', '400', '500',
647
- '600', '700', '800', '900', 'bold', 'bolder', 'lighter' ], [
648
- 'condensed', 'expanded', 'extra-condensed', 'extra-expanded',
649
- 'narrower', 'semi-condensed', 'semi-expanded', 'ultra-condensed',
650
- 'ultra-expanded', 'wider' ], [ 'behind', 'center-left', 'center-right',
651
- 'far-left', 'far-right', 'left-side', 'leftwards', 'right-side',
652
- 'rightwards' ], [ 'large', 'larger', 'small', 'smaller', 'x-large',
653
- 'x-small', 'xx-large', 'xx-small' ], [ '-moz-pre-wrap', '-o-pre-wrap',
654
- '-pre-wrap', 'nowrap', 'pre', 'pre-line', 'pre-wrap' ], [ 'dashed',
655
- 'dotted', 'double', 'groove', 'outset', 'ridge', 'solid' ], [
656
- 'baseline', 'middle', 'sub', 'super', 'text-bottom', 'text-top' ], [
657
- 'caption', 'icon', 'menu', 'message-box', 'small-caption', 'status-bar'
658
- ], [ 'fast', 'faster', 'slow', 'slower', 'x-fast', 'x-slow' ], [ 'above',
659
- 'below', 'higher', 'level', 'lower' ], [ 'border-box', 'contain',
660
- 'content-box', 'cover', 'padding-box' ], [ 'cursive', 'fantasy',
661
- 'monospace', 'sans-serif', 'serif' ], [ 'loud', 'silent', 'soft',
662
- 'x-loud', 'x-soft' ], [ 'no-repeat', 'repeat-x', 'repeat-y', 'round',
663
- 'space' ], [ 'blink', 'line-through', 'overline', 'underline' ], [
664
- 'high', 'low', 'x-high', 'x-low' ], [ 'absolute', 'relative', 'static'
665
- ], [ 'capitalize', 'lowercase', 'uppercase' ], [ 'child', 'female',
666
- 'male' ], [ 'bidi-override', 'embed' ], [ 'bottom', 'top' ], [ 'clip',
667
- 'ellipsis' ], [ 'continuous', 'digits' ], [ 'hide', 'show' ], [
668
- 'inside', 'outside' ], [ 'italic', 'oblique' ], [ 'left', 'right' ], [
669
- 'ltr', 'rtl' ], [ 'no-content', 'no-display' ], [ 'suppress',
670
- 'unrestricted' ], [ 'thick', 'thin' ], [ ',' ], [ '/' ], [ 'always' ],
671
- [ 'auto' ], [ 'avoid' ], [ 'both' ], [ 'break-word' ], [ 'center' ], [
672
- 'code' ], [ 'collapse' ], [ 'fixed' ], [ 'hidden' ], [ 'inherit' ], [
673
- 'inset' ], [ 'invert' ], [ 'justify' ], [ 'local' ], [ 'medium' ], [
674
- 'mix' ], [ 'none' ], [ 'normal' ], [ 'once' ], [ 'repeat' ], [ 'scroll'
675
- ], [ 'separate' ], [ 'small-caps' ], [ 'spell-out' ], [ 'transparent' ],
676
- [ 'visible' ] ];
677
- return {
678
- '-moz-border-radius': {
679
- 'cssExtra': c[ 0 ],
680
- 'cssPropBits': 5,
681
- 'cssLitGroup': [ L[ 36 ] ]
682
- },
683
- '-moz-border-radius-bottomleft': {
684
- 'cssExtra': c[ 0 ],
685
- 'cssPropBits': 5
686
- },
687
- '-moz-border-radius-bottomright': {
688
- 'cssExtra': c[ 0 ],
689
- 'cssPropBits': 5
690
- },
691
- '-moz-border-radius-topleft': {
692
- 'cssExtra': c[ 0 ],
693
- 'cssPropBits': 5
694
- },
695
- '-moz-border-radius-topright': {
696
- 'cssExtra': c[ 0 ],
697
- 'cssPropBits': 5
698
- },
699
- '-moz-box-shadow': {
700
- 'cssExtra': c[ 1 ],
701
- 'cssAlternates': [ 'boxShadow' ],
702
- 'cssPropBits': 7,
703
- 'cssLitGroup': [ L[ 0 ], L[ 35 ], L[ 48 ], L[ 54 ] ]
704
- },
705
- '-moz-opacity': {
706
- 'cssPropBits': 1,
707
- 'cssLitGroup': [ L[ 47 ] ]
708
- },
709
- '-moz-outline': {
710
- 'cssExtra': c[ 3 ],
711
- 'cssPropBits': 7,
712
- 'cssLitGroup': [ L[ 0 ], L[ 9 ], L[ 34 ], L[ 46 ], L[ 47 ], L[ 48 ], L[
713
- 49 ], L[ 52 ], L[ 54 ] ]
714
- },
715
- '-moz-outline-color': {
716
- 'cssExtra': c[ 2 ],
717
- 'cssPropBits': 2,
718
- 'cssLitGroup': [ L[ 0 ], L[ 47 ], L[ 49 ] ]
719
- },
720
- '-moz-outline-style': {
721
- 'cssPropBits': 0,
722
- 'cssLitGroup': [ L[ 9 ], L[ 46 ], L[ 47 ], L[ 48 ], L[ 54 ] ]
723
- },
724
- '-moz-outline-width': {
725
- 'cssPropBits': 5,
726
- 'cssLitGroup': [ L[ 34 ], L[ 47 ], L[ 52 ] ]
727
- },
728
- '-o-text-overflow': {
729
- 'cssPropBits': 0,
730
- 'cssLitGroup': [ L[ 25 ] ]
731
- },
732
- '-webkit-border-bottom-left-radius': {
733
- 'cssExtra': c[ 0 ],
734
- 'cssPropBits': 5
735
- },
736
- '-webkit-border-bottom-right-radius': {
737
- 'cssExtra': c[ 0 ],
738
- 'cssPropBits': 5
739
- },
740
- '-webkit-border-radius': {
741
- 'cssExtra': c[ 0 ],
742
- 'cssPropBits': 5,
743
- 'cssLitGroup': [ L[ 36 ] ]
744
- },
745
- '-webkit-border-radius-bottom-left': {
746
- 'cssExtra': c[ 0 ],
747
- 'cssPropBits': 5
748
- },
749
- '-webkit-border-radius-bottom-right': {
750
- 'cssExtra': c[ 0 ],
751
- 'cssPropBits': 5
752
- },
753
- '-webkit-border-radius-top-left': {
754
- 'cssExtra': c[ 0 ],
755
- 'cssPropBits': 5
756
- },
757
- '-webkit-border-radius-top-right': {
758
- 'cssExtra': c[ 0 ],
759
- 'cssPropBits': 5
760
- },
761
- '-webkit-border-top-left-radius': {
762
- 'cssExtra': c[ 0 ],
763
- 'cssPropBits': 5
764
- },
765
- '-webkit-border-top-right-radius': {
766
- 'cssExtra': c[ 0 ],
767
- 'cssPropBits': 5
768
- },
769
- '-webkit-box-shadow': {
770
- 'cssExtra': c[ 1 ],
771
- 'cssAlternates': [ 'boxShadow' ],
772
- 'cssPropBits': 7,
773
- 'cssLitGroup': [ L[ 0 ], L[ 35 ], L[ 48 ], L[ 54 ] ]
774
- },
775
- 'azimuth': {
776
- 'cssPropBits': 5,
777
- 'cssLitGroup': [ L[ 6 ], L[ 30 ], L[ 42 ], L[ 47 ] ]
778
- },
779
- 'background': {
780
- 'cssExtra': RegExp('^ *(?:\\s*' + s[ 0 ] + '){0,2} *$', 'i'),
781
- 'cssPropBits': 23,
782
- 'cssLitGroup': [ L[ 0 ], L[ 14 ], L[ 17 ], L[ 24 ], L[ 30 ], L[ 35 ],
783
- L[ 36 ], L[ 38 ], L[ 42 ], L[ 45 ], L[ 47 ], L[ 51 ], L[ 54 ], L[ 57
784
- ], L[ 58 ], L[ 62 ] ]
785
- },
786
- 'background-attachment': {
787
- 'cssExtra': c[ 0 ],
788
- 'cssPropBits': 0,
789
- 'cssLitGroup': [ L[ 35 ], L[ 45 ], L[ 51 ], L[ 58 ] ]
790
- },
791
- 'background-color': {
792
- 'cssExtra': c[ 2 ],
793
- 'cssPropBits': 130,
794
- 'cssLitGroup': [ L[ 0 ], L[ 47 ], L[ 62 ] ]
795
- },
796
- 'background-image': {
797
- 'cssExtra': c[ 0 ],
798
- 'cssPropBits': 16,
799
- 'cssLitGroup': [ L[ 35 ], L[ 54 ] ]
800
- },
801
- 'background-position': {
802
- 'cssExtra': c[ 0 ],
803
- 'cssPropBits': 5,
804
- 'cssLitGroup': [ L[ 24 ], L[ 30 ], L[ 35 ], L[ 42 ] ]
805
- },
806
- 'background-repeat': {
807
- 'cssExtra': c[ 0 ],
808
- 'cssPropBits': 0,
809
- 'cssLitGroup': [ L[ 17 ], L[ 35 ], L[ 57 ] ]
810
- },
811
- 'border': {
812
- 'cssExtra': c[ 3 ],
813
- 'cssPropBits': 7,
814
- 'cssLitGroup': [ L[ 0 ], L[ 9 ], L[ 34 ], L[ 46 ], L[ 47 ], L[ 48 ], L[
815
- 52 ], L[ 54 ], L[ 62 ] ]
816
- },
817
- 'border-bottom': {
818
- 'cssExtra': c[ 3 ],
819
- 'cssPropBits': 7,
820
- 'cssLitGroup': [ L[ 0 ], L[ 9 ], L[ 34 ], L[ 46 ], L[ 47 ], L[ 48 ], L[
821
- 52 ], L[ 54 ], L[ 62 ] ]
822
- },
823
- 'border-bottom-color': {
824
- 'cssExtra': c[ 2 ],
825
- 'cssPropBits': 2,
826
- 'cssLitGroup': [ L[ 0 ], L[ 47 ], L[ 62 ] ]
827
- },
828
- 'border-bottom-left-radius': {
829
- 'cssExtra': c[ 0 ],
830
- 'cssPropBits': 5
831
- },
832
- 'border-bottom-right-radius': {
833
- 'cssExtra': c[ 0 ],
834
- 'cssPropBits': 5
835
- },
836
- 'border-bottom-style': {
837
- 'cssPropBits': 0,
838
- 'cssLitGroup': [ L[ 9 ], L[ 46 ], L[ 47 ], L[ 48 ], L[ 54 ] ]
839
- },
840
- 'border-bottom-width': {
841
- 'cssPropBits': 5,
842
- 'cssLitGroup': [ L[ 34 ], L[ 47 ], L[ 52 ] ]
843
- },
844
- 'border-collapse': {
845
- 'cssPropBits': 0,
846
- 'cssLitGroup': [ L[ 44 ], L[ 47 ], L[ 59 ] ]
847
- },
848
- 'border-color': {
849
- 'cssExtra': RegExp('^ *(?:\\s*' + s[ 0 ] + '){1,4} *$', 'i'),
850
- 'cssPropBits': 2,
851
- 'cssLitGroup': [ L[ 0 ], L[ 47 ], L[ 62 ] ]
852
- },
853
- 'border-left': {
854
- 'cssExtra': c[ 3 ],
855
- 'cssPropBits': 7,
856
- 'cssLitGroup': [ L[ 0 ], L[ 9 ], L[ 34 ], L[ 46 ], L[ 47 ], L[ 48 ], L[
857
- 52 ], L[ 54 ], L[ 62 ] ]
858
- },
859
- 'border-left-color': {
860
- 'cssExtra': c[ 2 ],
861
- 'cssPropBits': 2,
862
- 'cssLitGroup': [ L[ 0 ], L[ 47 ], L[ 62 ] ]
863
- },
864
- 'border-left-style': {
865
- 'cssPropBits': 0,
866
- 'cssLitGroup': [ L[ 9 ], L[ 46 ], L[ 47 ], L[ 48 ], L[ 54 ] ]
867
- },
868
- 'border-left-width': {
869
- 'cssPropBits': 5,
870
- 'cssLitGroup': [ L[ 34 ], L[ 47 ], L[ 52 ] ]
871
- },
872
- 'border-radius': {
873
- 'cssExtra': c[ 0 ],
874
- 'cssPropBits': 5,
875
- 'cssLitGroup': [ L[ 36 ] ]
876
- },
877
- 'border-right': {
878
- 'cssExtra': c[ 3 ],
879
- 'cssPropBits': 7,
880
- 'cssLitGroup': [ L[ 0 ], L[ 9 ], L[ 34 ], L[ 46 ], L[ 47 ], L[ 48 ], L[
881
- 52 ], L[ 54 ], L[ 62 ] ]
882
- },
883
- 'border-right-color': {
884
- 'cssExtra': c[ 2 ],
885
- 'cssPropBits': 2,
886
- 'cssLitGroup': [ L[ 0 ], L[ 47 ], L[ 62 ] ]
887
- },
888
- 'border-right-style': {
889
- 'cssPropBits': 0,
890
- 'cssLitGroup': [ L[ 9 ], L[ 46 ], L[ 47 ], L[ 48 ], L[ 54 ] ]
891
- },
892
- 'border-right-width': {
893
- 'cssPropBits': 5,
894
- 'cssLitGroup': [ L[ 34 ], L[ 47 ], L[ 52 ] ]
895
- },
896
- 'border-spacing': {
897
- 'cssExtra': c[ 0 ],
898
- 'cssPropBits': 5,
899
- 'cssLitGroup': [ L[ 47 ] ]
900
- },
901
- 'border-style': {
902
- 'cssPropBits': 0,
903
- 'cssLitGroup': [ L[ 9 ], L[ 46 ], L[ 47 ], L[ 48 ], L[ 54 ] ]
904
- },
905
- 'border-top': {
906
- 'cssExtra': c[ 3 ],
907
- 'cssPropBits': 7,
908
- 'cssLitGroup': [ L[ 0 ], L[ 9 ], L[ 34 ], L[ 46 ], L[ 47 ], L[ 48 ], L[
909
- 52 ], L[ 54 ], L[ 62 ] ]
910
- },
911
- 'border-top-color': {
912
- 'cssExtra': c[ 2 ],
913
- 'cssPropBits': 2,
914
- 'cssLitGroup': [ L[ 0 ], L[ 47 ], L[ 62 ] ]
915
- },
916
- 'border-top-left-radius': {
917
- 'cssExtra': c[ 0 ],
918
- 'cssPropBits': 5
919
- },
920
- 'border-top-right-radius': {
921
- 'cssExtra': c[ 0 ],
922
- 'cssPropBits': 5
923
- },
924
- 'border-top-style': {
925
- 'cssPropBits': 0,
926
- 'cssLitGroup': [ L[ 9 ], L[ 46 ], L[ 47 ], L[ 48 ], L[ 54 ] ]
927
- },
928
- 'border-top-width': {
929
- 'cssPropBits': 5,
930
- 'cssLitGroup': [ L[ 34 ], L[ 47 ], L[ 52 ] ]
931
- },
932
- 'border-width': {
933
- 'cssPropBits': 5,
934
- 'cssLitGroup': [ L[ 34 ], L[ 47 ], L[ 52 ] ]
935
- },
936
- 'bottom': {
937
- 'cssPropBits': 5,
938
- 'cssLitGroup': [ L[ 38 ], L[ 47 ] ]
939
- },
940
- 'box-shadow': {
941
- 'cssExtra': c[ 1 ],
942
- 'cssPropBits': 7,
943
- 'cssLitGroup': [ L[ 0 ], L[ 35 ], L[ 48 ], L[ 54 ] ]
944
- },
945
- 'caption-side': {
946
- 'cssPropBits': 0,
947
- 'cssLitGroup': [ L[ 24 ], L[ 47 ] ]
948
- },
949
- 'clear': {
950
- 'cssPropBits': 0,
951
- 'cssLitGroup': [ L[ 30 ], L[ 40 ], L[ 47 ], L[ 54 ] ]
952
- },
953
- 'clip': {
954
- 'cssExtra':
955
- /^ *\s*rect\(\s*(?:0|[+\-]?\d+(?:\.\d+)?(?:[cem]m|ex|in|p[ctx])|auto)\s*,\s*(?:0|[+\-]?\d+(?:\.\d+)?(?:[cem]m|ex|in|p[ctx])|auto)\s*,\s*(?:0|[+\-]?\d+(?:\.\d+)?(?:[cem]m|ex|in|p[ctx])|auto)\s*,\s*(?:0|[+\-]?\d+(?:\.\d+)?(?:[cem]m|ex|in|p[ctx])|auto) *\) *$/i,
956
- 'cssPropBits': 0,
957
- 'cssLitGroup': [ L[ 38 ], L[ 47 ] ]
958
- },
959
- 'color': {
960
- 'cssExtra': c[ 2 ],
961
- 'cssPropBits': 130,
962
- 'cssLitGroup': [ L[ 0 ], L[ 47 ] ]
963
- },
964
- 'content': { 'cssPropBits': 0 },
965
- 'counter-increment': {
966
- 'cssExtra': c[ 0 ],
967
- 'cssPropBits': 5,
968
- 'cssLitGroup': [ L[ 47 ], L[ 54 ] ]
969
- },
970
- 'counter-reset': {
971
- 'cssExtra': c[ 0 ],
972
- 'cssPropBits': 5,
973
- 'cssLitGroup': [ L[ 47 ], L[ 54 ] ]
974
- },
975
- 'cue': {
976
- 'cssPropBits': 16,
977
- 'cssLitGroup': [ L[ 47 ], L[ 54 ] ]
978
- },
979
- 'cue-after': {
980
- 'cssPropBits': 16,
981
- 'cssLitGroup': [ L[ 47 ], L[ 54 ] ]
982
- },
983
- 'cue-before': {
984
- 'cssPropBits': 16,
985
- 'cssLitGroup': [ L[ 47 ], L[ 54 ] ]
986
- },
987
- 'cursor': {
988
- 'cssExtra': c[ 0 ],
989
- 'cssPropBits': 144,
990
- 'cssLitGroup': [ L[ 1 ], L[ 35 ], L[ 38 ], L[ 47 ] ]
991
- },
992
- 'direction': {
993
- 'cssPropBits': 0,
994
- 'cssLitGroup': [ L[ 31 ], L[ 47 ] ]
995
- },
996
- 'display': {
997
- 'cssPropBits': 32,
998
- 'cssLitGroup': [ L[ 2 ], L[ 47 ], L[ 54 ] ]
999
- },
1000
- 'elevation': {
1001
- 'cssPropBits': 5,
1002
- 'cssLitGroup': [ L[ 13 ], L[ 47 ] ]
1003
- },
1004
- 'empty-cells': {
1005
- 'cssPropBits': 0,
1006
- 'cssLitGroup': [ L[ 27 ], L[ 47 ] ]
1007
- },
1008
- 'filter': {
1009
- 'cssExtra':
1010
- /^ *(?:\s*alpha\(\s*opacity\s*=\s*(?:0|\d+(?:\.\d+)?%|[+\-]?\d+(?:\.\d+)?) *\))+ *$/i,
1011
- 'cssPropBits': 32
1012
- },
1013
- 'float': {
1014
- 'cssAlternates': [ 'cssFloat', 'styleFloat' ],
1015
- 'cssPropBits': 32,
1016
- 'cssLitGroup': [ L[ 30 ], L[ 47 ], L[ 54 ] ]
1017
- },
1018
- 'font': {
1019
- 'cssExtra': c[ 0 ],
1020
- 'cssPropBits': 9,
1021
- 'cssLitGroup': [ L[ 4 ], L[ 7 ], L[ 11 ], L[ 15 ], L[ 29 ], L[ 35 ], L[
1022
- 36 ], L[ 47 ], L[ 52 ], L[ 55 ], L[ 60 ] ]
1023
- },
1024
- 'font-family': {
1025
- 'cssExtra': c[ 0 ],
1026
- 'cssPropBits': 8,
1027
- 'cssLitGroup': [ L[ 15 ], L[ 35 ], L[ 47 ] ]
1028
- },
1029
- 'font-size': {
1030
- 'cssPropBits': 1,
1031
- 'cssLitGroup': [ L[ 7 ], L[ 47 ], L[ 52 ] ]
1032
- },
1033
- 'font-stretch': {
1034
- 'cssPropBits': 0,
1035
- 'cssLitGroup': [ L[ 5 ], L[ 55 ] ]
1036
- },
1037
- 'font-style': {
1038
- 'cssPropBits': 0,
1039
- 'cssLitGroup': [ L[ 29 ], L[ 47 ], L[ 55 ] ]
1040
- },
1041
- 'font-variant': {
1042
- 'cssPropBits': 0,
1043
- 'cssLitGroup': [ L[ 47 ], L[ 55 ], L[ 60 ] ]
1044
- },
1045
- 'font-weight': {
1046
- 'cssPropBits': 0,
1047
- 'cssLitGroup': [ L[ 4 ], L[ 47 ], L[ 55 ] ],
1048
- // ##### BEGIN: MODIFIED BY SAP
1049
- 'cssLitNumeric': true
1050
- // ##### END: MODIFIED BY SAP
1051
- },
1052
- 'height': {
1053
- 'cssPropBits': 37,
1054
- 'cssLitGroup': [ L[ 38 ], L[ 47 ] ]
1055
- },
1056
- 'left': {
1057
- 'cssPropBits': 37,
1058
- 'cssLitGroup': [ L[ 38 ], L[ 47 ] ]
1059
- },
1060
- 'letter-spacing': {
1061
- 'cssPropBits': 5,
1062
- 'cssLitGroup': [ L[ 47 ], L[ 55 ] ]
1063
- },
1064
- 'line-height': {
1065
- 'cssPropBits': 1,
1066
- 'cssLitGroup': [ L[ 47 ], L[ 55 ] ]
1067
- },
1068
- 'list-style': {
1069
- 'cssPropBits': 16,
1070
- 'cssLitGroup': [ L[ 3 ], L[ 28 ], L[ 47 ], L[ 54 ] ]
1071
- },
1072
- 'list-style-image': {
1073
- 'cssPropBits': 16,
1074
- 'cssLitGroup': [ L[ 47 ], L[ 54 ] ]
1075
- },
1076
- 'list-style-position': {
1077
- 'cssPropBits': 0,
1078
- 'cssLitGroup': [ L[ 28 ], L[ 47 ] ]
1079
- },
1080
- 'list-style-type': {
1081
- 'cssPropBits': 0,
1082
- 'cssLitGroup': [ L[ 3 ], L[ 47 ], L[ 54 ] ]
1083
- },
1084
- 'margin': {
1085
- 'cssPropBits': 5,
1086
- 'cssLitGroup': [ L[ 38 ], L[ 47 ] ]
1087
- },
1088
- 'margin-bottom': {
1089
- 'cssPropBits': 5,
1090
- 'cssLitGroup': [ L[ 38 ], L[ 47 ] ]
1091
- },
1092
- 'margin-left': {
1093
- 'cssPropBits': 5,
1094
- 'cssLitGroup': [ L[ 38 ], L[ 47 ] ]
1095
- },
1096
- 'margin-right': {
1097
- 'cssPropBits': 5,
1098
- 'cssLitGroup': [ L[ 38 ], L[ 47 ] ]
1099
- },
1100
- 'margin-top': {
1101
- 'cssPropBits': 5,
1102
- 'cssLitGroup': [ L[ 38 ], L[ 47 ] ]
1103
- },
1104
- 'max-height': {
1105
- 'cssPropBits': 1,
1106
- 'cssLitGroup': [ L[ 38 ], L[ 47 ], L[ 54 ] ]
1107
- },
1108
- 'max-width': {
1109
- 'cssPropBits': 1,
1110
- 'cssLitGroup': [ L[ 38 ], L[ 47 ], L[ 54 ] ]
1111
- },
1112
- 'min-height': {
1113
- 'cssPropBits': 1,
1114
- 'cssLitGroup': [ L[ 38 ], L[ 47 ] ]
1115
- },
1116
- 'min-width': {
1117
- 'cssPropBits': 1,
1118
- 'cssLitGroup': [ L[ 38 ], L[ 47 ] ]
1119
- },
1120
- 'opacity': {
1121
- 'cssPropBits': 33,
1122
- 'cssLitGroup': [ L[ 47 ] ]
1123
- },
1124
- 'outline': {
1125
- 'cssExtra': c[ 3 ],
1126
- 'cssPropBits': 7,
1127
- 'cssLitGroup': [ L[ 0 ], L[ 9 ], L[ 34 ], L[ 46 ], L[ 47 ], L[ 48 ], L[
1128
- 49 ], L[ 52 ], L[ 54 ] ]
1129
- },
1130
- 'outline-color': {
1131
- 'cssExtra': c[ 2 ],
1132
- 'cssPropBits': 2,
1133
- 'cssLitGroup': [ L[ 0 ], L[ 47 ], L[ 49 ] ]
1134
- },
1135
- 'outline-style': {
1136
- 'cssPropBits': 0,
1137
- 'cssLitGroup': [ L[ 9 ], L[ 46 ], L[ 47 ], L[ 48 ], L[ 54 ] ]
1138
- },
1139
- 'outline-width': {
1140
- 'cssPropBits': 5,
1141
- 'cssLitGroup': [ L[ 34 ], L[ 47 ], L[ 52 ] ]
1142
- },
1143
- 'overflow': {
1144
- 'cssPropBits': 32,
1145
- 'cssLitGroup': [ L[ 38 ], L[ 46 ], L[ 47 ], L[ 58 ], L[ 63 ] ]
1146
- },
1147
- 'overflow-x': {
1148
- 'cssPropBits': 0,
1149
- 'cssLitGroup': [ L[ 32 ], L[ 38 ], L[ 46 ], L[ 58 ], L[ 63 ] ]
1150
- },
1151
- 'overflow-y': {
1152
- 'cssPropBits': 0,
1153
- 'cssLitGroup': [ L[ 32 ], L[ 38 ], L[ 46 ], L[ 58 ], L[ 63 ] ]
1154
- },
1155
- 'padding': {
1156
- 'cssPropBits': 1,
1157
- 'cssLitGroup': [ L[ 47 ] ]
1158
- },
1159
- 'padding-bottom': {
1160
- 'cssPropBits': 33,
1161
- 'cssLitGroup': [ L[ 47 ] ]
1162
- },
1163
- 'padding-left': {
1164
- 'cssPropBits': 33,
1165
- 'cssLitGroup': [ L[ 47 ] ]
1166
- },
1167
- 'padding-right': {
1168
- 'cssPropBits': 33,
1169
- 'cssLitGroup': [ L[ 47 ] ]
1170
- },
1171
- 'padding-top': {
1172
- 'cssPropBits': 33,
1173
- 'cssLitGroup': [ L[ 47 ] ]
1174
- },
1175
- 'page-break-after': {
1176
- 'cssPropBits': 0,
1177
- 'cssLitGroup': [ L[ 30 ], L[ 37 ], L[ 38 ], L[ 39 ], L[ 47 ] ]
1178
- },
1179
- 'page-break-before': {
1180
- 'cssPropBits': 0,
1181
- 'cssLitGroup': [ L[ 30 ], L[ 37 ], L[ 38 ], L[ 39 ], L[ 47 ] ]
1182
- },
1183
- 'page-break-inside': {
1184
- 'cssPropBits': 0,
1185
- 'cssLitGroup': [ L[ 38 ], L[ 39 ], L[ 47 ] ]
1186
- },
1187
- 'pause': {
1188
- 'cssPropBits': 5,
1189
- 'cssLitGroup': [ L[ 47 ] ]
1190
- },
1191
- 'pause-after': {
1192
- 'cssPropBits': 5,
1193
- 'cssLitGroup': [ L[ 47 ] ]
1194
- },
1195
- 'pause-before': {
1196
- 'cssPropBits': 5,
1197
- 'cssLitGroup': [ L[ 47 ] ]
1198
- },
1199
- 'pitch': {
1200
- 'cssPropBits': 5,
1201
- 'cssLitGroup': [ L[ 19 ], L[ 47 ], L[ 52 ] ]
1202
- },
1203
- 'pitch-range': {
1204
- 'cssPropBits': 5,
1205
- 'cssLitGroup': [ L[ 47 ] ]
1206
- },
1207
- 'play-during': {
1208
- 'cssExtra': c[ 0 ],
1209
- 'cssPropBits': 16,
1210
- 'cssLitGroup': [ L[ 38 ], L[ 47 ], L[ 53 ], L[ 54 ], L[ 57 ] ]
1211
- },
1212
- 'position': {
1213
- 'cssPropBits': 32,
1214
- 'cssLitGroup': [ L[ 20 ], L[ 47 ] ]
1215
- },
1216
- 'quotes': {
1217
- 'cssExtra': c[ 0 ],
1218
- 'cssPropBits': 0,
1219
- 'cssLitGroup': [ L[ 47 ], L[ 54 ] ]
1220
- },
1221
- 'richness': {
1222
- 'cssPropBits': 5,
1223
- 'cssLitGroup': [ L[ 47 ] ]
1224
- },
1225
- 'right': {
1226
- 'cssPropBits': 37,
1227
- 'cssLitGroup': [ L[ 38 ], L[ 47 ] ]
1228
- },
1229
- 'speak': {
1230
- 'cssPropBits': 0,
1231
- 'cssLitGroup': [ L[ 47 ], L[ 54 ], L[ 55 ], L[ 61 ] ]
1232
- },
1233
- 'speak-header': {
1234
- 'cssPropBits': 0,
1235
- 'cssLitGroup': [ L[ 37 ], L[ 47 ], L[ 56 ] ]
1236
- },
1237
- 'speak-numeral': {
1238
- 'cssPropBits': 0,
1239
- 'cssLitGroup': [ L[ 26 ], L[ 47 ] ]
1240
- },
1241
- 'speak-punctuation': {
1242
- 'cssPropBits': 0,
1243
- 'cssLitGroup': [ L[ 43 ], L[ 47 ], L[ 54 ] ]
1244
- },
1245
- 'speech-rate': {
1246
- 'cssPropBits': 5,
1247
- 'cssLitGroup': [ L[ 12 ], L[ 47 ], L[ 52 ] ]
1248
- },
1249
- 'stress': {
1250
- 'cssPropBits': 5,
1251
- 'cssLitGroup': [ L[ 47 ] ]
1252
- },
1253
- 'table-layout': {
1254
- 'cssPropBits': 0,
1255
- 'cssLitGroup': [ L[ 38 ], L[ 45 ], L[ 47 ] ]
1256
- },
1257
- 'text-align': {
1258
- 'cssPropBits': 0,
1259
- 'cssLitGroup': [ L[ 30 ], L[ 42 ], L[ 47 ], L[ 50 ] ]
1260
- },
1261
- 'text-decoration': {
1262
- 'cssPropBits': 0,
1263
- 'cssLitGroup': [ L[ 18 ], L[ 47 ], L[ 54 ] ]
1264
- },
1265
- 'text-indent': {
1266
- 'cssPropBits': 5,
1267
- 'cssLitGroup': [ L[ 47 ] ]
1268
- },
1269
- 'text-overflow': {
1270
- 'cssPropBits': 0,
1271
- 'cssLitGroup': [ L[ 25 ] ]
1272
- },
1273
- 'text-shadow': {
1274
- 'cssExtra': c[ 1 ],
1275
- 'cssPropBits': 7,
1276
- 'cssLitGroup': [ L[ 0 ], L[ 35 ], L[ 48 ], L[ 54 ] ]
1277
- },
1278
- 'text-transform': {
1279
- 'cssPropBits': 0,
1280
- 'cssLitGroup': [ L[ 21 ], L[ 47 ], L[ 54 ] ]
1281
- },
1282
- 'text-wrap': {
1283
- 'cssPropBits': 0,
1284
- 'cssLitGroup': [ L[ 33 ], L[ 54 ], L[ 55 ] ]
1285
- },
1286
- 'top': {
1287
- 'cssPropBits': 37,
1288
- 'cssLitGroup': [ L[ 38 ], L[ 47 ] ]
1289
- },
1290
- 'unicode-bidi': {
1291
- 'cssPropBits': 0,
1292
- 'cssLitGroup': [ L[ 23 ], L[ 47 ], L[ 55 ] ]
1293
- },
1294
- 'vertical-align': {
1295
- 'cssPropBits': 5,
1296
- 'cssLitGroup': [ L[ 10 ], L[ 24 ], L[ 47 ] ]
1297
- },
1298
- 'visibility': {
1299
- 'cssPropBits': 32,
1300
- 'cssLitGroup': [ L[ 44 ], L[ 46 ], L[ 47 ], L[ 63 ] ]
1301
- },
1302
- 'voice-family': {
1303
- 'cssExtra': c[ 0 ],
1304
- 'cssPropBits': 8,
1305
- 'cssLitGroup': [ L[ 22 ], L[ 35 ], L[ 47 ] ]
1306
- },
1307
- 'volume': {
1308
- 'cssPropBits': 1,
1309
- 'cssLitGroup': [ L[ 16 ], L[ 47 ], L[ 52 ] ]
1310
- },
1311
- 'white-space': {
1312
- 'cssPropBits': 0,
1313
- 'cssLitGroup': [ L[ 8 ], L[ 47 ], L[ 55 ] ]
1314
- },
1315
- 'width': {
1316
- 'cssPropBits': 33,
1317
- 'cssLitGroup': [ L[ 38 ], L[ 47 ] ]
1318
- },
1319
- 'word-spacing': {
1320
- 'cssPropBits': 5,
1321
- 'cssLitGroup': [ L[ 47 ], L[ 55 ] ]
1322
- },
1323
- 'word-wrap': {
1324
- 'cssPropBits': 0,
1325
- 'cssLitGroup': [ L[ 41 ], L[ 55 ] ]
1326
- },
1327
- 'z-index': {
1328
- 'cssPropBits': 69,
1329
- 'cssLitGroup': [ L[ 38 ], L[ 47 ] ]
1330
- },
1331
- 'zoom': {
1332
- 'cssPropBits': 1,
1333
- 'cssLitGroup': [ L[ 55 ] ]
1334
- }
1335
- };
1336
- })();
1337
- if (typeof window !== 'undefined') {
1338
- window['cssSchema'] = cssSchema;
1339
- }
1340
- // Copyright (C) 2011 Google Inc.
1341
- //
1342
- // Licensed under the Apache License, Version 2.0 (the "License");
1343
- // you may not use this file except in compliance with the License.
1344
- // You may obtain a copy of the License at
1345
- //
1346
- // http://www.apache.org/licenses/LICENSE-2.0
1347
- //
1348
- // Unless required by applicable law or agreed to in writing, software
1349
- // distributed under the License is distributed on an "AS IS" BASIS,
1350
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1351
- // See the License for the specific language governing permissions and
1352
- // limitations under the License.
1353
-
1354
- /**
1355
- * A lexical scannar for CSS3 as defined at http://www.w3.org/TR/css3-syntax .
1356
- *
1357
- * @author Mike Samuel <mikesamuel@gmail.com>
1358
- * \@provides lexCss, decodeCss
1359
- * \@overrides window
1360
- */
1361
-
1362
- var lexCss;
1363
- var decodeCss;
1364
-
1365
- (function () {
1366
-
1367
- /**
1368
- * Decodes an escape sequence as specified in CSS3 section 4.1.
1369
- * http://www.w3.org/TR/css3-syntax/#characters
1370
- * @private
1371
- */
1372
- function decodeCssEscape(s) {
1373
- var i = parseInt(s.substring(1), 16);
1374
- // If parseInt didn't find a hex diigt, it returns NaN so return the
1375
- // escaped character.
1376
- // Otherwise, parseInt will stop at the first non-hex digit so there's no
1377
- // need to worry about trailing whitespace.
1378
- if (i > 0xffff) {
1379
- // A supplemental codepoint.
1380
- return i -= 0x10000,
1381
- String.fromCharCode(
1382
- 0xd800 + (i >> 10),
1383
- 0xdc00 + (i & 0x3FF));
1384
- } else if (i == i) {
1385
- return String.fromCharCode(i);
1386
- } else if (s[1] < ' ') {
1387
- // "a backslash followed by a newline is ignored".
1388
- return '';
1389
- } else {
1390
- return s[1];
1391
- }
1392
- }
1393
-
1394
- /**
1395
- * Returns an equivalent CSS string literal given plain text: foo -> "foo".
1396
- * @private
1397
- */
1398
- function escapeCssString(s, replacer) {
1399
- return '"' + s.replace(/[\u0000-\u001f\\\"<>]/g, replacer) + '"';
1400
- }
1401
-
1402
- /**
1403
- * Maps chars to CSS escaped equivalents: "\n" -> "\\a ".
1404
- * @private
1405
- */
1406
- function escapeCssStrChar(ch) {
1407
- return cssStrChars[ch]
1408
- || (cssStrChars[ch] = '\\' + ch.charCodeAt(0).toString(16) + ' ');
1409
- }
1410
-
1411
- /**
1412
- * Maps chars to URI escaped equivalents: "\n" -> "%0a".
1413
- * @private
1414
- */
1415
- function escapeCssUrlChar(ch) {
1416
- return cssUrlChars[ch]
1417
- || (cssUrlChars[ch] = (ch < '\x10' ? '%0' : '%')
1418
- + ch.charCodeAt(0).toString(16));
1419
- }
1420
-
1421
- /**
1422
- * Mapping of CSS special characters to escaped equivalents.
1423
- * @private
1424
- */
1425
- var cssStrChars = {
1426
- '\\': '\\\\'
1427
- };
1428
-
1429
- /**
1430
- * Mapping of CSS special characters to URL-escaped equivalents.
1431
- * @private
1432
- */
1433
- var cssUrlChars = {
1434
- '\\': '%5c'
1435
- };
1436
-
1437
- // The comments below are copied from the CSS3 module syntax at
1438
- // http://www.w3.org/TR/css3-syntax .
1439
- // These string constants minify out when this is run-through closure
1440
- // compiler.
1441
- // Rules that have been adapted have comments prefixed with "Diff:", and
1442
- // where rules have been combined to avoid back-tracking in the regex engine
1443
- // or to work around limitations, there is a comment prefixed with
1444
- // "NewRule:".
1445
-
1446
- // In the below, we assume CRLF and CR have been normalize to CR.
1447
-
1448
- // wc ::= #x9 | #xA | #xC | #xD | #x20
1449
- var WC = '[\\t\\n\\f ]';
1450
- // w ::= wc*
1451
- var W = WC + '*';
1452
- // nl ::= #xA | #xD #xA | #xD | #xC
1453
- var NL = '[\\n\\f]';
1454
- // nonascii ::= [#x80-#xD7FF#xE000-#xFFFD#x10000-#x10FFFF]
1455
- // NewRule: Supplemental codepoints are represented as surrogate pairs in JS.
1456
- var SURROGATE_PAIR = '[\\ud800-\\udbff][\\udc00-\\udfff]';
1457
- var NONASCII = '[\\u0080-\\ud7ff\\ue000-\\ufffd]|' + SURROGATE_PAIR;
1458
- // unicode ::= '\' [0-9a-fA-F]{1,6} wc?
1459
- // NewRule: No point in having ESCAPE do (\\x|\\y)
1460
- var UNICODE_TAIL = '[0-9a-fA-F]{1,6}' + WC + '?';
1461
- // escape ::= unicode
1462
- // | '\' [#x20-#x7E#x80-#xD7FF#xE000-#xFFFD#x10000-#x10FFFF]
1463
- // NewRule: Below we use escape tail to efficiently match an escape or a
1464
- // line continuation so we can decode string content.
1465
- var ESCAPE_TAIL = '(?:' + UNICODE_TAIL
1466
- + '|[\\u0020-\\u007e\\u0080-\\ud7ff\\ue000\\ufffd]|'
1467
- + SURROGATE_PAIR + ')';
1468
- var ESCAPE = '\\\\' + ESCAPE_TAIL;
1469
- // urlchar ::= [#x9#x21#x23-#x26#x28-#x7E] | nonascii | escape
1470
- var URLCHAR = '(?:[\\t\\x21\\x23-\\x26\\x28-\\x5b\\x5d-\\x7e]|'
1471
- + NONASCII + '|' + ESCAPE + ')';
1472
- // stringchar ::= urlchar | #x20 | '\' nl
1473
- // We ignore mismatched surrogate pairs inside strings, so stringchar
1474
- // simplifies to a non-(quote|newline|backslash) or backslash any.
1475
- // Since we normalize CRLF to a single code-unit, there is no special
1476
- // handling needed for '\\' + CRLF.
1477
- var STRINGCHAR = '[^\'"\\n\\f\\\\]|\\\\[\\s\\S]';
1478
- // string ::= '"' (stringchar | "'")* '"' | "'" (stringchar | '"')* "'"
1479
- var STRING = '"(?:\'|' + STRINGCHAR + ')*"'
1480
- + '|\'(?:\"|' + STRINGCHAR + ')*\'';
1481
- // num ::= [0-9]+ | [0-9]* '.' [0-9]+
1482
- // Diff: We attach signs to num tokens.
1483
- var NUM = '[-+]?(?:[0-9]+(?:[.][0-9]+)?|[.][0-9]+)';
1484
- // nmstart ::= [a-zA-Z] | '_' | nonascii | escape
1485
- var NMSTART = '(?:[a-zA-Z_]|' + NONASCII + '|' + ESCAPE + ')';
1486
- // nmchar ::= [a-zA-Z0-9] | '-' | '_' | nonascii | escape
1487
- var NMCHAR = '(?:[a-zA-Z0-9_-]|' + NONASCII + '|' + ESCAPE + ')';
1488
- // ident ::= '-'? nmstart nmchar*
1489
- var IDENT = '-?' + NMSTART + NMCHAR + '*';
1490
-
1491
- // NewRule: union of IDENT, ATKEYWORD, HASH, but excluding #[0-9].
1492
- var WORD_TERM = '(?:@?-?' + NMSTART + '|#)' + NMCHAR + '*';
1493
- var NUMERIC_VALUE = NUM + '(?:%|' + IDENT + ')?';
1494
- // URI ::= "url(" w (string | urlchar* ) w ")"
1495
- var URI = 'url[(]' + W + '(?:' + STRING + '|' + URLCHAR + '*)' + W + '[)]';
1496
- // UNICODE-RANGE ::= "U+" [0-9A-F?]{1,6} ('-' [0-9A-F]{1,6})?
1497
- var UNICODE_RANGE = 'U[+][0-9A-F?]{1,6}(?:-[0-9A-F]{1,6})?';
1498
- // CDO ::= "<\!--"
1499
- var CDO = '<\!--';
1500
- // CDC ::= "-->"
1501
- var CDC = '-->';
1502
- // S ::= wc+
1503
- var S = WC + '+';
1504
- // COMMENT ::= "/*" [^*]* '*'+ ([^/] [^*]* '*'+)* "/"
1505
- // Diff: recognizes // comments.
1506
- var COMMENT = '/(?:[*][^*]*[*]+(?:[^/][^*]*[*]+)*/|/[^\\n\\f]*)';
1507
- // FUNCTION ::= ident '('
1508
- // Diff: We exclude url explicitly.
1509
- // TODO: should we be tolerant of "fn ("?
1510
- // ##### BEGIN: MODIFIED BY SAP
1511
- // Avoid risk of 'catastrophic backtracking' when unicode escapes are used
1512
- // var FUNCTION = '(?!url[(])' + IDENT + '[(]';
1513
- var FUNCTION = '(?!url[(])(?=(' + IDENT + '))\\1[(]';
1514
- // NewRule: one rule for all the comparison operators.
1515
- var CMP_OPS = '[~|^$*]=';
1516
- // CHAR ::= any character not matched by the above rules, except for " or '
1517
- // Diff: We exclude / and \ since they are handled above to prevent
1518
- // /* without a following */ from combining when comments are concatenated.
1519
- var CHAR = '[^"\'\\\\/]|/(?![/*])';
1520
- // BOM ::= #xFEFF
1521
- var BOM = '\\uFEFF';
1522
-
1523
- var CSS_TOKEN = new RegExp([
1524
- BOM, UNICODE_RANGE, URI, FUNCTION, WORD_TERM, STRING, NUMERIC_VALUE,
1525
- CDO, CDC, S, COMMENT, CMP_OPS, CHAR].join("|"), 'gi');
1526
-
1527
- /**
1528
- * Decodes CSS escape sequences in a CSS string body.
1529
- */
1530
- decodeCss = function (css) {
1531
- return css.replace(
1532
- new RegExp('\\\\(?:' + ESCAPE_TAIL + '|' + NL + ')', 'g'),
1533
- decodeCssEscape);
1534
- };
1535
-
1536
- /**
1537
- * Given CSS Text, returns an array of normalized tokens.
1538
- * @param {string} cssText
1539
- * @return {Array.<string>} tokens where all ignorable token sequences have
1540
- * been reduced to a single {@code " "} and all strings and
1541
- * {@code url(...)} tokens have been normalized to use double quotes as
1542
- * delimiters and to not otherwise contain double quotes.
1543
- */
1544
- lexCss = function (cssText) {
1545
- cssText = '' + cssText;
1546
- var tokens = cssText.replace(/\r\n?/g, '\n') // Normalize CRLF & CR to LF.
1547
- .match(CSS_TOKEN) || [];
1548
- var j = 0;
1549
- var last = ' ';
1550
- for (var i = 0, n = tokens.length; i < n; ++i) {
1551
- // Normalize all escape sequences. We will have to re-escape some
1552
- // codepoints in string and url(...) bodies but we already know the
1553
- // boundaries.
1554
- // We might mistakenly treat a malformed identifier like \22\20\22 as a
1555
- // string, but that will not break any valid stylesheets since we requote
1556
- // and re-escape in string below.
1557
- var tok = decodeCss(tokens[i]);
1558
- var len = tok.length;
1559
- var cc = tok.charCodeAt(0);
1560
- tok =
1561
- // All strings should be double quoted, and the body should never
1562
- // contain a double quote.
1563
- (cc == '"'.charCodeAt(0) || cc == '\''.charCodeAt(0))
1564
- ? escapeCssString(tok.substring(1, len - 1), escapeCssStrChar)
1565
- // A breaking ignorable token should is replaced with a single space.
1566
- : (cc == '/'.charCodeAt(0) && len > 1 // Comment.
1567
- || tok == '\\' || tok == CDC || tok == CDO || tok == '\ufeff'
1568
- // Characters in W.
1569
- || cc <= ' '.charCodeAt(0))
1570
- ? ' '
1571
- // Make sure that all url(...)s are double quoted.
1572
- : /url\(/i.test(tok)
1573
- ? 'url(' + escapeCssString(
1574
- tok.replace(
1575
- new RegExp('^url\\(' + W + '["\']?|["\']?' + W + '\\)$', 'gi'),
1576
- ''),
1577
- escapeCssUrlChar)
1578
- + ')'
1579
- // Escapes in identifier like tokens will have been normalized above.
1580
- : tok;
1581
- // Merge adjacent space tokens.
1582
- if (last != tok || tok != ' ') {
1583
- tokens[j++] = last = tok;
1584
- }
1585
- }
1586
- tokens.length = j;
1587
- return tokens;
1588
- };
1589
- })();
1590
-
1591
- // Exports for closure compiler.
1592
- if (typeof window !== 'undefined') {
1593
- window['lexCss'] = lexCss;
1594
- window['decodeCss'] = decodeCss;
1595
- }
1596
- // Copyright (C) 2011 Google Inc.
1597
- //
1598
- // Licensed under the Apache License, Version 2.0 (the "License");
1599
- // you may not use this file except in compliance with the License.
1600
- // You may obtain a copy of the License at
1601
- //
1602
- // http://www.apache.org/licenses/LICENSE-2.0
1603
- //
1604
- // Unless required by applicable law or agreed to in writing, software
1605
- // distributed under the License is distributed on an "AS IS" BASIS,
1606
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1607
- // See the License for the specific language governing permissions and
1608
- // limitations under the License.
1609
-
1610
- /**
1611
- * @fileoverview
1612
- * JavaScript support for client-side CSS sanitization.
1613
- * The CSS property schema API is defined in CssPropertyPatterns.java which
1614
- * is used to generate css-defs.js.
1615
- *
1616
- * @author mikesamuel@gmail.com
1617
- * \@requires CSS_PROP_BIT_ALLOWED_IN_LINK
1618
- * \@requires CSS_PROP_BIT_HASH_VALUE
1619
- * \@requires CSS_PROP_BIT_NEGATIVE_QUANTITY
1620
- * \@requires CSS_PROP_BIT_QSTRING_CONTENT
1621
- * \@requires CSS_PROP_BIT_QSTRING_URL
1622
- * \@requires CSS_PROP_BIT_QUANTITY
1623
- * \@requires CSS_PROP_BIT_Z_INDEX
1624
- * \@requires cssSchema
1625
- * \@requires decodeCss
1626
- * \@requires html4
1627
- * \@overrides window
1628
- * \@requires parseCssStylesheet
1629
- * \@provides sanitizeCssProperty
1630
- * \@provides sanitizeCssSelectors
1631
- * \@provides sanitizeStylesheet
1632
- */
1633
-
1634
- /**
1635
- * Given a series of normalized CSS tokens, applies a property schema, as
1636
- * defined in CssPropertyPatterns.java, and sanitizes the tokens in place.
1637
- * @param property a property name.
1638
- * @param propertySchema a property of cssSchema as defined by
1639
- * CssPropertyPatterns.java
1640
- * @param tokens as parsed by lexCss. Modified in place.
1641
- * @param opt_naiveUriRewriter a URI rewriter; an object with a "rewrite"
1642
- * function that takes a URL and returns a safe URL.
1643
- */
1644
- var sanitizeCssProperty = (function () {
1645
- var NOEFFECT_URL = 'url("about:blank")';
1646
- /**
1647
- * The set of characters that need to be normalized inside url("...").
1648
- * We normalize newlines because they are not allowed inside quoted strings,
1649
- * normalize quote characters, angle-brackets, and asterisks because they
1650
- * could be used to break out of the URL or introduce targets for CSS
1651
- * error recovery. We normalize parentheses since they delimit unquoted
1652
- * URLs and calls and could be a target for error recovery.
1653
- */
1654
- var NORM_URL_REGEXP = /[\n\f\r\"\'()*<>]/g;
1655
- /** The replacements for NORM_URL_REGEXP. */
1656
- var NORM_URL_REPLACEMENTS = {
1657
- '\n': '%0a',
1658
- '\f': '%0c',
1659
- '\r': '%0d',
1660
- '"': '%22',
1661
- '\'': '%27',
1662
- '(': '%28',
1663
- ')': '%29',
1664
- '*': '%2a',
1665
- '<': '%3c',
1666
- '>': '%3e'
1667
- };
1668
-
1669
-
1670
- function normalizeUrl(s) {
1671
- if ('string' === typeof s) {
1672
- return 'url("' + s.replace(NORM_URL_REGEXP, normalizeUrlChar) + '")';
1673
- } else {
1674
- return NOEFFECT_URL;
1675
- }
1676
- }
1677
- function normalizeUrlChar(ch) {
1678
- return NORM_URL_REPLACEMENTS[ch];
1679
- }
1680
-
1681
- // From RFC3986
1682
- var URI_SCHEME_RE = new RegExp(
1683
- '^' +
1684
- '(?:' +
1685
- '([^:\/?# ]+)' + // scheme
1686
- ':)?'
1687
- );
1688
-
1689
- var ALLOWED_URI_SCHEMES = /^(?:https?|mailto)$/i;
1690
-
1691
- function safeUri(uri, prop, naiveUriRewriter) {
1692
- if (!naiveUriRewriter) { return null; }
1693
- var parsed = ('' + uri).match(URI_SCHEME_RE);
1694
- if (parsed && (!parsed[1] || ALLOWED_URI_SCHEMES.test(parsed[1]))) {
1695
- return naiveUriRewriter(uri, prop);
1696
- } else {
1697
- return null;
1698
- }
1699
- }
1700
-
1701
- function unionArrays(arrs) {
1702
- var map = {};
1703
- for (var i = arrs.length; --i >= 0;) {
1704
- var arr = arrs[i];
1705
- for (var j = arr.length; --j >= 0;) {
1706
- map[arr[j]] = ALLOWED_LITERAL;
1707
- }
1708
- }
1709
- return map;
1710
- }
1711
-
1712
- /**
1713
- * Normalize tokens within a function call they can match against
1714
- * cssSchema[propName].cssExtra.
1715
- * @return the exclusive end in tokens of the function call.
1716
- */
1717
- function normalizeFunctionCall(tokens, start) {
1718
- var parenDepth = 1, end = start + 1, n = tokens.length;
1719
- while (end < n && parenDepth) {
1720
- // TODO: Can URLs appear in functions?
1721
- var token = tokens[end++];
1722
- parenDepth += (token === '(' ? 1 : token === ')' ? -1 : 0);
1723
- }
1724
- return end;
1725
- }
1726
-
1727
- // Used as map value to avoid hasOwnProperty checks.
1728
- var ALLOWED_LITERAL = {};
1729
-
1730
- return function (property, propertySchema, tokens, opt_naiveUriRewriter) {
1731
- var propBits = propertySchema.cssPropBits;
1732
- // Used to determine whether to treat quoted strings as URLs or
1733
- // plain text content, and whether unrecognized keywords can be quoted
1734
- // to treate ['Arial', 'Black'] equivalently to ['"Arial Black"'].
1735
- var qstringBits = propBits & (
1736
- CSS_PROP_BIT_QSTRING_CONTENT | CSS_PROP_BIT_QSTRING_URL);
1737
- // TODO(mikesamuel): Figure out what to do with props like
1738
- // content that admit both URLs and strings.
1739
-
1740
- // Used to join unquoted keywords into a single quoted string.
1741
- var lastQuoted = NaN;
1742
- var i = 0, k = 0;
1743
- for (;i < tokens.length; ++i) {
1744
- // Has the effect of normalizing hex digits, keywords,
1745
- // and function names.
1746
- var token = tokens[i].toLowerCase();
1747
- var cc = token.charCodeAt(0), cc1, cc2, isnum1, isnum2, end;
1748
- var litGroup, litMap;
1749
- token = (
1750
- // Strip out spaces. Normally cssparser.js dumps these, but we
1751
- // strip them out in case the content doesn't come via cssparser.js.
1752
- (cc === ' '.charCodeAt(0))
1753
- ? ''
1754
- : (cc === '"'.charCodeAt(0))
1755
- ? ( // Quoted string.
1756
- (qstringBits === CSS_PROP_BIT_QSTRING_URL && opt_naiveUriRewriter)
1757
- // Sanitize and convert to url("...") syntax.
1758
- // Treat url content as case-sensitive.
1759
- ? (normalizeUrl(
1760
- safeUri(
1761
- decodeCss(tokens[i].substring(1, token.length - 1)),
1762
- property,
1763
- opt_naiveUriRewriter
1764
- )
1765
- ))
1766
- // Drop if plain text content strings not allowed.
1767
- : (qstringBits === CSS_PROP_BIT_QSTRING_CONTENT) ? token : '')
1768
- // Preserve hash color literals if allowed.
1769
- : (cc === '#'.charCodeAt(0) && /^#(?:[0-9a-f]{3}){1,2}$/.test(token))
1770
- ? (propBits & CSS_PROP_BIT_HASH_VALUE ? token : '')
1771
- // ##### BEGIN: MODIFIED BY SAP
1772
- // : ('0'.charCodeAt(0) <= cc && cc <= '9'.charCodeAt(0))
1773
- : ('0'.charCodeAt(0) <= cc && cc <= '9'.charCodeAt(0) && !propertySchema.cssLitNumeric)
1774
- // ##### END: MODIFIED BY SAP
1775
- // A number starting with a digit.
1776
- ? ((propBits & CSS_PROP_BIT_QUANTITY)
1777
- ? ((propBits & CSS_PROP_BIT_Z_INDEX)
1778
- ? (token.match(/^\d{1,7}$/) ? token : '')
1779
- : token)
1780
- : '')
1781
- // Normalize quantities so they don't start with a '.' or '+' sign and
1782
- // make sure they all have an integer component so can't be confused
1783
- // with a dotted identifier.
1784
- // This can't be done in the lexer since ".4" is a valid rule part.
1785
- : (cc1 = token.charCodeAt(1),
1786
- cc2 = token.charCodeAt(2),
1787
- isnum1 = '0'.charCodeAt(0) <= cc1 && cc1 <= '9'.charCodeAt(0),
1788
- isnum2 = '0'.charCodeAt(0) <= cc2 && cc2 <= '9'.charCodeAt(0),
1789
- // +.5 -> 0.5 if allowed.
1790
- (cc === '+'.charCodeAt(0)
1791
- && (isnum1 || (cc1 === '.'.charCodeAt(0) && isnum2))))
1792
- ? ((propBits & CSS_PROP_BIT_QUANTITY)
1793
- ? ((propBits & CSS_PROP_BIT_Z_INDEX)
1794
- ? (token.match(/^\+\d{1,7}$/) ? token : '')
1795
- : ((isnum1 ? '' : '0') + token.substring(1)))
1796
- : '')
1797
- // -.5 -> -0.5 if allowed otherwise -> 0 if quantities allowed.
1798
- : (cc === '-'.charCodeAt(0)
1799
- && (isnum1 || (cc1 === '.'.charCodeAt(0) && isnum2)))
1800
- ? ((propBits & CSS_PROP_BIT_NEGATIVE_QUANTITY)
1801
- ? ((propBits & CSS_PROP_BIT_Z_INDEX)
1802
- ? (token.match(/^\-\d{1,7}$/) ? token : '')
1803
- : ((isnum1 ? '-' : '-0') + token.substring(1)))
1804
- : ((propBits & CSS_PROP_BIT_QUANTITY) ? '0' : ''))
1805
- // .5 -> 0.5 if allowed.
1806
- : (cc === '.'.charCodeAt(0) && isnum1)
1807
- ? ((propBits & CSS_PROP_BIT_QUANTITY) ? '0' + token : '')
1808
- // Handle url("...") by rewriting the body.
1809
- : ('url(' === token.substring(0, 4))
1810
- ? ((opt_naiveUriRewriter && (qstringBits & CSS_PROP_BIT_QSTRING_URL))
1811
- ? normalizeUrl(
1812
- safeUri(
1813
- tokens[i].substring(5, token.length - 2),
1814
- property,
1815
- opt_naiveUriRewriter
1816
- )
1817
- )
1818
- : '')
1819
- // Handle func(...) and literal tokens
1820
- // such as keywords and punctuation.
1821
- : (
1822
- // Step 1. Combine func(...) into something that can be compared
1823
- // against propertySchema.cssExtra.
1824
- (token.charAt(token.length-1) === '(')
1825
- && (end = normalizeFunctionCall(tokens, i),
1826
- // When tokens is
1827
- // ['x', ' ', 'rgb(', '255', ',', '0', ',', '0', ')', ' ', 'y']
1828
- // and i is the index of 'rgb(' and end is the index of ')'
1829
- // splices tokens to where i now is the index of the whole call:
1830
- // ['x', ' ', 'rgb( 255 , 0 , 0 )', ' ', 'y']
1831
- tokens.splice(i, end - i,
1832
- token = tokens.slice(i, end).join(' '))),
1833
- litGroup = propertySchema.cssLitGroup,
1834
- litMap = (
1835
- litGroup
1836
- ? (propertySchema.cssLitMap
1837
- // Lazily compute the union from litGroup.
1838
- || (propertySchema.cssLitMap = unionArrays(litGroup)))
1839
- : ALLOWED_LITERAL), // A convenient empty object.
1840
- (litMap[token] === ALLOWED_LITERAL
1841
- || propertySchema.cssExtra && propertySchema.cssExtra.test(token)))
1842
- // Token is in the literal map or matches extra.
1843
- ? token
1844
- : (/^\w+$/.test(token)
1845
- && (qstringBits === CSS_PROP_BIT_QSTRING_CONTENT))
1846
- // Quote unrecognized keywords so font names like
1847
- // Arial Bold
1848
- // ->
1849
- // "Arial Bold"
1850
- ? (lastQuoted+1 === k
1851
- // If the last token was also a keyword that was quoted, then
1852
- // combine this token into that.
1853
- ? (tokens[lastQuoted] = tokens[lastQuoted]
1854
- .substring(0, tokens[lastQuoted].length-1) + ' ' + token + '"',
1855
- token = '')
1856
- : (lastQuoted = k, '"' + token + '"'))
1857
- // Disallowed.
1858
- : '');
1859
- if (token) {
1860
- tokens[k++] = token;
1861
- }
1862
- }
1863
- // For single URL properties, if the URL failed to pass the sanitizer,
1864
- // then just drop it.
1865
- if (k === 1 && tokens[0] === NOEFFECT_URL) { k = 0; }
1866
- tokens.length = k;
1867
- };
1868
- })();
1869
-
1870
- /**
1871
- * Given a series of tokens, returns two lists of sanitized selectors.
1872
- * @param {Array.<string>} selectors In the form produces by csslexer.js.
1873
- * @param {string} suffix a suffix that is added to all IDs and which is
1874
- * used as a CLASS names so that the returned selectors will only match
1875
- * nodes under one with suffix as a class name.
1876
- * If suffix is {@code "sfx"}, the selector
1877
- * {@code ["a", "#foo", " ", "b", ".bar"]} will be namespaced to
1878
- * {@code [".sfx", " ", "a", "#foo-sfx", " ", "b", ".bar"]}.
1879
- * @return {Array.<Array.<string>>} an array of length 2 where the zeroeth
1880
- * element contains history-insensitive selectors and the first element
1881
- * contains history-sensitive selectors.
1882
- */
1883
- function sanitizeCssSelectors(selectors, suffix) {
1884
- // Produce two distinct lists of selectors to sequester selectors that are
1885
- // history sensitive (:visited), so that we can disallow properties in the
1886
- // property groups for the history sensitive ones.
1887
- var historySensitiveSelectors = [];
1888
- var historyInsensitiveSelectors = [];
1889
-
1890
- // Remove any spaces that are not operators.
1891
- var k = 0, i;
1892
- for (i = 0; i < selectors.length; ++i) {
1893
- if (!(selectors[i] == ' '
1894
- && (selectors[i-1] == '>' || selectors[i+1] == '>'))) {
1895
- selectors[k++] = selectors[i];
1896
- }
1897
- }
1898
- selectors.length = k;
1899
-
1900
- // Split around commas. If there is an error in one of the comma separated
1901
- // bits, we throw the whole away, but the failure of one selector does not
1902
- // affect others.
1903
- var n = selectors.length, start = 0;
1904
- for (i = 0; i < n; ++i) {
1905
- if (selectors[i] == ',') {
1906
- processSelector(start, i);
1907
- start = i+1;
1908
- }
1909
- }
1910
- processSelector(start, n);
1911
-
1912
-
1913
- function processSelector(start, end) {
1914
- var historySensitive = false;
1915
-
1916
- // Space around commas is not an operator.
1917
- if (selectors[start] === ' ') { ++start; }
1918
- if (end-1 !== start && selectors[end] === ' ') { --end; }
1919
-
1920
- // Split the selector into element selectors, content around
1921
- // space (ancestor operator) and '>' (descendant operator).
1922
- var out = [];
1923
- var lastOperator = start;
1924
- var elSelector = '';
1925
- for (var i = start; i < end; ++i) {
1926
- var tok = selectors[i];
1927
- var isChild = (tok === '>');
1928
- if (isChild || tok === ' ') {
1929
- // We've found the end of a single link in the selector chain.
1930
- // We disallow absolute positions relative to html.
1931
- elSelector = processElementSelector(lastOperator, i, false);
1932
- if (!elSelector || (isChild && /^html/i.test(elSelector))) {
1933
- return;
1934
- }
1935
- lastOperator = i+1;
1936
- out.push(elSelector, isChild ? ' > ' : ' ');
1937
- }
1938
- }
1939
- elSelector = processElementSelector(lastOperator, end, true);
1940
- if (!elSelector) { return; }
1941
- out.push(elSelector);
1942
-
1943
- function processElementSelector(start, end, last) {
1944
-
1945
- // Split the element selector into three parts.
1946
- // DIV.foo#bar:hover
1947
- // ^ ^
1948
- // el classes pseudo
1949
- var element, classId, pseudoSelector, tok, elType;
1950
- element = '';
1951
- if (start < end) {
1952
- tok = selectors[start].toLowerCase();
1953
- if (tok === '*'
1954
- || (tok === 'body' && start+1 !== end && !last)
1955
- || ('number' === typeof (elType = html4.ELEMENTS[tok])
1956
- && !(elType & html4.eflags.UNSAFE))) {
1957
- ++start;
1958
- element = tok;
1959
- }
1960
- }
1961
- classId = '';
1962
- while (start < end) {
1963
- tok = selectors[start];
1964
- if (tok.charAt(0) === '#') {
1965
- if (/^#_|__$|[^#0-9A-Za-z:_\-]/.test(tok)) { return null; }
1966
- // Rewrite ID elements to include the suffix.
1967
- classId += tok + '-' + suffix;
1968
- } else if (tok === '.') {
1969
- if (++start < end
1970
- && /^[0-9A-Za-z:_\-]+$/.test(tok = selectors[start])
1971
- && !/^_|__$/.test(tok)) {
1972
- classId += '.' + tok;
1973
- } else {
1974
- return null;
1975
- }
1976
- } else {
1977
- break;
1978
- }
1979
- ++start;
1980
- }
1981
- pseudoSelector = '';
1982
- if (start < end && selectors[start] === ':') {
1983
- tok = selectors[++start];
1984
- if (tok === 'visited' || tok === 'link') {
1985
- if (!/^[a*]?$/.test(element)) {
1986
- return null;
1987
- }
1988
- historySensitive = true;
1989
- pseudoSelector = ':' + tok;
1990
- element = 'a';
1991
- ++start;
1992
- }
1993
- }
1994
- if (start === end) {
1995
- return element + classId + pseudoSelector;
1996
- }
1997
- return null;
1998
- }
1999
-
2000
-
2001
- var safeSelector = out.join('');
2002
- if (/^body\b/.test(safeSelector)) {
2003
- // Substitute the class that is attached to pseudo body elements for
2004
- // the body element.
2005
- safeSelector = '.vdoc-body___.' + suffix + safeSelector.substring(4);
2006
- } else {
2007
- // Namespace the selector so that it only matches under
2008
- // a node with suffix in its CLASS attribute.
2009
- safeSelector = '.' + suffix + ' ' + safeSelector;
2010
- }
2011
-
2012
- (historySensitive
2013
- ? historySensitiveSelectors
2014
- : historyInsensitiveSelectors).push(safeSelector);
2015
- }
2016
-
2017
- return [historyInsensitiveSelectors, historySensitiveSelectors];
2018
- }
2019
-
2020
- var sanitizeStylesheet = (function () {
2021
- var allowed = {};
2022
- var cssMediaTypeWhitelist = {
2023
- 'braille': allowed,
2024
- 'embossed': allowed,
2025
- 'handheld': allowed,
2026
- 'print': allowed,
2027
- 'projection': allowed,
2028
- 'screen': allowed,
2029
- 'speech': allowed,
2030
- 'tty': allowed,
2031
- 'tv': allowed
2032
- };
2033
-
2034
- /**
2035
- * Given a series of sanitized tokens, removes any properties that would
2036
- * leak user history if allowed to style links differently depending on
2037
- * whether the linked URL is in the user's browser history.
2038
- * @param {Array.<string>} blockOfProperties
2039
- */
2040
- function sanitizeHistorySensitive(blockOfProperties) {
2041
- var elide = false;
2042
- for (var i = 0, n = blockOfProperties.length; i < n-1; ++i) {
2043
- var token = blockOfProperties[i];
2044
- if (':' === blockOfProperties[i+1]) {
2045
- elide = !(cssSchema[token].cssPropBits & CSS_PROP_BIT_ALLOWED_IN_LINK);
2046
- }
2047
- if (elide) { blockOfProperties[i] = ''; }
2048
- if (';' === token) { elide = false; }
2049
- }
2050
- return blockOfProperties.join('');
2051
- }
2052
-
2053
- /**
2054
- * @param {string} cssText a string containing a CSS stylesheet.
2055
- * @param {string} suffix a suffix that is added to all IDs and which is
2056
- * used as a CLASS names so that the returned selectors will only match
2057
- * nodes under one with suffix as a class name.
2058
- * If suffix is {@code "sfx"}, the selector
2059
- * {@code ["a", "#foo", " ", "b", ".bar"]} will be namespaced to
2060
- * {@code [".sfx", " ", "a", "#foo-sfx", " ", "b", ".bar"]}.
2061
- * @param {function(string, string)} opt_naiveUriRewriter maps URLs of media
2062
- * (images, sounds) that appear as CSS property values to sanitized
2063
- * URLs or null if the URL should not be allowed as an external media
2064
- * file in sanitized CSS.
2065
- */
2066
- return function /*sanitizeStylesheet*/(
2067
- cssText, suffix, opt_naiveUriRewriter) {
2068
- var safeCss = void 0;
2069
- // A stack describing the { ... } regions.
2070
- // Null elements indicate blocks that should not be emitted.
2071
- var blockStack = [];
2072
- // True when the content of the current block should be left off safeCss.
2073
- var elide = false;
2074
- parseCssStylesheet(
2075
- cssText,
2076
- {
2077
- startStylesheet: function () {
2078
- safeCss = [];
2079
- },
2080
- endStylesheet: function () {
2081
- },
2082
- startAtrule: function (atIdent, headerArray) {
2083
- if (elide) {
2084
- atIdent = null;
2085
- } else if (atIdent === '@media') {
2086
- headerArray = headerArray.filter(
2087
- function (mediaType) {
2088
- return cssMediaTypeWhitelist[mediaType] == allowed;
2089
- });
2090
- if (headerArray.length) {
2091
- safeCss.push(atIdent, headerArray.join(','), '{');
2092
- } else {
2093
- atIdent = null;
2094
- }
2095
- } else {
2096
- if (atIdent === '@import') {
2097
- // TODO: Use a logger instead.
2098
- if (window.console) {
2099
- window.console.log(
2100
- '@import ' + headerArray.join(' ') + ' elided');
2101
- }
2102
- }
2103
- atIdent = null; // Elide the block.
2104
- }
2105
- elide = !atIdent;
2106
- blockStack.push(atIdent);
2107
- },
2108
- endAtrule: function () {
2109
- blockStack.pop();
2110
- if (!elide) {
2111
- safeCss.push(';');
2112
- }
2113
- checkElide();
2114
- },
2115
- startBlock: function () {
2116
- // There are no bare blocks in CSS, so we do not change the
2117
- // block stack here, but instead in the events that bracket
2118
- // blocks.
2119
- if (!elide) {
2120
- safeCss.push('{');
2121
- }
2122
- },
2123
- endBlock: function () {
2124
- if (!elide) {
2125
- safeCss.push('}');
2126
- elide = true; // skip any semicolon from endAtRule.
2127
- }
2128
- },
2129
- startRuleset: function (selectorArray) {
2130
- var historySensitiveSelectors = void 0;
2131
- var removeHistoryInsensitiveSelectors = false;
2132
- if (!elide) {
2133
- var selectors = sanitizeCssSelectors(selectorArray, suffix);
2134
- var historyInsensitiveSelectors = selectors[0];
2135
- historySensitiveSelectors = selectors[1];
2136
- if (!historyInsensitiveSelectors.length
2137
- && !historySensitiveSelectors.length) {
2138
- elide = true;
2139
- } else {
2140
- var selector = historyInsensitiveSelectors.join(', ');
2141
- if (!selector) {
2142
- // If we have only history sensitive selectors,
2143
- // use an impossible rule so that we can capture the content
2144
- // for later processing by
2145
- // history insenstive content for use below.
2146
- selector = 'head > html';
2147
- removeHistoryInsensitiveSelectors = true;
2148
- }
2149
- safeCss.push(selector, '{');
2150
- }
2151
- }
2152
- blockStack.push(
2153
- elide
2154
- ? null
2155
- // Sometimes a single list of selectors is split in two,
2156
- // div, a:visited
2157
- // because we want to allow some properties for DIV that
2158
- // we don't want to allow for A:VISITED to avoid leaking
2159
- // user history.
2160
- // Store the history sensitive selectors and the position
2161
- // where the block starts so we can later create a copy
2162
- // of the permissive tokens, and filter it to handle the
2163
- // history sensitive case.
2164
- : {
2165
- historySensitiveSelectors: historySensitiveSelectors,
2166
- endOfSelectors: safeCss.length - 1, // 1 is open curly
2167
- removeHistoryInsensitiveSelectors:
2168
- removeHistoryInsensitiveSelectors
2169
- });
2170
- },
2171
- endRuleset: function () {
2172
- var rules = blockStack.pop();
2173
- var propertiesEnd = safeCss.length;
2174
- if (!elide) {
2175
- safeCss.push('}');
2176
- if (rules) {
2177
- var extraSelectors = rules.historySensitiveSelectors;
2178
- if (extraSelectors.length) {
2179
- var propertyGroupTokens = safeCss.slice(rules.endOfSelectors);
2180
- safeCss.push(extraSelectors.join(', '),
2181
- sanitizeHistorySensitive(propertyGroupTokens));
2182
- }
2183
- }
2184
- }
2185
- if (rules && rules.removeHistoryInsensitiveSelectors) {
2186
- safeCss.splice(
2187
- // -1 and +1 account for curly braces.
2188
- rules.endOfSelectors - 1, propertiesEnd + 1);
2189
- }
2190
- checkElide();
2191
- },
2192
- declaration: function (property, valueArray) {
2193
- if (!elide) {
2194
- var schema = cssSchema[property];
2195
- if (schema) {
2196
- sanitizeCssProperty(property, schema, valueArray, opt_naiveUriRewriter);
2197
- if (valueArray.length) {
2198
- safeCss.push(property, ':', valueArray.join(' '), ';');
2199
- }
2200
- }
2201
- }
2202
- }
2203
- });
2204
- function checkElide() {
2205
- elide = blockStack.length !== 0
2206
- && blockStack[blockStack.length-1] !== null;
2207
- }
2208
- return safeCss.join('');
2209
- };
2210
- })();
2211
-
2212
- // Exports for closure compiler.
2213
- if (typeof window !== 'undefined') {
2214
- window['sanitizeCssProperty'] = sanitizeCssProperty;
2215
- window['sanitizeCssSelectors'] = sanitizeCssSelectors;
2216
- window['sanitizeStylesheet'] = sanitizeStylesheet;
2217
- }
2218
- // Copyright (C) 2010 Google Inc.
2219
- //
2220
- // Licensed under the Apache License, Version 2.0 (the "License");
2221
- // you may not use this file except in compliance with the License.
2222
- // You may obtain a copy of the License at
2223
- //
2224
- // http://www.apache.org/licenses/LICENSE-2.0
2225
- //
2226
- // Unless required by applicable law or agreed to in writing, software
2227
- // distributed under the License is distributed on an "AS IS" BASIS,
2228
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2229
- // See the License for the specific language governing permissions and
2230
- // limitations under the License.
2231
-
2232
- /**
2233
- * @fileoverview
2234
- * Utilities for dealing with CSS source code.
2235
- *
2236
- * @author mikesamuel@gmail.com
2237
- * \@requires lexCss
2238
- * \@overrides window
2239
- * \@provides parseCssStylesheet, parseCssDeclarations
2240
- */
2241
-
2242
- /**
2243
- * parseCssStylesheet takes a chunk of CSS text and a handler object with
2244
- * methods that it calls as below:
2245
- * <pre>
2246
- * // At the beginning of a stylesheet.
2247
- * handler.startStylesheet();
2248
- *
2249
- * // For an @foo rule ended by a semicolon: @import "foo.css";
2250
- * handler.startAtrule('@import', ['"foo.css"']);
2251
- * handler.endAtrule();
2252
- *
2253
- * // For an @foo rule ended with a block. @media print { ... }
2254
- * handler.startAtrule('@media', ['print']);
2255
- * handler.startBlock();
2256
- * // Calls to contents elided. Probably selectors and declarations as below.
2257
- * handler.endBlock();
2258
- * handler.endAtrule();
2259
- *
2260
- * // For a ruleset: p.clazz q, s { color: blue; }
2261
- * handler.startRuleset(['p', '.', 'clazz', ' ', 'q', ',', ' ', 's']);
2262
- * handler.declaration('color', ['blue']);
2263
- * handler.endRuleset();
2264
- *
2265
- * // At the end of a stylesheet.
2266
- * handler.endStylesheet();
2267
- * </pre>
2268
- * When errors are encountered, the parser drops the useless tokens and
2269
- * attempts to resume parsing.
2270
- *
2271
- * @param {string} cssText CSS3 content to parse as a stylesheet.
2272
- * @param {Object} handler An object like <pre>{
2273
- * startStylesheet: function () { ... },
2274
- * endStylesheet: function () { ... },
2275
- * startAtrule: function (atIdent, headerArray) { ... },
2276
- * endAtrule: function () { ... },
2277
- * startBlock: function () { ... },
2278
- * endBlock: function () { ... },
2279
- * startRuleset: function (selectorArray) { ... },
2280
- * endRuleset: function () { ... },
2281
- * declaration: function (property, valueArray) { ... },
2282
- * }</pre>
2283
- */
2284
- var parseCssStylesheet;
2285
-
2286
- /**
2287
- * parseCssDeclarations parses a run of declaration productions as seen in the
2288
- * body of the HTML5 {@code style} attribute.
2289
- *
2290
- * @param {string} cssText CSS3 content to parse as a run of declarations.
2291
- * @param {Object} handler An object like <pre>{
2292
- * declaration: function (property, valueArray) { ... },
2293
- * }</pre>
2294
- */
2295
- var parseCssDeclarations;
2296
-
2297
- (function () {
2298
- // stylesheet : [ CDO | CDC | S | statement ]*;
2299
- parseCssStylesheet = function(cssText, handler) {
2300
- var toks = lexCss(cssText);
2301
- if (handler.startStylesheet) { handler.startStylesheet(); }
2302
- for (var i = 0, n = toks.length; i < n;) {
2303
- // CDO and CDC ("<!--" and "-->") are converted to space by the lexer.
2304
- i = toks[i] === ' ' ? i+1 : statement(toks, i, n, handler);
2305
- }
2306
- if (handler.endStylesheet) { handler.endStylesheet(); }
2307
- };
2308
-
2309
- // statement : ruleset | at-rule;
2310
- function statement(toks, i, n, handler) {
2311
- if (i < n) {
2312
- var tok = toks[i];
2313
- if (tok.charAt(0) === '@') {
2314
- return atrule(toks, i, n, handler, true);
2315
- } else {
2316
- return ruleset(toks, i, n, handler);
2317
- }
2318
- } else {
2319
- return i;
2320
- }
2321
- }
2322
-
2323
- // at-rule : ATKEYWORD S* any* [ block | ';' S* ];
2324
- function atrule(toks, i, n, handler, blockok) {
2325
- var start = i++;
2326
- while (i < n && toks[i] !== '{' && toks[i] !== ';') {
2327
- ++i;
2328
- }
2329
- if (i < n && (blockok || toks[i] === ';')) {
2330
- var s = start+1, e = i;
2331
- if (s < n && toks[s] === ' ') { ++s; }
2332
- if (e > s && toks[e-1] === ' ') { --e; }
2333
- if (handler.startAtrule) {
2334
- handler.startAtrule(toks[start].toLowerCase(), toks.slice(s, e));
2335
- }
2336
- i = (toks[i] === '{')
2337
- ? block(toks, i, n, handler)
2338
- : i+1; // Skip over ';'
2339
- if (handler.endAtrule) {
2340
- handler.endAtrule();
2341
- }
2342
- }
2343
- // Else we reached end of input or are missing a semicolon.
2344
- // Drop the rule on the floor.
2345
- return i;
2346
- }
2347
-
2348
- // block : '{' S* [ any | block | ATKEYWORD S* | ';' S* ]* '}' S*;
2349
- // Assumes the leading '{' has been verified by callers.
2350
- function block(toks, i, n, handler) {
2351
- ++i; // skip over '{'
2352
- if (handler.startBlock) { handler.startBlock(); }
2353
- while (i < n) {
2354
- var ch = toks[i].charAt(0);
2355
- if (ch == '}') {
2356
- ++i;
2357
- break;
2358
- }
2359
- if (ch === ' ' || ch === ';') {
2360
- i = i+1;
2361
- } else if (ch === '@') {
2362
- i = atrule(toks, i, n, handler, false);
2363
- } else if (ch === '{') {
2364
- i = block(toks, i, n, handler);
2365
- } else {
2366
- // Instead of using (any* block) to subsume ruleset we allow either
2367
- // blocks or rulesets with a non-blank selector.
2368
- // This is more restrictive but does not require atrule specific
2369
- // parse tree fixup to realize that the contents of the block in
2370
- // @media print { ... }
2371
- // is a ruleset. We just don't care about any block carrying at-rules
2372
- // whose body content is not ruleset content.
2373
- i = ruleset(toks, i, n, handler);
2374
- }
2375
- }
2376
- if (handler.endBlock) { handler.endBlock(); }
2377
- return i;
2378
- }
2379
-
2380
- // ruleset : selector? '{' S* declaration? [ ';' S* declaration? ]* '}' S*;
2381
- function ruleset(toks, i, n, handler) {
2382
- // toks[s:e] are the selector tokens including internal whitespace.
2383
- var s = i, e = selector(toks, i, n, true);
2384
- if (e < 0) {
2385
- // Skip malformed content per selector calling convention.
2386
- e = ~e;
2387
- // Make sure we skip at least one token.
2388
- return i === e ? e+1 : e;
2389
- }
2390
- i = e;
2391
- // Don't include any trailing space in the selector slice.
2392
- if (e > s && toks[e-1] === ' ') { --e; }
2393
- var tok = toks[i];
2394
- ++i; // Skip over '{'
2395
- if (tok !== '{') {
2396
- // Skips past the '{' when there is a malformed input.
2397
- return i;
2398
- }
2399
- if (handler.startRuleset) {
2400
- handler.startRuleset(toks.slice(s, e));
2401
- }
2402
- while (i < n) {
2403
- tok = toks[i];
2404
- if (tok === '}') {
2405
- ++i;
2406
- break;
2407
- }
2408
- if (tok === ' ') {
2409
- i = i+1;
2410
- } else {
2411
- i = declaration(toks, i, n, handler);
2412
- }
2413
- }
2414
- if (handler.endRuleset) {
2415
- handler.endRuleset();
2416
- }
2417
- return i < n ? i+1 : i;
2418
- }
2419
-
2420
- // selector : any+;
2421
- // any : [ IDENT | NUMBER | PERCENTAGE | DIMENSION | STRING
2422
- // | DELIM | URI | HASH | UNICODE-RANGE | INCLUDES
2423
- // | FUNCTION S* any* ')' | DASHMATCH | '(' S* any* ')'
2424
- // | '[' S* any* ']' ] S*;
2425
- // A negative return value, rv, indicates the selector was malformed and
2426
- // the index at which we stopped is ~rv.
2427
- function selector(toks, i, n, allowSemi) {
2428
- // The definition of any above can be summed up as
2429
- // "any run of token except ('[', ']', '(', ')', ':', ';', '{', '}')
2430
- // or nested runs of parenthesized tokens or square bracketed tokens".
2431
- // Spaces are significant in the selector.
2432
- // Selector is used as (selector?) so the below looks for (any*) for
2433
- // simplicity.
2434
- var tok;
2435
- // Keeping a stack pointer actually causes this to minify better since
2436
- // ".length" and ".push" are a lo of chars.
2437
- var brackets = [], stackLast = -1;
2438
- for (;i < n; ++i) {
2439
- tok = toks[i].charAt(0);
2440
- if (tok === '[' || tok === '(') {
2441
- brackets[++stackLast] = tok;
2442
- } else if ((tok === ']' && brackets[stackLast] === '[') ||
2443
- (tok === ')' && brackets[stackLast] === '(')) {
2444
- --stackLast;
2445
- } else if (tok === '{' || tok === '}' || tok === ';' || tok === '@'
2446
- || (tok === ':' && !allowSemi)) {
2447
- break;
2448
- }
2449
- }
2450
- if (stackLast >= 0) {
2451
- // Returns the bitwise inverse of i+1 to indicate an error in the
2452
- // token stream so that clients can ignore it.
2453
- i = ~(i+1);
2454
- }
2455
- return i;
2456
- }
2457
-
2458
- var ident = /^-?[a-z]/i;
2459
-
2460
- // declaration : property ':' S* value;
2461
- // property : IDENT S*;
2462
- // value : [ any | block | ATKEYWORD S* ]+;
2463
- function declaration(toks, i, n, handler) {
2464
- var property = toks[i++];
2465
- if (!ident.test(property)) {
2466
- return i+1; // skip one token.
2467
- }
2468
- var tok;
2469
- if (i < n && toks[i] === ' ') { ++i; }
2470
- if (i == n || toks[i] !== ':') {
2471
- // skip tokens to next semi or close bracket.
2472
- while (i < n && (tok = toks[i]) !== ';' && tok !== '}') { ++i; }
2473
- return i;
2474
- }
2475
- ++i;
2476
- if (i < n && toks[i] === ' ') { ++i; }
2477
-
2478
- // None of the rules we care about want atrules or blocks in value, so
2479
- // we look for any+ but that is the same as selector but not zero-length.
2480
- // This gets us the benefit of not emitting any value with mismatched
2481
- // brackets.
2482
- var s = i, e = selector(toks, i, n, false);
2483
- if (e < 0) {
2484
- // Skip malformed content per selector calling convention.
2485
- e = ~e;
2486
- } else {
2487
- var value = [], valuelen = 0;
2488
- for (var j = s; j < e; ++j) {
2489
- tok = toks[j];
2490
- if (tok !== ' ') {
2491
- value[valuelen++] = tok;
2492
- }
2493
- }
2494
- // One of the following is now true:
2495
- // (1) e is flush with the end of the tokens as in <... style="x:y">.
2496
- // (2) tok[e] points to a ';' in which case we need to consume the semi.
2497
- // (3) tok[e] points to a '}' in which case we don't consume it.
2498
- // (4) else there is bogus unparsed value content at toks[e:].
2499
- // Allow declaration flush with end for style attr body.
2500
- if (e < n) { // 2, 3, or 4
2501
- do {
2502
- tok = toks[e];
2503
- if (tok === ';' || tok === '}') { break; }
2504
- // Don't emit the property if there is questionable trailing content.
2505
- valuelen = 0;
2506
- } while (++e < n);
2507
- if (tok === ';') {
2508
- ++e;
2509
- }
2510
- }
2511
- if (valuelen && handler.declaration) {
2512
- // TODO: coerce non-keyword ident tokens to quoted strings.
2513
- handler.declaration(property.toLowerCase(), value);
2514
- }
2515
- }
2516
- return e;
2517
- }
2518
-
2519
- parseCssDeclarations = function(cssText, handler) {
2520
- var toks = lexCss(cssText);
2521
- for (var i = 0, n = toks.length; i < n;) {
2522
- i = toks[i] !== ' ' ? declaration(toks, i, n, handler) : i+1;
2523
- }
2524
- };
2525
- })();
2526
-
2527
- // Exports for closure compiler.
2528
- if (typeof window !== 'undefined') {
2529
- window['parseCssStylesheet'] = parseCssStylesheet;
2530
- window['parseCssDeclarations'] = parseCssDeclarations;
2531
- }
2532
- /*!
2533
- * OpenUI5
2534
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
2535
- * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
2536
- */
2537
- // Based on coding from the HTML4 Sanitizer by Google Inc.
2538
- // The HTML Attributes and ELements were reorganized according to the actual HTML5 specification
2539
- // from the W3C. All types and flags were reviewed again as accurately as possible with HTML4 only
2540
- // elements removed, you can still see them as comments. All rules which are new or changed from the
2541
- // old HTML4 file are also marked "new" within the comment. The comments also state which attributes
2542
- // and elements are assigned to respective types and flags. All rules which were not 100% clear were
2543
- // analyzed in a way of similarity, so for example "audio" and "video" content behaves like images etc.
2544
- // URIEFFECTS state if a URL is loaded inplace within a tag where the actual document is in control
2545
- // of what type of content is loaded like "image" or if a new document is loaded like with "a href".
2546
- // LOADERTYPES state if content is loaded as sandboxed which means it is loaded within a specific
2547
- // surroundig player like with video content for example or if it is loaded freely without restrictions.
2548
- // @overrides window
2549
- // @provides html4
2550
-
2551
- var html4 = {};
2552
- html4.atype = {
2553
- NONE: 0,
2554
- URI: 1, //action, cite, data, href, icon, manifest, poster, src
2555
- URI_FRAGMENT: 11, //usemap
2556
- SCRIPT: 2, //all event handlers
2557
- STYLE: 3, //style
2558
- ID: 4, //id
2559
- IDREF: 5, //for
2560
- IDREFS: 6, //headers
2561
- GLOBAL_NAME: 7, //name of form, iframe, img, map, meta
2562
- LOCAL_NAME: 8, //name of button, fieldset, input, keygen, object, output, param, select, textarea
2563
- CLASSES: 9, //class
2564
- FRAME_TARGET: 10 //formtarget, srcdoc, target
2565
- };
2566
-
2567
- html4.ATTRIBS = {
2568
- '*::accesskey': 0, //NONE
2569
- '*::class': 9, //CLASSES
2570
- '*::contenteditable': 0, //NONE new
2571
- '*::contextmenu': 0, //NONE new
2572
- '*::dir': 0, //NONE
2573
- '*::draggable': 0, //NONE new
2574
- '*::dropzone': 0, //NONE new
2575
- '*::hidden': 0, //NONE new
2576
- '*::id': 4, //ID
2577
- '*::lang': 0, //NONE
2578
- '*::onabort': 2, //SCRIPT new
2579
- '*::onblur': 2, //SCRIPT new
2580
- '*::oncanplay': 2, //SCRIPT new
2581
- '*::oncanplaythrough': 2, //SCRIPT new
2582
- '*::onchange': 2, //SCRIPT new
2583
- '*::onclick': 2, //SCRIPT
2584
- '*::oncontextmenu': 2, //SCRIPT new
2585
- '*::oncuechange': 2, //SCRIPT new
2586
- '*::ondblclick': 2, //SCRIPT
2587
- '*::ondrag': 2, //SCRIPT new
2588
- '*::ondragend': 2, //SCRIPT new
2589
- '*::ondragenter': 2, //SCRIPT new
2590
- '*::ondragleave': 2, //SCRIPT new
2591
- '*::ondragover': 2, //SCRIPT new
2592
- '*::ondragstart': 2, //SCRIPT new
2593
- '*::ondrop': 2, //SCRIPT new
2594
- '*::ondurationchange': 2, //SCRIPT new
2595
- '*::onemptied': 2, //SCRIPT new
2596
- '*::onended': 2, //SCRIPT new
2597
- '*::onerror': 2, //SCRIPT new
2598
- '*::onfocus': 2, //SCRIPT new
2599
- '*::oninput': 2, //SCRIPT new
2600
- '*::oninvalid': 2, //SCRIPT new
2601
- '*::onkeydown': 2, //SCRIPT
2602
- '*::onkeypress': 2, //SCRIPT
2603
- '*::onkeyup': 2, //SCRIPT
2604
- '*::onload': 2, //SCRIPT
2605
- '*::onloadeddata': 2, //SCRIPT new
2606
- '*::onloadedmetadata': 2, //SCRIPT new
2607
- '*::onloadstart': 2, //SCRIPT new
2608
- '*::onmousedown': 2, //SCRIPT
2609
- '*::onmousemove': 2, //SCRIPT
2610
- '*::onmouseout': 2, //SCRIPT
2611
- '*::onmouseover': 2, //SCRIPT
2612
- '*::onmouseup': 2, //SCRIPT
2613
- '*::onmousewheel': 2, //SCRIPT new
2614
- '*::onpause': 2, //SCRIPT new
2615
- '*::onplay': 2, //SCRIPT new
2616
- '*::onplaying': 2, //SCRIPT new
2617
- '*::onprogress': 2, //SCRIPT new
2618
- '*::onratechange': 2, //SCRIPT new
2619
- '*::onreadystatechange': 2, //SCRIPT new
2620
- '*::onreset': 2, //SCRIPT new
2621
- '*::onscroll': 2, //SCRIPT new
2622
- '*::onseeked': 2, //SCRIPT new
2623
- '*::onseeking': 2, //SCRIPT new
2624
- '*::onselect': 2, //SCRIPT new
2625
- '*::onshow': 2, //SCRIPT new
2626
- '*::onstalled': 2, //SCRIPT new
2627
- '*::onsubmit': 2, //SCRIPT new
2628
- '*::onsuspend': 2, //SCRIPT new
2629
- '*::ontimeupdate': 2, //SCRIPT new
2630
- '*::onvolumechange': 2, //SCRIPT new
2631
- '*::onwaiting': 2, //SCRIPT new
2632
- '*::spellcheck': 0, //NONE new
2633
- '*::style': 3, //STYLE
2634
- '*::tabindex': 0, //NONE
2635
- '*::title': 0, //NONE
2636
- //--------------------- 'a::accesskey': 0, moved to global
2637
- //--------------------- 'a::coords': 0,
2638
- 'a::href': 1, //URI
2639
- 'a::hreflang': 0, //NONE
2640
- 'a::media': 0, //NONE new
2641
- //--------------------- 'a::name': 7,
2642
- //--------------------- 'a::onblur': 2, moved to global
2643
- //--------------------- 'a::onfocus': 2, moved to global
2644
- 'a::rel': 0, //NONE
2645
- //--------------------- 'a::rev': 0,
2646
- //--------------------- 'a::shape': 0,
2647
- //--------------------- 'a::tabindex': 0, moved to global
2648
- 'a::target': 0, //changed to "0" because of CSN 1918585 2013, original value was 10 FRAME_TARGET but it seems uncritical
2649
- 'a::type': 0, //NONE
2650
- //--------------------- 'area::accesskey': 0, moved to global
2651
- 'area::alt': 0, //NONE
2652
- 'area::coords': 0, //NONE
2653
- 'area::href': 1, //URI
2654
- 'area::hreflang': 0, //NONE new
2655
- 'area::media': 0, //NONE new
2656
- //--------------------- 'area::nohref': 0,
2657
- //--------------------- 'area::onblur': 2, moved to global
2658
- //--------------------- 'area::onfocus': 2, moved to global
2659
- 'area::rel': 0, //NONE new
2660
- 'area::shape': 0, //NONE
2661
- //--------------------- 'area::tabindex': 0, moved to global
2662
- 'area::target': 10, //FRAME_TARGET
2663
- 'area::type': 0, //NONE
2664
- 'audio::autoplay': 0, //NONE new
2665
- 'audio::controls': 0, //NONE new
2666
- 'audio::loop': 0, //NONE new
2667
- 'audio::mediagroup': 0, //NONE new
2668
- 'audio::preload': 0, //NONE new
2669
- 'audio::src': 1, //URI
2670
- 'base::href': 1, //URI
2671
- 'base::target': 10, //FRAME_TARGET
2672
- //--------------------- 'bdo::dir': 0,
2673
- 'blockquote::cite': 1, //URI
2674
- 'body::onafterprint': 2, //SCRIPT new
2675
- 'body::onbeforeprint': 2, //SCRIPT new
2676
- 'body::onbeforeunload': 2, //SCRIPT new
2677
- 'body::onblur': 2, //SCRIPT new
2678
- 'body::onerror': 2, //SCRIPT new
2679
- 'body::onfocus': 2, //SCRIPT new
2680
- 'body::onhashchange': 2, //SCRIPT new
2681
- 'body::onload': 2, //SCRIPT new
2682
- 'body::onmessage': 2, //SCRIPT new
2683
- 'body::onoffline': 2, //SCRIPT new
2684
- 'body::ononline': 2, //SCRIPT new
2685
- 'body::onpagehide': 2, //SCRIPT new
2686
- 'body::onpageshow': 2, //SCRIPT new
2687
- 'body::onpopstate': 2, //SCRIPT new
2688
- 'body::onredo': 2, //SCRIPT new
2689
- 'body::onresize': 2, //SCRIPT new
2690
- 'body::onscroll': 2, //SCRIPT new
2691
- 'body::onstorage': 2, //SCRIPT new
2692
- 'body::onundo': 2, //SCRIPT new
2693
- 'body::onunload': 2, //SCRIPT new
2694
- //--------------------- 'br::clear': 0,
2695
- //--------------------- 'button::accesskey': 0, moved to global
2696
- 'button::autofocus': 0, //NONE new
2697
- 'button::disabled': 0, //NONE
2698
- 'button::form': 0, //NONE new
2699
- 'button::formaction': 1, //URI new
2700
- 'button::formenctype': 0, //NONE new
2701
- 'button::formmethod': 0, //NONE new
2702
- 'button::formnovalidate': 0, //NONE new
2703
- 'button::formtarget': 10, //FRAME_TARGET new
2704
- 'button::name': 8, //LOCAL_NAME
2705
- //--------------------- 'button::onblur': 2,
2706
- //--------------------- 'button::onfocus': 2,
2707
- //--------------------- 'button::tabindex': 0, moved to global
2708
- 'button::type': 0, //NONE
2709
- 'button::value': 0, //NONE
2710
- 'canvas::height': 0, //NONE
2711
- 'canvas::width': 0, //NONE
2712
- //--------------------- 'caption::align': 0,
2713
- //--------------------- 'col::align': 0,
2714
- //--------------------- 'col::char': 0,
2715
- //--------------------- 'col::charoff': 0,
2716
- 'col::span': 0, //NONE
2717
- //--------------------- 'col::valign': 0,
2718
- //--------------------- 'col::width': 0,
2719
- //--------------------- 'colgroup::align': 0,
2720
- //--------------------- 'colgroup::char': 0,
2721
- //--------------------- 'colgroup::charoff': 0,
2722
- 'colgroup::span': 0, //NONE
2723
- //--------------------- 'colgroup::valign': 0,
2724
- //--------------------- 'colgroup::width': 0,
2725
- 'command::checked': 0, //NONE new
2726
- 'command::disabled': 0, //NONE new
2727
- 'command::icon': 1, //URI new
2728
- 'command::label': 0, //NONE new
2729
- 'command::radiogroup': 0, //NONE new
2730
- 'command::type': 0, //NONE new
2731
- 'del::cite': 1, //URI
2732
- 'del::datetime': 0, //NONE
2733
- 'details::open': 0, //NONE new
2734
- //--------------------- 'dir::compact': 0,
2735
- //--------------------- 'div::align': 0,
2736
- //--------------------- 'dl::compact': 0,
2737
- 'embed::height': 0, //NONE new
2738
- 'embed::src': 1, //URI new
2739
- 'embed::type': 0, //NONE new
2740
- 'embed::width': 0, //NONE new
2741
- 'fieldset::disabled': 0, //NONE new
2742
- 'fieldset::form': 0, //NONE new
2743
- 'fieldset::name': 8, //LOCAL_NAME new
2744
- //--------------------- 'font::color': 0,
2745
- //--------------------- 'font::face': 0,
2746
- //--------------------- 'font::size': 0,
2747
- //--------------------- 'form::accept': 0,
2748
- 'form::accept-charset': 0, //NONE
2749
- 'form::action': 1, //URI
2750
- 'form::autocomplete': 0, //NONE
2751
- 'form::enctype': 0, //NONE
2752
- 'form::method': 0, //NONE
2753
- 'form::name': 7, //GLOBAL_NAME
2754
- 'form::novalidate': 0, //NONE new
2755
- //--------------------- 'form::onreset': 2,
2756
- //--------------------- 'form::onsubmit': 2,
2757
- 'form::target': 10, //FRAME_TARGET
2758
- //--------------------- 'h1::align': 0,
2759
- //--------------------- 'h2::align': 0,
2760
- //--------------------- 'h3::align': 0,
2761
- //--------------------- 'h4::align': 0,
2762
- //--------------------- 'h5::align': 0,
2763
- //--------------------- 'h6::align': 0,
2764
- //--------------------- 'hr::align': 0,
2765
- //--------------------- 'hr::noshade': 0,
2766
- //--------------------- 'hr::size': 0,
2767
- //--------------------- 'hr::width': 0,
2768
- 'html:: manifest': 1, //URI new
2769
- //--------------------- 'iframe::align': 0,
2770
- //--------------------- 'iframe::frameborder': 0,
2771
- 'iframe::height': 0, //NONE
2772
- //--------------------- 'iframe::marginheight': 0,
2773
- //--------------------- 'iframe::marginwidth': 0,
2774
- 'iframe::name': 7, //GLOBAL_NAME new
2775
- 'iframe::sandbox': 0, //NONE new
2776
- 'iframe::seamless': 0, //NONE new
2777
- 'iframe::src': 1, //URI new
2778
- 'iframe::srcdoc': 10, //FRAME_TARGET new
2779
- 'iframe::width': 0, //NONE
2780
- //--------------------- 'img::align': 0,
2781
- 'img::alt': 0, //NONE
2782
- //--------------------- 'img::border': 0,
2783
- 'img::height': 0, //NONE
2784
- //--------------------- 'img::hspace': 0,
2785
- 'img::ismap': 0, //NONE
2786
- 'img::name': 7, //GLOBAL_NAME
2787
- 'img::src': 1, //URI
2788
- 'img::usemap': 11, //URI_FRAGMENT
2789
- //--------------------- 'img::vspace': 0,
2790
- 'img::width': 0, //NONE
2791
- 'input::accept': 0, //NONE
2792
- //--------------------- 'input::accesskey': 0, moved to global
2793
- //--------------------- 'input::align': 0,
2794
- 'input::alt': 0, //NONE
2795
- 'input::autocomplete': 0, //NONE
2796
- 'input::autofocus': 0, //NONE new
2797
- 'input::checked': 0, //NONE
2798
- 'input::dirname': 0, //NONE new
2799
- 'input::disabled': 0, //NONE
2800
- 'input::form': 0, //NONE new
2801
- 'input::formaction': 1, //URI new
2802
- 'input::formenctype': 0, //NONE new
2803
- 'input::formmethod': 0, //NONE new
2804
- 'input::formnovalidate': 0, //NONE new
2805
- 'input::formtarget': 10, //FRAME_TARGET new
2806
- 'input::height': 0, //NONE new
2807
- //--------------------- 'input::ismap': 0,
2808
- 'input::list': 0, //NONE new
2809
- 'input::max': 0, //NONE new
2810
- 'input::maxlength': 0, //NONE
2811
- 'input::min': 0, //NONE new
2812
- 'input::multiple': 0, //NONE new
2813
- 'input::name': 8, //LOCAL_NAME
2814
- //--------------------- 'input::onblur': 2,
2815
- //--------------------- 'input::onchange': 2,
2816
- //--------------------- 'input::onfocus': 2,
2817
- //--------------------- 'input::onselect': 2,
2818
- 'input::pattern': 0, //NONE new
2819
- 'input::placeholder': 0, //NONE new
2820
- 'input::readonly': 0, //NONE
2821
- 'input::required': 0, //NONE new
2822
- 'input::step': 0, //NONE new
2823
- 'input::size': 0, //NONE
2824
- 'input::src': 1, //URI
2825
- //--------------------- 'input::tabindex': 0, moved to global
2826
- 'input::type': 0, //NONE
2827
- //--------------------- 'input::usemap': 11,
2828
- 'input::value': 0, //NONE
2829
- 'input::width': 0, //NONE new
2830
- 'ins::cite': 1, //URI
2831
- 'ins::datetime': 0, //NONE
2832
- //--------------------- 'label::accesskey': 0, moved to global
2833
- 'keygen::autofocus': 0, //NONE new
2834
- 'keygen::challenge': 0, //NONE new
2835
- 'keygen::disabled': 0, //NONE new
2836
- 'keygen::form': 0, //NONE new
2837
- 'keygen::keytype': 0, //NONE new
2838
- 'keygen::name': 8, //LOCAL_NAME new
2839
- 'label::for': 5, //IDREF
2840
- 'label::form': 0, //NONE new
2841
- //--------------------- 'label::onblur': 2,
2842
- //--------------------- 'label::onfocus': 2,
2843
- //--------------------- 'legend::accesskey': 0, moved to global
2844
- //--------------------- 'legend::align': 0,
2845
- //--------------------- 'li::type': 0,
2846
- 'link::href': 1, //URI new
2847
- 'link::hreflang': 0, //NONE new
2848
- 'link::media': 0, //NONE new
2849
- 'link::rel': 0, //NONE new
2850
- 'link::sizes': 0, //NONE new
2851
- 'link::type': 0, //NONE new
2852
- 'li::value': 0, //NONE new
2853
- 'map::name': 7, //GLOBAL_NAME
2854
- //--------------------- 'menu::compact': 0,
2855
- 'menu::label': 0, //NONE new
2856
- 'menu::type': 0, //NONE new
2857
- 'meta::charset': 0, //NONE new
2858
- 'meta::content': 0, //NONE new
2859
- 'meta::http-equiv': 0, //NONE new
2860
- 'meta::name': 7, //GLOBAL_NAME new
2861
- 'meter::form': 0, //NONE new
2862
- 'meter::high': 0, //NONE new
2863
- 'meter::low': 0, //NONE new
2864
- 'meter::max': 0, //NONE new
2865
- 'meter::min': 0, //NONE new
2866
- 'meter::optimum': 0, //NONE new
2867
- 'meter::value': 0, //NONE new
2868
- 'object::data': 1, //URI new
2869
- 'object::form': 0, //NONE new
2870
- 'object::height': 0, //NONE new
2871
- 'object::name': 8, //LOCAL_NAME new
2872
- 'object::type': 0, //NONE new
2873
- 'object::usemap': 11, //URI_FRAGMENT new
2874
- 'object::width': 0, //NONE new
2875
- //--------------------- 'ol::compact': 0,
2876
- 'ol::reversed': 0, //NONE new
2877
- 'ol::start': 0, //NONE
2878
- //--------------------- 'ol::type': 0,
2879
- 'optgroup::disabled': 0, //NONE
2880
- 'optgroup::label': 0, //NONE
2881
- 'option::disabled': 0, //NONE
2882
- 'option::label': 0, //NONE
2883
- 'option::selected': 0, //NONE
2884
- 'option::value': 0, //NONE
2885
- 'output::for': 5, //IDREF new
2886
- 'output::form': 0, //NONE new
2887
- 'output::name': 8, //LOCAL_NAME new
2888
- //--------------------- 'p::align': 0,
2889
- 'param::name': 8, //LOCAL_NAME new
2890
- 'param::value': 0, //NONE new
2891
- 'progress::form': 0, //NONE new
2892
- 'progress::max': 0, //NONE new
2893
- 'progress::value': 0, //NONE new
2894
- //--------------------- 'pre::width': 0,
2895
- 'q::cite': 1, //URI
2896
- 'script::async': 0, //NONE new
2897
- 'script::charset': 0, //NONE new
2898
- 'script::defer': 0, //NONE new
2899
- 'script::src': 1, //URI new
2900
- 'script::type': 0, //NONE new
2901
- 'select::autofocus': 0, //NONE new
2902
- 'select::disabled': 0, //NONE
2903
- 'select::form': 0, //NONE new
2904
- 'select::multiple': 0, //NONE
2905
- 'select::name': 8, //LOCAL_NAME
2906
- //--------------------- 'select::onblur': 2,
2907
- //--------------------- 'select::onchange': 2,
2908
- //--------------------- 'select::onfocus': 2,
2909
- 'select::required': 0, //NONE new
2910
- 'select::size': 0, //NONE
2911
- //--------------------- 'select::tabindex': 0, moved to global
2912
- 'source::media': 0, //NONE new
2913
- 'source::src': 1, //URI new
2914
- 'source::type': 0, //NONE new
2915
- 'style::media': 0, //NONE new
2916
- 'style::scoped': 0, //NONE new
2917
- 'style::type': 0, //NONE new
2918
- //--------------------- 'table::align': 0,
2919
- //--------------------- 'table::bgcolor': 0,
2920
- 'table::border': 0, //NONE
2921
- //--------------------- 'table::cellpadding': 0,
2922
- //--------------------- 'table::cellspacing': 0,
2923
- //--------------------- 'table::frame': 0,
2924
- //--------------------- 'table::rules': 0,
2925
- //--------------------- 'table::summary': 0,
2926
- //--------------------- 'table::width': 0,
2927
- //--------------------- 'tbody::align': 0,
2928
- //--------------------- 'tbody::char': 0,
2929
- //--------------------- 'tbody::charoff': 0,
2930
- //--------------------- 'tbody::valign': 0,
2931
- //--------------------- 'td::abbr': 0,
2932
- //--------------------- 'td::align': 0,
2933
- //--------------------- 'td::axis': 0,
2934
- //--------------------- 'td::bgcolor': 0,
2935
- //--------------------- 'td::char': 0,
2936
- //--------------------- 'td::charoff': 0,
2937
- 'td::colspan': 0, //NONE
2938
- 'td::headers': 6, //IDREFS
2939
- //--------------------- 'td::height': 0,
2940
- //--------------------- 'td::nowrap': 0,
2941
- 'td::rowspan': 0, //NONE
2942
- //--------------------- 'td::scope': 0,
2943
- //--------------------- 'td::valign': 0,
2944
- //--------------------- 'td::width': 0,
2945
- //--------------------- 'textarea::accesskey': 0, moved to global
2946
- 'textarea::autofocus': 0, //NONE new
2947
- 'textarea::cols': 0, //NONE
2948
- 'textarea::disabled': 0, //NONE
2949
- 'textarea::form': 0, //NONE new
2950
- 'textarea::maxlength': 0, //NONE new
2951
- 'textarea::name': 8, //LOCAL_NAME
2952
- //--------------------- 'textarea::onblur': 2,
2953
- //--------------------- 'textarea::onchange': 2,
2954
- //--------------------- 'textarea::onfocus': 2,
2955
- //--------------------- 'textarea::onselect': 2,
2956
- 'textarea::placeholder': 0, //NONE new
2957
- 'textarea::readonly': 0, //NONE
2958
- 'textarea::required': 0, //NONE new
2959
- 'textarea::rows': 0, //NONE
2960
- 'textarea::wrap': 0, //NONE new
2961
- //--------------------- 'textarea::tabindex': 0, moved to global
2962
- //--------------------- 'tfoot::align': 0,
2963
- //--------------------- 'tfoot::char': 0,
2964
- //--------------------- 'tfoot::charoff': 0,
2965
- //--------------------- 'tfoot::valign': 0,
2966
- //--------------------- 'th::abbr': 0,
2967
- //--------------------- 'th::align': 0,
2968
- //--------------------- 'th::axis': 0,
2969
- //--------------------- 'th::bgcolor': 0,
2970
- //--------------------- 'th::char': 0,
2971
- //--------------------- 'th::charoff': 0,
2972
- 'th::colspan': 0, //NONE
2973
- 'th::headers': 6, //IDREFS
2974
- //--------------------- 'th::height': 0,
2975
- //--------------------- 'th::nowrap': 0,
2976
- 'th::rowspan': 0, //NONE
2977
- 'th::scope': 0, //NONE
2978
- //--------------------- 'th::valign': 0,
2979
- //--------------------- 'th::width': 0,
2980
- //--------------------- 'thead::align': 0,
2981
- //--------------------- 'thead::char': 0,
2982
- //--------------------- 'thead::charoff': 0,
2983
- //--------------------- 'thead::valign': 0,
2984
- 'time::datetime': 0, //NONE new
2985
- 'time::pubdate': 0, //NONE new
2986
- //--------------------- 'tr::align': 0,
2987
- //--------------------- 'tr::bgcolor': 0,
2988
- //--------------------- 'tr::char': 0,
2989
- //--------------------- 'tr::charoff': 0,
2990
- //--------------------- 'tr::valign': 0,
2991
- 'track::default': 0, //NONE new
2992
- 'track::kind': 0, //NONE new
2993
- 'track::label': 0, //NONE new
2994
- 'track::src': 1, //URI new
2995
- 'track::srclang': 0, //NONE new
2996
- //--------------------- 'ul::compact': 0,
2997
- //--------------------- 'ul::type': 0
2998
- 'video::autoplay': 0, //NONE new
2999
- 'video::controls': 0, //NONE new
3000
- 'video::height': 0, //NONE new
3001
- 'video::loop': 0, //NONE new
3002
- 'video::mediagroup': 0, //NONE new
3003
- 'video::poster': 1, //URI new
3004
- 'video::preload': 0, //NONE new
3005
- 'video::src': 1, //URI new
3006
- 'video::width': 0 //NONE new
3007
- };
3008
- html4.eflags = {
3009
- OPTIONAL_ENDTAG: 1,
3010
- EMPTY: 2,
3011
- CDATA: 4,
3012
- RCDATA: 8,
3013
- UNSAFE: 16,
3014
- FOLDABLE: 32,
3015
- SCRIPT: 64,
3016
- STYLE: 128
3017
- };
3018
- html4.ELEMENTS = {
3019
- 'a': 0,
3020
- 'abbr': 0,
3021
- //--------------------- 'acronym': 0,
3022
- 'address': 0,
3023
- //--------------------- 'applet': 16,
3024
- 'area': 2, //EMPTY
3025
- 'article': 0, //new
3026
- 'aside': 0, //new
3027
- 'audio': 0, //new
3028
- 'b': 0,
3029
- 'base': 18, //EMPTY, UNSAFE
3030
- //--------------------- 'basefont': 18,
3031
- 'bdi': 0, //new
3032
- 'bdo': 0,
3033
- //--------------------- 'big': 0,
3034
- 'blockquote': 0,
3035
- 'body': 49, //OPTIONAL_ENDTAG, UNSAFE, FOLDABLE
3036
- 'br': 2, //EMPTY
3037
- 'button': 0,
3038
- 'canvas': 0,
3039
- 'caption': 0,
3040
- //--------------------- 'center': 0,
3041
- 'cite': 0,
3042
- 'code': 0,
3043
- 'col': 2, //EMPTY
3044
- 'colgroup': 1, //OPTIONAL_ENDTAG
3045
- 'command': 2, //EMPTY new
3046
- 'datalist': 0, //new
3047
- 'dd': 1, //OPTIONAL_ENDTAG
3048
- 'del': 0,
3049
- 'details': 0, //new
3050
- 'dfn': 0,
3051
- //--------------------- 'dir': 0,
3052
- 'div': 0,
3053
- 'dl': 0,
3054
- 'dt': 1, //OPTIONAL_ENDTAG
3055
- 'em': 0,
3056
- 'embed': 18, //EMPTY, UNSAFE new
3057
- 'fieldset': 0,
3058
- 'figcaption': 0, //new
3059
- 'figure': 0, //new
3060
- //--------------------- 'font': 0,
3061
- 'footer': 0, //new
3062
- 'form': 0,
3063
- //--------------------- 'frame': 18,
3064
- //--------------------- 'frameset': 16,
3065
- 'h1': 0,
3066
- 'h2': 0,
3067
- 'h3': 0,
3068
- 'h4': 0,
3069
- 'h5': 0,
3070
- 'h6': 0,
3071
- 'head': 49, //OPTIONAL_ENDTAG, UNSAFE, FOLDABLE
3072
- 'header': 0, //new
3073
- 'hgroup': 0, //new
3074
- 'hr': 2, //EMPTY
3075
- 'html': 49, //OPTIONAL_ENDTAG, UNSAFE, FOLDABLE
3076
- 'i': 0,
3077
- 'iframe': 0, //new
3078
- 'img': 2,//EMPTY
3079
- 'input': 2, //EMPTY
3080
- 'ins': 0,
3081
- //--------------------- 'isindex': 18,
3082
- 'kbd': 0,
3083
- 'keygen': 2, //EMPTY new
3084
- 'label': 0,
3085
- 'legend': 0,
3086
- 'li': 1, //OPTIONAL_ENDTAG
3087
- 'link': 18, //EMPTY, UNSAFE
3088
- 'map': 0,
3089
- 'mark': 0, //new
3090
- 'menu': 0,
3091
- 'meta': 18, //EMPTY, UNSAFE
3092
- 'meter': 0, //new
3093
- 'nav': 0,
3094
- //--------------------- 'nobr': 0,
3095
- //--------------------- 'noembed': 4,
3096
- //--------------------- 'noframes': 20,
3097
- 'noscript': 20, //CDATA, UNSAFE
3098
- 'object': 16, //UNSAFE
3099
- 'ol': 0,
3100
- 'optgroup': 1, //OPTIONAL_ENDTAG new !!!!vorher 0
3101
- 'option': 1, //OPTIONAL_ENDTAG
3102
- 'output': 0, //new
3103
- 'p': 1, //OPTIONAL_ENDTAG
3104
- 'param': 18, //EMPTY, UNSAFE
3105
- 'pre': 0,
3106
- 'progress': 0, //new
3107
- 'q': 0,
3108
- 'rp': 1, //OPTIONAL_ENDTAG new
3109
- 'rt': 1, //OPTIONAL_ENDTAG new
3110
- 'ruby': 0, //new
3111
- 's': 0,
3112
- 'samp': 0,
3113
- 'script': 84, //CDATA, UNSAFE, SCRIPT
3114
- 'section': 0, //new
3115
- 'select': 0,
3116
- 'small': 0,
3117
- 'source': 2, //EMPTY new
3118
- 'span': 0,
3119
- //--------------------- 'strike': 0,
3120
- 'strong': 0,
3121
- 'style': 148, //CDATA, UNSAFE, STYLE
3122
- 'sub': 0,
3123
- 'summary': 0, //new
3124
- 'sup': 0,
3125
- 'table': 0,
3126
- 'tbody': 1, //OPTIONAL_ENDTAG
3127
- 'td': 1, //OPTIONAL_ENDTAG
3128
- 'textarea': 8, //RCDATA
3129
- 'tfoot': 1, //OPTIONAL_ENDTAG
3130
- 'th': 1, //OPTIONAL_ENDTAG
3131
- 'thead': 1, //OPTIONAL_ENDTAG
3132
- 'time': 0, //new
3133
- 'title': 24, //RCDATA, UNSAFE
3134
- 'tr': 1, //OPTIONAL_ENDTAG
3135
- 'track': 2, //EMPTY new
3136
- //--------------------- 'tt': 0,
3137
- 'u': 0,
3138
- 'ul': 0,
3139
- 'var': 0,
3140
- 'video': 0, //new
3141
- 'wbr': 2 //EMPTY new
3142
- };
3143
- html4.ueffects = {
3144
- NOT_LOADED: 0,
3145
- SAME_DOCUMENT: 1,
3146
- NEW_DOCUMENT: 2
3147
- };
3148
- html4.URIEFFECTS = {
3149
- 'a::href': 2, //NEW_DOCUMENT
3150
- 'area::href': 2, //NEW_DOCUMENT
3151
- 'audio::src': 1, //SAME_DOCUMENT new
3152
- 'base::href':2, //NEW_DOCUMENT new
3153
- 'blockquote::cite': 0, //NOT_LOADED
3154
- //--------------------- 'body::background': 1,
3155
- 'button::formaction': 2, //NEW_DOCUMENT new
3156
- 'command::icon': 1, //SAME_DOCUMENT new
3157
- 'del::cite': 0, //NOT_LOADED
3158
- 'embed::src': 1, //SAME_DOCUMENT new
3159
- 'form::action': 2, //NEW_DOCUMENT
3160
- 'html:: manifest': 1, //SAME_DOCUMENT new
3161
- 'iframe::src': 1, //SAME_DOCUMENT new
3162
- 'img::src': 1, //SAME_DOCUMENT
3163
- 'input::formaction': 2, //NEW_DOCUMENT new
3164
- 'input::src': 1, //SAME_DOCUMENT
3165
- 'ins::cite': 0, //NOT_LOADED
3166
- 'link::href': 2, //NEW_DOCUMENT new
3167
- 'object::data': 1, //SAME_DOCUMENT new
3168
- 'q::cite': 0, //NOT_LOADED
3169
- 'script::src': 1, //SAME_DOCUMENT new
3170
- 'source::src': 1, //SAME_DOCUMENT new
3171
- 'track::src': 1, //SAME_DOCUMENT new
3172
- 'video::poster': 1, //SAME_DOCUMENT new
3173
- 'video::src': 1 //SAME_DOCUMENT new
3174
- };
3175
- html4.ltypes = {
3176
- UNSANDBOXED: 2,
3177
- SANDBOXED: 1,
3178
- DATA: 0
3179
- };
3180
- html4.LOADERTYPES = {
3181
- 'a::href': 2, //UNSANDBOXED
3182
- 'area::href': 2, //UNSANDBOXED
3183
- 'audio::src': 1, //SANDBOXED new
3184
- 'base::href': 2, //UNSANDBOXED new
3185
- 'blockquote::cite': 2, //UNSANDBOXED
3186
- //--------------------- 'body::background': 1,
3187
- 'button::formaction': 2, //UNSANDBOXED new
3188
- 'command::icon': 1, //SANDBOXED new
3189
- 'del::cite': 2, //UNSANDBOXED
3190
- 'embed::src': 1, //SANDBOXED new
3191
- 'form::action': 2, //UNSANDBOXED
3192
- 'html:: manifest': 1, //SANDBOXED new
3193
- 'iframe::src': 1, //SANDBOXED new
3194
- 'img::src': 1, //SANDBOXED
3195
- 'input::formaction': 2, //UNSANDBOXED new
3196
- 'input::src': 1, //SANDBOXED
3197
- 'ins::cite': 2, //UNSANDBOXED
3198
- 'link::href': 2, //UNSANDBOXED new
3199
- 'object::data': 0, //DATA new
3200
- 'q::cite': 2, //UNSANDBOXED
3201
- 'script::src': 1, //SANDBOXED new
3202
- 'source::src': 1, //SANDBOXED new
3203
- 'track::src': 1, //SANDBOXED new
3204
- 'video::poster': 1, //SANDBOXED new
3205
- 'video::src': 1 //SANDBOXED new
3206
- };if (typeof window !== 'undefined') {
3207
- window['html4'] = html4;
3208
- }// Copyright (C) 2006 Google Inc.
3209
- //
3210
- // Licensed under the Apache License, Version 2.0 (the "License");
3211
- // you may not use this file except in compliance with the License.
3212
- // You may obtain a copy of the License at
3213
- //
3214
- // http://www.apache.org/licenses/LICENSE-2.0
3215
- //
3216
- // Unless required by applicable law or agreed to in writing, software
3217
- // distributed under the License is distributed on an "AS IS" BASIS,
3218
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3219
- // See the License for the specific language governing permissions and
3220
- // limitations under the License.
3221
-
3222
- /**
3223
- * @fileoverview
3224
- * An HTML sanitizer that can satisfy a variety of security policies.
3225
- *
3226
- * <p>
3227
- * The HTML sanitizer is built around a SAX parser and HTML element and
3228
- * attributes schemas.
3229
- *
3230
- * If the cssparser is loaded, inline styles are sanitized using the
3231
- * css property and value schemas. Else they are remove during
3232
- * sanitization.
3233
- *
3234
- * If it exists, uses parseCssDeclarations, sanitizeCssProperty, cssSchema
3235
- *
3236
- * @author mikesamuel@gmail.com
3237
- * @author jasvir@gmail.com
3238
- * \@requires html4
3239
- * \@overrides window
3240
- * \@provides html, html_sanitize
3241
- */
3242
-
3243
- /**
3244
- * \@namespace
3245
- */
3246
- var html = (function(html4) {
3247
-
3248
- // For closure compiler
3249
- var parseCssDeclarations, sanitizeCssProperty, cssSchema;
3250
- if ('undefined' !== typeof window) {
3251
- parseCssDeclarations = window['parseCssDeclarations'];
3252
- sanitizeCssProperty = window['sanitizeCssProperty'];
3253
- cssSchema = window['cssSchema'];
3254
- }
3255
-
3256
- var lcase;
3257
- // The below may not be true on browsers in the Turkish locale.
3258
- if ('script' === 'SCRIPT'.toLowerCase()) {
3259
- lcase = function(s) { return s.toLowerCase(); };
3260
- } else {
3261
- /**
3262
- * {\@updoc
3263
- * $ lcase('SCRIPT')
3264
- * # 'script'
3265
- * $ lcase('script')
3266
- * # 'script'
3267
- * }
3268
- */
3269
- lcase = function(s) {
3270
- return s.replace(
3271
- /[A-Z]/g,
3272
- function(ch) {
3273
- return String.fromCharCode(ch.charCodeAt(0) | 32);
3274
- });
3275
- };
3276
- }
3277
-
3278
- // The keys of this object must be 'quoted' or JSCompiler will mangle them!
3279
- var ENTITIES = {
3280
- 'lt': '<',
3281
- 'gt': '>',
3282
- 'amp': '&',
3283
- 'nbsp': '\xA0',
3284
- 'quot': '"',
3285
- 'apos': '\''
3286
- };
3287
-
3288
- var decimalEscapeRe = /^#(\d+)$/;
3289
- var hexEscapeRe = /^#x([0-9A-Fa-f]+)$/;
3290
- /**
3291
- * Decodes an HTML entity.
3292
- *
3293
- * {\@updoc
3294
- * $ lookupEntity('lt')
3295
- * # '<'
3296
- * $ lookupEntity('GT')
3297
- * # '>'
3298
- * $ lookupEntity('amp')
3299
- * # '&'
3300
- * $ lookupEntity('nbsp')
3301
- * # '\xA0'
3302
- * $ lookupEntity('apos')
3303
- * # "'"
3304
- * $ lookupEntity('quot')
3305
- * # '"'
3306
- * $ lookupEntity('#xa')
3307
- * # '\n'
3308
- * $ lookupEntity('#10')
3309
- * # '\n'
3310
- * $ lookupEntity('#x0a')
3311
- * # '\n'
3312
- * $ lookupEntity('#010')
3313
- * # '\n'
3314
- * $ lookupEntity('#x00A')
3315
- * # '\n'
3316
- * $ lookupEntity('Pi') // Known failure
3317
- * # '\u03A0'
3318
- * $ lookupEntity('pi') // Known failure
3319
- * # '\u03C0'
3320
- * }
3321
- *
3322
- * @param {string} name the content between the '&' and the ';'.
3323
- * @return {string} a single unicode code-point as a string.
3324
- */
3325
- function lookupEntity(name) {
3326
- name = lcase(name); // TODO: &pi; is different from &Pi;
3327
- if (ENTITIES.hasOwnProperty(name)) { return ENTITIES[name]; }
3328
- var m = name.match(decimalEscapeRe);
3329
- if (m) {
3330
- return String.fromCharCode(parseInt(m[1], 10));
3331
- } else if (!!(m = name.match(hexEscapeRe))) {
3332
- return String.fromCharCode(parseInt(m[1], 16));
3333
- }
3334
- return '';
3335
- }
3336
-
3337
- function decodeOneEntity(_, name) {
3338
- return lookupEntity(name);
3339
- }
3340
-
3341
- var nulRe = /\0/g;
3342
- function stripNULs(s) {
3343
- return s.replace(nulRe, '');
3344
- }
3345
-
3346
- var entityRe = /&(#\d+|#x[0-9A-Fa-f]+|\w+);/g;
3347
- /**
3348
- * The plain text of a chunk of HTML CDATA which possibly containing.
3349
- *
3350
- * {\@updoc
3351
- * $ unescapeEntities('')
3352
- * # ''
3353
- * $ unescapeEntities('hello World!')
3354
- * # 'hello World!'
3355
- * $ unescapeEntities('1 &lt; 2 &amp;&AMP; 4 &gt; 3&#10;')
3356
- * # '1 < 2 && 4 > 3\n'
3357
- * $ unescapeEntities('&lt;&lt <- unfinished entity&gt;')
3358
- * # '<&lt <- unfinished entity>'
3359
- * $ unescapeEntities('/foo?bar=baz&copy=true') // & often unescaped in URLS
3360
- * # '/foo?bar=baz&copy=true'
3361
- * $ unescapeEntities('pi=&pi;&#x3c0;, Pi=&Pi;\u03A0') // FIXME: known failure
3362
- * # 'pi=\u03C0\u03c0, Pi=\u03A0\u03A0'
3363
- * }
3364
- *
3365
- * @param {string} s a chunk of HTML CDATA. It must not start or end inside
3366
- * an HTML entity.
3367
- */
3368
- function unescapeEntities(s) {
3369
- return s.replace(entityRe, decodeOneEntity);
3370
- }
3371
-
3372
- var ampRe = /&/g;
3373
- var looseAmpRe = /&([^a-z#]|#(?:[^0-9x]|x(?:[^0-9a-f]|$)|$)|$)/gi;
3374
- var ltRe = /[<]/g;
3375
- var gtRe = />/g;
3376
- var quotRe = /\"/g;
3377
-
3378
- /**
3379
- * Escapes HTML special characters in attribute values.
3380
- *
3381
- * {\@updoc
3382
- * $ escapeAttrib('')
3383
- * # ''
3384
- * $ escapeAttrib('"<<&==&>>"') // Do not just escape the first occurrence.
3385
- * # '&#34;&lt;&lt;&amp;&#61;&#61;&amp;&gt;&gt;&#34;'
3386
- * $ escapeAttrib('Hello <World>!')
3387
- * # 'Hello &lt;World&gt;!'
3388
- * }
3389
- */
3390
- function escapeAttrib(s) {
3391
- return ('' + s).replace(ampRe, '&amp;').replace(ltRe, '&lt;')
3392
- .replace(gtRe, '&gt;').replace(quotRe, '&#34;');
3393
- }
3394
-
3395
- /**
3396
- * Escape entities in RCDATA that can be escaped without changing the meaning.
3397
- * {\@updoc
3398
- * $ normalizeRCData('1 < 2 &&amp; 3 > 4 &amp;& 5 &lt; 7&8')
3399
- * # '1 &lt; 2 &amp;&amp; 3 &gt; 4 &amp;&amp; 5 &lt; 7&amp;8'
3400
- * }
3401
- */
3402
- function normalizeRCData(rcdata) {
3403
- return rcdata
3404
- .replace(looseAmpRe, '&amp;$1')
3405
- .replace(ltRe, '&lt;')
3406
- .replace(gtRe, '&gt;');
3407
- }
3408
-
3409
- // TODO(mikesamuel): validate sanitizer regexs against the HTML5 grammar at
3410
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/syntax.html
3411
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/parsing.html
3412
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/tokenization.html
3413
- // http://www.whatwg.org/specs/web-apps/current-work/multipage/tree-construction.html
3414
-
3415
- // We initially split input so that potentially meaningful characters
3416
- // like '<' and '>' are separate tokens, using a fast dumb process that
3417
- // ignores quoting. Then we walk that token stream, and when we see a
3418
- // '<' that's the start of a tag, we use ATTR_RE to extract tag
3419
- // attributes from the next token. That token will never have a '>'
3420
- // character. However, it might have an unbalanced quote character, and
3421
- // when we see that, we combine additional tokens to balance the quote.
3422
-
3423
- var ATTR_RE = new RegExp(
3424
- '^\\s*' +
3425
- '([a-z][a-z-]*)' + // 1 = Attribute name
3426
- '(?:' + (
3427
- '\\s*(=)\\s*' + // 2 = Is there a value?
3428
- '(' + ( // 3 = Attribute value
3429
- // TODO(felix8a): maybe use backref to match quotes
3430
- '(\")[^\"]*(\"|$)' + // 4, 5 = Double-quoted string
3431
- '|' +
3432
- '(\')[^\']*(\'|$)' + // 6, 7 = Single-quoted string
3433
- '|' +
3434
- // Positive lookahead to prevent interpretation of
3435
- // <foo a= b=c> as <foo a='b=c'>
3436
- // TODO(felix8a): might be able to drop this case
3437
- '(?=[a-z][a-z-]*\\s*=)' +
3438
- '|' +
3439
- // Unquoted value that isn't an attribute name
3440
- // (since we didn't match the positive lookahead above)
3441
- '[^\"\'\\s]*' ) +
3442
- ')' ) +
3443
- ')?',
3444
- 'i');
3445
-
3446
- var ENTITY_RE = /^(#[0-9]+|#x[0-9a-f]+|\w+);/i;
3447
-
3448
- // false on IE<=8, true on most other browsers
3449
- var splitWillCapture = ('a,b'.split(/(,)/).length === 3);
3450
-
3451
- // bitmask for tags with special parsing, like <script> and <textarea>
3452
- var EFLAGS_TEXT = html4.eflags.CDATA | html4.eflags.RCDATA;
3453
-
3454
- /**
3455
- * Given a SAX-like event handler, produce a function that feeds those
3456
- * events and a parameter to the event handler.
3457
- *
3458
- * The event handler has the form:{@code
3459
- * {
3460
- * // Name is an upper-case HTML tag name. Attribs is an array of
3461
- * // alternating upper-case attribute names, and attribute values. The
3462
- * // attribs array is reused by the parser. Param is the value passed to
3463
- * // the saxParser.
3464
- * startTag: function (name, attribs, param) { ... },
3465
- * endTag: function (name, param) { ... },
3466
- * pcdata: function (text, param) { ... },
3467
- * rcdata: function (text, param) { ... },
3468
- * cdata: function (text, param) { ... },
3469
- * startDoc: function (param) { ... },
3470
- * endDoc: function (param) { ... }
3471
- * }}
3472
- *
3473
- * @param {Object} handler a record containing event handlers.
3474
- * @return {function(string, Object)} A function that takes a chunk of HTML
3475
- * and a parameter. The parameter is passed on to the handler methods.
3476
- */
3477
- function makeSaxParser(handler) {
3478
- return function(htmlText, param) {
3479
- return parse(htmlText, handler, param);
3480
- };
3481
- }
3482
-
3483
- // Parsing strategy is to split input into parts that might be lexically
3484
- // meaningful (every ">" becomes a separate part), and then recombine
3485
- // parts if we discover they're in a different context.
3486
-
3487
- // Note, html-sanitizer filters unknown tags here, even though they also
3488
- // get filtered out by the sanitizer's handler. This is back-compat
3489
- // behavior; makeSaxParser is public.
3490
-
3491
- // TODO(felix8a): Significant performance regressions from -legacy,
3492
- // tested on
3493
- // Chrome 18.0
3494
- // Firefox 11.0
3495
- // IE 6, 7, 8, 9
3496
- // Opera 11.61
3497
- // Safari 5.1.3
3498
- // Many of these are unusual patterns that are linearly slower and still
3499
- // pretty fast (eg 1ms to 5ms), so not necessarily worth fixing.
3500
-
3501
- // TODO(felix8a): "<script> && && && ... <\/script>" is slower on all
3502
- // browsers. The hotspot is htmlSplit.
3503
-
3504
- // TODO(felix8a): "<p title='>>>>...'><\/p>" is slower on all browsers.
3505
- // This is partly htmlSplit, but the hotspot is parseTagAndAttrs.
3506
-
3507
- // TODO(felix8a): "<a><\/a><a><\/a>..." is slower on IE9.
3508
- // "<a>1<\/a><a>1<\/a>..." is faster, "<a><\/a>2<a><\/a>2..." is faster.
3509
-
3510
- // TODO(felix8a): "<p<p<p..." is slower on IE[6-8]
3511
-
3512
- var continuationMarker = {};
3513
- function parse(htmlText, handler, param) {
3514
- var parts = htmlSplit(htmlText);
3515
- var state = {
3516
- noMoreGT: false,
3517
- noMoreEndComments: false
3518
- };
3519
- parseCPS(handler, parts, 0, state, param);
3520
- }
3521
-
3522
- function continuationMaker(h, parts, initial, state, param) {
3523
- return function () {
3524
- parseCPS(h, parts, initial, state, param);
3525
- };
3526
- }
3527
-
3528
- function parseCPS(h, parts, initial, state, param) {
3529
- try {
3530
- if (h.startDoc && initial == 0) { h.startDoc(param); }
3531
- var m, p, tagName;
3532
- for (var pos = initial, end = parts.length; pos < end;) {
3533
- var current = parts[pos++];
3534
- var next = parts[pos];
3535
- switch (current) {
3536
- case '&':
3537
- if (ENTITY_RE.test(next)) {
3538
- if (h.pcdata) {
3539
- h.pcdata('&' + next, param, continuationMarker,
3540
- continuationMaker(h, parts, pos, state, param));
3541
- }
3542
- pos++;
3543
- } else {
3544
- if (h.pcdata) { h.pcdata("&amp;", param, continuationMarker,
3545
- continuationMaker(h, parts, pos, state, param));
3546
- }
3547
- }
3548
- break;
3549
- case '<\/':
3550
- if (m = /^(\w+)[^\'\"]*/.exec(next)) {
3551
- if (m[0].length === next.length && parts[pos + 1] === '>') {
3552
- // fast case, no attribute parsing needed
3553
- pos += 2;
3554
- tagName = lcase(m[1]);
3555
- if (html4.ELEMENTS.hasOwnProperty(tagName)) {
3556
- if (h.endTag) {
3557
- h.endTag(tagName, param, continuationMarker,
3558
- continuationMaker(h, parts, pos, state, param));
3559
- }
3560
- }
3561
- } else {
3562
- // slow case, need to parse attributes
3563
- // TODO(felix8a): do we really care about misparsing this?
3564
- pos = parseEndTag(
3565
- parts, pos, h, param, continuationMarker, state);
3566
- }
3567
- } else {
3568
- if (h.pcdata) {
3569
- h.pcdata('&lt;/', param, continuationMarker,
3570
- continuationMaker(h, parts, pos, state, param));
3571
- }
3572
- }
3573
- break;
3574
- case '<':
3575
- if (m = /^(\w+)\s*\/?/.exec(next)) {
3576
- if (m[0].length === next.length && parts[pos + 1] === '>') {
3577
- // fast case, no attribute parsing needed
3578
- pos += 2;
3579
- tagName = lcase(m[1]);
3580
- if (html4.ELEMENTS.hasOwnProperty(tagName)) {
3581
- if (h.startTag) {
3582
- h.startTag(tagName, [], param, continuationMarker,
3583
- continuationMaker(h, parts, pos, state, param));
3584
- }
3585
- // tags like <script> and <textarea> have special parsing
3586
- var eflags = html4.ELEMENTS[tagName];
3587
- if (eflags & EFLAGS_TEXT) {
3588
- var tag = { name: tagName, next: pos, eflags: eflags };
3589
- pos = parseText(
3590
- parts, tag, h, param, continuationMarker, state);
3591
- }
3592
- }
3593
- } else {
3594
- // slow case, need to parse attributes
3595
- pos = parseStartTag(
3596
- parts, pos, h, param, continuationMarker, state);
3597
- }
3598
- } else {
3599
- if (h.pcdata) {
3600
- h.pcdata('&lt;', param, continuationMarker,
3601
- continuationMaker(h, parts, pos, state, param));
3602
- }
3603
- }
3604
- break;
3605
- case '<\!--':
3606
- // The pathological case is n copies of '<\!--' without '-->', and
3607
- // repeated failure to find '-->' is quadratic. We avoid that by
3608
- // remembering when search for '-->' fails.
3609
- if (!state.noMoreEndComments) {
3610
- // A comment <\!--x--> is split into three tokens:
3611
- // '<\!--', 'x--', '>'
3612
- // We want to find the next '>' token that has a preceding '--'.
3613
- // pos is at the 'x--'.
3614
- for (p = pos + 1; p < end; p++) {
3615
- if (parts[p] === '>' && /--$/.test(parts[p - 1])) { break; }
3616
- }
3617
- if (p < end) {
3618
- pos = p + 1;
3619
- } else {
3620
- state.noMoreEndComments = true;
3621
- }
3622
- }
3623
- if (state.noMoreEndComments) {
3624
- if (h.pcdata) {
3625
- h.pcdata('&lt;!--', param, continuationMarker,
3626
- continuationMaker(h, parts, pos, state, param));
3627
- }
3628
- }
3629
- break;
3630
- case '<\!':
3631
- if (!/^\w/.test(next)) {
3632
- if (h.pcdata) {
3633
- h.pcdata('&lt;!', param, continuationMarker,
3634
- continuationMaker(h, parts, pos, state, param));
3635
- }
3636
- } else {
3637
- // similar to noMoreEndComment logic
3638
- if (!state.noMoreGT) {
3639
- for (p = pos + 1; p < end; p++) {
3640
- if (parts[p] === '>') { break; }
3641
- }
3642
- if (p < end) {
3643
- pos = p + 1;
3644
- } else {
3645
- state.noMoreGT = true;
3646
- }
3647
- }
3648
- if (state.noMoreGT) {
3649
- if (h.pcdata) {
3650
- h.pcdata('&lt;!', param, continuationMarker,
3651
- continuationMaker(h, parts, pos, state, param));
3652
- }
3653
- }
3654
- }
3655
- break;
3656
- case '<?':
3657
- // similar to noMoreEndComment logic
3658
- if (!state.noMoreGT) {
3659
- for (p = pos + 1; p < end; p++) {
3660
- if (parts[p] === '>') { break; }
3661
- }
3662
- if (p < end) {
3663
- pos = p + 1;
3664
- } else {
3665
- state.noMoreGT = true;
3666
- }
3667
- }
3668
- if (state.noMoreGT) {
3669
- if (h.pcdata) {
3670
- h.pcdata('&lt;?', param, continuationMarker,
3671
- continuationMaker(h, parts, pos, state, param));
3672
- }
3673
- }
3674
- break;
3675
- case '>':
3676
- if (h.pcdata) {
3677
- h.pcdata("&gt;", param, continuationMarker,
3678
- continuationMaker(h, parts, pos, state, param));
3679
- }
3680
- break;
3681
- case '':
3682
- break;
3683
- default:
3684
- if (h.pcdata) {
3685
- h.pcdata(current, param, continuationMarker,
3686
- continuationMaker(h, parts, pos, state, param));
3687
- }
3688
- break;
3689
- }
3690
- }
3691
- if (h.endDoc) { h.endDoc(param); }
3692
- } catch (e) {
3693
- if (e !== continuationMarker) { throw e; }
3694
- }
3695
- }
3696
-
3697
- // Split str into parts for the html parser.
3698
- function htmlSplit(str) {
3699
- // can't hoist this out of the function because of the re.exec loop.
3700
- var re = /(<\/|<\!--|<[!?]|[&<>])/g;
3701
- str += '';
3702
- if (splitWillCapture) {
3703
- return str.split(re);
3704
- } else {
3705
- var parts = [];
3706
- var lastPos = 0;
3707
- var m;
3708
- while ((m = re.exec(str)) !== null) {
3709
- parts.push(str.substring(lastPos, m.index));
3710
- parts.push(m[0]);
3711
- lastPos = m.index + m[0].length;
3712
- }
3713
- parts.push(str.substring(lastPos));
3714
- return parts;
3715
- }
3716
- }
3717
-
3718
- function parseEndTag(parts, pos, h, param, continuationMarker, state) {
3719
- var tag = parseTagAndAttrs(parts, pos);
3720
- // drop unclosed tags
3721
- if (!tag) { return parts.length; }
3722
- if (tag.eflags !== void 0) {
3723
- if (h.endTag) {
3724
- h.endTag(tag.name, param, continuationMarker,
3725
- continuationMaker(h, parts, pos, state, param));
3726
- }
3727
- }
3728
- return tag.next;
3729
- }
3730
-
3731
- function parseStartTag(parts, pos, h, param, continuationMarker, state) {
3732
- var tag = parseTagAndAttrs(parts, pos);
3733
- // drop unclosed tags
3734
- if (!tag) { return parts.length; }
3735
- if (tag.eflags !== void 0) {
3736
- if (h.startTag) {
3737
- h.startTag(tag.name, tag.attrs, param, continuationMarker,
3738
- continuationMaker(h, parts, tag.next, state, param));
3739
- }
3740
- // tags like <script> and <textarea> have special parsing
3741
- if (tag.eflags & EFLAGS_TEXT) {
3742
- return parseText(parts, tag, h, param, continuationMarker, state);
3743
- }
3744
- }
3745
- return tag.next;
3746
- }
3747
-
3748
- var endTagRe = {};
3749
-
3750
- // Tags like <script> and <textarea> are flagged as CDATA or RCDATA,
3751
- // which means everything is text until we see the correct closing tag.
3752
- function parseText(parts, tag, h, param, continuationMarker, state) {
3753
- var end = parts.length;
3754
- if (!endTagRe.hasOwnProperty(tag.name)) {
3755
- endTagRe[tag.name] = new RegExp('^' + tag.name + '(?:[\\s\\/]|$)', 'i');
3756
- }
3757
- var re = endTagRe[tag.name];
3758
- var first = tag.next;
3759
- var p = tag.next + 1;
3760
- for (; p < end; p++) {
3761
- if (parts[p - 1] === '<\/' && re.test(parts[p])) { break; }
3762
- }
3763
- if (p < end) { p -= 1; }
3764
- var buf = parts.slice(first, p).join('');
3765
- if (tag.eflags & html4.eflags.CDATA) {
3766
- if (h.cdata) {
3767
- h.cdata(buf, param, continuationMarker,
3768
- continuationMaker(h, parts, p, state, param));
3769
- }
3770
- } else if (tag.eflags & html4.eflags.RCDATA) {
3771
- if (h.rcdata) {
3772
- h.rcdata(normalizeRCData(buf), param, continuationMarker,
3773
- continuationMaker(h, parts, p, state, param));
3774
- }
3775
- } else {
3776
- throw new Error('bug');
3777
- }
3778
- return p;
3779
- }
3780
-
3781
- // at this point, parts[pos-1] is either "<" or "<\/".
3782
- function parseTagAndAttrs(parts, pos) {
3783
- var m = /^(\w+)/.exec(parts[pos]);
3784
- var tag = { name: lcase(m[1]) };
3785
- if (html4.ELEMENTS.hasOwnProperty(tag.name)) {
3786
- tag.eflags = html4.ELEMENTS[tag.name];
3787
- } else {
3788
- tag.eflags = void 0;
3789
- }
3790
- var buf = parts[pos].substr(m[0].length);
3791
- // Find the next '>'. We optimistically assume this '>' is not in a
3792
- // quoted context, and further down we fix things up if it turns out to
3793
- // be quoted.
3794
- var p = pos + 1;
3795
- var end = parts.length;
3796
- for (; p < end; p++) {
3797
- if (parts[p] === '>') { break; }
3798
- buf += parts[p];
3799
- }
3800
- if (end <= p) { return void 0; }
3801
- var attrs = [];
3802
- while (buf !== '') {
3803
- m = ATTR_RE.exec(buf);
3804
- if (!m) {
3805
- // No attribute found: skip garbage
3806
- buf = buf.replace(/^[\s\S][^a-z\s]*/, '');
3807
-
3808
- } else if ((m[4] && !m[5]) || (m[6] && !m[7])) {
3809
- // Unterminated quote: slurp to the next unquoted '>'
3810
- var quote = m[4] || m[6];
3811
- var sawQuote = false;
3812
- var abuf = [buf, parts[p++]];
3813
- for (; p < end; p++) {
3814
- if (sawQuote) {
3815
- if (parts[p] === '>') { break; }
3816
- } else if (0 <= parts[p].indexOf(quote)) {
3817
- sawQuote = true;
3818
- }
3819
- abuf.push(parts[p]);
3820
- }
3821
- // Slurp failed: lose the garbage
3822
- if (end <= p) { break; }
3823
- // Otherwise retry attribute parsing
3824
- buf = abuf.join('');
3825
- continue;
3826
-
3827
- } else {
3828
- // We have an attribute
3829
- var aName = lcase(m[1]);
3830
- var aValue = m[2] ? decodeValue(m[3]) : aName;
3831
- attrs.push(aName, aValue);
3832
- buf = buf.substr(m[0].length);
3833
- }
3834
- }
3835
- tag.attrs = attrs;
3836
- tag.next = p + 1;
3837
- return tag;
3838
- }
3839
-
3840
- function decodeValue(v) {
3841
- var q = v.charCodeAt(0);
3842
- if (q === 0x22 || q === 0x27) { // " or '
3843
- v = v.substr(1, v.length - 2);
3844
- }
3845
- return unescapeEntities(stripNULs(v));
3846
- }
3847
-
3848
- /**
3849
- * Returns a function that strips unsafe tags and attributes from html.
3850
- * @param {function(string, Array.<string>): ?Array.<string>} tagPolicy
3851
- * A function that takes (tagName, attribs[]), where tagName is a key in
3852
- * html4.ELEMENTS and attribs is an array of alternating attribute names
3853
- * and values. It should return a sanitized attribute array, or null to
3854
- * delete the tag. It's okay for tagPolicy to modify the attribs array,
3855
- * but the same array is reused, so it should not be held between calls.
3856
- * @return {function(string, Array)} A function that sanitizes a string of
3857
- * HTML and appends result strings to the second argument, an array.
3858
- */
3859
- function makeHtmlSanitizer(tagPolicy) {
3860
- var stack;
3861
- var ignoring;
3862
- var emit = function (text, out) {
3863
- if (!ignoring) { out.push(text); }
3864
- };
3865
- return makeSaxParser({
3866
- startDoc: function(_) {
3867
- stack = [];
3868
- ignoring = false;
3869
- },
3870
- startTag: function(tagName, attribs, out) {
3871
- if (ignoring) { return; }
3872
- if (!html4.ELEMENTS.hasOwnProperty(tagName)) { return; }
3873
- var eflags = html4.ELEMENTS[tagName];
3874
- if (eflags & html4.eflags.FOLDABLE) {
3875
- return;
3876
- }
3877
- attribs = tagPolicy(tagName, attribs);
3878
- if (!attribs) {
3879
- ignoring = !(eflags & html4.eflags.EMPTY);
3880
- return;
3881
- }
3882
- // TODO(mikesamuel): relying on tagPolicy not to insert unsafe
3883
- // attribute names.
3884
- if (!(eflags & html4.eflags.EMPTY)) {
3885
- stack.push(tagName);
3886
- }
3887
-
3888
- out.push('<', tagName);
3889
- for (var i = 0, n = attribs.length; i < n; i += 2) {
3890
- var attribName = attribs[i],
3891
- value = attribs[i + 1];
3892
- if (value !== null && value !== void 0) {
3893
- out.push(' ', attribName, '="', escapeAttrib(value), '"');
3894
- }
3895
- }
3896
- out.push('>');
3897
- },
3898
- endTag: function(tagName, out) {
3899
- if (ignoring) {
3900
- ignoring = false;
3901
- return;
3902
- }
3903
- if (!html4.ELEMENTS.hasOwnProperty(tagName)) { return; }
3904
- var eflags = html4.ELEMENTS[tagName];
3905
- if (!(eflags & (html4.eflags.EMPTY | html4.eflags.FOLDABLE))) {
3906
- var index;
3907
- if (eflags & html4.eflags.OPTIONAL_ENDTAG) {
3908
- for (index = stack.length; --index >= 0;) {
3909
- var stackEl = stack[index];
3910
- if (stackEl === tagName) { break; }
3911
- if (!(html4.ELEMENTS[stackEl] &
3912
- html4.eflags.OPTIONAL_ENDTAG)) {
3913
- // Don't pop non optional end tags looking for a match.
3914
- return;
3915
- }
3916
- }
3917
- } else {
3918
- for (index = stack.length; --index >= 0;) {
3919
- if (stack[index] === tagName) { break; }
3920
- }
3921
- }
3922
- if (index < 0) { return; } // Not opened.
3923
- for (var i = stack.length; --i > index;) {
3924
- var stackEl = stack[i];
3925
- if (!(html4.ELEMENTS[stackEl] &
3926
- html4.eflags.OPTIONAL_ENDTAG)) {
3927
- out.push('<\/', stackEl, '>');
3928
- }
3929
- }
3930
- stack.length = index;
3931
- out.push('<\/', tagName, '>');
3932
- }
3933
- },
3934
- pcdata: emit,
3935
- rcdata: emit,
3936
- cdata: emit,
3937
- endDoc: function(out) {
3938
- for (; stack.length; stack.length--) {
3939
- out.push('<\/', stack[stack.length - 1], '>');
3940
- }
3941
- }
3942
- });
3943
- }
3944
-
3945
- // From RFC3986
3946
- var URI_SCHEME_RE = new RegExp(
3947
- '^' +
3948
- '(?:' +
3949
- '([^:\/?# ]+)' + // scheme
3950
- ':)?'
3951
- );
3952
-
3953
- var ALLOWED_URI_SCHEMES = /^(?:https?|mailto)$/i;
3954
-
3955
- function safeUri(uri, naiveUriRewriter) {
3956
- if (!naiveUriRewriter) { return null; }
3957
- var parsed = ('' + uri).match(URI_SCHEME_RE);
3958
- if (parsed && (!parsed[1] || ALLOWED_URI_SCHEMES.test(parsed[1]))) {
3959
- return naiveUriRewriter(uri);
3960
- } else {
3961
- return null;
3962
- }
3963
- }
3964
-
3965
- /**
3966
- * Sanitizes attributes on an HTML tag.
3967
- * @param {string} tagName An HTML tag name in lowercase.
3968
- * @param {Array.<?string>} attribs An array of alternating names and values.
3969
- * @param {?function(?string): ?string} opt_naiveUriRewriter A transform to
3970
- * apply to URI attributes; it can return a new string value, or null to
3971
- * delete the attribute. If unspecified, URI attributes are deleted.
3972
- * @param {function(?string): ?string} opt_nmTokenPolicy A transform to apply
3973
- * to attributes containing HTML names, element IDs, and space-separated
3974
- * lists of classes; it can return a new string value, or null to delete
3975
- * the attribute. If unspecified, these attributes are kept unchanged.
3976
- * @return {Array.<?string>} The sanitized attributes as a list of alternating
3977
- * names and values, where a null value means to omit the attribute.
3978
- */
3979
- function sanitizeAttribs(
3980
- tagName, attribs, opt_naiveUriRewriter, opt_nmTokenPolicy) {
3981
- for (var i = 0; i < attribs.length; i += 2) {
3982
- var attribName = attribs[i];
3983
- var value = attribs[i + 1];
3984
- var atype = null, attribKey;
3985
- if ((attribKey = tagName + '::' + attribName,
3986
- html4.ATTRIBS.hasOwnProperty(attribKey)) ||
3987
- (attribKey = '*::' + attribName,
3988
- html4.ATTRIBS.hasOwnProperty(attribKey))) {
3989
- atype = html4.ATTRIBS[attribKey];
3990
- }
3991
- if (atype !== null) {
3992
- switch (atype) {
3993
- case html4.atype.NONE: break;
3994
- case html4.atype.SCRIPT:
3995
- value = null;
3996
- break;
3997
- case html4.atype.STYLE:
3998
- if ('undefined' === typeof parseCssDeclarations) {
3999
- value = null;
4000
- break;
4001
- }
4002
- var sanitizedDeclarations = [];
4003
- parseCssDeclarations(
4004
- value,
4005
- {
4006
- declaration: function (property, tokens) {
4007
- var normProp = property.toLowerCase();
4008
- var schema = cssSchema[normProp];
4009
- if (!schema) {
4010
- return;
4011
- }
4012
- sanitizeCssProperty(
4013
- normProp, schema, tokens,
4014
- opt_naiveUriRewriter);
4015
- sanitizedDeclarations.push(property + ': ' + tokens.join(' '));
4016
- }
4017
- });
4018
- value = sanitizedDeclarations.length > 0 ? sanitizedDeclarations.join(' ; ') : null;
4019
- break;
4020
- case html4.atype.ID:
4021
- case html4.atype.IDREF:
4022
- case html4.atype.IDREFS:
4023
- case html4.atype.GLOBAL_NAME:
4024
- case html4.atype.LOCAL_NAME:
4025
- case html4.atype.CLASSES:
4026
- value = opt_nmTokenPolicy ? opt_nmTokenPolicy(value) : value;
4027
- break;
4028
- case html4.atype.URI:
4029
- value = safeUri(value, opt_naiveUriRewriter);
4030
- break;
4031
- case html4.atype.URI_FRAGMENT:
4032
- if (value && '#' === value.charAt(0)) {
4033
- value = value.substring(1); // remove the leading '#'
4034
- value = opt_nmTokenPolicy ? opt_nmTokenPolicy(value) : value;
4035
- if (value !== null && value !== void 0) {
4036
- value = '#' + value; // restore the leading '#'
4037
- }
4038
- } else {
4039
- value = null;
4040
- }
4041
- break;
4042
- default:
4043
- value = null;
4044
- break;
4045
- }
4046
- } else {
4047
- value = null;
4048
- }
4049
- attribs[i + 1] = value;
4050
- }
4051
- return attribs;
4052
- }
4053
-
4054
- /**
4055
- * Creates a tag policy that omits all tags marked UNSAFE in html4-defs.js
4056
- * and applies the default attribute sanitizer with the supplied policy for
4057
- * URI attributes and NMTOKEN attributes.
4058
- * @param {?function(?string): ?string} opt_naiveUriRewriter A transform to
4059
- * apply to URI attributes. If not given, URI attributes are deleted.
4060
- * @param {function(?string): ?string} opt_nmTokenPolicy A transform to apply
4061
- * to attributes containing HTML names, element IDs, and space-separated
4062
- * lists of classes. If not given, such attributes are left unchanged.
4063
- * @return {function(string, Array.<?string>)} A tagPolicy suitable for
4064
- * passing to html.sanitize.
4065
- */
4066
- function makeTagPolicy(opt_naiveUriRewriter, opt_nmTokenPolicy) {
4067
- return function(tagName, attribs) {
4068
- if (!(html4.ELEMENTS[tagName] & html4.eflags.UNSAFE)) {
4069
- return sanitizeAttribs(
4070
- tagName, attribs, opt_naiveUriRewriter, opt_nmTokenPolicy);
4071
- }
4072
- };
4073
- }
4074
-
4075
- /**
4076
- * Sanitizes HTML tags and attributes according to a given policy.
4077
- * @param {string} inputHtml The HTML to sanitize.
4078
- * @param {function(string, Array.<?string>)} tagPolicy A function that
4079
- * decides which tags to accept and sanitizes their attributes (see
4080
- * makeHtmlSanitizer above for details).
4081
- * @return {string} The sanitized HTML.
4082
- */
4083
- function sanitizeWithPolicy(inputHtml, tagPolicy) {
4084
- var outputArray = [];
4085
- makeHtmlSanitizer(tagPolicy)(inputHtml, outputArray);
4086
- return outputArray.join('');
4087
- }
4088
-
4089
- /**
4090
- * Strips unsafe tags and attributes from HTML.
4091
- * @param {string} inputHtml The HTML to sanitize.
4092
- * @param {?function(?string): ?string} opt_naiveUriRewriter A transform to
4093
- * apply to URI attributes. If not given, URI attributes are deleted.
4094
- * @param {function(?string): ?string} opt_nmTokenPolicy A transform to apply
4095
- * to attributes containing HTML names, element IDs, and space-separated
4096
- * lists of classes. If not given, such attributes are left unchanged.
4097
- */
4098
- function sanitize(inputHtml, opt_naiveUriRewriter, opt_nmTokenPolicy) {
4099
- var tagPolicy = makeTagPolicy(opt_naiveUriRewriter, opt_nmTokenPolicy);
4100
- return sanitizeWithPolicy(inputHtml, tagPolicy);
4101
- }
4102
-
4103
- return {
4104
- escapeAttrib: escapeAttrib,
4105
- makeHtmlSanitizer: makeHtmlSanitizer,
4106
- makeSaxParser: makeSaxParser,
4107
- makeTagPolicy: makeTagPolicy,
4108
- normalizeRCData: normalizeRCData,
4109
- sanitize: sanitize,
4110
- sanitizeAttribs: sanitizeAttribs,
4111
- sanitizeWithPolicy: sanitizeWithPolicy,
4112
- unescapeEntities: unescapeEntities
4113
- };
4114
- })(html4);
4115
-
4116
- var html_sanitize = html.sanitize;
4117
-
4118
- // Exports for closure compiler. Note this file is also cajoled
4119
- // for domado and run in an environment without 'window'
4120
- if (typeof window !== 'undefined') {
4121
- window['html'] = html;
4122
- window['html_sanitize'] = html_sanitize;
4123
- }
4124
-
4125
- }());
4126
- return cajaHtmlSanitizer;
4127
- }
4128
-
4129
- requireCajaHtmlSanitizer();
4130
-
4131
- /*!
4132
- * OpenUI5
4133
- * (c) Copyright 2009-2024 SAP SE or an SAP affiliate company.
4134
- * Licensed under the Apache License, Version 2.0 - see LICENSE.txt.
4135
- */
4136
- /*
4137
- * IMPORTANT: This is a private module, its API must not be used and is subject to change.
4138
- * Code other than the OpenUI5 libraries must not introduce dependencies to this module.
4139
- */
4140
- /**
4141
- * Strips unsafe tags and attributes from HTML.
4142
- *
4143
- * @function
4144
- * @since 1.58
4145
- * @alias module:sap/base/security/sanitizeHTML
4146
- * @param {string} sHTML the HTML to be sanitized.
4147
- * @param {object} [mOptions={}] options for the sanitizer
4148
- * @return {string} sanitized HTML
4149
- * @private
4150
- */
4151
- var fnSanitizeHTML = function (sHTML, mOptions) {
4152
- fnAssert(window.html && window.html.sanitize, "Sanitizer should have been loaded");
4153
- mOptions = mOptions || {
4154
- uriRewriter: function (sUrl) {
4155
- // by default, we use the URLListValidator to check the URLs
4156
-
4157
- if (oURLListValidator.validate(sUrl)) {
4158
- return sUrl;
4159
- }
4160
- }
4161
- };
4162
- var oTagPolicy = mOptions.tagPolicy || window.html.makeTagPolicy(mOptions.uriRewriter, mOptions.tokenPolicy);
4163
- return window.html.sanitizeWithPolicy(sHTML, oTagPolicy);
4164
- };
4165
-
4166
- const a=new Map,t=new Map;t.set("S",[0,599]),t.set("M",[600,1023]),t.set("L",[1024,1439]),t.set("XL",[1440,1/0]);var S=(e=>(e.RANGE_4STEPS="4Step",e))(S||{});const o=(r,e)=>{a.set(r,e);},c=(r,e=window.innerWidth)=>{let n=a.get(r);n||(n=a.get("4Step"));let g;const s=Math.floor(e);return n.forEach((R,E)=>{s>=R[0]&&s<=R[1]&&(g=E);}),g||[...n.keys()][0]},i={RANGESETS:S,initRangeSet:o,getCurrentRange:c};i.initRangeSet(i.RANGESETS.RANGE_4STEPS,t);
4167
-
4168
- // animations/
4169
-
4170
- var PackageModule = /*#__PURE__*/Object.freeze({
4171
- __proto__: null,
4172
- EventProvider: Icons.i$2,
4173
- I18nBundle: Icons.u$2,
4174
- ItemNavigation: f$1,
4175
- MediaRange: i,
4176
- RegisteredIconCollection: Icons.t$1,
4177
- ResizeHandler: f,
4178
- ScrollEnablement: v,
4179
- UI5Element: b$1,
4180
- URLListValidator: oURLListValidator,
4181
- addCustomCSS: g,
4182
- applyDirection: i$1,
4183
- attachBoot: Icons.P,
4184
- attachDirectionChange: a$1,
4185
- attachLanguageChange: Icons.t,
4186
- attachThemeLoaded: Icons.o$1,
4187
- cancelRender: Icons.h$1,
4188
- customElement: m$3,
4189
- default: b$1,
4190
- detachDirectionChange: c$1,
4191
- detachLanguageChange: Icons.r$2,
4192
- detachThemeLoaded: Icons.n$3,
4193
- event: b$5,
4194
- getAnimationMode: d$3,
4195
- getCalendarType: i$7,
4196
- getCustomElementsScopingRules: Icons.m$1,
4197
- getCustomElementsScopingSuffix: Icons.c$3,
4198
- getDefaultIconCollection: Icons.c$4,
4199
- getDefaultLanguage: Icons.c$5,
4200
- getDefaultTheme: Icons.g$2,
4201
- getEffectiveDir: r$1,
4202
- getEffectiveIconCollection: Icons.i$4,
4203
- getEffectiveScopingSuffixForTag: Icons.g$1,
4204
- getFetchDefaultLanguage: Icons.h$3,
4205
- getFirstDayOfWeek: n$a,
4206
- getI18nBundle: Icons.f$2,
4207
- getLanguage: Icons.l$3,
4208
- getLegacyDateCalendarCustomizing: m$5,
4209
- getNoConflict: o$6,
4210
- getTheme: Icons.r,
4211
- isAndroid: Icons.P$1,
4212
- isChrome: Icons.g,
4213
- isCombi: Icons.m$2,
4214
- isDesktop: Icons.f,
4215
- isFirefox: Icons.b$2,
4216
- isIOS: Icons.w,
4217
- isPhone: Icons.d,
4218
- isSafari: Icons.h,
4219
- isTablet: Icons.a$1,
4220
- property: s$9,
4221
- registerCustomI18nBundleGetter: Icons.y$1,
4222
- registerI18nLoader: Icons.$,
4223
- registerIconLoader: Icons.C,
4224
- registerLocaleDataLoader: C,
4225
- registerThemePropertiesLoader: Icons.p,
4226
- renderDeferred: Icons.l$1,
4227
- renderFinished: Icons.f$1,
4228
- renderImmediately: Icons.c$2,
4229
- sanitizeHTML: fnSanitizeHTML,
4230
- scroll: n$d,
4231
- setAnimationMode: m$6,
4232
- setCustomElementsScopingRules: Icons.p$1,
4233
- setCustomElementsScopingSuffix: Icons.l$4,
4234
- setDefaultIconCollection: Icons.e$1,
4235
- setFetchDefaultLanguage: Icons.m$3,
4236
- setLanguage: Icons.L,
4237
- setNoConflict: f$3,
4238
- setTheme: Icons.u$1,
4239
- slideDown: b$6,
4240
- slideUp: u$3,
4241
- slot: d$1,
4242
- startMultipleDrag: m$4,
4243
- supportsTouch: Icons.l$2
4244
- });
4245
-
4246
- Icons.l$4("16d3c820");
4247
-
4248
- exports.A = A;
4249
- exports.C = C$2;
4250
- exports.C$1 = C;
4251
- exports.Co = Co;
4252
- exports.D = D$1;
4253
- exports.D$1 = D$2;
4254
- exports.Eo = Eo;
4255
- exports.I = I$1;
4256
- exports.K = K;
4257
- exports.Ko = Ko;
4258
- exports.M = M;
4259
- exports.N = N;
4260
- exports.O = O$2;
4261
- exports.P = P;
4262
- exports.PackageModule = PackageModule;
4263
- exports.Q = Q;
4264
- exports.R = R$2;
4265
- exports.V = V;
4266
- exports.X = X;
4267
- exports._ = _$1;
4268
- exports.ao = ao;
4269
- exports.b = b$1;
4270
- exports.b$1 = b$4;
4271
- exports.b$2 = b$6;
4272
- exports.d = d$1;
4273
- exports.d$1 = d$3;
4274
- exports.f = f;
4275
- exports.f$1 = f$1;
4276
- exports.h = h;
4277
- exports.i = i$5;
4278
- exports.i$1 = i$3;
4279
- exports.i$2 = i;
4280
- exports.j = j;
4281
- exports.ko = ko;
4282
- exports.l = l$5;
4283
- exports.m = m$3;
4284
- exports.m$1 = m$1;
4285
- exports.m$2 = m$2;
4286
- exports.n = n$9;
4287
- exports.n$1 = n$3;
4288
- exports.n$2 = n$4;
4289
- exports.p = p$2;
4290
- exports.q = q;
4291
- exports.r = r$4;
4292
- exports.ro = ro;
4293
- exports.s = s$9;
4294
- exports.so = so;
4295
- exports.t = t$3;
4296
- exports.u = u$3;
4297
- exports.v = v$1;
4298
- exports.x = x;
4299
-
4300
- }));