@ui5/webcomponents-base 2.22.0-rc.5 → 2.22.0-rc.6

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 (174) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/.tsbuildinfobuild +1 -1
  3. package/dist/InitialConfiguration.d.ts +2 -1
  4. package/dist/InitialConfiguration.js +9 -2
  5. package/dist/InitialConfiguration.js.map +1 -1
  6. package/dist/Runtimes.d.ts +5 -1
  7. package/dist/Runtimes.js +24 -24
  8. package/dist/Runtimes.js.map +1 -1
  9. package/dist/config/UrlParams.d.ts +20 -0
  10. package/dist/config/UrlParams.js +30 -0
  11. package/dist/config/UrlParams.js.map +1 -0
  12. package/dist/custom-elements-internal.json +6 -0
  13. package/dist/custom-elements.json +6 -0
  14. package/dist/features/patchPopup.js +33 -4
  15. package/dist/features/patchPopup.js.map +1 -1
  16. package/dist/generated/VersionInfo.js +3 -3
  17. package/dist/generated/VersionInfo.js.map +1 -1
  18. package/dist/generated/assets/i18n/messagebundle_ar.json +1 -0
  19. package/dist/generated/assets/i18n/messagebundle_bg.json +1 -0
  20. package/dist/generated/assets/i18n/messagebundle_ca.json +1 -0
  21. package/dist/generated/assets/i18n/messagebundle_cnr.json +1 -0
  22. package/dist/generated/assets/i18n/messagebundle_cs.json +1 -0
  23. package/dist/generated/assets/i18n/messagebundle_cy.json +1 -0
  24. package/dist/generated/assets/i18n/messagebundle_da.json +1 -0
  25. package/dist/generated/assets/i18n/messagebundle_de.json +1 -0
  26. package/dist/generated/assets/i18n/messagebundle_el.json +1 -0
  27. package/dist/generated/assets/i18n/messagebundle_en_GB.json +1 -0
  28. package/dist/generated/assets/i18n/messagebundle_es.json +1 -0
  29. package/dist/generated/assets/i18n/messagebundle_es_MX.json +1 -0
  30. package/dist/generated/assets/i18n/messagebundle_et.json +1 -0
  31. package/dist/generated/assets/i18n/messagebundle_fi.json +1 -0
  32. package/dist/generated/assets/i18n/messagebundle_fr.json +1 -0
  33. package/dist/generated/assets/i18n/messagebundle_fr_CA.json +1 -0
  34. package/dist/generated/assets/i18n/messagebundle_hi.json +1 -0
  35. package/dist/generated/assets/i18n/messagebundle_hr.json +1 -0
  36. package/dist/generated/assets/i18n/messagebundle_hu.json +1 -0
  37. package/dist/generated/assets/i18n/messagebundle_id.json +1 -0
  38. package/dist/generated/assets/i18n/messagebundle_it.json +1 -0
  39. package/dist/generated/assets/i18n/messagebundle_iw.json +1 -0
  40. package/dist/generated/assets/i18n/messagebundle_ja.json +1 -0
  41. package/dist/generated/assets/i18n/messagebundle_kk.json +1 -0
  42. package/dist/generated/assets/i18n/messagebundle_ko.json +1 -0
  43. package/dist/generated/assets/i18n/messagebundle_lt.json +1 -0
  44. package/dist/generated/assets/i18n/messagebundle_lv.json +1 -0
  45. package/dist/generated/assets/i18n/messagebundle_mk.json +1 -0
  46. package/dist/generated/assets/i18n/messagebundle_ms.json +1 -0
  47. package/dist/generated/assets/i18n/messagebundle_nl.json +1 -0
  48. package/dist/generated/assets/i18n/messagebundle_no.json +1 -0
  49. package/dist/generated/assets/i18n/messagebundle_pl.json +1 -0
  50. package/dist/generated/assets/i18n/messagebundle_pt.json +1 -0
  51. package/dist/generated/assets/i18n/messagebundle_pt_PT.json +1 -0
  52. package/dist/generated/assets/i18n/messagebundle_ro.json +1 -0
  53. package/dist/generated/assets/i18n/messagebundle_ru.json +1 -0
  54. package/dist/generated/assets/i18n/messagebundle_sh.json +1 -0
  55. package/dist/generated/assets/i18n/messagebundle_sk.json +1 -0
  56. package/dist/generated/assets/i18n/messagebundle_sl.json +1 -0
  57. package/dist/generated/assets/i18n/messagebundle_sr.json +1 -0
  58. package/dist/generated/assets/i18n/messagebundle_sv.json +1 -0
  59. package/dist/generated/assets/i18n/messagebundle_th.json +1 -0
  60. package/dist/generated/assets/i18n/messagebundle_tr.json +1 -0
  61. package/dist/generated/assets/i18n/messagebundle_uk.json +1 -0
  62. package/dist/generated/assets/i18n/messagebundle_vi.json +1 -0
  63. package/dist/generated/assets/i18n/messagebundle_zh_CN.json +1 -0
  64. package/dist/generated/assets/i18n/messagebundle_zh_TW.json +1 -0
  65. package/dist/index.d.ts +2 -1
  66. package/dist/index.js +2 -1
  67. package/dist/index.js.map +1 -1
  68. package/dist/prod/InitialConfiguration.js +1 -1
  69. package/dist/prod/InitialConfiguration.js.map +3 -3
  70. package/dist/prod/Runtimes.js +1 -1
  71. package/dist/prod/Runtimes.js.map +3 -3
  72. package/dist/prod/config/UrlParams.js +2 -0
  73. package/dist/prod/config/UrlParams.js.map +7 -0
  74. package/dist/prod/features/patchPopup.js +1 -1
  75. package/dist/prod/features/patchPopup.js.map +3 -3
  76. package/dist/prod/generated/VersionInfo.js +1 -1
  77. package/dist/prod/generated/VersionInfo.js.map +1 -1
  78. package/dist/prod/generated/assets/i18n/messagebundle_ar.json +1 -0
  79. package/dist/prod/generated/assets/i18n/messagebundle_bg.json +1 -0
  80. package/dist/prod/generated/assets/i18n/messagebundle_ca.json +1 -0
  81. package/dist/prod/generated/assets/i18n/messagebundle_cnr.json +1 -0
  82. package/dist/prod/generated/assets/i18n/messagebundle_cs.json +1 -0
  83. package/dist/prod/generated/assets/i18n/messagebundle_cy.json +1 -0
  84. package/dist/prod/generated/assets/i18n/messagebundle_da.json +1 -0
  85. package/dist/prod/generated/assets/i18n/messagebundle_de.json +1 -0
  86. package/dist/prod/generated/assets/i18n/messagebundle_el.json +1 -0
  87. package/dist/prod/generated/assets/i18n/messagebundle_en_GB.json +1 -0
  88. package/dist/prod/generated/assets/i18n/messagebundle_es.json +1 -0
  89. package/dist/prod/generated/assets/i18n/messagebundle_es_MX.json +1 -0
  90. package/dist/prod/generated/assets/i18n/messagebundle_et.json +1 -0
  91. package/dist/prod/generated/assets/i18n/messagebundle_fi.json +1 -0
  92. package/dist/prod/generated/assets/i18n/messagebundle_fr.json +1 -0
  93. package/dist/prod/generated/assets/i18n/messagebundle_fr_CA.json +1 -0
  94. package/dist/prod/generated/assets/i18n/messagebundle_hi.json +1 -0
  95. package/dist/prod/generated/assets/i18n/messagebundle_hr.json +1 -0
  96. package/dist/prod/generated/assets/i18n/messagebundle_hu.json +1 -0
  97. package/dist/prod/generated/assets/i18n/messagebundle_id.json +1 -0
  98. package/dist/prod/generated/assets/i18n/messagebundle_it.json +1 -0
  99. package/dist/prod/generated/assets/i18n/messagebundle_iw.json +1 -0
  100. package/dist/prod/generated/assets/i18n/messagebundle_ja.json +1 -0
  101. package/dist/prod/generated/assets/i18n/messagebundle_kk.json +1 -0
  102. package/dist/prod/generated/assets/i18n/messagebundle_ko.json +1 -0
  103. package/dist/prod/generated/assets/i18n/messagebundle_lt.json +1 -0
  104. package/dist/prod/generated/assets/i18n/messagebundle_lv.json +1 -0
  105. package/dist/prod/generated/assets/i18n/messagebundle_mk.json +1 -0
  106. package/dist/prod/generated/assets/i18n/messagebundle_ms.json +1 -0
  107. package/dist/prod/generated/assets/i18n/messagebundle_nl.json +1 -0
  108. package/dist/prod/generated/assets/i18n/messagebundle_no.json +1 -0
  109. package/dist/prod/generated/assets/i18n/messagebundle_pl.json +1 -0
  110. package/dist/prod/generated/assets/i18n/messagebundle_pt.json +1 -0
  111. package/dist/prod/generated/assets/i18n/messagebundle_pt_PT.json +1 -0
  112. package/dist/prod/generated/assets/i18n/messagebundle_ro.json +1 -0
  113. package/dist/prod/generated/assets/i18n/messagebundle_ru.json +1 -0
  114. package/dist/prod/generated/assets/i18n/messagebundle_sh.json +1 -0
  115. package/dist/prod/generated/assets/i18n/messagebundle_sk.json +1 -0
  116. package/dist/prod/generated/assets/i18n/messagebundle_sl.json +1 -0
  117. package/dist/prod/generated/assets/i18n/messagebundle_sr.json +1 -0
  118. package/dist/prod/generated/assets/i18n/messagebundle_sv.json +1 -0
  119. package/dist/prod/generated/assets/i18n/messagebundle_th.json +1 -0
  120. package/dist/prod/generated/assets/i18n/messagebundle_tr.json +1 -0
  121. package/dist/prod/generated/assets/i18n/messagebundle_uk.json +1 -0
  122. package/dist/prod/generated/assets/i18n/messagebundle_vi.json +1 -0
  123. package/dist/prod/generated/assets/i18n/messagebundle_zh_CN.json +1 -0
  124. package/dist/prod/generated/assets/i18n/messagebundle_zh_TW.json +1 -0
  125. package/dist/prod/index.js +1 -1
  126. package/dist/prod/index.js.map +3 -3
  127. package/package.json +3 -3
  128. package/src/i18n/messagebundle_ar.properties +2 -0
  129. package/src/i18n/messagebundle_bg.properties +2 -0
  130. package/src/i18n/messagebundle_ca.properties +2 -0
  131. package/src/i18n/messagebundle_cnr.properties +2 -0
  132. package/src/i18n/messagebundle_cs.properties +2 -0
  133. package/src/i18n/messagebundle_cy.properties +2 -0
  134. package/src/i18n/messagebundle_da.properties +2 -0
  135. package/src/i18n/messagebundle_de.properties +2 -0
  136. package/src/i18n/messagebundle_el.properties +2 -0
  137. package/src/i18n/messagebundle_en_GB.properties +2 -0
  138. package/src/i18n/messagebundle_es.properties +2 -0
  139. package/src/i18n/messagebundle_es_MX.properties +2 -0
  140. package/src/i18n/messagebundle_et.properties +2 -0
  141. package/src/i18n/messagebundle_fi.properties +2 -0
  142. package/src/i18n/messagebundle_fr.properties +2 -0
  143. package/src/i18n/messagebundle_fr_CA.properties +2 -0
  144. package/src/i18n/messagebundle_hi.properties +2 -0
  145. package/src/i18n/messagebundle_hr.properties +2 -0
  146. package/src/i18n/messagebundle_hu.properties +2 -0
  147. package/src/i18n/messagebundle_id.properties +2 -0
  148. package/src/i18n/messagebundle_it.properties +2 -0
  149. package/src/i18n/messagebundle_iw.properties +2 -0
  150. package/src/i18n/messagebundle_ja.properties +2 -0
  151. package/src/i18n/messagebundle_kk.properties +2 -0
  152. package/src/i18n/messagebundle_ko.properties +2 -0
  153. package/src/i18n/messagebundle_lt.properties +2 -0
  154. package/src/i18n/messagebundle_lv.properties +2 -0
  155. package/src/i18n/messagebundle_mk.properties +2 -0
  156. package/src/i18n/messagebundle_ms.properties +2 -0
  157. package/src/i18n/messagebundle_nl.properties +2 -0
  158. package/src/i18n/messagebundle_no.properties +2 -0
  159. package/src/i18n/messagebundle_pl.properties +2 -0
  160. package/src/i18n/messagebundle_pt.properties +2 -0
  161. package/src/i18n/messagebundle_pt_PT.properties +2 -0
  162. package/src/i18n/messagebundle_ro.properties +2 -0
  163. package/src/i18n/messagebundle_ru.properties +2 -0
  164. package/src/i18n/messagebundle_sh.properties +2 -0
  165. package/src/i18n/messagebundle_sk.properties +2 -0
  166. package/src/i18n/messagebundle_sl.properties +2 -0
  167. package/src/i18n/messagebundle_sr.properties +2 -0
  168. package/src/i18n/messagebundle_sv.properties +2 -0
  169. package/src/i18n/messagebundle_th.properties +2 -0
  170. package/src/i18n/messagebundle_tr.properties +2 -0
  171. package/src/i18n/messagebundle_uk.properties +2 -0
  172. package/src/i18n/messagebundle_vi.properties +2 -0
  173. package/src/i18n/messagebundle_zh_CN.properties +2 -0
  174. package/src/i18n/messagebundle_zh_TW.properties +2 -0
