@sapui5/sap.ushell 1.115.1 → 1.117.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 (667) hide show
  1. package/package.json +7 -2
  2. package/src/main/js/sap/ushell/.library +1 -1
  3. package/src/main/js/sap/ushell/ApplicationType.js +47 -939
  4. package/src/main/js/sap/ushell/CanvasShapesManager.js +2 -2
  5. package/src/main/js/sap/ushell/Container.js +10 -2
  6. package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
  7. package/src/main/js/sap/ushell/Fiori20AdapterTest.js +1 -1
  8. package/src/main/js/sap/ushell/Layout.js +1 -1
  9. package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
  10. package/src/main/js/sap/ushell/SessionHandler.js +7 -5
  11. package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
  12. package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
  13. package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
  14. package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
  15. package/src/main/js/sap/ushell/User.js +2 -2
  16. package/src/main/js/sap/ushell/_ApplicationType/guiResolution.js +3 -4
  17. package/src/main/js/sap/ushell/_ApplicationType/ui5Resolution.js +121 -0
  18. package/src/main/js/sap/ushell/_ApplicationType/urlResolution.js +105 -0
  19. package/src/main/js/sap/ushell/_ApplicationType/urlTemplateResolution.js +626 -0
  20. package/src/main/js/sap/ushell/_ApplicationType/utils.js +94 -3
  21. package/src/main/js/sap/ushell/_ApplicationType/wcfResolution.js +61 -0
  22. package/src/main/js/sap/ushell/_ApplicationType/wdaResolution.js +28 -0
  23. package/src/main/js/sap/ushell/_URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
  24. package/src/main/js/sap/ushell/_URLTemplateProcessor/DependencyGraph.js +1 -1
  25. package/src/main/js/sap/ushell/_URLTemplateProcessor/Functions.js +1 -1
  26. package/src/main/js/sap/ushell/_URLTemplateProcessor/Resolvers.js +1 -1
  27. package/src/main/js/sap/ushell/_URLTemplateProcessor/TemplateParameterParser.js +1 -1
  28. package/src/main/js/sap/ushell/_URLTemplateProcessor/utils.js +1 -1
  29. package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
  30. package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +1 -1
  31. package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
  32. package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -1
  33. package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +12 -3
  34. package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +1 -1
  35. package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
  36. package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
  37. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
  38. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
  39. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
  40. package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
  41. package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
  42. package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
  43. package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +1 -1
  44. package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +52 -3
  45. package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +3 -4
  46. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
  47. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
  48. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
  49. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
  50. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
  51. package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
  52. package/src/main/js/sap/ushell/adapters/cep/MenuAdapter.js +61 -53
  53. package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
  54. package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +222 -59
  55. package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
  56. package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
  57. package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +2 -2
  58. package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
  59. package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +2 -2
  60. package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +20 -4
  61. package/src/main/js/sap/ushell/adapters/local/MenuAdapter.js +35 -0
  62. package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
  63. package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
  64. package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
  65. package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
  66. package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +2 -10
  67. package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +902 -218
  68. package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +2 -3
  69. package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
  70. package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -1
  71. package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +12 -2
  72. package/src/main/js/sap/ushell/appRuntime/ui5/AppCommunicationMgr.js +11 -6
  73. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +20 -13
  74. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeContext.js +43 -2
  75. package/src/main/js/sap/ushell/appRuntime/ui5/SessionHandlerAgent.js +14 -12
  76. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/Trigger.js +1 -2
  77. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/Component.js +8 -8
  78. package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +7 -27
  79. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +10 -7
  80. package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +7 -3
  81. package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +18 -7
  82. package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +99 -3
  83. package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +1 -1
  84. package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +15 -66
  85. package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
  86. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/logger.js +1 -1
  87. package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/state.js +1 -1
  88. package/src/main/js/sap/ushell/bootstrap/cdm/cdm.constants.js +8 -8
  89. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
  90. package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5language.js +2 -2
  91. package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +32 -2
  92. package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +4 -2
  93. package/src/main/js/sap/ushell/components/GroupsHelper.js +15 -13
  94. package/src/main/js/sap/ushell/components/HeaderManager.js +6 -1
  95. package/src/main/js/sap/ushell/components/HomepageManager.js +4 -7
  96. package/src/main/js/sap/ushell/components/MessagingHelper.js +2 -2
  97. package/src/main/js/sap/ushell/components/_HeaderManager/AddHeadEndItemsStrategy.js +4 -3
  98. package/src/main/js/sap/ushell/components/_HeaderManager/ControlManager.js +5 -7
  99. package/src/main/js/sap/ushell/components/_HeaderManager/ShellHeader.controller.js +12 -10
  100. package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +3 -1
  101. package/src/main/js/sap/ushell/components/appfinder/AppFinderView.js +7 -4
  102. package/src/main/js/sap/ushell/components/appfinder/Catalog.controller.js +19 -5
  103. package/src/main/js/sap/ushell/components/appfinder/CatalogView.js +8 -12
  104. package/src/main/js/sap/ushell/components/appfinder/EasyAccess.controller.js +3 -3
  105. package/src/main/js/sap/ushell/components/appfinder/GroupListPopover.controller.js +3 -1
  106. package/src/main/js/sap/ushell/components/appfinder/HierarchyFolders.controller.js +1 -1
  107. package/src/main/js/sap/ushell/components/appfinder/HierarchyFoldersView.js +3 -1
  108. package/src/main/js/sap/ushell/components/appfinder/VisualizationOrganizerHelper.js +4 -3
  109. package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
  110. package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +299 -563
  111. package/src/main/js/sap/ushell/components/applicationIntegration/Storage.js +25 -183
  112. package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +41 -159
  113. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +288 -315
  114. package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxesCache.js +66 -13
  115. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +124 -58
  116. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPIInterface.js +3 -4
  117. package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageUtils.js +185 -0
  118. package/src/main/js/sap/ushell/components/applicationIntegration/application/WebGUIStatefulHandler.js +88 -0
  119. package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +3 -3
  120. package/src/main/js/sap/ushell/components/applicationIntegration/elements/model.js +1 -1
  121. package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +1 -1
  122. package/src/main/js/sap/ushell/components/applicationIntegration/relatedShellElements/RelatedShellElements.js +1 -1
  123. package/src/main/js/sap/ushell/components/cards/Configuration.controller.js +2 -3
  124. package/src/main/js/sap/ushell/components/cepsearchresult/app/Main.controller.js +4 -2
  125. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n.properties +7 -7
  126. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ar.properties +27 -27
  127. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_bg.properties +27 -27
  128. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ca.properties +26 -26
  129. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_cy.properties +27 -27
  130. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_da.properties +27 -27
  131. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_de.properties +27 -27
  132. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_el.properties +27 -27
  133. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_en_GB.properties +3 -3
  134. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_en_US_sappsd.properties +5 -5
  135. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_es_MX.properties +26 -26
  136. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_fi.properties +27 -27
  137. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_fr_CA.properties +26 -26
  138. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_hi.properties +27 -27
  139. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_hr.properties +27 -27
  140. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_hu.properties +27 -27
  141. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_id.properties +27 -27
  142. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_it.properties +26 -26
  143. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_iw.properties +27 -27
  144. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ja.properties +27 -27
  145. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ko.properties +27 -27
  146. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_lt.properties +27 -27
  147. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_lv.properties +27 -27
  148. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ms.properties +27 -27
  149. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_nl.properties +27 -27
  150. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_no.properties +27 -27
  151. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_pl.properties +27 -27
  152. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_pt.properties +27 -27
  153. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_pt_PT.properties +27 -27
  154. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ro.properties +26 -26
  155. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ru.properties +27 -27
  156. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_sh.properties +27 -27
  157. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_sl.properties +27 -27
  158. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_sv.properties +27 -27
  159. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_th.properties +27 -27
  160. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_uk.properties +27 -27
  161. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_vi.properties +27 -27
  162. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_zh_CN.properties +27 -27
  163. package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_zh_TW.properties +27 -27
  164. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Application.js +39 -79
  165. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ar.properties +18 -18
  166. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_bg.properties +18 -18
  167. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ca.properties +15 -15
  168. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_cy.properties +18 -18
  169. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_da.properties +18 -18
  170. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_de.properties +15 -15
  171. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_el.properties +18 -18
  172. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_en_GB.properties +2 -2
  173. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_es_MX.properties +15 -15
  174. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_fi.properties +18 -18
  175. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_fr_CA.properties +15 -15
  176. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hi.properties +18 -18
  177. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hr.properties +18 -18
  178. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hu.properties +18 -18
  179. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_id.properties +18 -18
  180. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_it.properties +17 -17
  181. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_iw.properties +18 -18
  182. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ja.properties +18 -18
  183. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ko.properties +18 -18
  184. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_lt.properties +18 -18
  185. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_lv.properties +18 -18
  186. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ms.properties +18 -18
  187. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_nl.properties +18 -18
  188. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_no.properties +18 -18
  189. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pl.properties +18 -18
  190. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pt.properties +18 -18
  191. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pt_PT.properties +18 -18
  192. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ro.properties +17 -17
  193. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ru.properties +18 -18
  194. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sl.properties +18 -18
  195. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_th.properties +17 -17
  196. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_uk.properties +18 -18
  197. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_vi.properties +18 -18
  198. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_zh_CN.properties +18 -18
  199. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_zh_TW.properties +18 -18
  200. package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +28 -589
  201. package/src/main/js/sap/ushell/components/container/IframePOSTUtils.js +225 -0
  202. package/src/main/js/sap/ushell/components/contentFinder/Component.js +28 -28
  203. package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +2 -2
  204. package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
  205. package/src/main/js/sap/ushell/components/contentFinder/controller/WidgetGallery.controller.js +1 -1
  206. package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
  207. package/src/main/js/sap/ushell/components/contentFinder/model/GraphQLListBinding.js +2 -2
  208. package/src/main/js/sap/ushell/components/contentFinder/model/GraphQLModel.js +2 -2
  209. package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +2 -2
  210. package/src/main/js/sap/ushell/components/contentFinder/resources/resources.properties +2 -2
  211. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ar.properties +8 -10
  212. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_bg.properties +8 -10
  213. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ca.properties +8 -10
  214. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cs.properties +1 -3
  215. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cy.properties +8 -10
  216. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_da.properties +8 -10
  217. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_de.properties +8 -10
  218. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_el.properties +7 -9
  219. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en.properties +1 -3
  220. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_GB.properties +1 -3
  221. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_US_sappsd.properties +1 -3
  222. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_US_saprigi.properties +1 -3
  223. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_US_saptrc.properties +1 -3
  224. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_es.properties +1 -3
  225. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_es_MX.properties +8 -10
  226. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_et.properties +1 -3
  227. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fi.properties +8 -10
  228. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fr.properties +1 -3
  229. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fr_CA.properties +8 -10
  230. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hi.properties +7 -9
  231. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hr.properties +7 -9
  232. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hu.properties +8 -10
  233. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_id.properties +8 -10
  234. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_it.properties +10 -12
  235. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_iw.properties +8 -10
  236. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ja.properties +7 -9
  237. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_kk.properties +1 -3
  238. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ko.properties +7 -9
  239. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_lt.properties +7 -9
  240. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_lv.properties +7 -9
  241. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ms.properties +8 -10
  242. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_nl.properties +7 -9
  243. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_no.properties +8 -10
  244. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pl.properties +8 -10
  245. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pt.properties +8 -10
  246. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pt_PT.properties +8 -10
  247. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ro.properties +8 -10
  248. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ru.properties +8 -10
  249. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sh.properties +1 -3
  250. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sk.properties +1 -3
  251. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sl.properties +8 -10
  252. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sv.properties +1 -3
  253. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_th.properties +7 -9
  254. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_tr.properties +1 -3
  255. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_uk.properties +8 -10
  256. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_vi.properties +8 -10
  257. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_zh_CN.properties +8 -10
  258. package/src/main/js/sap/ushell/components/contentFinder/resources/resources_zh_TW.properties +7 -9
  259. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearch.view.xml +7 -1
  260. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchBox.fragment.xml +1 -1
  261. package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchPaginated.view.xml +2 -3
  262. package/src/main/js/sap/ushell/components/contentFinder/view/WidgetGallery.view.xml +2 -8
  263. package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
  264. package/src/main/js/sap/ushell/components/homepage/ActionMode.js +12 -3
  265. package/src/main/js/sap/ushell/components/homepage/Component.js +3 -1
  266. package/src/main/js/sap/ushell/components/homepage/DashboardContent.controller.js +25 -0
  267. package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +12 -10
  268. package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -3
  269. package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +13 -11
  270. package/src/main/js/sap/ushell/components/homepage/FLPAnalytics.js +11 -11
  271. package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
  272. package/src/main/js/sap/ushell/components/pages/ActionMode.js +6 -6
  273. package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
  274. package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
  275. package/src/main/js/sap/ushell/components/pages/StateManager.js +3 -2
  276. package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +90 -20
  277. package/src/main/js/sap/ushell/components/pages/controller/PagesAndSpaceId.js +1 -1
  278. package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
  279. package/src/main/js/sap/ushell/components/pages/view/PageRuntime.view.xml +1 -45
  280. package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +4 -4
  281. package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
  282. package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
  283. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +182 -46
  284. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
  285. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/CustomTreeItem.fragment.xml +4 -4
  286. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/NavigationBarMenu.view.xml +1 -1
  287. package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/NavigationBarMenuPopover.fragment.xml +8 -1
  288. package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +14 -12
  289. package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +1 -3
  290. package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +8 -6
  291. package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
  292. package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +16 -4
  293. package/src/main/js/sap/ushell/components/shell/SearchCEP/ProvidersExecuter.js +4 -4
  294. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +634 -612
  295. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchFieldFragment.fragment.xml +2 -102
  296. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +28 -33
  297. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +12 -14
  298. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +80 -17
  299. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +161 -0
  300. package/src/main/js/sap/ushell/components/shell/Settings/Component.js +1 -1
  301. package/src/main/js/sap/ushell/components/shell/Settings/ContentWrapper.fragment.xml +1 -3
  302. package/src/main/js/sap/ushell/components/shell/Settings/ErrorMessageHelper.js +4 -2
  303. package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +24 -26
  304. package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +8 -7
  305. package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.view.xml +6 -5
  306. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.controller.js +3 -1
  307. package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSetting.fragment.xml +2 -0
  308. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/UserDefaultsForm.js +5 -1
  309. package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/UserDefaultsSetting.controller.js +20 -2
  310. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.controller.js +21 -10
  311. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.view.xml +8 -1
  312. package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/UserLanguageRegionEntry.js +12 -22
  313. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +4 -2
  314. package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +50 -46
  315. package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +1 -1
  316. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.controller.js +11 -3
  317. package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.view.js +5 -0
  318. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.controller.js +11 -2
  319. package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.view.js +5 -0
  320. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/Component.js +12 -0
  321. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.controller.js +24 -7
  322. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.view.js +1 -1
  323. package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.view.xml +1 -1
  324. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/Component.js +24 -0
  325. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.controller.js +71 -7
  326. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.view.js +1 -1
  327. package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.view.xml +1 -1
  328. package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +28 -28
  329. package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +71 -34
  330. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +35 -1
  331. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +550 -241
  332. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.layout.js +369 -0
  333. package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageHost.js +60 -4
  334. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +24 -5
  335. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +2 -2
  336. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +69 -39
  337. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +16 -11
  338. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnRenderer.js +13 -1
  339. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +2 -2
  340. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRenderer.js +7 -1
  341. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +11 -10
  342. package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRowRenderer.js +5 -0
  343. package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
  344. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources.properties +15 -3
  345. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ar.properties +36 -29
  346. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_bg.properties +36 -29
  347. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ca.properties +36 -29
  348. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_cs.properties +32 -25
  349. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_cy.properties +36 -29
  350. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_da.properties +36 -29
  351. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_de.properties +36 -29
  352. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_el.properties +36 -29
  353. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en.properties +26 -19
  354. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_GB.properties +26 -19
  355. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_sappsd.properties +38 -6
  356. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_saprigi.properties +9 -2
  357. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_saptrc.properties +35 -6
  358. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_es.properties +31 -24
  359. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_es_MX.properties +36 -29
  360. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_et.properties +31 -24
  361. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fi.properties +36 -29
  362. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fr.properties +31 -24
  363. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fr_CA.properties +36 -29
  364. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hi.properties +36 -29
  365. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hr.properties +38 -31
  366. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hu.properties +36 -29
  367. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_id.properties +36 -29
  368. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_it.properties +35 -28
  369. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_iw.properties +37 -30
  370. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ja.properties +36 -29
  371. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_kk.properties +31 -24
  372. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ko.properties +36 -29
  373. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_lt.properties +37 -30
  374. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_lv.properties +36 -29
  375. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ms.properties +36 -29
  376. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_nl.properties +36 -29
  377. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_no.properties +36 -29
  378. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pl.properties +36 -29
  379. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pt.properties +36 -29
  380. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pt_PT.properties +36 -29
  381. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ro.properties +36 -29
  382. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ru.properties +36 -29
  383. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sh.properties +31 -24
  384. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sk.properties +31 -24
  385. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sl.properties +36 -29
  386. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sv.properties +36 -29
  387. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_th.properties +36 -29
  388. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_tr.properties +31 -24
  389. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_uk.properties +36 -29
  390. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_vi.properties +36 -29
  391. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_zh_CN.properties +36 -29
  392. package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_zh_TW.properties +36 -29
  393. package/src/main/js/sap/ushell/components/workPageBuilder/view/WorkPageBuilder.view.xml +88 -42
  394. package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
  395. package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +7 -6
  396. package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
  397. package/src/main/js/sap/ushell/components/workPageRuntime/services/NavigationResolver.js +11 -11
  398. package/src/main/js/sap/ushell/components/workPageRuntime/services/WorkPage.js +35 -33
  399. package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
  400. package/src/main/js/sap/ushell/library.js +1 -1
  401. package/src/main/js/sap/ushell/navigationMode.js +1 -1
  402. package/src/main/js/sap/ushell/performance/FesrEnhancer.js +20 -21
  403. package/src/main/js/sap/ushell/performance/ShellAnalytics.js +47 -32
  404. package/src/main/js/sap/ushell/performance/StatisticalRecord.js +65 -31
  405. package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
  406. package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +7 -5
  407. package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +0 -48
  408. package/src/main/js/sap/ushell/renderers/fiori2/Shell.controller.js +94 -90
  409. package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +8 -3
  410. package/src/main/js/sap/ushell/renderers/fiori2/ShellAsync.view.js +1 -1
  411. package/src/main/js/sap/ushell/renderers/fiori2/ShellLayout.js +1 -1
  412. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyApps.controller.js +93 -94
  413. package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsKeyboardHandler.js +8 -8
  414. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources.properties +4 -2
  415. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ar.properties +3 -1
  416. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_bg.properties +21 -19
  417. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ca.properties +3 -1
  418. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_cs.properties +9 -7
  419. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_cy.properties +4 -2
  420. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_da.properties +3 -1
  421. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_de.properties +16 -14
  422. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_el.properties +4 -2
  423. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en.properties +4 -2
  424. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_GB.properties +3 -1
  425. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_US_sappsd.properties +3 -1
  426. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_US_saprigi.properties +3 -1
  427. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_US_saptrc.properties +2 -1
  428. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_es.properties +3 -1
  429. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_es_MX.properties +3 -1
  430. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_et.properties +3 -1
  431. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_fi.properties +3 -1
  432. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_fr.properties +5 -3
  433. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_fr_CA.properties +3 -1
  434. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_hi.properties +3 -1
  435. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_hr.properties +15 -13
  436. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_hu.properties +3 -1
  437. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_id.properties +3 -1
  438. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_it.properties +3 -1
  439. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_iw.properties +3 -1
  440. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ja.properties +3 -1
  441. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_kk.properties +3 -1
  442. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ko.properties +5 -3
  443. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_lt.properties +3 -1
  444. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_lv.properties +3 -1
  445. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ms.properties +6 -4
  446. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_nl.properties +3 -1
  447. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_no.properties +4 -2
  448. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_pl.properties +9 -7
  449. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_pt.properties +3 -1
  450. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_pt_PT.properties +3 -1
  451. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ro.properties +3 -1
  452. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ru.properties +3 -1
  453. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sh.properties +3 -1
  454. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sk.properties +4 -2
  455. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sl.properties +3 -1
  456. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sv.properties +3 -1
  457. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_th.properties +3 -1
  458. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_tr.properties +4 -2
  459. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_uk.properties +3 -1
  460. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_vi.properties +3 -1
  461. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_zh_CN.properties +3 -1
  462. package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_zh_TW.properties +3 -1
  463. package/src/main/js/sap/ushell/renderers/fiori2/search/searchComponent/manifest.json +1 -1
  464. package/src/main/js/sap/ushell/renderers/fiori2/utils.js +28 -0
  465. package/src/main/js/sap/ushell/services/AppConfiguration.js +24 -2
  466. package/src/main/js/sap/ushell/services/AppLifeCycle.js +52 -23
  467. package/src/main/js/sap/ushell/services/AppState.js +19 -7
  468. package/src/main/js/sap/ushell/services/Bookmark.js +55 -21
  469. package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +1 -1
  470. package/src/main/js/sap/ushell/services/CommonDataModel.js +1 -1
  471. package/src/main/js/sap/ushell/services/Configuration.js +1 -1
  472. package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +1 -1
  473. package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
  474. package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +4 -4
  475. package/src/main/js/sap/ushell/services/DarkModeSupport.js +1 -1
  476. package/src/main/js/sap/ushell/services/EndUserFeedback.js +3 -3
  477. package/src/main/js/sap/ushell/services/LaunchPage.js +22 -4
  478. package/src/main/js/sap/ushell/services/Menu.js +5 -1
  479. package/src/main/js/sap/ushell/services/Message.js +8 -7
  480. package/src/main/js/sap/ushell/services/MessageBroker.js +1 -1
  481. package/src/main/js/sap/ushell/services/NavTargetResolution.js +1 -1
  482. package/src/main/js/sap/ushell/services/NavigationDataProvider.js +1 -1
  483. package/src/main/js/sap/ushell/services/Notifications.js +18 -15
  484. package/src/main/js/sap/ushell/services/PageBuilding.js +1 -1
  485. package/src/main/js/sap/ushell/services/PagePersistence.js +1 -1
  486. package/src/main/js/sap/ushell/services/PageReferencing.js +1 -1
  487. package/src/main/js/sap/ushell/services/Pages.js +1 -1
  488. package/src/main/js/sap/ushell/services/Personalization.js +10 -8
  489. package/src/main/js/sap/ushell/services/PluginManager.js +30 -8
  490. package/src/main/js/sap/ushell/services/ReferenceResolver.js +1 -1
  491. package/src/main/js/sap/ushell/services/Search.js +1 -1
  492. package/src/main/js/sap/ushell/services/SearchCEP.js +284 -30
  493. package/src/main/js/sap/ushell/services/SearchableContent.js +77 -18
  494. package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
  495. package/src/main/js/sap/ushell/services/SpaceContent.js +12 -4
  496. package/src/main/js/sap/ushell/services/SupportTicket.js +10 -7
  497. package/src/main/js/sap/ushell/services/UITracer.js +506 -0
  498. package/src/main/js/sap/ushell/services/URLParsing.js +11 -8
  499. package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
  500. package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
  501. package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +1 -1
  502. package/src/main/js/sap/ushell/services/UsageAnalytics.js +6 -3
  503. package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +1 -1
  504. package/src/main/js/sap/ushell/services/UserDefaultParameters.js +19 -27
  505. package/src/main/js/sap/ushell/services/UserInfo.js +6 -5
  506. package/src/main/js/sap/ushell/services/UserRecents.js +1 -1
  507. package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +1 -1
  508. package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -1
  509. package/src/main/js/sap/ushell/services/_AppState/AppStatePersistencyMethod.js +13 -2
  510. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Formatter.js +1 -1
  511. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundIndex.js +1 -1
  512. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundProvider.js +1 -1
  513. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +1 -1
  514. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +1 -1
  515. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/StagedLogger.js +1 -1
  516. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/SystemContext.js +1 -1
  517. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Utils.js +1 -1
  518. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +1 -1
  519. package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/XAppStateProcessing.js +1 -1
  520. package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +1 -1
  521. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
  522. package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
  523. package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +1 -1
  524. package/src/main/js/sap/ushell/services/_MessageBroker/MessageBrokerEngine.js +9 -46
  525. package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
  526. package/src/main/js/sap/ushell/services/_Personalization/TransientPersonalizer.js +10 -16
  527. package/src/main/js/sap/ushell/services/_PluginManager/Extensions.js +1 -1
  528. package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +1 -1
  529. package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
  530. package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +1 -1
  531. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstance.js +43 -11
  532. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceCdm.js +44 -2
  533. package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceLink.js +12 -4
  534. package/src/main/js/sap/ushell/services/{_AppState → appstate}/AppState.js +1 -1
  535. package/src/main/js/sap/ushell/services/appstate/AppStatePersistencyMethod.js +14 -0
  536. package/src/main/js/sap/ushell/services/{_AppState → appstate}/SequentializingAdapter.js +1 -1
  537. package/src/main/js/sap/ushell/services/{_AppState → appstate}/WindowAdapter.js +1 -1
  538. package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
  539. package/src/main/js/sap/ushell/themes/base/ContentFinder.less +0 -9
  540. package/src/main/js/sap/ushell/themes/base/MenuBar.less +3 -3
  541. package/src/main/js/sap/ushell/themes/base/SearchCEP.less +32 -198
  542. package/src/main/js/sap/ushell/themes/base/SearchFLP.less +5 -0
  543. package/src/main/js/sap/ushell/themes/base/ShellAppTitle.less +10 -30
  544. package/src/main/js/sap/ushell/themes/base/WorkPage.less +7 -24
  545. package/src/main/js/sap/ushell/themes/base/WorkPageCell.less +57 -20
  546. package/src/main/js/sap/ushell/themes/base/WorkPageColumn.less +37 -12
  547. package/src/main/js/sap/ushell/themes/base/WorkPageColumnResizer.less +59 -0
  548. package/src/main/js/sap/ushell/themes/base/WorkPageRow.less +12 -37
  549. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.eot +0 -0
  550. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.json +2 -1
  551. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.ttf +0 -0
  552. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.woff +0 -0
  553. package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.woff2 +0 -0
  554. package/src/main/js/sap/ushell/themes/base/fonts/horizon/BusinessSuiteInAppSymbols.eot +0 -0
  555. package/src/main/js/sap/ushell/themes/base/fonts/horizon/BusinessSuiteInAppSymbols.ttf +0 -0
  556. package/src/main/js/sap/ushell/themes/base/fonts/horizon/BusinessSuiteInAppSymbols.woff +0 -0
  557. package/src/main/js/sap/ushell/themes/base/fonts/horizon/BusinessSuiteInAppSymbols.woff2 +0 -0
  558. package/src/main/js/sap/ushell/themes/sap_belize/ShellHeader.less +1 -11
  559. package/src/main/js/sap/ushell/themes/sap_belize_hcb/ShellHeader.less +0 -11
  560. package/src/main/js/sap/ushell/themes/sap_belize_hcw/ShellHeader.less +1 -13
  561. package/src/main/js/sap/ushell/themes/sap_fiori_3/ShellHeader.less +1 -9
  562. package/src/main/js/sap/ushell/themes/sap_fiori_3_dark/ShellHeader.less +1 -9
  563. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/ShellHeader.less +1 -10
  564. package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/ShellHeader.less +0 -12
  565. package/src/main/js/sap/ushell/themes/sap_hcb/ShellHeader.less +0 -12
  566. package/src/main/js/sap/ushell/themes/sap_horizon/SearchCEP.less +16 -96
  567. package/src/main/js/sap/ushell/themes/sap_horizon/ShellAppTitle.less +1 -9
  568. package/src/main/js/sap/ushell/themes/sap_horizon/WorkPageCell.less +2 -7
  569. package/src/main/js/sap/ushell/themes/sap_horizon_dark/SearchCEP.less +15 -124
  570. package/src/main/js/sap/ushell/themes/sap_horizon_dark/ShellAppTitle.less +1 -7
  571. package/src/main/js/sap/ushell/themes/sap_horizon_dark/WorkPageCell.less +2 -7
  572. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/SearchCEP.less +10 -196
  573. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/ShellAppTitle.less +0 -9
  574. package/src/main/js/sap/ushell/themes/sap_horizon_hcb/WorkPageCell.less +2 -7
  575. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/SearchCEP.less +9 -189
  576. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/ShellAppTitle.less +0 -11
  577. package/src/main/js/sap/ushell/themes/sap_horizon_hcw/WorkPageCell.less +2 -7
  578. package/src/main/js/sap/ushell/ui/ContentNodeSelector.js +5 -0
  579. package/src/main/js/sap/ushell/ui/QuickAccess.js +11 -2
  580. package/src/main/js/sap/ushell/ui/ShellHeader.fragment.xml +5 -1
  581. package/src/main/js/sap/ushell/ui/ShellHeader.js +5 -1
  582. package/src/main/js/sap/ushell/ui/ShellHeaderRenderer.js +1 -1
  583. package/src/main/js/sap/ushell/ui/bookmark/SaveOnPage.view.xml +15 -17
  584. package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
  585. package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +9 -8
  586. package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.view.js +6 -6
  587. package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
  588. package/src/main/js/sap/ushell/ui/launchpad/Page.js +8 -16
  589. package/src/main/js/sap/ushell/ui/launchpad/Section.js +732 -171
  590. package/src/main/js/sap/ushell/ui/launchpad/SectionRenderer.js +66 -0
  591. package/src/main/js/sap/ushell/ui/launchpad/Tile.js +16 -2
  592. package/src/main/js/sap/ushell/ui/launchpad/TileRenderer.js +3 -2
  593. package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +14 -1
  594. package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +115 -63
  595. package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +1 -1
  596. package/src/main/js/sap/ushell/ui/shell/ShellNavigationMenu.js +30 -76
  597. package/src/main/js/sap/ushell/ui/shell/SysInfoBar.js +1 -1
  598. package/src/main/js/sap/ushell/ui/shell/ToolArea.js +9 -5
  599. package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -1
  600. package/src/main/js/sap/ushell/ui/utils.js +1 -1
  601. package/src/main/js/sap/ushell/ui5service/ShellUIService.js +7 -2
  602. package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
  603. package/src/main/js/sap/ushell/utils/DynamicTileRequest.js +23 -2
  604. package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
  605. package/src/main/js/sap/ushell/utils/WindowUtils.js +2 -2
  606. package/src/main/js/sap/ushell/utils.js +108 -0
  607. package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
  608. package/ui5.yaml +27 -26
  609. package/src/main/js/sap/ushell/adapters/cep/SearchCEPApplicationAdapter.js +0 -264
  610. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimePostMessage.js +0 -82
  611. package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimePostMessageAPI.js +0 -34
  612. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n.properties +0 -5
  613. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ar.properties +0 -2
  614. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_bg.properties +0 -2
  615. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ca.properties +0 -2
  616. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_cs.properties +0 -2
  617. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_cy.properties +0 -2
  618. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_da.properties +0 -2
  619. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_de.properties +0 -2
  620. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_el.properties +0 -2
  621. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en.properties +0 -2
  622. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_GB.properties +0 -2
  623. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_US_sappsd.properties +0 -2
  624. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_US_saprigi.properties +0 -2
  625. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_US_saptrc.properties +0 -2
  626. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_es.properties +0 -2
  627. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_es_MX.properties +0 -2
  628. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_et.properties +0 -2
  629. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_fi.properties +0 -2
  630. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_fr.properties +0 -2
  631. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_fr_CA.properties +0 -2
  632. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_hi.properties +0 -2
  633. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_hr.properties +0 -2
  634. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_hu.properties +0 -2
  635. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_id.properties +0 -2
  636. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_it.properties +0 -2
  637. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_iw.properties +0 -2
  638. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ja.properties +0 -2
  639. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_kk.properties +0 -2
  640. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ko.properties +0 -2
  641. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_lt.properties +0 -2
  642. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_lv.properties +0 -2
  643. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ms.properties +0 -2
  644. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_nl.properties +0 -2
  645. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_no.properties +0 -2
  646. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_pl.properties +0 -2
  647. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_pt.properties +0 -2
  648. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_pt_PT.properties +0 -2
  649. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ro.properties +0 -2
  650. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ru.properties +0 -2
  651. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sh.properties +0 -2
  652. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sk.properties +0 -2
  653. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sl.properties +0 -2
  654. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sv.properties +0 -2
  655. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_th.properties +0 -2
  656. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_tr.properties +0 -2
  657. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_uk.properties +0 -2
  658. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_vi.properties +0 -2
  659. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_zh_CN.properties +0 -2
  660. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_zh_TW.properties +0 -2
  661. package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/manifest.json +0 -66
  662. package/src/main/js/sap/ushell/components/cepsearchresult/app/util/jsSearch.js +0 -919
  663. package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/NavigationSvcSearchProvider.js +0 -126
  664. package/src/main/js/sap/ushell/ui/launchpad/Section.control.xml +0 -243
  665. /package/src/main/js/sap/ushell/services/{_AppState → appstate}/AppStatePersistencySettings.js +0 -0
  666. /package/src/main/js/sap/ushell/services/{_AppState → appstate}/LimitedBuffer.js +0 -0
  667. /package/src/main/js/sap/ushell/services/{_AppState → appstate}/Sequentializer.js +0 -0