@@ -14,6 +14,7 @@ declare const getFetchDefaultLanguage: () => boolean;
14
14
  declare const getNoConflict: () => boolean;
15
15
  declare const getDefaultFontLoading: () => boolean;
16
16
  declare const getEnableDefaultTooltips: () => boolean;
17
+ declare const getIgnoreUrlParams: () => boolean;
17
18
  /**
18
19
  * Get the configured calendar type
19
20
  * @returns { String } the name of the configured calendar type
@@ -31,4 +32,4 @@ declare const getFormatSettings: () => FormatSettings;
31
32
  * @private
32
33
  */
33
34
  declare const resetConfiguration: (testEnv?: boolean) => void;
34
- export { getAnimationMode, getTheme, getThemeRoot, getLanguage, getFetchDefaultLanguage, getNoConflict, getCalendarType, getSecondaryCalendarType, getTimezone, getFormatSettings, getDefaultFontLoading, resetConfiguration, getEnableDefaultTooltips, };
35
+ export { getAnimationMode, getTheme, getThemeRoot, getLanguage, getFetchDefaultLanguage, getNoConflict, getCalendarType, getSecondaryCalendarType, getTimezone, getFormatSettings, getDefaultFontLoading, resetConfiguration, getEnableDefaultTooltips, getIgnoreUrlParams, };
@@ -19,6 +19,7 @@ let initialConfig = {
19
19
  fetchDefaultLanguage: false,
20
20
  defaultFontLoading: true,
21
21
  enableDefaultTooltips: true,
22
+ ignoreUrlParams: false,
22
23
  };
23
24
  /* General settings */
24
25
  const getAnimationMode = () => {
@@ -58,6 +59,10 @@ const getEnableDefaultTooltips = () => {
58
59
  initConfiguration();
59
60
  return initialConfig.enableDefaultTooltips;
60
61
  };
62
+ const getIgnoreUrlParams = () => {
63
+ initConfiguration();
64
+ return initialConfig.ignoreUrlParams;
65
+ };
61
66
  /**
62
67
  * Get the configured calendar type
63
68
  * @returns { String } the name of the configured calendar type
@@ -170,9 +175,11 @@ const resetConfiguration = (testEnv) => {
170
175
  // 1. Lowest priority - configuration script
171
176
  parseConfigurationScript();
172
177
  // 2. URL parameters overwrite configuration script parameters
173
- parseURLParameters();
178
+ if (!initialConfig.ignoreUrlParams) {
179
+ parseURLParameters();
180
+ }
174
181
  // 3. If OpenUI5 is detected, it has the highest priority
175
182
  applyOpenUI5Configuration();
176
183
  };
177
- export { getAnimationMode, getTheme, getThemeRoot, getLanguage, getFetchDefaultLanguage, getNoConflict, getCalendarType, getSecondaryCalendarType, getTimezone, getFormatSettings, getDefaultFontLoading, resetConfiguration, getEnableDefaultTooltips, };
184
+ export { getAnimationMode, getTheme, getThemeRoot, getLanguage, getFetchDefaultLanguage, getNoConflict, getCalendarType, getSecondaryCalendarType, getTimezone, getFormatSettings, getDefaultFontLoading, resetConfiguration, getEnableDefaultTooltips, getIgnoreUrlParams, };
178
185
  //# sourceMappingURL=InitialConfiguration.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InitialConfiguration.js","sourceRoot":"","sources":["../src/InitialConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["import merge from \"./thirdparty/merge.js\";\nimport { getFeature } from \"./FeaturesRegistry.js\";\nimport { DEFAULT_THEME } from \"./generated/AssetParameters.js\";\nimport type OpenUI5Support from \"./features/OpenUI5Support.js\";\nimport type { FormatSettings } from \"./config/FormatSettings.js\";\nimport AnimationMode from \"./types/AnimationMode.js\";\nimport type CalendarType from \"./types/CalendarType.js\";\nimport { resetConfiguration as resetConfigurationFn } from \"./config/ConfigurationReset.js\";\nimport { getLocationSearch } from \"./Location.js\";\n\nlet initialized = false;\n\ntype InitialConfig = {\n\t[key: string]: any,\n\tanimationMode: AnimationMode,\n\ttheme: string,\n\tthemeRoot: string | undefined,\n\tlanguage: string | undefined,\n\tcalendarType: CalendarType | undefined,\n\tsecondaryCalendarType: CalendarType | undefined,\n\ttimezone: string | undefined,\n\tnoConflict: boolean,\n\tformatSettings: FormatSettings,\n\tfetchDefaultLanguage: boolean,\n\tdefaultFontLoading: boolean,\n\tenableDefaultTooltips: boolean,\n};\n\nlet initialConfig: InitialConfig = {\n\tanimationMode: AnimationMode.Full,\n\ttheme: DEFAULT_THEME,\n\tthemeRoot: undefined,\n\trtl: undefined,\n\tlanguage: undefined,\n\ttimezone: undefined,\n\tcalendarType: undefined,\n\tsecondaryCalendarType: undefined,\n\tnoConflict: false, // no URL\n\tformatSettings: {},\n\tfetchDefaultLanguage: false,\n\tdefaultFontLoading: true,\n\tenableDefaultTooltips: true,\n};\n\n/* General settings */\nconst getAnimationMode = () => {\n\tinitConfiguration();\n\treturn initialConfig.animationMode;\n};\n\nconst getTheme = () => {\n\tinitConfiguration();\n\treturn initialConfig.theme;\n};\n\nconst getThemeRoot = () => {\n\tinitConfiguration();\n\treturn initialConfig.themeRoot;\n};\n\nconst getLanguage = () => {\n\tinitConfiguration();\n\treturn initialConfig.language;\n};\n\n/**\n * Returns if the default language, that is inlined at build time,\n * should be fetched over the network instead.\n * @returns {Boolean}\n */\nconst getFetchDefaultLanguage = () => {\n\tinitConfiguration();\n\treturn initialConfig.fetchDefaultLanguage;\n};\n\nconst getNoConflict = () => {\n\tinitConfiguration();\n\treturn initialConfig.noConflict;\n};\n\nconst getDefaultFontLoading = () => {\n\tinitConfiguration();\n\treturn initialConfig.defaultFontLoading;\n};\n\nconst getEnableDefaultTooltips = () => {\n\tinitConfiguration();\n\treturn initialConfig.enableDefaultTooltips;\n};\n\n/**\n * Get the configured calendar type\n * @returns { String } the name of the configured calendar type\n */\nconst getCalendarType = () => {\n\tinitConfiguration();\n\treturn initialConfig.calendarType;\n};\n\nconst getSecondaryCalendarType = () => {\n\tinitConfiguration();\n\treturn initialConfig.secondaryCalendarType;\n};\n\n/**\n * Returns the configured IANA timezone ID.\n * @returns { String } the configured IANA timezone ID, e.g. \"America/New_York\"\n */\nconst getTimezone = () => {\n\tinitConfiguration();\n\treturn initialConfig.timezone;\n};\n\nconst getFormatSettings = () => {\n\tinitConfiguration();\n\treturn initialConfig.formatSettings;\n};\n\nconst booleanMapping = new Map();\nbooleanMapping.set(\"true\", true);\nbooleanMapping.set(\"false\", false);\n\nconst parseConfigurationScript = () => {\n\tconst configScript = document.querySelector(\"[data-ui5-config]\") || document.querySelector(\"[data-id='sap-ui-config']\"); // for backward compatibility\n\n\tlet configJSON;\n\n\tif (configScript) {\n\t\ttry {\n\t\t\tconfigJSON = JSON.parse(configScript.innerHTML);\n\t\t} catch (err) {\n\t\t\tconsole.warn(\"Incorrect data-sap-ui-config format. Please use JSON\"); /* eslint-disable-line */\n\t\t}\n\n\t\tif (configJSON) {\n\t\t\tinitialConfig = merge(initialConfig, configJSON);\n\t\t}\n\t}\n};\n\nconst parseURLParameters = () => {\n\tconst params = new URLSearchParams(getLocationSearch());\n\n\t// Process \"sap-*\" params first\n\tparams.forEach((value, key) => {\n\t\tconst parts = key.split(\"sap-\").length;\n\t\tif (parts === 0 || parts === key.split(\"sap-ui-\").length) {\n\t\t\treturn;\n\t\t}\n\n\t\tapplyURLParam(key, value, \"sap\");\n\t});\n\n\t// Process \"sap-ui-*\" params\n\tparams.forEach((value, key) => {\n\t\tif (!key.startsWith(\"sap-ui\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tapplyURLParam(key, value, \"sap-ui\");\n\t});\n};\n\nconst normalizeThemeRootParamValue = (value: string) => {\n\tconst themeRoot = value.split(\"@\")[1];\n\n\treturn themeRoot;\n};\n\nconst normalizeThemeParamValue = (param: string, value: string) => {\n\tif (param === \"theme\" && value.includes(\"@\")) { // the theme parameter might have @<URL-TO-THEME> in the value - strip this\n\t\treturn value.split(\"@\")[0];\n\t}\n\n\treturn value;\n};\n\nconst applyURLParam = (key: string, value: string, paramType: string) => {\n\tconst lowerCaseValue = value.toLowerCase();\n\tconst param = key.split(`${paramType}-`)[1];\n\n\tif (booleanMapping.has(value)) {\n\t\tvalue = booleanMapping.get(lowerCaseValue);\n\t}\n\n\tif (param === \"theme\") {\n\t\tinitialConfig.theme = normalizeThemeParamValue(param, value);\n\n\t\tif (value && value.includes(\"@\")) {\n\t\t\tinitialConfig.themeRoot = normalizeThemeRootParamValue(value);\n\t\t}\n\t} else {\n\t\tinitialConfig[param] = value;\n\t}\n};\n\nconst applyOpenUI5Configuration = () => {\n\tconst openUI5Support = getFeature<typeof OpenUI5Support>(\"OpenUI5Support\");\n\tif (!openUI5Support || !openUI5Support.isOpenUI5Detected()) {\n\t\treturn;\n\t}\n\n\tconst OpenUI5Config = openUI5Support.getConfigurationSettingsObject();\n\tinitialConfig = merge(initialConfig, OpenUI5Config);\n};\n\nconst initConfiguration = () => {\n\tif (typeof document === \"undefined\" || initialized) {\n\t\treturn;\n\t}\n\n\tresetConfiguration();\n\n\tinitialized = true;\n};\n\n/**\n * Internaly exposed method to enable configurations in tests.\n * @private\n */\nconst resetConfiguration = (testEnv?: boolean) => {\n\tif (testEnv) {\n\t\tresetConfigurationFn();\n\t}\n\t// 1. Lowest priority - configuration script\n\tparseConfigurationScript();\n\n\t// 2. URL parameters overwrite configuration script parameters\n\tparseURLParameters();\n\n\t// 3. If OpenUI5 is detected, it has the highest priority\n\tapplyOpenUI5Configuration();\n};\n\nexport {\n\tgetAnimationMode,\n\tgetTheme,\n\tgetThemeRoot,\n\tgetLanguage,\n\tgetFetchDefaultLanguage,\n\tgetNoConflict,\n\tgetCalendarType,\n\tgetSecondaryCalendarType,\n\tgetTimezone,\n\tgetFormatSettings,\n\tgetDefaultFontLoading,\n\tresetConfiguration,\n\tgetEnableDefaultTooltips,\n};\n"]}
1
+ {"version":3,"file":"InitialConfiguration.js","sourceRoot":"","sources":["../src/InitialConfiguration.ts"],"names":[],"mappings":"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","sourcesContent":["import merge from \"./thirdparty/merge.js\";\nimport { getFeature } from \"./FeaturesRegistry.js\";\nimport { DEFAULT_THEME } from \"./generated/AssetParameters.js\";\nimport type OpenUI5Support from \"./features/OpenUI5Support.js\";\nimport type { FormatSettings } from \"./config/FormatSettings.js\";\nimport AnimationMode from \"./types/AnimationMode.js\";\nimport type CalendarType from \"./types/CalendarType.js\";\nimport { resetConfiguration as resetConfigurationFn } from \"./config/ConfigurationReset.js\";\nimport { getLocationSearch } from \"./Location.js\";\n\nlet initialized = false;\n\ntype InitialConfig = {\n\t[key: string]: any,\n\tanimationMode: AnimationMode,\n\ttheme: string,\n\tthemeRoot: string | undefined,\n\tlanguage: string | undefined,\n\tcalendarType: CalendarType | undefined,\n\tsecondaryCalendarType: CalendarType | undefined,\n\ttimezone: string | undefined,\n\tnoConflict: boolean,\n\tformatSettings: FormatSettings,\n\tfetchDefaultLanguage: boolean,\n\tdefaultFontLoading: boolean,\n\tenableDefaultTooltips: boolean,\n\tignoreUrlParams: boolean,\n};\n\nlet initialConfig: InitialConfig = {\n\tanimationMode: AnimationMode.Full,\n\ttheme: DEFAULT_THEME,\n\tthemeRoot: undefined,\n\trtl: undefined,\n\tlanguage: undefined,\n\ttimezone: undefined,\n\tcalendarType: undefined,\n\tsecondaryCalendarType: undefined,\n\tnoConflict: false, // no URL\n\tformatSettings: {},\n\tfetchDefaultLanguage: false,\n\tdefaultFontLoading: true,\n\tenableDefaultTooltips: true,\n\tignoreUrlParams: false,\n};\n\n/* General settings */\nconst getAnimationMode = () => {\n\tinitConfiguration();\n\treturn initialConfig.animationMode;\n};\n\nconst getTheme = () => {\n\tinitConfiguration();\n\treturn initialConfig.theme;\n};\n\nconst getThemeRoot = () => {\n\tinitConfiguration();\n\treturn initialConfig.themeRoot;\n};\n\nconst getLanguage = () => {\n\tinitConfiguration();\n\treturn initialConfig.language;\n};\n\n/**\n * Returns if the default language, that is inlined at build time,\n * should be fetched over the network instead.\n * @returns {Boolean}\n */\nconst getFetchDefaultLanguage = () => {\n\tinitConfiguration();\n\treturn initialConfig.fetchDefaultLanguage;\n};\n\nconst getNoConflict = () => {\n\tinitConfiguration();\n\treturn initialConfig.noConflict;\n};\n\nconst getDefaultFontLoading = () => {\n\tinitConfiguration();\n\treturn initialConfig.defaultFontLoading;\n};\n\nconst getEnableDefaultTooltips = () => {\n\tinitConfiguration();\n\treturn initialConfig.enableDefaultTooltips;\n};\n\nconst getIgnoreUrlParams = () => {\n\tinitConfiguration();\n\treturn initialConfig.ignoreUrlParams;\n};\n\n/**\n * Get the configured calendar type\n * @returns { String } the name of the configured calendar type\n */\nconst getCalendarType = () => {\n\tinitConfiguration();\n\treturn initialConfig.calendarType;\n};\n\nconst getSecondaryCalendarType = () => {\n\tinitConfiguration();\n\treturn initialConfig.secondaryCalendarType;\n};\n\n/**\n * Returns the configured IANA timezone ID.\n * @returns { String } the configured IANA timezone ID, e.g. \"America/New_York\"\n */\nconst getTimezone = () => {\n\tinitConfiguration();\n\treturn initialConfig.timezone;\n};\n\nconst getFormatSettings = () => {\n\tinitConfiguration();\n\treturn initialConfig.formatSettings;\n};\n\nconst booleanMapping = new Map();\nbooleanMapping.set(\"true\", true);\nbooleanMapping.set(\"false\", false);\n\nconst parseConfigurationScript = () => {\n\tconst configScript = document.querySelector(\"[data-ui5-config]\") || document.querySelector(\"[data-id='sap-ui-config']\"); // for backward compatibility\n\n\tlet configJSON;\n\n\tif (configScript) {\n\t\ttry {\n\t\t\tconfigJSON = JSON.parse(configScript.innerHTML);\n\t\t} catch (err) {\n\t\t\tconsole.warn(\"Incorrect data-sap-ui-config format. Please use JSON\"); /* eslint-disable-line */\n\t\t}\n\n\t\tif (configJSON) {\n\t\t\tinitialConfig = merge(initialConfig, configJSON);\n\t\t}\n\t}\n};\n\nconst parseURLParameters = () => {\n\tconst params = new URLSearchParams(getLocationSearch());\n\n\t// Process \"sap-*\" params first\n\tparams.forEach((value, key) => {\n\t\tconst parts = key.split(\"sap-\").length;\n\t\tif (parts === 0 || parts === key.split(\"sap-ui-\").length) {\n\t\t\treturn;\n\t\t}\n\n\t\tapplyURLParam(key, value, \"sap\");\n\t});\n\n\t// Process \"sap-ui-*\" params\n\tparams.forEach((value, key) => {\n\t\tif (!key.startsWith(\"sap-ui\")) {\n\t\t\treturn;\n\t\t}\n\n\t\tapplyURLParam(key, value, \"sap-ui\");\n\t});\n};\n\nconst normalizeThemeRootParamValue = (value: string) => {\n\tconst themeRoot = value.split(\"@\")[1];\n\n\treturn themeRoot;\n};\n\nconst normalizeThemeParamValue = (param: string, value: string) => {\n\tif (param === \"theme\" && value.includes(\"@\")) { // the theme parameter might have @<URL-TO-THEME> in the value - strip this\n\t\treturn value.split(\"@\")[0];\n\t}\n\n\treturn value;\n};\n\nconst applyURLParam = (key: string, value: string, paramType: string) => {\n\tconst lowerCaseValue = value.toLowerCase();\n\tconst param = key.split(`${paramType}-`)[1];\n\n\tif (booleanMapping.has(value)) {\n\t\tvalue = booleanMapping.get(lowerCaseValue);\n\t}\n\n\tif (param === \"theme\") {\n\t\tinitialConfig.theme = normalizeThemeParamValue(param, value);\n\n\t\tif (value && value.includes(\"@\")) {\n\t\t\tinitialConfig.themeRoot = normalizeThemeRootParamValue(value);\n\t\t}\n\t} else {\n\t\tinitialConfig[param] = value;\n\t}\n};\n\nconst applyOpenUI5Configuration = () => {\n\tconst openUI5Support = getFeature<typeof OpenUI5Support>(\"OpenUI5Support\");\n\tif (!openUI5Support || !openUI5Support.isOpenUI5Detected()) {\n\t\treturn;\n\t}\n\n\tconst OpenUI5Config = openUI5Support.getConfigurationSettingsObject();\n\tinitialConfig = merge(initialConfig, OpenUI5Config);\n};\n\nconst initConfiguration = () => {\n\tif (typeof document === \"undefined\" || initialized) {\n\t\treturn;\n\t}\n\n\tresetConfiguration();\n\n\tinitialized = true;\n};\n\n/**\n * Internaly exposed method to enable configurations in tests.\n * @private\n */\nconst resetConfiguration = (testEnv?: boolean) => {\n\tif (testEnv) {\n\t\tresetConfigurationFn();\n\t}\n\t// 1. Lowest priority - configuration script\n\tparseConfigurationScript();\n\n\t// 2. URL parameters overwrite configuration script parameters\n\tif (!initialConfig.ignoreUrlParams) {\n\t\tparseURLParameters();\n\t}\n\n\t// 3. If OpenUI5 is detected, it has the highest priority\n\tapplyOpenUI5Configuration();\n};\n\nexport {\n\tgetAnimationMode,\n\tgetTheme,\n\tgetThemeRoot,\n\tgetLanguage,\n\tgetFetchDefaultLanguage,\n\tgetNoConflict,\n\tgetCalendarType,\n\tgetSecondaryCalendarType,\n\tgetTimezone,\n\tgetFormatSettings,\n\tgetDefaultFontLoading,\n\tresetConfiguration,\n\tgetEnableDefaultTooltips,\n\tgetIgnoreUrlParams,\n};\n"]}
@@ -12,6 +12,10 @@ declare const registerCurrentRuntime: () => void;
12
12
  * @returns {*}