@@ -1,919 +0,0 @@
1
- /*!
2
- * Copyright (c) 2009-2023 SAP SE, All Rights Reserved
3
- */
4
- sap.ui.define([], function () {
5
- "use strict";
6
-
7
- /* eslint no-useless-escape:0 */
8
- /* eslint-disable max-len */
9
- /* eslint-disable complexity */
10
- /* eslint valid-jsdoc: 0 */
11
- /* eslint space-before-function-paren: 0 */
12
- /* eslint camelcase: 0 */
13
-
14
- return function JsSearch(options) {
15
- var that = this;
16
-
17
- ////////////////////////////////////////////////////
18
- ///// ///
19
- //// Options ////
20
- /// /////
21
- ////////////////////////////////////////////////////
22
-
23
- if (!options) {
24
- throw new Error("You must specify search options");
25
- }
26
-
27
- if (String.prototype.normalize) {
28
- options.shouldNormalize = options.shouldNormalize !== undefined ? options.shouldNormalize : true;
29
- } else {
30
- options.shouldNormalize = false;
31
- }
32
-
33
- if (
34
- !options.algorithm ||
35
- !options.algorithm.id ||
36
- !Array.isArray(options.algorithm.options) ||
37
- typeof options.algorithm.options[0] !== "number" ||
38
- typeof options.algorithm.options[1] !== "number" ||
39
- typeof options.algorithm.options[2] !== "number" ||
40
- typeof options.algorithm.options[3] !== "number" ||
41
- typeof options.algorithm.options[4] !== "number" ||
42
- typeof options.algorithm.options[5] !== "number" ||
43
- typeof options.algorithm.options[6] !== "number"
44
- ) {
45
- throw new Error("You must specify a supported search algorithm with all options");
46
- }
47
- var algorithm = _algorithms(options.algorithm.id, options.algorithm.options);
48
- if (algorithm === undefined) {
49
- throw new Error("You must specify a supported search algorithm");
50
- }
51
-
52
- /** @type {Field[]} */
53
- var fields = [];
54
- if (Array.isArray(options.fields)) {
55
- options.fields.forEach(function (f) {
56
- if (typeof f === "string") {
57
- fields.push({
58
- field: f,
59
- weight: 3
60
- });
61
- }
62
- });
63
- } else if (options.fields) {
64
- if (Array.isArray(options.fields.groups)) {
65
- var scale = parseFloat(options.fields.scale);
66
- if (isNaN(scale)) {
67
- scale = 1;
68
- } else {
69
- scale = Math.max(1, scale);
70
- }
71
- options.fields.groups.forEach(function (g, i) {
72
- var weight =
73
- ((options.fields.groups.length - 1 - i) / (options.fields.groups.length - 1)) *
74
- (scale - 1) +
75
- 1;
76
- if (Array.isArray(g)) {
77
- g.forEach(function (f) {
78
- if (typeof f === "string") {
79
- fields.push({
80
- field: f,
81
- weight: weight
82
- });
83
- }
84
- });
85
- } else if (typeof g === "string") {
86
- fields.push({
87
- field: g,
88
- weight: weight
89
- });
90
- }
91
- });
92
- }
93
- }
94
- if (fields.length < 1) {
95
- throw new Error("You must specify fields to search in");
96
- }
97
-
98
- /** @type {string|undefined} */
99
- var cachedSearchTerm;
100
- /** @type {ResultItem[]} */
101
- var cachedResults = [];
102
- /** @type {any[]} */
103
- var objects;
104
-
105
- this.setObjects = function (aObjects) {
106
- if (!Array.isArray(aObjects)) {
107
- throw new Error("You must give an array of objects");
108
- }
109
- objects = aObjects;
110
- cachedSearchTerm = undefined; // clear cache
111
- };
112
-
113
- if (options.objects) {
114
- this.setObjects(options.objects);
115
- }
116
-
117
- ////////////////////////////////////////////////////
118
- ///// ///
119
- //// Helper functions ////
120
- /// /////
121
- ////////////////////////////////////////////////////
122
-
123
- // Helpers for RegExps
124
- /** @param {string} s */
125
- /** @param {string} [mode] */
126
- function makeRegExp(s, mode) {
127
- var t = s;
128
- t = t.replace(/\[(\^?)(\\s)?a0\]/g, "[$1$2\\p{Letter}\\p{Number}]");
129
- t = t.replace(/\[(\^?)(\\s)?a\]/g, "[$1$2\\p{Letter}]");
130
- t = t.replace(/\[(\^?)(\\s)?0\]/g, "[$1$2\\p{Number}]");
131
- t = t.replace(/\[(\^?)(\\s)?a0\]/g, "[$1$2\\p{Number}]");
132
- // debug
133
- /*
134
- t = t.replace(/\[\^\\p{Letter}\]/g, '(?:[^a-zA-Z])');
135
- t = t.replace(/\[\^\\p{Number}\]/g, '(?:[^0-9])');
136
- t = t.replace(/\[\^\\p{Letter}\\p{Number}\]/g, '(?:[^0-9a-zA-Z])');
137
- t = t.replace(/\[\^\\s\\p{Letter}\\p{Number}\]/g, '(?:[^\\s0-9a-zA-Z])');
138
- t = t.replace(/\[\\p{Letter}\]/g, '(?:[a-zA-Z])');
139
- t = t.replace(/\[\\p{Number}\]/g, '(?:[0-9])');
140
- t = t.replace(/\[\\p{Letter}\\p{Number}\]/g, '(?:[0-9a-zA-Z])');
141
- t = t.replace(/\[\\s\\p{Letter}\\p{Number}\]/g, '(?:[\\s0-9a-zA-Z])');
142
- */
143
- //
144
- // workaround for as long as \p{Letter} etc. are missing in JS implementation
145
- // translation of unicode classes like [^\p{Letter}] via https://mothereff.in/regexpu
146
- t = t.replace(
147
- /\[\^\\p{Letter}\]/g,
148
- "(?:[\0-@[-`{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u036F\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482-\u0489\u0530\u0557\u0558\u055A-\u0560\u0588-\u05CF\u05EB-\u05EF\u05F3-\u061F\u064B-\u066D\u0670\u06D4\u06D6-\u06E4\u06E7-\u06ED\u06F0-\u06F9\u06FD\u06FE\u0700-\u070F\u0711\u0730-\u074C\u07A6-\u07B0\u07B2-\u07C9\u07EB-\u07F3\u07F6-\u07F9\u07FB-\u07FF\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u083F\u0859-\u085F\u086B-\u089F\u08B5\u08BE-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962-\u0970\u0981-\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA-\u09BC\u09BE-\u09CD\u09CF-\u09DB\u09DE\u09E2-\u09EF\u09F2-\u09FB\u09FD-\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A-\u0A58\u0A5D\u0A5F-\u0A71\u0A75-\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA-\u0ABC\u0ABE-\u0ACF\u0AD1-\u0ADF\u0AE2-\u0AF8\u0AFA-\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A-\u0B3C\u0B3E-\u0B5B\u0B5E\u0B62-\u0B70\u0B72-\u0B82\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BCF\u0BD1-\u0C04\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C3E-\u0C57\u0C5B-\u0C5F\u0C62-\u0C7F\u0C81-\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA-\u0CBC\u0CBE-\u0CDD\u0CDF\u0CE2-\u0CF0\u0CF3-\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D3E-\u0D4D\u0D4F-\u0D53\u0D57-\u0D5E\u0D62-\u0D79\u0D80-\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0E00\u0E31\u0E34-\u0E3F\u0E47-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EB1\u0EB4-\u0EBC\u0EBE\u0EBF\u0EC5\u0EC7-\u0EDB\u0EE0-\u0EFF\u0F01-\u0F3F\u0F48\u0F6D-\u0F87\u0F8D-\u0FFF\u102B-\u103E\u1040-\u104F\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F-\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16F0\u16F9-\u16FF\u170D\u1712-\u171F\u1732-\u173F\u1752-\u175F\u176D\u1771-\u177F\u17B4-\u17D6\u17D8-\u17DB\u17DD-\u181F\u1878-\u187F\u1885\u1886\u18A9\u18AB-\u18AF\u18F6-\u18FF\u191F-\u194F\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19FF\u1A17-\u1A1F\u1A55-\u1AA6\u1AA8-\u1B04\u1B34-\u1B44\u1B4C-\u1B82\u1BA1-\u1BAD\u1BB0-\u1BB9\u1BE6-\u1BFF\u1C24-\u1C4C\u1C50-\u1C59\u1C7E\u1C7F\u1C89-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CFF\u1DC0-\u1DFF\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u2182\u2185-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CEF-\u2CF1\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7F\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF-\u2E2E\u2E30-\u3004\u3007-\u3030\u3036-\u303A\u303D-\u3040\u3097-\u309C\u30A0\u30FB\u3100-\u3104\u312F\u3130\u318F-\u319F\u31BB-\u31EF\u3200-\u33FF\u4DB6-\u4DFF\u9FEB-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA620-\uA629\uA62C-\uA63F\uA66F-\uA67E\uA69E\uA69F\uA6E6-\uA716\uA720\uA721\uA789\uA78A\uA7AF\uA7B8-\uA7F6\uA802\uA806\uA80B\uA823-\uA83F\uA874-\uA881\uA8B4-\uA8F1\uA8F8-\uA8FA\uA8FC\uA8FE-\uA909\uA926-\uA92F\uA947-\uA95F\uA97D-\uA983\uA9B3-\uA9CE\uA9D0-\uA9DF\uA9E5\uA9F0-\uA9F9\uA9FF\uAA29-\uAA3F\uAA43\uAA4C-\uAA5F\uAA77-\uAA79\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAC3-\uAADA\uAADE\uAADF\uAAEB-\uAAF1\uAAF5-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB66-\uAB6F\uABE3-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB1E\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFE6F\uFE75\uFEFD-\uFF20\uFF3B-\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEFF\uDF20-\uDF2C\uDF41\uDF4A-\uDF4F\uDF76-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0-\uDFFF]|\uD801[\uDC9E-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE01-\uDE0F\uDE14\uDE18\uDE34-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE5-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDFFF]|\uD804[\uDC00-\uDC02\uDC38-\uDC82\uDCB0-\uDCCF\uDCE9-\uDD02\uDD27-\uDD4F\uDD73-\uDD75\uDD77-\uDD82\uDDB3-\uDDC0\uDDC5-\uDDD9\uDDDB\uDDDD-\uDDFF\uDE12\uDE2C-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEDF-\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A-\uDF3C\uDF3E-\uDF4F\uDF51-\uDF5C\uDF62-\uDFFF]|\uD805[\uDC35-\uDC46\uDC4B-\uDC7F\uDCB0-\uDCC3\uDCC6\uDCC8-\uDD7F\uDDAF-\uDDD7\uDDDC-\uDDFF\uDE30-\uDE43\uDE45-\uDE7F\uDEAB-\uDEFF\uDF1A-\uDFFF]|\uD806[\uDC00-\uDC9F\uDCE0-\uDCFE\uDD00-\uDDFF\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE4F\uDE51-\uDE5B\uDE84\uDE85\uDE8A-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC2F-\uDC3F\uDC41-\uDC71\uDC90-\uDCFF\uDD07\uDD0A\uDD31-\uDD45\uDD47-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC00-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD823-\uD82B\uD82D\uD82E\uD830-\uD834\uD836-\uD839\uD83C-\uD83F\uD87B-\uD87D\uD87F-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F-\uDECF\uDEEE-\uDEFF\uDF30-\uDF3F\uDF44-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDEFF\uDF45-\uDF4F\uDF51-\uDF92\uDFA0-\uDFDF\uDFE2-\uDFFF]|\uD821[\uDFED-\uDFFF]|\uD822[\uDEF3-\uDFFF]|\uD82C[\uDD1F-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC-\uDFFF]|\uD83A[\uDCC5-\uDCFF\uDD44-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD869[\uDED7-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])"
149
- );
150
- t = t.replace(
151
- /\[\^\\p{Number}\]/g,
152
- "(?:[\0-/:-\xB1\xB4-\xB8\xBA\xBB\xBF-\u065F\u066A-\u06EF\u06FA-\u07BF\u07CA-\u0965\u0970-\u09E5\u09F0-\u09F3\u09FA-\u0A65\u0A70-\u0AE5\u0AF0-\u0B65\u0B70\u0B71\u0B78-\u0BE5\u0BF3-\u0C65\u0C70-\u0C77\u0C7F-\u0CE5\u0CF0-\u0D57\u0D5F-\u0D65\u0D79-\u0DE5\u0DF0-\u0E4F\u0E5A-\u0ECF\u0EDA-\u0F1F\u0F34-\u103F\u104A-\u108F\u109A-\u1368\u137D-\u16ED\u16F1-\u17DF\u17EA-\u17EF\u17FA-\u180F\u181A-\u1945\u1950-\u19CF\u19DB-\u1A7F\u1A8A-\u1A8F\u1A9A-\u1B4F\u1B5A-\u1BAF\u1BBA-\u1C3F\u1C4A-\u1C4F\u1C5A-\u206F\u2071-\u2073\u207A-\u207F\u208A-\u214F\u2183\u2184\u218A-\u245F\u249C-\u24E9\u2500-\u2775\u2794-\u2CFC\u2CFE-\u3006\u3008-\u3020\u302A-\u3037\u303B-\u3191\u3196-\u321F\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\uA61F\uA62A-\uA6E5\uA6F0-\uA82F\uA836-\uA8CF\uA8DA-\uA8FF\uA90A-\uA9CF\uA9DA-\uA9EF\uA9FA-\uAA4F\uAA5A-\uABEF\uABFA-\uD7FF\uE000-\uFF0F\uFF1A-\uFFFF]|\uD800[\uDC00-\uDD06\uDD34-\uDD3F\uDD79-\uDD89\uDD8C-\uDEE0\uDEFC-\uDF1F\uDF24-\uDF40\uDF42-\uDF49\uDF4B-\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC00-\uDC9F\uDCAA-\uDFFF]|\uD802[\uDC00-\uDC57\uDC60-\uDC78\uDC80-\uDCA6\uDCB0-\uDCFA\uDD00-\uDD15\uDD1C-\uDDBB\uDDBE\uDDBF\uDDD0\uDDD1\uDE00-\uDE3F\uDE48-\uDE7C\uDE7F-\uDE9C\uDEA0-\uDEEA\uDEF0-\uDF57\uDF60-\uDF77\uDF80-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC00-\uDCF9\uDD00-\uDE5F\uDE7F-\uDFFF]|\uD804[\uDC00-\uDC51\uDC70-\uDCEF\uDCFA-\uDD35\uDD40-\uDDCF\uDDDA-\uDDE0\uDDF5-\uDEEF\uDEFA-\uDFFF]|[\uD805\uD807][\uDC00-\uDC4F\uDC5A-\uDCCF\uDCDA-\uDE4F\uDE5A-\uDEBF\uDECA-\uDF2F\uDF3C-\uDFFF]|\uD806[\uDC00-\uDCDF\uDCF3-\uDFFF]|[\uD808\uD80A-\uD819\uD81B-\uD833\uD836-\uD839\uD83B\uD83D-\uDBFF][\uDC00-\uDFFF]|\uD809[\uDC6F-\uDFFF]|\uD81A[\uDC00-\uDE5F\uDE6A-\uDF4F\uDF5A\uDF62-\uDFFF]|\uD834[\uDC00-\uDF5F\uDF72-\uDFFF]|\uD835[\uDC00-\uDFCD]|\uD83A[\uDC00-\uDCC6\uDCD0-\uDD4F\uDD5A-\uDFFF]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])"
153
- );
154
- t = t.replace(
155
- /\[\^\\p{Letter}\\p{Number}\]/g,
156
- "(?:[\0-/:-@[-`{-\xA9\xAB-\xB1\xB4\xB6-\xB8\xBB\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u036F\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482-\u0489\u0530\u0557\u0558\u055A-\u0560\u0588-\u05CF\u05EB-\u05EF\u05F3-\u061F\u064B-\u065F\u066A-\u066D\u0670\u06D4\u06D6-\u06E4\u06E7-\u06ED\u06FD\u06FE\u0700-\u070F\u0711\u0730-\u074C\u07A6-\u07B0\u07B2-\u07BF\u07EB-\u07F3\u07F6-\u07F9\u07FB-\u07FF\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u083F\u0859-\u085F\u086B-\u089F\u08B5\u08BE-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962-\u0965\u0970\u0981-\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA-\u09BC\u09BE-\u09CD\u09CF-\u09DB\u09DE\u09E2-\u09E5\u09F2\u09F3\u09FA\u09FB\u09FD-\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A-\u0A58\u0A5D\u0A5F-\u0A65\u0A70\u0A71\u0A75-\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA-\u0ABC\u0ABE-\u0ACF\u0AD1-\u0ADF\u0AE2-\u0AE5\u0AF0-\u0AF8\u0AFA-\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A-\u0B3C\u0B3E-\u0B5B\u0B5E\u0B62-\u0B65\u0B70\u0B78-\u0B82\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BCF\u0BD1-\u0BE5\u0BF3-\u0C04\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C3E-\u0C57\u0C5B-\u0C5F\u0C62-\u0C65\u0C70-\u0C77\u0C7F\u0C81-\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA-\u0CBC\u0CBE-\u0CDD\u0CDF\u0CE2-\u0CE5\u0CF0\u0CF3-\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D3E-\u0D4D\u0D4F-\u0D53\u0D57\u0D62-\u0D65\u0D79\u0D80-\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DE5\u0DF0-\u0E00\u0E31\u0E34-\u0E3F\u0E47-\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EB1\u0EB4-\u0EBC\u0EBE\u0EBF\u0EC5\u0EC7-\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F1F\u0F34-\u0F3F\u0F48\u0F6D-\u0F87\u0F8D-\u0FFF\u102B-\u103E\u104A-\u104F\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B-\u1368\u137D-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1712-\u171F\u1732-\u173F\u1752-\u175F\u176D\u1771-\u177F\u17B4-\u17D6\u17D8-\u17DB\u17DD-\u17DF\u17EA-\u17EF\u17FA-\u180F\u181A-\u181F\u1878-\u187F\u1885\u1886\u18A9\u18AB-\u18AF\u18F6-\u18FF\u191F-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19FF\u1A17-\u1A1F\u1A55-\u1A7F\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1B04\u1B34-\u1B44\u1B4C-\u1B4F\u1B5A-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BFF\u1C24-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CFF\u1DC0-\u1DFF\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u206F\u2072\u2073\u207A-\u207E\u208A-\u208F\u209D-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A-\u245F\u249C-\u24E9\u2500-\u2775\u2794-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CEF-\u2CF1\u2CF4-\u2CFC\u2CFE\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7F\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF-\u2E2E\u2E30-\u3004\u3008-\u3020\u302A-\u3030\u3036\u3037\u303D-\u3040\u3097-\u309C\u30A0\u30FB\u3100-\u3104\u312F\u3130\u318F-\u3191\u3196-\u319F\u31BB-\u31EF\u3200-\u321F\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DB6-\u4DFF\u9FEB-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA66F-\uA67E\uA69E\uA69F\uA6F0-\uA716\uA720\uA721\uA789\uA78A\uA7AF\uA7B8-\uA7F6\uA802\uA806\uA80B\uA823-\uA82F\uA836-\uA83F\uA874-\uA881\uA8B4-\uA8CF\uA8DA-\uA8F1\uA8F8-\uA8FA\uA8FC\uA8FE\uA8FF\uA926-\uA92F\uA947-\uA95F\uA97D-\uA983\uA9B3-\uA9CE\uA9DA-\uA9DF\uA9E5\uA9FF\uAA29-\uAA3F\uAA43\uAA4C-\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAC3-\uAADA\uAADE\uAADF\uAAEB-\uAAF1\uAAF5-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB66-\uAB6F\uABE3-\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB1E\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD06\uDD34-\uDD3F\uDD79-\uDD89\uDD8C-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEE0\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF76-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC57\uDC77\uDC78\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE01-\uDE0F\uDE14\uDE18\uDE34-\uDE3F\uDE48-\uDE5F\uDE7F\uDEA0-\uDEBF\uDEC8\uDEE5-\uDEEA\uDEF0-\uDEFF\uDF36-\uDF3F\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD00-\uDE5F\uDE7F-\uDFFF]|\uD804[\uDC00-\uDC02\uDC38-\uDC51\uDC70-\uDC82\uDCB0-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDD02\uDD27-\uDD35\uDD40-\uDD4F\uDD73-\uDD75\uDD77-\uDD82\uDDB3-\uDDC0\uDDC5-\uDDCF\uDDDB\uDDDD-\uDDE0\uDDF5-\uDDFF\uDE12\uDE2C-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEDF-\uDEEF\uDEFA-\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A-\uDF3C\uDF3E-\uDF4F\uDF51-\uDF5C\uDF62-\uDFFF]|\uD805[\uDC35-\uDC46\uDC4B-\uDC4F\uDC5A-\uDC7F\uDCB0-\uDCC3\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDAF-\uDDD7\uDDDC-\uDDFF\uDE30-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEAB-\uDEBF\uDECA-\uDEFF\uDF1A-\uDF2F\uDF3C-\uDFFF]|\uD806[\uDC00-\uDC9F\uDCF3-\uDCFE\uDD00-\uDDFF\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE4F\uDE51-\uDE5B\uDE84\uDE85\uDE8A-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC2F-\uDC3F\uDC41-\uDC4F\uDC6D-\uDC71\uDC90-\uDCFF\uDD07\uDD0A\uDD31-\uDD45\uDD47-\uDD4F\uDD5A-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD823-\uD82B\uD82D\uD82E\uD830-\uD833\uD836-\uD839\uD83D-\uD83F\uD87B-\uD87D\uD87F-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE-\uDEFF\uDF30-\uDF3F\uDF44-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDEFF\uDF45-\uDF4F\uDF51-\uDF92\uDFA0-\uDFDF\uDFE2-\uDFFF]|\uD821[\uDFED-\uDFFF]|\uD822[\uDEF3-\uDFFF]|\uD82C[\uDD1F-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDFFF]|\uD834[\uDC00-\uDF5F\uDF72-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD83A[\uDCC5\uDCC6\uDCD0-\uDCFF\uDD44-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDFFF]|\uD869[\uDED7-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])"
157
- );
158
- t = t.replace(
159
- /\[\^\\s\\p{Letter}\\p{Number}\]/g,
160
- "(?:[\0-\x08\x0E-\x1F!-/:-@[-`{-\x9F\xA1-\xA9\xAB-\xB1\xB4\xB6-\xB8\xBB\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u036F\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482-\u0489\u0530\u0557\u0558\u055A-\u0560\u0588-\u05CF\u05EB-\u05EF\u05F3-\u061F\u064B-\u065F\u066A-\u066D\u0670\u06D4\u06D6-\u06E4\u06E7-\u06ED\u06FD\u06FE\u0700-\u070F\u0711\u0730-\u074C\u07A6-\u07B0\u07B2-\u07BF\u07EB-\u07F3\u07F6-\u07F9\u07FB-\u07FF\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u083F\u0859-\u085F\u086B-\u089F\u08B5\u08BE-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962-\u0965\u0970\u0981-\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA-\u09BC\u09BE-\u09CD\u09CF-\u09DB\u09DE\u09E2-\u09E5\u09F2\u09F3\u09FA\u09FB\u09FD-\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A-\u0A58\u0A5D\u0A5F-\u0A65\u0A70\u0A71\u0A75-\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA-\u0ABC\u0ABE-\u0ACF\u0AD1-\u0ADF\u0AE2-\u0AE5\u0AF0-\u0AF8\u0AFA-\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A-\u0B3C\u0B3E-\u0B5B\u0B5E\u0B62-\u0B65\u0B70\u0B78-\u0B82\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BCF\u0BD1-\u0BE5\u0BF3-\u0C04\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C3E-\u0C57\u0C5B-\u0C5F\u0C62-\u0C65\u0C70-\u0C77\u0C7F\u0C81-\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA-\u0CBC\u0CBE-\u0CDD\u0CDF\u0CE2-\u0CE5\u0CF0\u0CF3-\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D3E-\u0D4D\u0D4F-\u0D53\u0D57\u0D62-\u0D65\u0D79\u0D80-\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DE5\u0DF0-\u0E00\u0E31\u0E34-\u0E3F\u0E47-\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EB1\u0EB4-\u0EBC\u0EBE\u0EBF\u0EC5\u0EC7-\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F1F\u0F34-\u0F3F\u0F48\u0F6D-\u0F87\u0F8D-\u0FFF\u102B-\u103E\u104A-\u104F\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B-\u1368\u137D-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1712-\u171F\u1732-\u173F\u1752-\u175F\u176D\u1771-\u177F\u17B4-\u17D6\u17D8-\u17DB\u17DD-\u17DF\u17EA-\u17EF\u17FA-\u180F\u181A-\u181F\u1878-\u187F\u1885\u1886\u18A9\u18AB-\u18AF\u18F6-\u18FF\u191F-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19FF\u1A17-\u1A1F\u1A55-\u1A7F\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1B04\u1B34-\u1B44\u1B4C-\u1B4F\u1B5A-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BFF\u1C24-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CFF\u1DC0-\u1DFF\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u206F\u2072\u2073\u207A-\u207E\u208A-\u208F\u209D-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A-\u245F\u249C-\u24E9\u2500-\u2775\u2794-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CEF-\u2CF1\u2CF4-\u2CFC\u2CFE\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7F\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF-\u2E2E\u2E30-\u2FFF\u3001-\u3004\u3008-\u3020\u302A-\u3030\u3036\u3037\u303D-\u3040\u3097-\u309C\u30A0\u30FB\u3100-\u3104\u312F\u3130\u318F-\u3191\u3196-\u319F\u31BB-\u31EF\u3200-\u321F\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DB6-\u4DFF\u9FEB-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA66F-\uA67E\uA69E\uA69F\uA6F0-\uA716\uA720\uA721\uA789\uA78A\uA7AF\uA7B8-\uA7F6\uA802\uA806\uA80B\uA823-\uA82F\uA836-\uA83F\uA874-\uA881\uA8B4-\uA8CF\uA8DA-\uA8F1\uA8F8-\uA8FA\uA8FC\uA8FE\uA8FF\uA926-\uA92F\uA947-\uA95F\uA97D-\uA983\uA9B3-\uA9CE\uA9DA-\uA9DF\uA9E5\uA9FF\uAA29-\uAA3F\uAA43\uAA4C-\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAC3-\uAADA\uAADE\uAADF\uAAEB-\uAAF1\uAAF5-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB66-\uAB6F\uABE3-\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB1E\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFE6F\uFE75\uFEFD\uFEFE\uFF00-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD06\uDD34-\uDD3F\uDD79-\uDD89\uDD8C-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEE0\uDEFC-\uDEFF\uDF24-\uDF2C\uDF4B-\uDF4F\uDF76-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56\uDC57\uDC77\uDC78\uDC9F-\uDCA6\uDCB0-\uDCDF\uDCF3\uDCF6-\uDCFA\uDD1C-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBB\uDDD0\uDDD1\uDE01-\uDE0F\uDE14\uDE18\uDE34-\uDE3F\uDE48-\uDE5F\uDE7F\uDEA0-\uDEBF\uDEC8\uDEE5-\uDEEA\uDEF0-\uDEFF\uDF36-\uDF3F\uDF56\uDF57\uDF73-\uDF77\uDF92-\uDFA8\uDFB0-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCF9\uDD00-\uDE5F\uDE7F-\uDFFF]|\uD804[\uDC00-\uDC02\uDC38-\uDC51\uDC70-\uDC82\uDCB0-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDD02\uDD27-\uDD35\uDD40-\uDD4F\uDD73-\uDD75\uDD77-\uDD82\uDDB3-\uDDC0\uDDC5-\uDDCF\uDDDB\uDDDD-\uDDE0\uDDF5-\uDDFF\uDE12\uDE2C-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEDF-\uDEEF\uDEFA-\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A-\uDF3C\uDF3E-\uDF4F\uDF51-\uDF5C\uDF62-\uDFFF]|\uD805[\uDC35-\uDC46\uDC4B-\uDC4F\uDC5A-\uDC7F\uDCB0-\uDCC3\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDAF-\uDDD7\uDDDC-\uDDFF\uDE30-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEAB-\uDEBF\uDECA-\uDEFF\uDF1A-\uDF2F\uDF3C-\uDFFF]|\uD806[\uDC00-\uDC9F\uDCF3-\uDCFE\uDD00-\uDDFF\uDE01-\uDE0A\uDE33-\uDE39\uDE3B-\uDE4F\uDE51-\uDE5B\uDE84\uDE85\uDE8A-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC2F-\uDC3F\uDC41-\uDC4F\uDC6D-\uDC71\uDC90-\uDCFF\uDD07\uDD0A\uDD31-\uDD45\uDD47-\uDD4F\uDD5A-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD823-\uD82B\uD82D\uD82E\uD830-\uD833\uD836-\uD839\uD83D-\uD83F\uD87B-\uD87D\uD87F-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE-\uDEFF\uDF30-\uDF3F\uDF44-\uDF4F\uDF5A\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDEFF\uDF45-\uDF4F\uDF51-\uDF92\uDFA0-\uDFDF\uDFE2-\uDFFF]|\uD821[\uDFED-\uDFFF]|\uD822[\uDEF3-\uDFFF]|\uD82C[\uDD1F-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDFFF]|\uD834[\uDC00-\uDF5F\uDF72-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD83A[\uDCC5\uDCC6\uDCD0-\uDCFF\uDD44-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDCFF\uDD0D-\uDFFF]|\uD869[\uDED7-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])"
161
- );
162
- t = t.replace(
163
- /\[\\p{Letter}\]/g,
164
- "(?:[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])"
165
- );
166
- t = t.replace(
167
- /\[\\p{Number}\]/g,
168
- "(?:[0-9\xB2\xB3\xB9\xBC-\xBE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D58-\u0D5E\u0D66-\u0D78\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]|\uD800[\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDEE1-\uDEFB\uDF20-\uDF23\uDF41\uDF4A\uDFD1-\uDFD5]|\uD801[\uDCA0-\uDCA9]|\uD802[\uDC58-\uDC5F\uDC79-\uDC7F\uDCA7-\uDCAF\uDCFB-\uDCFF\uDD16-\uDD1B\uDDBC\uDDBD\uDDC0-\uDDCF\uDDD2-\uDDFF\uDE40-\uDE47\uDE7D\uDE7E\uDE9D-\uDE9F\uDEEB-\uDEEF\uDF58-\uDF5F\uDF78-\uDF7F\uDFA9-\uDFAF]|\uD803[\uDCFA-\uDCFF\uDE60-\uDE7E]|\uD804[\uDC52-\uDC6F\uDCF0-\uDCF9\uDD36-\uDD3F\uDDD0-\uDDD9\uDDE1-\uDDF4\uDEF0-\uDEF9]|\uD805[\uDC50-\uDC59\uDCD0-\uDCD9\uDE50-\uDE59\uDEC0-\uDEC9\uDF30-\uDF3B]|\uD806[\uDCE0-\uDCF2]|\uD807[\uDC50-\uDC6C\uDD50-\uDD59]|\uD809[\uDC00-\uDC6E]|\uD81A[\uDE60-\uDE69\uDF50-\uDF59\uDF5B-\uDF61]|\uD834[\uDF60-\uDF71]|\uD835[\uDFCE-\uDFFF]|\uD83A[\uDCC7-\uDCCF\uDD50-\uDD59]|\uD83C[\uDD00-\uDD0C])"
169
- );
170
- t = t.replace(
171
- /\[\\p{Letter}\\p{Number}\]/g,
172
- "(?:[0-9A-Za-z\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u3192-\u3195\u31A0-\u31BA\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE40-\uDE47\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDCFF\uDE60-\uDE7E]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEC0-\uDEC9\uDF00-\uDF19\uDF30-\uDF3B]|\uD806[\uDCA0-\uDCF2\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDF60-\uDF71]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])"
173
- );
174
- t = t.replace(
175
- /\[\\s\\p{Letter}\\p{Number}\]/g,
176
- "(?:[\t-\r 0-9A-Za-z\xA0\xAA\xB2\xB3\xB5\xB9\xBA\xBC-\xBE\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u0660-\u0669\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0966-\u096F\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09F9\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AE6-\u0AEF\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B6F\u0B71-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0BE6-\u0BF2\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C78-\u0C7E\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D58-\u0D61\u0D66-\u0D78\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DE6-\u0DEF\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F20-\u0F33\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F-\u1049\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u1090-\u1099\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1369-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A20-\u1A54\u1A80-\u1A89\u1A90-\u1A99\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B50-\u1B59\u1B83-\u1BA0\u1BAE-\u1BE5\u1C00-\u1C23\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2000-\u200A\u2028\u2029\u202F\u205F\u2070\u2071\u2074-\u2079\u207F-\u2089\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2150-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2CFD\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3000\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u3192-\u3195\u31A0-\u31BA\u31F0-\u31FF\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA830-\uA835\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA8FD\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uA9E0-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFEFF\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD07-\uDD33\uDD40-\uDD78\uDD8A\uDD8B\uDE80-\uDE9C\uDEA0-\uDED0\uDEE1-\uDEFB\uDF00-\uDF23\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC58-\uDC76\uDC79-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE40-\uDE47\uDE60-\uDE7E\uDE80-\uDE9F\uDEC0-\uDEC7\uDEC9-\uDEE4\uDEEB-\uDEEF\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDCFF\uDE60-\uDE7E]|\uD804[\uDC03-\uDC37\uDC52-\uDC6F\uDC83-\uDCAF\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD36-\uDD3F\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDD0-\uDDDA\uDDDC\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDEF0-\uDEF9\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC50-\uDC59\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEC0-\uDEC9\uDF00-\uDF19\uDF30-\uDF3B]|\uD806[\uDCA0-\uDCF2\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC50-\uDC6C\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD834[\uDF60-\uDF71]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD83C[\uDD00-\uDD0C]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])"
177
- );
178
- if (t.match(/\\p/)) {
179
- throw new Error("JsSearch internal bug - Cannot convert RegExp");
180
- } else {
181
- return new RegExp(t, mode || "");
182
- }
183
- }
184
- var regExps = {
185
- AlphaNum_atBegin: makeRegExp("^[a0]"),
186
- Alpha_atBegin: makeRegExp("^[a]"),
187
- Num_atBegin: makeRegExp("^[0]"),
188
- AlphaNum_atEnd: makeRegExp("[a0]$"),
189
- Alpha_atEnd: makeRegExp("[a]$"),
190
- Num_atEnd: makeRegExp("[0]$")
191
- };
192
-
193
- // Helpers for highlighting
194
- var highlight = {};
195
- highlight.highlightChar = "\u000f";
196
- highlight.regExpfillOneCharacterGaps = makeRegExp(
197
- highlight.highlightChar + "(?!" + highlight.highlightChar + ")[^a0]" + highlight.highlightChar,
198
- "g"
199
- );
200
- /** @param {string} s */
201
- highlight.initBitmap = function (s) {
202
- return s;
203
- };
204
- /** @param {string} s */
205
- /** @param {string} bitmap */
206
- /** @param {RegExp} regex */
207
- highlight.calcBitmap = function (s, bitmap, regex) {
208
- var lastS;
209
- var m;
210
- while (s !== lastS && (m = s.match(regex)) && m[0].length) {
211
- lastS = s;
212
- s = m[1] + Array(m[2].length + 1).join(highlight.highlightChar) + m[3];
213
- }
214
- if (lastS === s) {
215
- // throw new Error("JsSearch internal bug - Highlighting did not change");
216
- console.warn("JsSearch internal warning - Highlighting did not change");
217
- }
218
- for (var i = s.length - 1; i >= 0; i--) {
219
- if (s[i] === highlight.highlightChar) {
220
- bitmap = bitmap.substr(0, i) + highlight.highlightChar + bitmap.substr(i + 1);
221
- }
222
- }
223
- return bitmap;
224
- };
225
- /** @param {string} s */
226
- /** @param {string} bitmap */
227
- highlight.applyBitmap = function (s, bitmap) {
228
- var on = false;
229
- if (!bitmap) {
230
- return undefined;
231
- }
232
- // fill one-character gaps
233
- bitmap = bitmap.replace(
234
- highlight.regExpfillOneCharacterGaps,
235
- highlight.highlightChar + highlight.highlightChar + highlight.highlightChar
236
- );
237
- // insert <b>'s
238
- for (var i = bitmap.length - 1; i >= 0; i--) {
239
- if (bitmap[i] === highlight.highlightChar && !on) {
240
- s = s.substr(0, i + 1) + "</b>" + s.substr(i + 1);
241
- on = true;
242
- }
243
- if (bitmap[i] !== highlight.highlightChar && on) {
244
- s = s.substr(0, i + 1) + "<b>" + s.substr(i + 1);
245
- on = false;
246
- }
247
- }
248
- if (on) {
249
- s = "<b>" + s;
250
- }
251
- return s;
252
- };
253
-
254
- ////////////////////////////////////////////////////
255
- ///// ///
256
- //// Definition of algorithms ////
257
- /// /////
258
- ////////////////////////////////////////////////////
259
-
260
- /** @param {string} a */
261
- /** @param {any[]} opt */
262
- function _algorithms(a, opt) {
263
- var toBeReturned = {
264
- "contains-ranked": {
265
- /** @param {string} searchTerm */
266
- /** @return {SearchTermCompiled} */
267
- compileSearchTerm: function (searchTerm) {
268
- // data structure to work on
269
- /** @type {searchTermHalfCompiled} */
270
- var st = {
271
- original: options.shouldNormalize ? searchTerm.normalize("NFC") : searchTerm, // original string (unicode normalized)
272
- parsed: [],
273
- // { type: 'phrase', children: [words] }
274
- // { type: 'word', wOriginal: 'ab?', wRegExp: 'ab.', wRegExp: 'a.b.c.', containsWildcard: false, children: [characters] }
275
- // { type: 'character', cOriginal: '?', cRegExp: '.' }
276
- hasTrailingWhitespace: false
277
- };
278
-
279
- // helper functions
280
- /** @param {Word} word */
281
- function firstCharacterOriginal(word) {
282
- return word.children[0].cOriginal;
283
- }
284
- /** @param {Word} word */
285
- function lastCharacterOriginal(word) {
286
- return word.children[word.children.length - 1].cOriginal;
287
- }
288
- /** @param {string} lastSearchWord */
289
- function lookBehindEndOfWord(lastSearchWord) {
290
- if (lastSearchWord.match(regExps.Alpha_atEnd)) {
291
- return "(|[^a].*)"; // If the search terms ends in a letter, the following character must not be a letter.
292
- } else if (lastSearchWord.match(regExps.Num_atEnd)) {
293
- return "(|[^0].*)"; // If the search terms ends in a number, the following character must not be a number.
294
- }
295
- return "(.*)"; // This might not be 100% correct, but is the best we can do without lookbehinds
296
- } /** @return {PhraseOrWordOrCharacter[]} */ // with same type as type
297
- // helper function - recursively parse tree a and apply function f to element of type:type
298
- /** @param {PhraseOrWordOrCharacter[]} a */
299
- /** @param {'phrase'|'word'|'character'} type */
300
- /** @param {mapTypeFunction} f */ function mapType(a, type, f) {
301
- return a.map(function (b, i) {
302
- if (b.type !== type) {
303
- if (b.children) {
304
- b.children = mapType(b.children, type, f);
305
- return b;
306
- }
307
- return b;
308
- }
309
- return f(b, i, a[i - 1], a[i + 1]);
310
- });
311
- }
312
-
313
- //////////////////////////////////////
314
- ///// Step 1: Parse search terms /////
315
- //////////////////////////////////////
316
-
317
- //
318
- // Split searchTerm into phrases and words
319
- // - phrase = enclosed with ""
320
- //
321
- st.hasTrailingWhitespace = st.original.substr(-1) === " ";
322
- var a = st.original.replace(/\\\"/g, "\u0010").split('"'); // Escape escaped quotes and split at quotes
323
- /** @type {SearchTermParsed1} */
324
- var b = [];
325
- for (var i = 0; i < a.length; i++) {
326
- // eslint-disable-next-line no-control-regex
327
- a[i] = a[i].replace(/\u0010/g, '\\"'); // Unescape escaped quotes
328
- var words = a[i].split(" ").map(function (x) {
329
- /** @type {Word1} */
330
- var c = {
331
- type: "word",
332
- wOriginal: x,
333
- children: []
334
- };
335
- return c;
336
- });
337
- words = words.filter(function (w) {
338
- return w.wOriginal.length > 0;
339
- }); // remove empty words (e.g. ' computer')
340
- if (a[i].length) {
341
- if (i % 2) {
342
- b.push({
343
- type: "phrase",
344
- children: words
345
- });
346
- } else {
347
- b = b.concat(words);
348
- }
349
- }
350
- }
351
- st.parsed = b;
352
-
353
- //
354
- // Split into characters
355
- // - observing escapes
356
- //
357
-
358
- st.parsed = mapType(
359
- st.parsed,
360
- "word",
361
- /** @param {Word1} w */ function (w) {
362
- /** @type {Character1[]} */
363
- var b = [];
364
- var escape = false;
365
- var chars = w.wOriginal.split("");
366
- for (var i = 0; i < chars.length; i++) {
367
- if (escape) {
368
- escape = false;
369
- b.push(
370
- /** @type {Character1} */ {
371
- type: "character",
372
- cOriginal: "\\" + chars[i]
373
- }
374
- );
375
- } else if (chars[i] === "\\") {
376
- escape = true;
377
- } else {
378
- b.push(
379
- /** @type {Character1} */ {
380
- type: "character",
381
- cOriginal: chars[i]
382
- }
383
- );
384
- }
385
- }
386
- w.children = b;
387
- return w;
388
- }
389
- );
390
-
391
- //
392
- // Treat characters for their (special) meaning
393
- // e.g. aéö ->
394
- // [ {cOriginal: 'a', cRegExp: 'a' },
395
- // {cOriginal: 'é', cRegExp: 'e' },
396
- // {cOriginal: 'ö', cRegExp: '(?:a|ae)' }
397
- //
398
- st.parsed = mapType(
399
- st.parsed,
400
- "character",
401
- /** @param {Character} c */ function (c) {
402
- var r = c.cOriginal;
403
-
404
- if (r === "*") {
405
- // * wildcard - may be treated specially in next steps
406
- r = "[^\\s]*?";
407
- } else if (r === "?") {
408
- // ? wildcard - may be treated specially in next steps
409
- r = "[^\\s]";
410
- } else if (r.match(/\\[*?"\\]/)) {
411
- // \* \? \\
412
- } else {
413
- if (options.shouldNormalize) {
414
- r = r.normalize("NFKD");
415
- }
416
- r = r.replace(/[\[\]\/\{\}\(\)\+\.\\\^\$\|]/, "\\$&");
417
- r = r.replace(/a/i, "(?:a|ae)");
418
- r = r.replace(/o/i, "(?:o|oe)");
419
- r = r.replace(/u/i, "(?:u|ue)");
420
- r = r.replace(/ä/i, "(?:ae|a)");
421
- r = r.replace(/ö/i, "(?:oe|o)");
422
- r = r.replace(/ü/i, "(?:ue|u)");
423
- r = r.replace(/ß/i, "ss");
424
- r = r.replace(/æ/i, "ae");
425
- r = r.replace(/œ/i, "oe");
426
- if (options.shouldNormalize) {
427
- r = r.replace(/[\u0300-\u036f]/g, ""); // remove accent modifyer (é -> e)
428
- }
429
- }
430
- // Note: Has to be aligned with ***[1]***
431
-
432
- c.cRegExp = r;
433
- return c;
434
- }
435
- );
436
-
437
- //
438
- // Re-concatenate on word level
439
- // - adding wildcards
440
- // - adding interspersed non-alphanum characters for abc ~ ab-c
441
- //
442
- mapType(
443
- st.parsed,
444
- "word",
445
- /** @param {Word} w */ function (w) {
446
- w.containsWildcard = false;
447
- var ret1 = "";
448
- var ret2 = "";
449
- for (var i = 0; i < w.children.length; i++) {
450
- if (
451
- i > 0 &&
452
- w.children[i].cOriginal.match(regExps.AlphaNum_atBegin) &&
453
- w.children[i - 1].cOriginal.match(regExps.AlphaNum_atBegin)
454
- ) {
455
- ret2 += "[^a0]*"; // interspersed non-alpnum character
456
- }
457
- if (i < w.children.length - 1) {
458
- // if not last character
459
- ret1 += w.children[i].cRegExp;
460
- ret2 += w.children[i].cRegExp;
461
- }
462
- if (w.children[i].cOriginal === "*" || w.children[i].cOriginal === "?") {
463
- w.containsWildcard = true;
464
- }
465
- }
466
- // last character
467
- var c = w.children[w.children.length - 1];
468
- var last = "";
469
- if (c.cOriginal === "*") {
470
- // if * at end, highlight till end of word
471
- last = "(?:[a]+(?=[^a]|$)|[0]+(?=[^0]|$)|[^\\s]*?|)"; // deliberately [^\\s] and not [^\\sa0], for conditional word boundaries "AB 123* 789" ~ AB123456CDEF789
472
- } else if (c.cOriginal === "?") {
473
- last = "(?:[a](?=[^a]|$)|[0](?=[^0]|$)|[^\\sa0](?=[\\sa0]))";
474
- } else {
475
- last = c.cRegExp;
476
- }
477
- w.wRegExp = ret1 + last;
478
- w.wRegExp2 = ret2 + last; // with interspersed non-alphanum characters
479
- return w;
480
- }
481
- );
482
-
483
- ////////////////////////////////////////////////////////////
484
- ///// Step 2: Create RegExps out of parsed search term /////
485
- ////////////////////////////////////////////////////////////
486
-
487
- var containsJustSimpleWords = true;
488
- /** @type {SearchTermCompiled} */
489
- var compiledRegExps = st.parsed.map(function (s) {
490
- var ret = [];
491
- // exact matching
492
- if (s.type === "phrase") {
493
- containsJustSimpleWords = false;
494
- s.children = s.children.filter(
495
- // phrase "a * * ** b" -> "a * b"
496
- /** @param {Word} y */
497
- /** @param {number} i */
498
- function (y, i) {
499
- return (
500
- i === s.children.length - 1 ||
501
- !s.children[i].wOriginal.match(/^\*+$/) ||
502
- !s.children[i + 1].wOriginal.match(/^\*+$/)
503
- );
504
- }
505
- );
506
- s.children = s.children.filter(
507
- // phrase "* a b *" -> "a b"
508
- /** @param {Word} y */
509
- /** @param {number} i */
510
- function (y, i) {
511
- return (
512
- (i !== 0 && i !== s.children.length - 1) ||
513
- !y.wOriginal.match(/^\*+$/)
514
- );
515
- }
516
- );
517
- if (!s.children.length) {
518
- // phrase consisted just of * wildcards
519
- ret.push({
520
- r: "^",
521
- score: opt[0],
522
- applyHighlighting: false
523
- });
524
- } else {
525
- var middle = "";
526
- mapType(
527
- s.children,
528
- "word",
529
- /** @param {Word} word */
530
- /** @param {Word} pre */
531
- /** @param {Word} succ */
532
- function (word, i, pre, succ) {
533
- if (word.wOriginal !== "*") {
534
- // no wildcard
535
- if (
536
- i !== 0 &&
537
- pre.wOriginal !== "*" &&
538
- (!succ || succ.wOriginal !== "*")
539
- ) {
540
- // regexp for join between phrasal words
541
- if (
542
- !(
543
- pre.wOriginal.match(regExps.Alpha_atEnd) &&
544
- word.wOriginal.match(regExps.Alpha_atBegin)
545
- ) &&
546
- !(
547
- pre.wOriginal.match(regExps.Num_atEnd) &&
548
- word.wOriginal.match(regExps.Num_atEnd)
549
- )
550
- ) {
551
- middle += "[^a0]*"; // When phrase has Letter/Number boundary or Number/Letter boundary ("AA 123"|~|AA123) --> expected: non-letter characters OR nothing
552
- } else {
553
- middle += "[^a0]+"; // Normally, phrasal terms must be separated by at least one non-letter/non-number character.
554
- }
555
- }
556
- middle += word.wRegExp;
557
-
558
- // a stand-alone * wildcard - that gets complicated, because of the potential wordbreaks at letter/digit boundaries
559
- } else if (
560
- lastCharacterOriginal(pre).match(regExps.Alpha_atBegin) &&
561
- firstCharacterOriginal(succ).match(regExps.Alpha_atBegin)
562
- ) {
563
- // letter * letter
564
- middle += "(?:[^a]|[^a].*?[^a])";
565
- } else if (
566
- lastCharacterOriginal(pre).match(regExps.Num_atEnd) &&
567
- firstCharacterOriginal(succ).match(regExps.Num_atEnd)
568
- ) {
569
- // number * number
570
- middle += "(?:[^0]|[^0].*?[^0])";
571
- } else if (
572
- lastCharacterOriginal(pre).match(regExps.Alpha_atBegin) &&
573
- firstCharacterOriginal(succ).match(regExps.Num_atEnd)
574
- ) {
575
- // letter * number
576
- middle += ".*?";
577
- } else if (
578
- lastCharacterOriginal(pre).match(regExps.Num_atEnd) &&
579
- firstCharacterOriginal(succ).match(regExps.Alpha_atBegin)
580
- ) {
581
- // number * letter
582
- middle += ".*?";
583
- } else if (
584
- lastCharacterOriginal(pre) === "*" &&
585
- succ &&
586
- firstCharacterOriginal(succ).match(regExps.Alpha_atBegin)
587
- ) {
588
- // xxx* * letter
589
- middle += ".*?";
590
- } else if (
591
- lastCharacterOriginal(pre) === "*" &&
592
- succ &&
593
- firstCharacterOriginal(succ).match(regExps.Num_atEnd)
594
- ) {
595
- // xxx* * letter
596
- middle += ".*?";
597
- } else {
598
- middle += "(?:[^a0]|[^a0].*?[^a0])";
599
- }
600
- }
601
- );
602
- var z = s.children[s.children.length - 1]; // last word
603
- ret.push({
604
- r:
605
- "^(.*[^a0]|.*[a](?=[0])|.*[0](?=[a])|)(" +
606
- middle +
607
- ")" +
608
- lookBehindEndOfWord(z.wOriginal) +
609
- "$",
610
- score: opt[0],
611
- applyHighlighting: true
612
- });
613
- }
614
- } else if (s.type === "word") {
615
- if (s.wOriginal.match("^\\*+$")) {
616
- // is * wildcard or **
617
- containsJustSimpleWords = false;
618
- ret.push({
619
- r: "^",
620
- score: opt[0],
621
- applyHighlighting: false
622
- });
623
- } else {
624
- ret.push({
625
- r:
626
- "^(.*[^a0]|.*[a](?=[0])|.*[0](?=[a])|)(" +
627
- s.wRegExp +
628
- ")" +
629
- lookBehindEndOfWord(s.wOriginal) +
630
- "$",
631
- score: opt[0],
632
- applyHighlighting: true
633
- });
634
- ret.push({
635
- r:
636
- "^(.*[^a0]|.*[a](?=[0])|.*[0](?=[a])|)(" +
637
- s.wRegExp2 +
638
- ")" +
639
- lookBehindEndOfWord(s.wOriginal) +
640
- "$",
641
- score: opt[1],
642
- applyHighlighting: true
643
- });
644
- }
645
- }
646
- // begins-with matching
647
- if (s.type === "word" && s.containsWildcard === false) {
648
- ret.push({
649
- r: "^(.*[^a0]|.*[a](?=[0])|.*[0](?=[a])|)(" + s.wRegExp + ")(.*?)$",
650
- score: opt[2],
651
- applyHighlighting: true
652
- });
653
- ret.push({
654
- r: "^(.*[^a0]|.*[a](?=[0])|.*[0](?=[a])|)(" + s.wRegExp2 + ")(.*?)$",
655
- score: opt[3],
656
- applyHighlighting: true
657
- });
658
- }
659
- // contains matching
660
- if (s.type === "word" && s.containsWildcard === false) {
661
- ret.push({
662
- r: "^(.*)(" + s.wRegExp + ")(.*?)$",
663
- score: opt[4],
664
- applyHighlighting: true
665
- });
666
- ret.push({
667
- r: "^(.*)(" + s.wRegExp2 + ")(.*?)$",
668
- score: opt[5],
669
- applyHighlighting: true
670
- });
671
- }
672
-
673
- for (var i = 0; i < ret.length; i++) {
674
- ret[i].r = makeRegExp(ret[i].r, "i");
675
- }
676
- return {
677
- type: "mandatory",
678
- r: ret
679
- };
680
- });
681
- // whole match almost literally (contains)
682
- if (containsJustSimpleWords && st.parsed.length > 1) {
683
- /** @type {string[]} */
684
- var r = [];
685
- st.parsed.forEach(function (s) {
686
- r.push(s.wRegExp);
687
- });
688
- compiledRegExps.push({
689
- type: "optional",
690
- r: [
691
- {
692
- r: makeRegExp(
693
- "^(.*[^a0]|.*[a](?=[0])|.*[0](?=[a])|)" + r.join("\\s+"),
694
- "i"
695
- ),
696
- score: opt[6],
697
- applyHighlighting: false
698
- }
699
- ]
700
- });
701
- }
702
-
703
- // return
704
- return compiledRegExps;
705
- },
706
- /** @param {string} testTerm */
707
- /** @return {TestTermCompiled} */
708
- compileTestTerm: function (testTerm) {
709
- /** @type {TestTermCompiled} */
710
- var tt = {
711
- original: "",
712
- normalizationMap: [],
713
- useNormalizationMap: false,
714
- normalized: ""
715
- };
716
- tt.original = options.shouldNormalize ? testTerm.normalize("NFC") : testTerm; // original string (unicode normalized)
717
- tt.normalized = tt.original
718
- .split("")
719
- .map(function (r) {
720
- r = r.replace(/ä/i, "ae");
721
- r = r.replace(/ö/i, "oe");
722
- r = r.replace(/ü/i, "ue");
723
- r = r.replace(/ß/i, "ss");
724
- r = r.replace(/æ/i, "ae");
725
- r = r.replace(/œ/i, "oe");
726
- r = r.replace(/(\n|\r)/m, " ");
727
- if (options.shouldNormalize) {
728
- r = r.normalize("NFKD");
729
- r = r.replace(/[\u0300-\u036f]/g, ""); // remove accent modifyer (é -> e)
730
- }
731
- tt.normalizationMap.push(r.length); // [1, 1, 2, 1] means 3rd original character was replaced by 2 characters in normalization
732
- if (r.length !== 1) {
733
- tt.useNormalizationMap = true;
734
- }
735
- return r;
736
- })
737
- .join("");
738
- // Note: Has to be aligned with ***[1]***
739
- return tt;
740
- }
741
- }
742
- };
743
- return toBeReturned[a];
744
- }
745
-
746
- ////////////////////////////////////////////////////
747
- ///// ///
748
- //// Determine hits ////
749
- /// /////
750
- ////////////////////////////////////////////////////
751
-
752
- /** @param {SearchTermCompiled} searchTermCompiled */
753
- /** @param {CompiledAndWeightedTestTerms} testTermsCompiled */
754
- function calcScoresAndHighlights(searchTermCompiled, testTermsCompiled) {
755
- var hit = true;
756
- var scoreMandatory = 0;
757
- var scoreOptional = 0;
758
- var countMandatory = 0;
759
- var bitmaps = {};
760
- var highlighted = {};
761
- var i, j, k;
762
- for (j in testTermsCompiled) {
763
- bitmaps[j] = highlight.initBitmap(testTermsCompiled[j].normalized);
764
- }
765
- for (i = 0; i < searchTermCompiled.length; i++) {
766
- var searchTermWord = searchTermCompiled[i];
767
- var hitPerSearchTermWord = false;
768
- var scorePerSearchTermWord = 0;
769
- for (j in testTermsCompiled) {
770
- var hitPerTestTerm = false;
771
- var applyHighlightingPerTestTerm = false;
772
- var scorePerTestTerm = 0;
773
- for (k = 0; k < searchTermWord.r.length; k++) {
774
- var searchTermWordRegExp = searchTermWord.r[k];
775
- if (testTermsCompiled[j].normalized.match(searchTermWordRegExp.r)) {
776
- hitPerTestTerm = true;
777
- if (searchTermWordRegExp.applyHighlighting) {
778
- applyHighlightingPerTestTerm = true;
779
- bitmaps[j] = highlight.calcBitmap(
780
- testTermsCompiled[j].normalized,
781
- bitmaps[j],
782
- searchTermWordRegExp.r
783
- );
784
- }
785
- scorePerTestTerm = Math.max(
786
- scorePerTestTerm,
787
- searchTermWordRegExp.score * testTermsCompiled[j].weight
788
- );
789
- }
790
- }
791
- scorePerSearchTermWord += scorePerTestTerm;
792
- if (hitPerTestTerm) {
793
- hitPerSearchTermWord = true;
794
- }
795
- if (applyHighlightingPerTestTerm) {
796
- highlighted[j] = true;
797
- }
798
- }
799
- if (searchTermWord.type === "mandatory") {
800
- countMandatory++;
801
- if (hitPerSearchTermWord) {
802
- scoreMandatory += scorePerSearchTermWord;
803
- } else {
804
- hit = false;
805
- }
806
- } else {
807
- scoreOptional += scorePerSearchTermWord;
808
- }
809
- }
810
- var score = scoreMandatory / countMandatory + scoreOptional;
811
- if (!hit) {
812
- score = -1;
813
- }
814
- for (j in highlighted) {
815
- // undo normalization (ae -> a)
816
- if (testTermsCompiled[j].useNormalizationMap) {
817
- for (k = 0; k < testTermsCompiled[j].normalizationMap.length; k++) {
818
- bitmaps[j] =
819
- bitmaps[j].substr(0, k + 1) +
820
- bitmaps[j].substr(k + testTermsCompiled[j].normalizationMap[k]);
821
- }
822
- }
823
- // apply bitmap
824
- highlighted[j] = highlight.applyBitmap(testTermsCompiled[j].original, bitmaps[j]);
825
- }
826
- return {
827
- score: score,
828
- highlighted: highlighted
829
- };
830
- }
831
-
832
- /** @param {any} opt */
833
- this.search = function (opt) {
834
- if (!Array.isArray(objects)) {
835
- throw new Error("You must specify objects to search in");
836
- }
837
-
838
- /// options
839
- var searchTerm;
840
- if (typeof opt === "string") {
841
- searchTerm = opt;
842
- }
843
- if (opt && typeof opt.searchFor === "string") {
844
- searchTerm = opt.searchFor;
845
- }
846
- if (searchTerm === undefined) {
847
- throw new Error("You must specify search terms");
848
- }
849
- var top = parseInt(opt.top, 10); // can be NaN
850
- var skip = parseInt(opt.skip, 10); // can ba NaN
851
-
852
- if (cachedSearchTerm !== searchTerm) {
853
- /// prepare search terms
854
- var compiledSearchTerm = algorithm.compileSearchTerm(searchTerm);
855
-
856
- /// iterate over objects
857
- cachedResults = [];
858
- for (var i = 0; i < objects.length; i++) {
859
- /// prepare test terms
860
- /** @type {CompiledAndWeightedTestTerms} */
861
- var compiledAndWeightedTestTerms = {};
862
- var a;
863
- for (var j = 0; j < fields.length; j++) {
864
- a = undefined;
865
- try {
866
- a = objects[i][fields[j].field];
867
- } finally {
868
- /* nothing to do */
869
- }
870
- if (typeof a === "string") {
871
- var c = algorithm.compileTestTerm(a);
872
- c.weight = fields[j].weight;
873
- compiledAndWeightedTestTerms[fields[j].field] = c;
874
- }
875
- }
876
- /// test
877
- var b = calcScoresAndHighlights(compiledSearchTerm, compiledAndWeightedTestTerms);
878
- if (b.score > -1) {
879
- cachedResults.push({
880
- object: objects[i],
881
- highlighted: b.highlighted,
882
- score: b.score
883
- });
884
- }
885
- }
886
-
887
- /// sort
888
- cachedResults = cachedResults.sort(function (a, b) {
889
- return b.score - a.score;
890
- });
891
- if (!that.debug) {
892
- cachedResults.forEach(function (a) {
893
- delete a.score;
894
- });
895
- }
896
-
897
- /// cache
898
- cachedSearchTerm = searchTerm;
899
- }
900
-
901
- /// cut
902
- var results;
903
- if (isNaN(top) && !isNaN(skip)) {
904
- results = cachedResults.slice(skip);
905
- } else if (!isNaN(top) && isNaN(skip)) {
906
- results = cachedResults.slice(0, top);
907
- } else if (!isNaN(top) && !isNaN(skip)) {
908
- results = cachedResults.slice(skip, skip + top);
909
- } else {
910
- results = cachedResults;
911
- }
912
-
913
- return {
914
- totalCount: cachedResults.length,
915
- results: results
916
- };
917
- };
918
- };
919
- });