13
13
  */
14
14
  declare const getCurrentRuntimeIndex: () => number;
15
+ /**
16
+ * Compares two VersionInfo objects and returns 1 if the first is bigger, -1 if the second is bigger, and 0 if equal.
17
+ */
18
+ declare const compareVersions: (v1: VersionInfo, v2: VersionInfo) => number;
15
19
  /**
16
20
  * Compares two runtimes and returns 1 if the first is of a bigger version, -1 if the second is of a bigger version, and 0 if equal
17
21
  * @param index1 The index of the first runtime to compare
@@ -25,4 +29,4 @@ declare const compareRuntimes: (index1: number, index2: number) => number;
25
29
  */
26
30
  declare const setRuntimeAlias: (alias: string) => void;
27
31
  declare const getAllRuntimes: () => RuntimeData[];
28
- export { getCurrentRuntimeIndex, registerCurrentRuntime, compareRuntimes, setRuntimeAlias, getAllRuntimes, };
32
+ export { getCurrentRuntimeIndex, registerCurrentRuntime, compareRuntimes, compareVersions, setRuntimeAlias, getAllRuntimes, };
package/dist/Runtimes.js CHANGED
@@ -42,6 +42,28 @@ const registerCurrentRuntime = () => {
42
42
  const getCurrentRuntimeIndex = () => {
43
43
  return currentRuntimeIndex;
44
44
  };
45
+ /**
46
+ * Compares two VersionInfo objects and returns 1 if the first is bigger, -1 if the second is bigger, and 0 if equal.
47
+ */
48
+ const compareVersions = (v1, v2) => {
49
+ if (v1.isNext || v2.isNext) {
50
+ return v1.buildTime - v2.buildTime;
51
+ }
52
+ const majorDiff = v1.major - v2.major;
53
+ if (majorDiff) {
54
+ return majorDiff;
55
+ }
56
+ const minorDiff = v1.minor - v2.minor;
57
+ if (minorDiff) {
58
+ return minorDiff;
59
+ }
60
+ const patchDiff = v1.patch - v2.patch;
61
+ if (patchDiff) {
62
+ return patchDiff;
63
+ }
64
+ const collator = new Intl.Collator(undefined, { numeric: true, sensitivity: "base" });
65
+ return collator.compare(v1.suffix, v2.suffix);
66
+ };
45
67
  /**
46
68
  * Compares two runtimes and returns 1 if the first is of a bigger version, -1 if the second is of a bigger version, and 0 if equal
47
69
  * @param index1 The index of the first runtime to compare
@@ -58,29 +80,7 @@ const compareRuntimes = (index1, index2) => {
58
80
  if (!runtime1 || !runtime2) {
59
81
  throw new Error("Invalid runtime index supplied");
60
82
  }
61
- // If any of the two is a next version, bigger buildTime wins
62
- if (runtime1.isNext || runtime2.isNext) {
63
- return runtime1.buildTime - runtime2.buildTime;
64
- }
65
- // If major versions differ, bigger one wins
66
- const majorDiff = runtime1.major - runtime2.major;
67
- if (majorDiff) {
68
- return majorDiff;
69
- }
70
- // If minor versions differ, bigger one wins
71
- const minorDiff = runtime1.minor - runtime2.minor;
72
- if (minorDiff) {
73
- return minorDiff;
74
- }
75
- // If patch versions differ, bigger one wins
76
- const patchDiff = runtime1.patch - runtime2.patch;
77
- if (patchDiff) {
78
- return patchDiff;
79
- }
80
- // Bigger suffix wins, f.e. rc10 > rc9
81
- // Important: suffix is alphanumeric, must use natural compare
82
- const collator = new Intl.Collator(undefined, { numeric: true, sensitivity: "base" });
83
- const result = collator.compare(runtime1.suffix, runtime2.suffix);
83
+ const result = compareVersions(runtime1, runtime2);
84
84
  compareCache.set(cacheIndex, result);
85
85
  return result;
86
86
  };
@@ -94,5 +94,5 @@ const setRuntimeAlias = (alias) => {
94
94
  const getAllRuntimes = () => {
95
95
  return Runtimes;
96
96
  };
97
- export { getCurrentRuntimeIndex, registerCurrentRuntime, compareRuntimes, setRuntimeAlias, getAllRuntimes, };
97
+ export { getCurrentRuntimeIndex, registerCurrentRuntime, compareRuntimes, compareVersions, setRuntimeAlias, getAllRuntimes, };
98
98
  //# sourceMappingURL=Runtimes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Runtimes.js","sourceRoot":"","sources":["../src/Runtimes.ts"],"names":[],"mappings":"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","sourcesContent":["import { getAllRegisteredTags } from \"./CustomElementsRegistry.js\";\nimport { getCustomElementsScopingRules, getCustomElementsScopingSuffix } from \"./CustomElementsScopeUtils.js\";\nimport VersionInfo from \"./generated/VersionInfo.js\";\nimport getSharedResource from \"./getSharedResource.js\";\n\ntype RuntimeData = VersionInfo & {\n\talias: string,\n\tdescription: string,\n\timportMetaUrl: string,\n};\n\nlet currentRuntimeIndex: number;\nlet currentRuntimeAlias = \"\";\n\nconst compareCache = new Map<string, number>();\n\n/**\n * Central registry where all runtimes register themselves by pushing an object.\n * The index in the registry servers as an ID for the runtime.\n * @type {*}\n */\nconst Runtimes = getSharedResource<Array<RuntimeData>>(\"Runtimes\", []);\n\n/**\n * Registers the current runtime in the shared runtimes resource registry\n */\nconst registerCurrentRuntime = () => {\n\tif (currentRuntimeIndex === undefined) {\n\t\tcurrentRuntimeIndex = Runtimes.length;\n\t\tconst versionInfo = VersionInfo;\n\n\t\tRuntimes.push({\n\t\t\t...versionInfo,\n\t\t\tget scopingSuffix() {\n\t\t\t\treturn getCustomElementsScopingSuffix();\n\t\t\t},\n\t\t\tget registeredTags() {\n\t\t\t\treturn getAllRegisteredTags();\n\t\t\t},\n\t\t\tget scopingRules() {\n\t\t\t\treturn getCustomElementsScopingRules();\n\t\t\t},\n\t\t\talias: currentRuntimeAlias,\n\t\t\tdescription: `Runtime ${currentRuntimeIndex} - ver ${versionInfo.version}${currentRuntimeAlias ? ` (${currentRuntimeAlias})` : \"\"}`,\n\t\t\timportMetaUrl: import.meta.url,\n\t\t});\n\t}\n};\n\n/**\n * Returns the index of the current runtime's object in the shared runtimes resource registry\n * @returns {*}\n */\nconst getCurrentRuntimeIndex = () => {\n\treturn currentRuntimeIndex;\n};\n\n/**\n * Compares two runtimes and returns 1 if the first is of a bigger version, -1 if the second is of a bigger version, and 0 if equal\n * @param index1 The index of the first runtime to compare\n * @param index2 The index of the second runtime to compare\n * @returns {number}\n */\nconst compareRuntimes = (index1: number, index2: number) => {\n\tconst cacheIndex = `${index1},${index2}`;\n\tif (compareCache.has(cacheIndex)) {\n\t\treturn compareCache.get(cacheIndex)!;\n\t}\n\n\tconst runtime1 = Runtimes[index1];\n\tconst runtime2 = Runtimes[index2];\n\n\tif (!runtime1 || !runtime2) {\n\t\tthrow new Error(\"Invalid runtime index supplied\");\n\t}\n\n\t// If any of the two is a next version, bigger buildTime wins\n\tif (runtime1.isNext || runtime2.isNext) {\n\t\treturn runtime1.buildTime - runtime2.buildTime;\n\t}\n\n\t// If major versions differ, bigger one wins\n\tconst majorDiff = runtime1.major - runtime2.major;\n\tif (majorDiff) {\n\t\treturn majorDiff;\n\t}\n\n\t// If minor versions differ, bigger one wins\n\tconst minorDiff = runtime1.minor - runtime2.minor;\n\tif (minorDiff) {\n\t\treturn minorDiff;\n\t}\n\n\t// If patch versions differ, bigger one wins\n\tconst patchDiff = runtime1.patch - runtime2.patch;\n\tif (patchDiff) {\n\t\treturn patchDiff;\n\t}\n\n\t// Bigger suffix wins, f.e. rc10 > rc9\n\t// Important: suffix is alphanumeric, must use natural compare\n\tconst collator = new Intl.Collator(undefined, { numeric: true, sensitivity: \"base\" });\n\tconst result = collator.compare(runtime1.suffix, runtime2.suffix);\n\n\tcompareCache.set(cacheIndex, result);\n\treturn result;\n};\n\n/**\n * Set an alias for the the current app/library/microfrontend which will appear in debug messages and console warnings\n * @param alias\n */\nconst setRuntimeAlias = (alias: string) => {\n\tcurrentRuntimeAlias = alias;\n};\n\nconst getAllRuntimes = () => {\n\treturn Runtimes;\n};\n\nexport {\n\tgetCurrentRuntimeIndex,\n\tregisterCurrentRuntime,\n\tcompareRuntimes,\n\tsetRuntimeAlias,\n\tgetAllRuntimes,\n};\n"]}
1
+ {"version":3,"file":"Runtimes.js","sourceRoot":"","sources":["../src/Runtimes.ts"],"names":[],"mappings":"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","sourcesContent":["import { getAllRegisteredTags } from \"./CustomElementsRegistry.js\";\nimport { getCustomElementsScopingRules, getCustomElementsScopingSuffix } from \"./CustomElementsScopeUtils.js\";\nimport VersionInfo from \"./generated/VersionInfo.js\";\nimport getSharedResource from \"./getSharedResource.js\";\n\ntype RuntimeData = VersionInfo & {\n\talias: string,\n\tdescription: string,\n\timportMetaUrl: string,\n};\n\nlet currentRuntimeIndex: number;\nlet currentRuntimeAlias = \"\";\n\nconst compareCache = new Map<string, number>();\n\n/**\n * Central registry where all runtimes register themselves by pushing an object.\n * The index in the registry servers as an ID for the runtime.\n * @type {*}\n */\nconst Runtimes = getSharedResource<Array<RuntimeData>>(\"Runtimes\", []);\n\n/**\n * Registers the current runtime in the shared runtimes resource registry\n */\nconst registerCurrentRuntime = () => {\n\tif (currentRuntimeIndex === undefined) {\n\t\tcurrentRuntimeIndex = Runtimes.length;\n\t\tconst versionInfo = VersionInfo;\n\n\t\tRuntimes.push({\n\t\t\t...versionInfo,\n\t\t\tget scopingSuffix() {\n\t\t\t\treturn getCustomElementsScopingSuffix();\n\t\t\t},\n\t\t\tget registeredTags() {\n\t\t\t\treturn getAllRegisteredTags();\n\t\t\t},\n\t\t\tget scopingRules() {\n\t\t\t\treturn getCustomElementsScopingRules();\n\t\t\t},\n\t\t\talias: currentRuntimeAlias,\n\t\t\tdescription: `Runtime ${currentRuntimeIndex} - ver ${versionInfo.version}${currentRuntimeAlias ? ` (${currentRuntimeAlias})` : \"\"}`,\n\t\t\timportMetaUrl: import.meta.url,\n\t\t});\n\t}\n};\n\n/**\n * Returns the index of the current runtime's object in the shared runtimes resource registry\n * @returns {*}\n */\nconst getCurrentRuntimeIndex = () => {\n\treturn currentRuntimeIndex;\n};\n\n/**\n * Compares two VersionInfo objects and returns 1 if the first is bigger, -1 if the second is bigger, and 0 if equal.\n */\nconst compareVersions = (v1: VersionInfo, v2: VersionInfo): number => {\n\tif (v1.isNext || v2.isNext) {\n\t\treturn v1.buildTime - v2.buildTime;\n\t}\n\n\tconst majorDiff = v1.major - v2.major;\n\tif (majorDiff) {\n\t\treturn majorDiff;\n\t}\n\n\tconst minorDiff = v1.minor - v2.minor;\n\tif (minorDiff) {\n\t\treturn minorDiff;\n\t}\n\n\tconst patchDiff = v1.patch - v2.patch;\n\tif (patchDiff) {\n\t\treturn patchDiff;\n\t}\n\n\tconst collator = new Intl.Collator(undefined, { numeric: true, sensitivity: \"base\" });\n\treturn collator.compare(v1.suffix, v2.suffix);\n};\n\n/**\n * Compares two runtimes and returns 1 if the first is of a bigger version, -1 if the second is of a bigger version, and 0 if equal\n * @param index1 The index of the first runtime to compare\n * @param index2 The index of the second runtime to compare\n * @returns {number}\n */\nconst compareRuntimes = (index1: number, index2: number) => {\n\tconst cacheIndex = `${index1},${index2}`;\n\tif (compareCache.has(cacheIndex)) {\n\t\treturn compareCache.get(cacheIndex)!;\n\t}\n\n\tconst runtime1 = Runtimes[index1];\n\tconst runtime2 = Runtimes[index2];\n\n\tif (!runtime1 || !runtime2) {\n\t\tthrow new Error(\"Invalid runtime index supplied\");\n\t}\n\n\tconst result = compareVersions(runtime1, runtime2);\n\n\tcompareCache.set(cacheIndex, result);\n\treturn result;\n};\n\n/**\n * Set an alias for the the current app/library/microfrontend which will appear in debug messages and console warnings\n * @param alias\n */\nconst setRuntimeAlias = (alias: string) => {\n\tcurrentRuntimeAlias = alias;\n};\n\nconst getAllRuntimes = () => {\n\treturn Runtimes;\n};\n\nexport {\n\tgetCurrentRuntimeIndex,\n\tregisterCurrentRuntime,\n\tcompareRuntimes,\n\tcompareVersions,\n\tsetRuntimeAlias,\n\tgetAllRuntimes,\n};\n"]}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Returns if the "ignoreUrlParams" configuration is set.
3
+ * @public
4
+ * @since 2.23.0
5
+ * @returns { boolean }
6
+ */
7
+ declare const getIgnoreUrlParams: () => boolean;
8
+ /**
9
+ * Defines the "ignoreUrlParams" setting.
10
+ *
11
+ * - When set to "true", the framework will not process URL parameters
12
+ * (e.g. sap-ui-theme, sap-ui-language) during initialization.
13
+ * - When set to "false" (default), URL parameters are processed normally.
14
+ *
15
+ * @public
16
+ * @since 2.23.0
17
+ * @param { boolean } ignoreUrlParams
18
+ */
19
+ declare const setIgnoreUrlParams: (ignoreUrlParams: boolean) => void;
20
+ export { getIgnoreUrlParams, setIgnoreUrlParams, };
@@ -0,0 +1,30 @@
1
+ import { getIgnoreUrlParams as getConfiguredIgnoreUrlParams } from "../InitialConfiguration.js";
2
+ let _ignoreUrlParams;
3
+ /**
4
+ * Returns if the "ignoreUrlParams" configuration is set.
5
+ * @public
6
+ * @since 2.23.0
7
+ * @returns { boolean }
8
+ */
9
+ const getIgnoreUrlParams = () => {
10
+ if (_ignoreUrlParams === undefined) {
11
+ _ignoreUrlParams = getConfiguredIgnoreUrlParams();
12
+ }
13
+ return _ignoreUrlParams;
14
+ };
15
+ /**
16
+ * Defines the "ignoreUrlParams" setting.
17
+ *
18
+ * - When set to "true", the framework will not process URL parameters
19
+ * (e.g. sap-ui-theme, sap-ui-language) during initialization.
20
+ * - When set to "false" (default), URL parameters are processed normally.
21
+ *
22
+ * @public
23
+ * @since 2.23.0
24
+ * @param { boolean } ignoreUrlParams
25
+ */
26
+ const setIgnoreUrlParams = (ignoreUrlParams) => {
27
+ _ignoreUrlParams = ignoreUrlParams;
28
+ };
29
+ export { getIgnoreUrlParams, setIgnoreUrlParams, };
30
+ //# sourceMappingURL=UrlParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UrlParams.js","sourceRoot":"","sources":["../../src/config/UrlParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,IAAI,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AAEhG,IAAI,gBAAyB,CAAC;AAE9B;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG,GAAY,EAAE;IACxC,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACpC,gBAAgB,GAAG,4BAA4B,EAAE,CAAC;IACnD,CAAC;IAED,OAAO,gBAAgB,CAAC;AACzB,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,kBAAkB,GAAG,CAAC,eAAwB,EAAE,EAAE;IACvD,gBAAgB,GAAG,eAAe,CAAC;AACpC,CAAC,CAAC;AAEF,OAAO,EACN,kBAAkB,EAClB,kBAAkB,GAClB,CAAC","sourcesContent":["import { getIgnoreUrlParams as getConfiguredIgnoreUrlParams } from \"../InitialConfiguration.js\";\n\nlet _ignoreUrlParams: boolean;\n\n/**\n * Returns if the \"ignoreUrlParams\" configuration is set.\n * @public\n * @since 2.23.0\n * @returns { boolean }\n */\nconst getIgnoreUrlParams = (): boolean => {\n\tif (_ignoreUrlParams === undefined) {\n\t\t_ignoreUrlParams = getConfiguredIgnoreUrlParams();\n\t}\n\n\treturn _ignoreUrlParams;\n};\n\n/**\n * Defines the \"ignoreUrlParams\" setting.\n *\n * - When set to \"true\", the framework will not process URL parameters\n * (e.g. sap-ui-theme, sap-ui-language) during initialization.\n * - When set to \"false\" (default), URL parameters are processed normally.\n *\n * @public\n * @since 2.23.0\n * @param { boolean } ignoreUrlParams\n */\nconst setIgnoreUrlParams = (ignoreUrlParams: boolean) => {\n\t_ignoreUrlParams = ignoreUrlParams;\n};\n\nexport {\n\tgetIgnoreUrlParams,\n\tsetIgnoreUrlParams,\n};\n"]}
@@ -1202,6 +1202,12 @@
1202
1202
  "declarations": [],
1203
1203
  "exports": []
1204
1204
  },
1205
+ {
1206
+ "kind": "javascript-module",
1207
+ "path": "dist/config/UrlParams.js",
1208
+ "declarations": [],
1209
+ "exports": []
1210
+ },
1205
1211
  {
1206
1212
  "kind": "javascript-module",
1207
1213
  "path": "dist/converters/DOMReference.js",
@@ -1184,6 +1184,12 @@
1184
1184
  "declarations": [],
1185
1185
  "exports": []
1186
1186
  },
1187
+ {
1188
+ "kind": "javascript-module",
1189
+ "path": "dist/config/UrlParams.js",
1190
+ "declarations": [],
1191
+ "exports": []
1192
+ },
1187
1193
  {
1188
1194
  "kind": "javascript-module",
1189
1195
  "path": "dist/converters/DOMReference.js",
@@ -1,6 +1,19 @@
1
1
  // OpenUI5's Control.js subset
2
2
  import getSharedResource from "../getSharedResource.js";
3
3
  import insertOpenUI5PopupStyles from "./insertOpenUI5PopupStyles.js";
4
+ import VersionInfo from "../generated/VersionInfo.js";
5
+ import { compareVersions } from "../Runtimes.js";
6
+ const PatchedFunctions = getSharedResource("PatchedFunctions", {});
7
+ const shouldRepatch = (key) => {
8
+ const existing = PatchedFunctions[key];
9
+ if (!existing) {
10
+ return true;
11
+ }
12
+ if (!existing.version) {
13
+ return true;
14
+ }
15
+ return compareVersions(VersionInfo, existing.version) > 0;
16
+ };
4
17
  // contains all OpenUI5 and Web Component popups that are currently opened
5
18
  const AllOpenedPopupsRegistry = getSharedResource("AllOpenedPopupsRegistry", { openedRegistry: [] });
6
19
  const addOpenedPopup = (popupInfo) => {
@@ -111,7 +124,11 @@ const isNativePopoverOpen = (root = document) => {
111
124
  });
112
125
  };
113
126
  const patchDialog = (Dialog) => {
114
- const origOnsapescape = Dialog.prototype.onsapescape;
127
+ const key = "Dialog.prototype.onsapescape";
128
+ if (shouldRepatch(key)) {
129
+ PatchedFunctions[key] = { version: VersionInfo, originalFn: PatchedFunctions[key]?.originalFn ?? Dialog.prototype.onsapescape };
130
+ }
131
+ const origOnsapescape = PatchedFunctions[key].originalFn;
115
132
  Dialog.prototype.onsapescape = function onsapescape(...args) {
116
133
  if (hasWebComponentPopupAbove(this.oPopup)) {
117
134
  return;
@@ -120,7 +137,11 @@ const patchDialog = (Dialog) => {
120
137
  };
121
138
  };
122
139
  const patchOpen = (Popup) => {
123
- const origOpen = Popup.prototype.open;
140
+ const key = "Popup.prototype.open";
141
+ if (shouldRepatch(key)) {
142
+ PatchedFunctions[key] = { version: VersionInfo, originalFn: PatchedFunctions[key]?.originalFn ?? Popup.prototype.open };
143
+ }
144
+ const origOpen = PatchedFunctions[key].originalFn;
124
145
  Popup.prototype.open = function open(...args) {
125
146
  origOpen.apply(this, args); // call open first to initiate opening
126
147
  openNativePopoverForOpenUI5(this);
@@ -131,7 +152,11 @@ const patchOpen = (Popup) => {
131
152
  };
132
153
  };
133
154
  const patchClosed = (Popup) => {
134
- const _origClosed = Popup.prototype._closed;
155
+ const key = "Popup.prototype._closed";
156
+ if (shouldRepatch(key)) {
157
+ PatchedFunctions[key] = { version: VersionInfo, originalFn: PatchedFunctions[key]?.originalFn ?? Popup.prototype._closed };
158
+ }
159
+ const _origClosed = PatchedFunctions[key].originalFn;
135
160
  Popup.prototype._closed = function _closed(...args) {
136
161
  closeNativePopoverForOpenUI5(this);
137
162
  _origClosed.apply(this, args); // only then call _close
@@ -139,7 +164,11 @@ const patchClosed = (Popup) => {
139
164
  };
140
165
  };
141
166
  const patchFocusEvent = (Popup) => {
142
- const origFocusEvent = Popup.prototype.onFocusEvent;
167
+ const key = "Popup.prototype.onFocusEvent";
168
+ if (shouldRepatch(key)) {
169
+ PatchedFunctions[key] = { version: VersionInfo, originalFn: PatchedFunctions[key]?.originalFn ?? Popup.prototype.onFocusEvent };
170
+ }
171
+ const origFocusEvent = PatchedFunctions[key].originalFn;
143
172
  Popup.prototype.onFocusEvent = function onFocusEvent(...args) {
144
173
  if (!hasWebComponentPopupAbove(this)) {
145
174
  origFocusEvent.apply(this, args);
@@ -1 +1 @@
1
- {"version":3,"file":"patchPopup.js","sourceRoot":"","sources":["../../src/features/patchPopup.ts"],"names":[],"mappings":"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","sourcesContent":["// OpenUI5's Control.js subset\nimport getSharedResource from \"../getSharedResource.js\";\nimport insertOpenUI5PopupStyles from \"./insertOpenUI5PopupStyles.js\";\n\ntype Control = {\n\tgetDomRef: () => HTMLElement | null,\n}\n\n// The lifecycle of Popup.js is open -> _opened -> close -> _closed, we're interested in the first (open) and last (_closed)\ntype OpenUI5Popup = {\n\topen: (...args: any[]) => void,\n\t_closed: (...args: any[]) => void,\n\tgetOpenState: () => \"CLOSED\" | \"CLOSING\" | \"OPEN\" | \"OPENING\",\n\tgetContent: () => Control | HTMLElement | null, // this is the OpenUI5 Element/Control instance that opens the Popup (usually sap.m.Popover/sap.m.Dialog)\n\tonFocusEvent: (...args: any[]) => void,\n\tgetModal: () => boolean\n};\n\ntype OpenUI5PopupClass = {\n\tprototype: OpenUI5Popup\n};\n\ntype OpenUI5DialogClass = {\n\tprototype: {\n\t\tonsapescape: (...args: any[]) => void,\n\t\toPopup: OpenUI5Popup,\n\t}\n};\n\ntype PopupInfo = {\n\ttype: \"WebComponent\";\n\tinstance: object;\n} | {\n\ttype: \"OpenUI5\";\n\tinstance: OpenUI5Popup;\n};\n\n// contains all OpenUI5 and Web Component popups that are currently opened\nconst AllOpenedPopupsRegistry = getSharedResource<{ openedRegistry: Array<PopupInfo> }>(\"AllOpenedPopupsRegistry\", { openedRegistry: [] });\n\nconst addOpenedPopup = (popupInfo: PopupInfo) => {\n\tAllOpenedPopupsRegistry.openedRegistry.push(popupInfo);\n};\n\nconst removeOpenedPopup = (popup: object) => {\n\tconst index = AllOpenedPopupsRegistry.openedRegistry.findIndex(el => el.instance === popup);\n\n\tif (index === AllOpenedPopupsRegistry.openedRegistry.length - 1) {\n\t\tfixTopmostOpenUI5Popup();\n\t}\n\n\tif (index > -1) {\n\t\tAllOpenedPopupsRegistry.openedRegistry.splice(index, 1);\n\t}\n};\n\nconst getTopmostPopup = () => {\n\tif (AllOpenedPopupsRegistry.openedRegistry.length === 0) {\n\t\treturn null;\n\t}\n\treturn AllOpenedPopupsRegistry.openedRegistry[AllOpenedPopupsRegistry.openedRegistry.length - 1].instance;\n};\n\n/**\n * Determines whether there is a Web Component popup opened above (a specified popup).\n *\n * @param {object} popup The popup instance to check against.\n * @returns {boolean} `true` if a Web Component popup is opened above (the given popup instance); otherwise `false`.\n */\nconst hasWebComponentPopupAbove = (popup: object) => {\n\tfor (let i = AllOpenedPopupsRegistry.openedRegistry.length - 1; i >= 0; i--) {\n\t\tconst popupInfo = AllOpenedPopupsRegistry.openedRegistry[i];\n\t\tif (popupInfo.type === \"WebComponent\") {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (popupInfo.instance === popup) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn false;\n};\n\nconst getPopupContentElement = (popup: OpenUI5Popup): HTMLElement | null => {\n\tconst content = popup.getContent();\n\treturn content instanceof HTMLElement ? content : content?.getDomRef() || null;\n};\n\nconst openNativePopoverForOpenUI5 = (popup: OpenUI5Popup) => {\n\tconst openingInitiated = [\"OPENING\", \"OPEN\"].includes(popup.getOpenState());\n\tif (!openingInitiated || !isNativePopoverOpen()) {\n\t\treturn;\n\t}\n\n\tconst domRef = getPopupContentElement(popup);\n\n\tif (!domRef) {\n\t\treturn;\n\t}\n\n\tconst openUI5BlockLayer = document.getElementById(\"sap-ui-blocklayer-popup\");\n\n\tif (popup.getModal() && openUI5BlockLayer) {\n\t\topenUI5BlockLayer.setAttribute(\"popover\", \"manual\");\n\t\topenUI5BlockLayer.hidePopover();\n\t\topenUI5BlockLayer.showPopover();\n\t}\n\n\tdomRef.setAttribute(\"popover\", \"manual\");\n\tdomRef.showPopover();\n};\n\nconst closeNativePopoverForOpenUI5 = (popup: OpenUI5Popup) => {\n\tconst domRef = getPopupContentElement(popup);\n\n\tif (!domRef) {\n\t\treturn;\n\t}\n\n\tif (domRef.hasAttribute(\"popover\")) {\n\t\tdomRef.hidePopover();\n\t\tdomRef.removeAttribute(\"popover\");\n\t}\n\n\tif (getTopmostPopup() !== popup) {\n\t\treturn;\n\t}\n\n\t// The OpenUI5 block layer is only one for all modal OpenUI5 popups,\n\t// and it is displayed above all opened pupups - OpenUI5 and Web Components,\n\t// as a result, we need to hide this block layer.\n\t// If the underlying popup is a Web Component - it is displayed like a native popover, and we don't need to do anything\n\t// If the underlying popup is an OpenUI5 popup, it will be fixed in fixTopmostOpenUI5Popup method.\n\tif (popup.getModal()) {\n\t\tconst openUI5BlockLayer = document.getElementById(\"sap-ui-blocklayer-popup\");\n\t\tif (openUI5BlockLayer && openUI5BlockLayer.hasAttribute(\"popover\")) {\n\t\t\topenUI5BlockLayer.hidePopover();\n\t\t}\n\t}\n};\n\nconst fixTopmostOpenUI5Popup = () => {\n\tif (!isNativePopoverOpen()) {\n\t\treturn;\n\t}\n\n\tconst prevPopup = AllOpenedPopupsRegistry.openedRegistry[AllOpenedPopupsRegistry.openedRegistry.length - 2];\n\tif (!prevPopup\n\t\t|| prevPopup.type !== \"OpenUI5\"\n\t\t|| !prevPopup.instance.getModal()) {\n\t\treturn;\n\t}\n\n\tconst content = getPopupContentElement(prevPopup.instance);\n\tconst openUI5BlockLayer = document.getElementById(\"sap-ui-blocklayer-popup\");\n\n\tcontent?.hidePopover();\n\topenUI5BlockLayer?.showPopover();\n\n\tcontent?.showPopover();\n};\n\nconst isNativePopoverOpen = (root: Document | ShadowRoot = document): boolean => {\n\tif (root.querySelector(\":popover-open\")) {\n\t\treturn true;\n\t}\n\n\treturn Array.from(root.querySelectorAll(\"*\")).some(element => {\n\t\tconst shadowRoot = element.shadowRoot;\n\t\treturn shadowRoot && isNativePopoverOpen(shadowRoot);\n\t});\n};\n\nconst patchDialog = (Dialog: OpenUI5DialogClass) => {\n\tconst origOnsapescape = Dialog.prototype.onsapescape;\n\tDialog.prototype.onsapescape = function onsapescape(...args: any[]) {\n\t\tif (hasWebComponentPopupAbove(this.oPopup)) {\n\t\t\treturn;\n\t\t}\n\n\t\torigOnsapescape.apply(this, args);\n\t};\n};\n\nconst patchOpen = (Popup: OpenUI5PopupClass) => {\n\tconst origOpen = Popup.prototype.open;\n\tPopup.prototype.open = function open(...args: any[]) {\n\t\torigOpen.apply(this, args); // call open first to initiate opening\n\t\topenNativePopoverForOpenUI5(this);\n\n\t\taddOpenedPopup({\n\t\t\ttype: \"OpenUI5\",\n\t\t\tinstance: this,\n\t\t});\n\t};\n};\n\nconst patchClosed = (Popup: OpenUI5PopupClass) => {\n\tconst _origClosed = Popup.prototype._closed;\n\tPopup.prototype._closed = function _closed(...args: any[]) {\n\t\tcloseNativePopoverForOpenUI5(this);\n\t\t_origClosed.apply(this, args); // only then call _close\n\t\tremoveOpenedPopup(this);\n\t};\n};\n\nconst patchFocusEvent = (Popup: OpenUI5PopupClass) => {\n\tconst origFocusEvent = Popup.prototype.onFocusEvent;\n\tPopup.prototype.onFocusEvent = function onFocusEvent(...args: any[]) {\n\t\tif (!hasWebComponentPopupAbove(this)) {\n\t\t\torigFocusEvent.apply(this, args);\n\t\t}\n\t};\n};\n\nconst createGlobalStyles = () => {\n\tconst stylesheet = new CSSStyleSheet();\n\tstylesheet.replaceSync(`.sapMPopup-CTX:popover-open { inset: unset; }`);\n\tdocument.adoptedStyleSheets = [...document.adoptedStyleSheets, stylesheet];\n};\n\nconst patchPopup = (Popup: OpenUI5PopupClass, Dialog: OpenUI5DialogClass) => {\n\tinsertOpenUI5PopupStyles();\n\tpatchOpen(Popup); // Popup.prototype.open\n\tpatchClosed(Popup); // Popup.prototype._closed\n\tcreateGlobalStyles(); // Ensures correct popover positioning by OpenUI5 (otherwise 0,0 is the center of the screen)\n\tpatchFocusEvent(Popup);// Popup.prototype.onFocusEvent\n\tpatchDialog(Dialog); // Dialog.prototype.onsapescape\n};\n\nexport {\n\tpatchPopup,\n\taddOpenedPopup,\n\tremoveOpenedPopup,\n\tgetTopmostPopup,\n};\n\nexport type { OpenUI5PopupClass, OpenUI5DialogClass, PopupInfo };\n"]}
1
+ {"version":3,"file":"patchPopup.js","sourceRoot":"","sources":["../../src/features/patchPopup.ts"],"names":[],"mappings":"AAAA,8BAA8B;AAC9B,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AACrE,OAAO,WAAW,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AASjD,MAAM,gBAAgB,GAAG,iBAAiB,CAA2B,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAE7F,MAAM,aAAa,GAAG,CAAC,GAAW,EAAW,EAAE;IAC9C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IACvC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,eAAe,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC3D,CAAC,CAAC;AAmCF,0EAA0E;AAC1E,MAAM,uBAAuB,GAAG,iBAAiB,CAAuC,yBAAyB,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;AAE3I,MAAM,cAAc,GAAG,CAAC,SAAoB,EAAE,EAAE;IAC/C,uBAAuB,CAAC,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACxD,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,KAAa,EAAE,EAAE;IAC3C,MAAM,KAAK,GAAG,uBAAuB,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,KAAK,CAAC,CAAC;IAE5F,IAAI,KAAK,KAAK,uBAAuB,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjE,sBAAsB,EAAE,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;QAChB,uBAAuB,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzD,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,GAAG,EAAE;IAC5B,IAAI,uBAAuB,CAAC,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,uBAAuB,CAAC,cAAc,CAAC,uBAAuB,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC;AAC3G,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,yBAAyB,GAAG,CAAC,KAAa,EAAE,EAAE;IACnD,KAAK,IAAI,CAAC,GAAG,uBAAuB,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7E,MAAM,SAAS,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;QAC5D,IAAI,SAAS,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,SAAS,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAClC,MAAM;QACP,CAAC;IACF,CAAC;IAED,OAAO,KAAK,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,CAAC,KAAmB,EAAsB,EAAE;IAC1E,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,EAAE,CAAC;IACnC,OAAO,OAAO,YAAY,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,CAAC;AAChF,CAAC,CAAC;AAEF,MAAM,2BAA2B,GAAG,CAAC,KAAmB,EAAE,EAAE;IAC3D,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;IAC5E,IAAI,CAAC,gBAAgB,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;QACjD,OAAO;IACR,CAAC;IAED,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO;IACR,CAAC;IAED,MAAM,iBAAiB,GAAG,QAAQ,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC;IAE7E,IAAI,KAAK,CAAC,QAAQ,EAAE,IAAI,iBAAiB,EAAE,CAAC;QAC3C,iBAAiB,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACpD,iBAAiB,CAAC,WAAW,EAAE,CAAC;QAChC,iBAAiB,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzC,MAAM,CAAC,WAAW,EAAE,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,4BAA4B,GAAG,CAAC,KAAmB,EAAE,EAAE;IAC5D,MAAM,MAAM,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IAE7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACb,OAAO;IACR,CAAC;IAED,IAAI,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAED,IAAI,eAAe,EAAE,KAAK,KAAK,EAAE,CAAC;QACjC,OAAO;IACR,CAAC;IAED,oEAAoE;IACpE,4EAA4E;IAC5E,iDAAiD;IACjD,uHAAuH;IACvH,kGAAkG;IAClG,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;QACtB,MAAM,iBAAiB,GAAG,QAAQ,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC;QAC7E,IAAI,iBAAiB,IAAI,iBAAiB,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;YACpE,iBAAiB,CAAC,WAAW,EAAE,CAAC;QACjC,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,sBAAsB,GAAG,GAAG,EAAE;IACnC,IAAI,CAAC,mBAAmB,EAAE,EAAE,CAAC;QAC5B,OAAO;IACR,CAAC;IAED,MAAM,SAAS,GAAG,uBAAuB,CAAC,cAAc,CAAC,uBAAuB,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC5G,IAAI,CAAC,SAAS;WACV,SAAS,CAAC,IAAI,KAAK,SAAS;WAC5B,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC;QACpC,OAAO;IACR,CAAC;IAED,MAAM,OAAO,GAAG,sBAAsB,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3D,MAAM,iBAAiB,GAAG,QAAQ,CAAC,cAAc,CAAC,yBAAyB,CAAC,CAAC;IAE7E,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,iBAAiB,EAAE,WAAW,EAAE,CAAC;IAEjC,OAAO,EAAE,WAAW,EAAE,CAAC;AACxB,CAAC,CAAC;AAEF,MAAM,mBAAmB,GAAG,CAAC,OAA8B,QAAQ,EAAW,EAAE;IAC/E,IAAI,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,OAAO,UAAU,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,MAA0B,EAAE,EAAE;IAClD,MAAM,GAAG,GAAG,8BAA8B,CAAC;IAC3C,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,UAAU,IAAI,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC;IACjI,CAAC;IACD,MAAM,eAAe,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;IACzD,MAAM,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,WAAW,CAAC,GAAG,IAAW;QACjE,IAAI,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5C,OAAO;QACR,CAAC;QAED,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,SAAS,GAAG,CAAC,KAAwB,EAAE,EAAE;IAC9C,MAAM,GAAG,GAAG,sBAAsB,CAAC;IACnC,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,UAAU,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;IACzH,CAAC;IACD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;IAClD,KAAK,CAAC,SAAS,CAAC,IAAI,GAAG,SAAS,IAAI,CAAC,GAAG,IAAW;QAClD,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,sCAAsC;QAClE,2BAA2B,CAAC,IAAI,CAAC,CAAC;QAElC,cAAc,CAAC;YACd,IAAI,EAAE,SAAS;YACf,QAAQ,EAAE,IAAI;SACd,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,KAAwB,EAAE,EAAE;IAChD,MAAM,GAAG,GAAG,yBAAyB,CAAC;IACtC,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,UAAU,IAAI,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC5H,CAAC;IACD,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;IACrD,KAAK,CAAC,SAAS,CAAC,OAAO,GAAG,SAAS,OAAO,CAAC,GAAG,IAAW;QACxD,4BAA4B,CAAC,IAAI,CAAC,CAAC;QACnC,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,wBAAwB;QACvD,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,KAAwB,EAAE,EAAE;IACpD,MAAM,GAAG,GAAG,8BAA8B,CAAC;IAC3C,IAAI,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,UAAU,IAAI,KAAK,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;IACjI,CAAC;IACD,MAAM,cAAc,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;IACxD,KAAK,CAAC,SAAS,CAAC,YAAY,GAAG,SAAS,YAAY,CAAC,GAAG,IAAW;QAClE,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;YACtC,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACF,CAAC,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC/B,MAAM,UAAU,GAAG,IAAI,aAAa,EAAE,CAAC;IACvC,UAAU,CAAC,WAAW,CAAC,+CAA+C,CAAC,CAAC;IACxE,QAAQ,CAAC,kBAAkB,GAAG,CAAC,GAAG,QAAQ,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;AAC5E,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAwB,EAAE,MAA0B,EAAE,EAAE;IAC3E,wBAAwB,EAAE,CAAC;IAC3B,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAuB;IACzC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,0BAA0B;IAC9C,kBAAkB,EAAE,CAAC,CAAC,6FAA6F;IACnH,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA,+BAA+B;IACtD,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,+BAA+B;AACrD,CAAC,CAAC;AAEF,OAAO,EACN,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,eAAe,GACf,CAAC","sourcesContent":["// OpenUI5's Control.js subset\nimport getSharedResource from \"../getSharedResource.js\";\nimport insertOpenUI5PopupStyles from \"./insertOpenUI5PopupStyles.js\";\nimport VersionInfo from \"../generated/VersionInfo.js\";\nimport { compareVersions } from \"../Runtimes.js\";\n\ntype PatchedFunctionRecord = {\n\tversion: VersionInfo | undefined;\n\toriginalFn: (...args: any[]) => any;\n};\n\ntype PatchedFunctionsRegistry = Record<string, PatchedFunctionRecord>;\n\nconst PatchedFunctions = getSharedResource<PatchedFunctionsRegistry>(\"PatchedFunctions\", {});\n\nconst shouldRepatch = (key: string): boolean => {\n\tconst existing = PatchedFunctions[key];\n\tif (!existing) {\n\t\treturn true;\n\t}\n\n\tif (!existing.version) {\n\t\treturn true;\n\t}\n\treturn compareVersions(VersionInfo, existing.version) > 0;\n};\n\ntype Control = {\n\tgetDomRef: () => HTMLElement | null,\n}\n\n// The lifecycle of Popup.js is open -> _opened -> close -> _closed, we're interested in the first (open) and last (_closed)\ntype OpenUI5Popup = {\n\topen: (...args: any[]) => void,\n\t_closed: (...args: any[]) => void,\n\tgetOpenState: () => \"CLOSED\" | \"CLOSING\" | \"OPEN\" | \"OPENING\",\n\tgetContent: () => Control | HTMLElement | null, // this is the OpenUI5 Element/Control instance that opens the Popup (usually sap.m.Popover/sap.m.Dialog)\n\tonFocusEvent: (...args: any[]) => void,\n\tgetModal: () => boolean\n};\n\ntype OpenUI5PopupClass = {\n\tprototype: OpenUI5Popup\n};\n\ntype OpenUI5DialogClass = {\n\tprototype: {\n\t\tonsapescape: (...args: any[]) => void,\n\t\toPopup: OpenUI5Popup,\n\t}\n};\n\ntype PopupInfo = {\n\ttype: \"WebComponent\";\n\tinstance: object;\n} | {\n\ttype: \"OpenUI5\";\n\tinstance: OpenUI5Popup;\n};\n\n// contains all OpenUI5 and Web Component popups that are currently opened\nconst AllOpenedPopupsRegistry = getSharedResource<{ openedRegistry: Array<PopupInfo> }>(\"AllOpenedPopupsRegistry\", { openedRegistry: [] });\n\nconst addOpenedPopup = (popupInfo: PopupInfo) => {\n\tAllOpenedPopupsRegistry.openedRegistry.push(popupInfo);\n};\n\nconst removeOpenedPopup = (popup: object) => {\n\tconst index = AllOpenedPopupsRegistry.openedRegistry.findIndex(el => el.instance === popup);\n\n\tif (index === AllOpenedPopupsRegistry.openedRegistry.length - 1) {\n\t\tfixTopmostOpenUI5Popup();\n\t}\n\n\tif (index > -1) {\n\t\tAllOpenedPopupsRegistry.openedRegistry.splice(index, 1);\n\t}\n};\n\nconst getTopmostPopup = () => {\n\tif (AllOpenedPopupsRegistry.openedRegistry.length === 0) {\n\t\treturn null;\n\t}\n\treturn AllOpenedPopupsRegistry.openedRegistry[AllOpenedPopupsRegistry.openedRegistry.length - 1].instance;\n};\n\n/**\n * Determines whether there is a Web Component popup opened above (a specified popup).\n *\n * @param {object} popup The popup instance to check against.\n * @returns {boolean} `true` if a Web Component popup is opened above (the given popup instance); otherwise `false`.\n */\nconst hasWebComponentPopupAbove = (popup: object) => {\n\tfor (let i = AllOpenedPopupsRegistry.openedRegistry.length - 1; i >= 0; i--) {\n\t\tconst popupInfo = AllOpenedPopupsRegistry.openedRegistry[i];\n\t\tif (popupInfo.type === \"WebComponent\") {\n\t\t\treturn true;\n\t\t}\n\n\t\tif (popupInfo.instance === popup) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\treturn false;\n};\n\nconst getPopupContentElement = (popup: OpenUI5Popup): HTMLElement | null => {\n\tconst content = popup.getContent();\n\treturn content instanceof HTMLElement ? content : content?.getDomRef() || null;\n};\n\nconst openNativePopoverForOpenUI5 = (popup: OpenUI5Popup) => {\n\tconst openingInitiated = [\"OPENING\", \"OPEN\"].includes(popup.getOpenState());\n\tif (!openingInitiated || !isNativePopoverOpen()) {\n\t\treturn;\n\t}\n\n\tconst domRef = getPopupContentElement(popup);\n\n\tif (!domRef) {\n\t\treturn;\n\t}\n\n\tconst openUI5BlockLayer = document.getElementById(\"sap-ui-blocklayer-popup\");\n\n\tif (popup.getModal() && openUI5BlockLayer) {\n\t\topenUI5BlockLayer.setAttribute(\"popover\", \"manual\");\n\t\topenUI5BlockLayer.hidePopover();\n\t\topenUI5BlockLayer.showPopover();\n\t}\n\n\tdomRef.setAttribute(\"popover\", \"manual\");\n\tdomRef.showPopover();\n};\n\nconst closeNativePopoverForOpenUI5 = (popup: OpenUI5Popup) => {\n\tconst domRef = getPopupContentElement(popup);\n\n\tif (!domRef) {\n\t\treturn;\n\t}\n\n\tif (domRef.hasAttribute(\"popover\")) {\n\t\tdomRef.hidePopover();\n\t\tdomRef.removeAttribute(\"popover\");\n\t}\n\n\tif (getTopmostPopup() !== popup) {\n\t\treturn;\n\t}\n\n\t// The OpenUI5 block layer is only one for all modal OpenUI5 popups,\n\t// and it is displayed above all opened pupups - OpenUI5 and Web Components,\n\t// as a result, we need to hide this block layer.\n\t// If the underlying popup is a Web Component - it is displayed like a native popover, and we don't need to do anything\n\t// If the underlying popup is an OpenUI5 popup, it will be fixed in fixTopmostOpenUI5Popup method.\n\tif (popup.getModal()) {\n\t\tconst openUI5BlockLayer = document.getElementById(\"sap-ui-blocklayer-popup\");\n\t\tif (openUI5BlockLayer && openUI5BlockLayer.hasAttribute(\"popover\")) {\n\t\t\topenUI5BlockLayer.hidePopover();\n\t\t}\n\t}\n};\n\nconst fixTopmostOpenUI5Popup = () => {\n\tif (!isNativePopoverOpen()) {\n\t\treturn;\n\t}\n\n\tconst prevPopup = AllOpenedPopupsRegistry.openedRegistry[AllOpenedPopupsRegistry.openedRegistry.length - 2];\n\tif (!prevPopup\n\t\t|| prevPopup.type !== \"OpenUI5\"\n\t\t|| !prevPopup.instance.getModal()) {\n\t\treturn;\n\t}\n\n\tconst content = getPopupContentElement(prevPopup.instance);\n\tconst openUI5BlockLayer = document.getElementById(\"sap-ui-blocklayer-popup\");\n\n\tcontent?.hidePopover();\n\topenUI5BlockLayer?.showPopover();\n\n\tcontent?.showPopover();\n};\n\nconst isNativePopoverOpen = (root: Document | ShadowRoot = document): boolean => {\n\tif (root.querySelector(\":popover-open\")) {\n\t\treturn true;\n\t}\n\n\treturn Array.from(root.querySelectorAll(\"*\")).some(element => {\n\t\tconst shadowRoot = element.shadowRoot;\n\t\treturn shadowRoot && isNativePopoverOpen(shadowRoot);\n\t});\n};\n\nconst patchDialog = (Dialog: OpenUI5DialogClass) => {\n\tconst key = \"Dialog.prototype.onsapescape\";\n\tif (shouldRepatch(key)) {\n\t\tPatchedFunctions[key] = { version: VersionInfo, originalFn: PatchedFunctions[key]?.originalFn ?? Dialog.prototype.onsapescape };\n\t}\n\tconst origOnsapescape = PatchedFunctions[key].originalFn;\n\tDialog.prototype.onsapescape = function onsapescape(...args: any[]) {\n\t\tif (hasWebComponentPopupAbove(this.oPopup)) {\n\t\t\treturn;\n\t\t}\n\n\t\torigOnsapescape.apply(this, args);\n\t};\n};\n\nconst patchOpen = (Popup: OpenUI5PopupClass) => {\n\tconst key = \"Popup.prototype.open\";\n\tif (shouldRepatch(key)) {\n\t\tPatchedFunctions[key] = { version: VersionInfo, originalFn: PatchedFunctions[key]?.originalFn ?? Popup.prototype.open };\n\t}\n\tconst origOpen = PatchedFunctions[key].originalFn;\n\tPopup.prototype.open = function open(...args: any[]) {\n\t\torigOpen.apply(this, args); // call open first to initiate opening\n\t\topenNativePopoverForOpenUI5(this);\n\n\t\taddOpenedPopup({\n\t\t\ttype: \"OpenUI5\",\n\t\t\tinstance: this,\n\t\t});\n\t};\n};\n\nconst patchClosed = (Popup: OpenUI5PopupClass) => {\n\tconst key = \"Popup.prototype._closed\";\n\tif (shouldRepatch(key)) {\n\t\tPatchedFunctions[key] = { version: VersionInfo, originalFn: PatchedFunctions[key]?.originalFn ?? Popup.prototype._closed };\n\t}\n\tconst _origClosed = PatchedFunctions[key].originalFn;\n\tPopup.prototype._closed = function _closed(...args: any[]) {\n\t\tcloseNativePopoverForOpenUI5(this);\n\t\t_origClosed.apply(this, args); // only then call _close\n\t\tremoveOpenedPopup(this);\n\t};\n};\n\nconst patchFocusEvent = (Popup: OpenUI5PopupClass) => {\n\tconst key = \"Popup.prototype.onFocusEvent\";\n\tif (shouldRepatch(key)) {\n\t\tPatchedFunctions[key] = { version: VersionInfo, originalFn: PatchedFunctions[key]?.originalFn ?? Popup.prototype.onFocusEvent };\n\t}\n\tconst origFocusEvent = PatchedFunctions[key].originalFn;\n\tPopup.prototype.onFocusEvent = function onFocusEvent(...args: any[]) {\n\t\tif (!hasWebComponentPopupAbove(this)) {\n\t\t\torigFocusEvent.apply(this, args);\n\t\t}\n\t};\n};\n\nconst createGlobalStyles = () => {\n\tconst stylesheet = new CSSStyleSheet();\n\tstylesheet.replaceSync(`.sapMPopup-CTX:popover-open { inset: unset; }`);\n\tdocument.adoptedStyleSheets = [...document.adoptedStyleSheets, stylesheet];\n};\n\nconst patchPopup = (Popup: OpenUI5PopupClass, Dialog: OpenUI5DialogClass) => {\n\tinsertOpenUI5PopupStyles();\n\tpatchOpen(Popup); // Popup.prototype.open\n\tpatchClosed(Popup); // Popup.prototype._closed\n\tcreateGlobalStyles(); // Ensures correct popover positioning by OpenUI5 (otherwise 0,0 is the center of the screen)\n\tpatchFocusEvent(Popup);// Popup.prototype.onFocusEvent\n\tpatchDialog(Dialog); // Dialog.prototype.onsapescape\n};\n\nexport {\n\tpatchPopup,\n\taddOpenedPopup,\n\tremoveOpenedPopup,\n\tgetTopmostPopup,\n};\n\nexport type { OpenUI5PopupClass, OpenUI5DialogClass, PopupInfo };\n"]}
@@ -1,11 +1,11 @@
1
1
  const VersionInfo = {
2
- version: "2.22.0-rc.5",
2
+ version: "2.22.0-rc.6",
3
3
  major: 2,
4
4
  minor: 22,
5
5
  patch: 0,
6
- suffix: "-rc.5",
6
+ suffix: "-rc.6",
7
7
  isNext: false,
8
- buildTime: 1778748963,
8
+ buildTime: 1779357695,
9
9
  };
10
10
  export default VersionInfo;
11
11
  //# sourceMappingURL=VersionInfo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VersionInfo.js","sourceRoot":"","sources":["../../src/generated/VersionInfo.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IACnB,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,UAAU;CACrB,CAAC;AACF,eAAe,WAAW,CAAC","sourcesContent":["const VersionInfo = {\n\tversion: \"2.22.0-rc.5\",\n\tmajor: 2,\n\tminor: 22,\n\tpatch: 0,\n\tsuffix: \"-rc.5\",\n\tisNext: false,\n\tbuildTime: 1778748963,\n};\nexport default VersionInfo;"]}
1
+ {"version":3,"file":"VersionInfo.js","sourceRoot":"","sources":["../../src/generated/VersionInfo.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,GAAG;IACnB,OAAO,EAAE,aAAa;IACtB,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,OAAO;IACf,MAAM,EAAE,KAAK;IACb,SAAS,EAAE,UAAU;CACrB,CAAC;AACF,eAAe,WAAW,CAAC","sourcesContent":["const VersionInfo = {\n\tversion: \"2.22.0-rc.6\",\n\tmajor: 2,\n\tminor: 22,\n\tpatch: 0,\n\tsuffix: \"-rc.6\",\n\tisNext: false,\n\tbuildTime: 1779357695,\n};\nexport default VersionInfo;"]}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} من البنود"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} позиции"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} elements"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} stavke/i"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} položky"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} eitem"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} elementer"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} Elemente"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} είδη"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} items"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} elementos"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} elementos"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} üksust"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} elementtiä"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} éléments"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} éléments"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} आइटम"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"Broj stavki: {0}"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} elem"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} item"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} elementi"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} פריטים"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} 項目"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} тармақ"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0}개 항목"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"Elementų: {0}"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} elementi"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} ставки"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} item"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} elementen"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} elementer"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"Liczba pozycji: {0}"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} itens"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} itens"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} poziții"}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} поз."}
@@ -0,0 +1 @@
1
+ {"DRAG_DROP_MULTIPLE_TEXT":"{0} stavke/i"}