@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.
- package/package.json +7 -2
- package/src/main/js/sap/ushell/.library +1 -1
- package/src/main/js/sap/ushell/ApplicationType.js +47 -939
- package/src/main/js/sap/ushell/CanvasShapesManager.js +2 -2
- package/src/main/js/sap/ushell/Container.js +10 -2
- package/src/main/js/sap/ushell/Fiori20Adapter.js +1 -1
- package/src/main/js/sap/ushell/Fiori20AdapterTest.js +1 -1
- package/src/main/js/sap/ushell/Layout.js +1 -1
- package/src/main/js/sap/ushell/NWBCInterface.js +1 -1
- package/src/main/js/sap/ushell/SessionHandler.js +7 -5
- package/src/main/js/sap/ushell/TechnicalParameters.js +1 -1
- package/src/main/js/sap/ushell/URLTemplateProcessor.js +1 -1
- package/src/main/js/sap/ushell/Ui5NativeServiceFactory.js +1 -1
- package/src/main/js/sap/ushell/Ui5ServiceFactory.js +1 -1
- package/src/main/js/sap/ushell/User.js +2 -2
- package/src/main/js/sap/ushell/_ApplicationType/guiResolution.js +3 -4
- package/src/main/js/sap/ushell/_ApplicationType/ui5Resolution.js +121 -0
- package/src/main/js/sap/ushell/_ApplicationType/urlResolution.js +105 -0
- package/src/main/js/sap/ushell/_ApplicationType/urlTemplateResolution.js +626 -0
- package/src/main/js/sap/ushell/_ApplicationType/utils.js +94 -3
- package/src/main/js/sap/ushell/_ApplicationType/wcfResolution.js +61 -0
- package/src/main/js/sap/ushell/_ApplicationType/wdaResolution.js +28 -0
- package/src/main/js/sap/ushell/_URLTemplateProcessor/DefinitionParameterSetBuilder.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/DependencyGraph.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/Functions.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/Resolvers.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/TemplateParameterParser.js +1 -1
- package/src/main/js/sap/ushell/_URLTemplateProcessor/utils.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/ClientSideTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/CommonDataModelAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/ConfigurationDefaultsAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/ContainerAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/LaunchPageAdapter.js +12 -3
- package/src/main/js/sap/ushell/adapters/cdm/PagesCommonDataModelAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/PersonalizationAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/modifyHome.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readCatalogs.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/readHome.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/_LaunchPage/uri.transform.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/util/AppForInbound.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/util/cdmSiteUtils.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/AdapterBase.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/LaunchPageAdapter.js +52 -3
- package/src/main/js/sap/ushell/adapters/cdm/v3/StaticGroupsAdapter.js +3 -4
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readApplications.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readCatalogs.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readHome.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readPages.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readUtils.js +1 -1
- package/src/main/js/sap/ushell/adapters/cdm/v3/_LaunchPage/readVisualizations.js +1 -1
- package/src/main/js/sap/ushell/adapters/cep/MenuAdapter.js +61 -53
- package/src/main/js/sap/ushell/adapters/cep/NavTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/cep/SearchCEPAdapter.js +222 -59
- package/src/main/js/sap/ushell/adapters/cflp/UserDefaultParameterPersistenceAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/AdapterContainer.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/AppStateAdapter.js +2 -2
- package/src/main/js/sap/ushell/adapters/local/ClientSideTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/ContainerAdapter.js +2 -2
- package/src/main/js/sap/ushell/adapters/local/LaunchPageAdapter.js +20 -4
- package/src/main/js/sap/ushell/adapters/local/MenuAdapter.js +35 -0
- package/src/main/js/sap/ushell/adapters/local/NavTargetResolutionAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/PageBuildingAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/PagePersistenceAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/PersonalizationAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/SearchAdapter.js +2 -10
- package/src/main/js/sap/ushell/adapters/local/SearchCEPAdapter.js +902 -218
- package/src/main/js/sap/ushell/adapters/local/SupportTicketAdapter.js +2 -3
- package/src/main/js/sap/ushell/adapters/local/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/UserDefaultParameterPersistenceAdapter.js +1 -1
- package/src/main/js/sap/ushell/adapters/local/UserInfoAdapter.js +12 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/AppCommunicationMgr.js +11 -6
- package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntime.js +20 -13
- package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimeContext.js +43 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/SessionHandlerAgent.js +14 -12
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/baseRta/Trigger.js +1 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/Component.js +8 -8
- package/src/main/js/sap/ushell/appRuntime/ui5/renderers/fiori2/RendererExtensions.js +7 -27
- package/src/main/js/sap/ushell/appRuntime/ui5/services/AppLifeCycleAgent.js +10 -7
- package/src/main/js/sap/ushell/appRuntime/ui5/services/AppState.js +7 -3
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Bookmark.js +18 -7
- package/src/main/js/sap/ushell/appRuntime/ui5/services/Container.js +99 -3
- package/src/main/js/sap/ushell/appRuntime/ui5/services/CrossApplicationNavigation.js +1 -1
- package/src/main/js/sap/ushell/appRuntime/ui5/services/ShellUIService.js +15 -66
- package/src/main/js/sap/ushell/appRuntime/ui5/services/adapters/Ui5ComponentLoaderAdapter.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/logger.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/_SchedulingAgent/state.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/cdm/cdm.constants.js +8 -8
- package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5datetimeformat.js +1 -1
- package/src/main/js/sap/ushell/bootstrap/common/common.configure.ui5language.js +2 -2
- package/src/main/js/sap/ushell/bootstrap/common/common.create.configcontract.core.js +32 -2
- package/src/main/js/sap/ushell/components/ComponentKeysHandler.js +4 -2
- package/src/main/js/sap/ushell/components/GroupsHelper.js +15 -13
- package/src/main/js/sap/ushell/components/HeaderManager.js +6 -1
- package/src/main/js/sap/ushell/components/HomepageManager.js +4 -7
- package/src/main/js/sap/ushell/components/MessagingHelper.js +2 -2
- package/src/main/js/sap/ushell/components/_HeaderManager/AddHeadEndItemsStrategy.js +4 -3
- package/src/main/js/sap/ushell/components/_HeaderManager/ControlManager.js +5 -7
- package/src/main/js/sap/ushell/components/_HeaderManager/ShellHeader.controller.js +12 -10
- package/src/main/js/sap/ushell/components/_HomepageManager/DashboardLoadingManager.js +3 -1
- package/src/main/js/sap/ushell/components/appfinder/AppFinderView.js +7 -4
- package/src/main/js/sap/ushell/components/appfinder/Catalog.controller.js +19 -5
- package/src/main/js/sap/ushell/components/appfinder/CatalogView.js +8 -12
- package/src/main/js/sap/ushell/components/appfinder/EasyAccess.controller.js +3 -3
- package/src/main/js/sap/ushell/components/appfinder/GroupListPopover.controller.js +3 -1
- package/src/main/js/sap/ushell/components/appfinder/HierarchyFolders.controller.js +1 -1
- package/src/main/js/sap/ushell/components/appfinder/HierarchyFoldersView.js +3 -1
- package/src/main/js/sap/ushell/components/appfinder/VisualizationOrganizerHelper.js +4 -3
- package/src/main/js/sap/ushell/components/appfinder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/AppLifeCycle.js +299 -563
- package/src/main/js/sap/ushell/components/applicationIntegration/Storage.js +25 -183
- package/src/main/js/sap/ushell/components/applicationIntegration/application/Application.js +41 -159
- package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxHandler.js +288 -315
- package/src/main/js/sap/ushell/components/applicationIntegration/application/BlueBoxesCache.js +66 -13
- package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPI.js +124 -58
- package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageAPIInterface.js +3 -4
- package/src/main/js/sap/ushell/components/applicationIntegration/application/PostMessageUtils.js +185 -0
- package/src/main/js/sap/ushell/components/applicationIntegration/application/WebGUIStatefulHandler.js +88 -0
- package/src/main/js/sap/ushell/components/applicationIntegration/configuration/AppMeta.js +3 -3
- package/src/main/js/sap/ushell/components/applicationIntegration/elements/model.js +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/relatedServices/RelatedServices.js +1 -1
- package/src/main/js/sap/ushell/components/applicationIntegration/relatedShellElements/RelatedShellElements.js +1 -1
- package/src/main/js/sap/ushell/components/cards/Configuration.controller.js +2 -3
- package/src/main/js/sap/ushell/components/cepsearchresult/app/Main.controller.js +4 -2
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n.properties +7 -7
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ar.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_bg.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ca.properties +26 -26
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_cy.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_da.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_de.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_el.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_en_GB.properties +3 -3
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_en_US_sappsd.properties +5 -5
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_es_MX.properties +26 -26
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_fi.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_fr_CA.properties +26 -26
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_hi.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_hr.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_hu.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_id.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_it.properties +26 -26
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_iw.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ja.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ko.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_lt.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_lv.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ms.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_nl.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_no.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_pl.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_pt.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_pt_PT.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ro.properties +26 -26
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_ru.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_sh.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_sl.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_sv.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_th.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_uk.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_vi.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_zh_CN.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/cards/searchresultwidget/i18n/i18n_zh_TW.properties +27 -27
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/controls/categories/Application.js +39 -79
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ar.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_bg.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ca.properties +15 -15
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_cy.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_da.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_de.properties +15 -15
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_el.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_en_GB.properties +2 -2
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_es_MX.properties +15 -15
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_fi.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_fr_CA.properties +15 -15
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hi.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hr.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_hu.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_id.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_it.properties +17 -17
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_iw.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ja.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ko.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_lt.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_lv.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ms.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_nl.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_no.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pl.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pt.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_pt_PT.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ro.properties +17 -17
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_ru.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_sl.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_th.properties +17 -17
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_uk.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_vi.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_zh_CN.properties +18 -18
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/i18n/i18n_zh_TW.properties +18 -18
- package/src/main/js/sap/ushell/components/container/ApplicationContainer.js +28 -589
- package/src/main/js/sap/ushell/components/container/IframePOSTUtils.js +225 -0
- package/src/main/js/sap/ushell/components/contentFinder/Component.js +28 -28
- package/src/main/js/sap/ushell/components/contentFinder/controller/AppSearch.controller.js +2 -2
- package/src/main/js/sap/ushell/components/contentFinder/controller/ContentFinderDialog.controller.js +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/controller/WidgetGallery.controller.js +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/model/GraphQLListBinding.js +2 -2
- package/src/main/js/sap/ushell/components/contentFinder/model/GraphQLModel.js +2 -2
- package/src/main/js/sap/ushell/components/contentFinder/model/formatter.js +2 -2
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources.properties +2 -2
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ar.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_bg.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ca.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cs.properties +1 -3
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_cy.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_da.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_de.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_el.properties +7 -9
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en.properties +1 -3
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_GB.properties +1 -3
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_US_sappsd.properties +1 -3
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_US_saprigi.properties +1 -3
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_en_US_saptrc.properties +1 -3
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_es.properties +1 -3
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_es_MX.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_et.properties +1 -3
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fi.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fr.properties +1 -3
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_fr_CA.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hi.properties +7 -9
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hr.properties +7 -9
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_hu.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_id.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_it.properties +10 -12
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_iw.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ja.properties +7 -9
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_kk.properties +1 -3
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ko.properties +7 -9
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_lt.properties +7 -9
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_lv.properties +7 -9
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ms.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_nl.properties +7 -9
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_no.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pl.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pt.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_pt_PT.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ro.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_ru.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sh.properties +1 -3
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sk.properties +1 -3
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sl.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_sv.properties +1 -3
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_th.properties +7 -9
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_tr.properties +1 -3
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_uk.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_vi.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_zh_CN.properties +8 -10
- package/src/main/js/sap/ushell/components/contentFinder/resources/resources_zh_TW.properties +7 -9
- package/src/main/js/sap/ushell/components/contentFinder/view/AppSearch.view.xml +7 -1
- package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchBox.fragment.xml +1 -1
- package/src/main/js/sap/ushell/components/contentFinder/view/AppSearchPaginated.view.xml +2 -3
- package/src/main/js/sap/ushell/components/contentFinder/view/WidgetGallery.view.xml +2 -8
- package/src/main/js/sap/ushell/components/factsheet/Component.js +1 -1
- package/src/main/js/sap/ushell/components/homepage/ActionMode.js +12 -3
- package/src/main/js/sap/ushell/components/homepage/Component.js +3 -1
- package/src/main/js/sap/ushell/components/homepage/DashboardContent.controller.js +25 -0
- package/src/main/js/sap/ushell/components/homepage/DashboardContent.view.js +12 -10
- package/src/main/js/sap/ushell/components/homepage/DashboardGroupsBox.js +1 -3
- package/src/main/js/sap/ushell/components/homepage/DashboardUIActions.js +13 -11
- package/src/main/js/sap/ushell/components/homepage/FLPAnalytics.js +11 -11
- package/src/main/js/sap/ushell/components/homepage/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/pages/ActionMode.js +6 -6
- package/src/main/js/sap/ushell/components/pages/Component.js +1 -1
- package/src/main/js/sap/ushell/components/pages/MyHomeImport.js +1 -1
- package/src/main/js/sap/ushell/components/pages/StateManager.js +3 -2
- package/src/main/js/sap/ushell/components/pages/controller/PageRuntime.controller.js +90 -20
- package/src/main/js/sap/ushell/components/pages/controller/PagesAndSpaceId.js +1 -1
- package/src/main/js/sap/ushell/components/pages/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/pages/view/PageRuntime.view.xml +1 -45
- package/src/main/js/sap/ushell/components/runtimeSwitcher/controller/RuntimeSwitcher.controller.js +4 -4
- package/src/main/js/sap/ushell/components/runtimeSwitcher/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/MenuBar/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/controller/NavigationBarMenu.controller.js +182 -46
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/CustomTreeItem.fragment.xml +4 -4
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/NavigationBarMenu.view.xml +1 -1
- package/src/main/js/sap/ushell/components/shell/NavigationBarMenu/view/NavigationBarMenuPopover.fragment.xml +8 -1
- package/src/main/js/sap/ushell/components/shell/Notifications/Component.js +14 -12
- package/src/main/js/sap/ushell/components/shell/PostLoadingHeaderEnhancement/Component.js +1 -3
- package/src/main/js/sap/ushell/components/shell/ProductSwitch/Component.js +8 -6
- package/src/main/js/sap/ushell/components/shell/Search/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/shell/SearchCEP/Component.js +16 -4
- package/src/main/js/sap/ushell/components/shell/SearchCEP/ProvidersExecuter.js +4 -4
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchCEP.controller.js +634 -612
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchFieldFragment.fragment.xml +2 -102
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/FrequentActivityProvider.js +28 -33
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/RecentSearchProvider.js +12 -14
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchProvider.js +80 -17
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/SearchServiceProvider.js +161 -0
- package/src/main/js/sap/ushell/components/shell/Settings/Component.js +1 -1
- package/src/main/js/sap/ushell/components/shell/Settings/ContentWrapper.fragment.xml +1 -3
- package/src/main/js/sap/ushell/components/shell/Settings/ErrorMessageHelper.js +4 -2
- package/src/main/js/sap/ushell/components/shell/Settings/UserSettings.controller.js +24 -26
- package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.controller.js +8 -7
- package/src/main/js/sap/ushell/components/shell/Settings/appearance/Appearance.view.xml +6 -5
- package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSelector.controller.js +3 -1
- package/src/main/js/sap/ushell/components/shell/Settings/userAccount/UserAccountSetting.fragment.xml +2 -0
- package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/UserDefaultsForm.js +5 -1
- package/src/main/js/sap/ushell/components/shell/Settings/userDefaults/controller/UserDefaultsSetting.controller.js +20 -2
- package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.controller.js +21 -10
- package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/LanguageRegionSelector.view.xml +8 -1
- package/src/main/js/sap/ushell/components/shell/Settings/userLanguageRegion/UserLanguageRegionEntry.js +12 -22
- package/src/main/js/sap/ushell/components/shell/UserActionsMenu/Component.js +4 -2
- package/src/main/js/sap/ushell/components/shell/UserActionsMenu/UserActionsMenu.controller.js +50 -46
- package/src/main/js/sap/ushell/components/shell/UserImage/Component.js +1 -1
- package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.controller.js +11 -3
- package/src/main/js/sap/ushell/components/tiles/applauncher/StaticTile.view.js +5 -0
- package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.controller.js +11 -2
- package/src/main/js/sap/ushell/components/tiles/applauncherdynamic/DynamicTile.view.js +5 -0
- package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/Component.js +12 -0
- package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.controller.js +24 -7
- package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.view.js +1 -1
- package/src/main/js/sap/ushell/components/tiles/cdm/applauncher/StaticTile.view.xml +1 -1
- package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/Component.js +24 -0
- package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.controller.js +71 -7
- package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.view.js +1 -1
- package/src/main/js/sap/ushell/components/tiles/cdm/applauncherdynamic/DynamicTile.view.xml +1 -1
- package/src/main/js/sap/ushell/components/visualizationOrganizer/Component.js +28 -28
- package/src/main/js/sap/ushell/components/workPageBuilder/Component.js +71 -34
- package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.accessibility.js +35 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.controller.js +550 -241
- package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageBuilder.layout.js +369 -0
- package/src/main/js/sap/ushell/components/workPageBuilder/controller/WorkPageHost.js +60 -4
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPage.js +24 -5
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageButton.js +2 -2
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageCell.js +69 -39
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumn.js +16 -11
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnRenderer.js +13 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageColumnResizer.js +2 -2
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRenderer.js +7 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRow.js +11 -10
- package/src/main/js/sap/ushell/components/workPageBuilder/controls/WorkPageRowRenderer.js +5 -0
- package/src/main/js/sap/ushell/components/workPageBuilder/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources.properties +15 -3
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ar.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_bg.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ca.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_cs.properties +32 -25
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_cy.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_da.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_de.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_el.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en.properties +26 -19
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_GB.properties +26 -19
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_sappsd.properties +38 -6
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_saprigi.properties +9 -2
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_en_US_saptrc.properties +35 -6
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_es.properties +31 -24
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_es_MX.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_et.properties +31 -24
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fi.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fr.properties +31 -24
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_fr_CA.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hi.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hr.properties +38 -31
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_hu.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_id.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_it.properties +35 -28
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_iw.properties +37 -30
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ja.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_kk.properties +31 -24
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ko.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_lt.properties +37 -30
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_lv.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ms.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_nl.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_no.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pl.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pt.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_pt_PT.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ro.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_ru.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sh.properties +31 -24
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sk.properties +31 -24
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sl.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_sv.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_th.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_tr.properties +31 -24
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_uk.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_vi.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_zh_CN.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/resources/resources_zh_TW.properties +36 -29
- package/src/main/js/sap/ushell/components/workPageBuilder/view/WorkPageBuilder.view.xml +88 -42
- package/src/main/js/sap/ushell/components/workPageRuntime/Component.js +1 -1
- package/src/main/js/sap/ushell/components/workPageRuntime/controller/WorkPageRuntime.controller.js +7 -6
- package/src/main/js/sap/ushell/components/workPageRuntime/manifest.json +1 -1
- package/src/main/js/sap/ushell/components/workPageRuntime/services/NavigationResolver.js +11 -11
- package/src/main/js/sap/ushell/components/workPageRuntime/services/WorkPage.js +35 -33
- package/src/main/js/sap/ushell/designtime/ApplicationContainer.designtime.js +1 -1
- package/src/main/js/sap/ushell/library.js +1 -1
- package/src/main/js/sap/ushell/navigationMode.js +1 -1
- package/src/main/js/sap/ushell/performance/FesrEnhancer.js +20 -21
- package/src/main/js/sap/ushell/performance/ShellAnalytics.js +47 -32
- package/src/main/js/sap/ushell/performance/StatisticalRecord.js +65 -31
- package/src/main/js/sap/ushell/plugins/appwarmup/Component.js +1 -1
- package/src/main/js/sap/ushell/renderers/fiori2/Renderer.js +7 -5
- package/src/main/js/sap/ushell/renderers/fiori2/RendererExtensions.js +0 -48
- package/src/main/js/sap/ushell/renderers/fiori2/Shell.controller.js +94 -90
- package/src/main/js/sap/ushell/renderers/fiori2/Shell.view.js +8 -3
- package/src/main/js/sap/ushell/renderers/fiori2/ShellAsync.view.js +1 -1
- package/src/main/js/sap/ushell/renderers/fiori2/ShellLayout.js +1 -1
- package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyApps.controller.js +93 -94
- package/src/main/js/sap/ushell/renderers/fiori2/allMyApps/AllMyAppsKeyboardHandler.js +8 -8
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources.properties +4 -2
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ar.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_bg.properties +21 -19
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ca.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_cs.properties +9 -7
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_cy.properties +4 -2
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_da.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_de.properties +16 -14
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_el.properties +4 -2
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en.properties +4 -2
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_GB.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_US_sappsd.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_US_saprigi.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_en_US_saptrc.properties +2 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_es.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_es_MX.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_et.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_fi.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_fr.properties +5 -3
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_fr_CA.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_hi.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_hr.properties +15 -13
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_hu.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_id.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_it.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_iw.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ja.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_kk.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ko.properties +5 -3
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_lt.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_lv.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ms.properties +6 -4
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_nl.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_no.properties +4 -2
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_pl.properties +9 -7
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_pt.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_pt_PT.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ro.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_ru.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sh.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sk.properties +4 -2
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sl.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_sv.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_th.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_tr.properties +4 -2
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_uk.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_vi.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_zh_CN.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/resources/resources_zh_TW.properties +3 -1
- package/src/main/js/sap/ushell/renderers/fiori2/search/searchComponent/manifest.json +1 -1
- package/src/main/js/sap/ushell/renderers/fiori2/utils.js +28 -0
- package/src/main/js/sap/ushell/services/AppConfiguration.js +24 -2
- package/src/main/js/sap/ushell/services/AppLifeCycle.js +52 -23
- package/src/main/js/sap/ushell/services/AppState.js +19 -7
- package/src/main/js/sap/ushell/services/Bookmark.js +55 -21
- package/src/main/js/sap/ushell/services/ClientSideTargetResolution.js +1 -1
- package/src/main/js/sap/ushell/services/CommonDataModel.js +1 -1
- package/src/main/js/sap/ushell/services/Configuration.js +1 -1
- package/src/main/js/sap/ushell/services/ConfigurationDefaults.js +1 -1
- package/src/main/js/sap/ushell/services/ContentExtensionAdapterFactory.js +1 -1
- package/src/main/js/sap/ushell/services/CrossApplicationNavigation.js +4 -4
- package/src/main/js/sap/ushell/services/DarkModeSupport.js +1 -1
- package/src/main/js/sap/ushell/services/EndUserFeedback.js +3 -3
- package/src/main/js/sap/ushell/services/LaunchPage.js +22 -4
- package/src/main/js/sap/ushell/services/Menu.js +5 -1
- package/src/main/js/sap/ushell/services/Message.js +8 -7
- package/src/main/js/sap/ushell/services/MessageBroker.js +1 -1
- package/src/main/js/sap/ushell/services/NavTargetResolution.js +1 -1
- package/src/main/js/sap/ushell/services/NavigationDataProvider.js +1 -1
- package/src/main/js/sap/ushell/services/Notifications.js +18 -15
- package/src/main/js/sap/ushell/services/PageBuilding.js +1 -1
- package/src/main/js/sap/ushell/services/PagePersistence.js +1 -1
- package/src/main/js/sap/ushell/services/PageReferencing.js +1 -1
- package/src/main/js/sap/ushell/services/Pages.js +1 -1
- package/src/main/js/sap/ushell/services/Personalization.js +10 -8
- package/src/main/js/sap/ushell/services/PluginManager.js +30 -8
- package/src/main/js/sap/ushell/services/ReferenceResolver.js +1 -1
- package/src/main/js/sap/ushell/services/Search.js +1 -1
- package/src/main/js/sap/ushell/services/SearchCEP.js +284 -30
- package/src/main/js/sap/ushell/services/SearchableContent.js +77 -18
- package/src/main/js/sap/ushell/services/SmartNavigation.js +1 -1
- package/src/main/js/sap/ushell/services/SpaceContent.js +12 -4
- package/src/main/js/sap/ushell/services/SupportTicket.js +10 -7
- package/src/main/js/sap/ushell/services/UITracer.js +506 -0
- package/src/main/js/sap/ushell/services/URLParsing.js +11 -8
- package/src/main/js/sap/ushell/services/URLShortening.js +1 -1
- package/src/main/js/sap/ushell/services/URLTemplate.js +1 -1
- package/src/main/js/sap/ushell/services/Ui5ComponentLoader.js +1 -1
- package/src/main/js/sap/ushell/services/UsageAnalytics.js +6 -3
- package/src/main/js/sap/ushell/services/UserDefaultParameterPersistence.js +1 -1
- package/src/main/js/sap/ushell/services/UserDefaultParameters.js +19 -27
- package/src/main/js/sap/ushell/services/UserInfo.js +6 -5
- package/src/main/js/sap/ushell/services/UserRecents.js +1 -1
- package/src/main/js/sap/ushell/services/VisualizationDataProvider.js +1 -1
- package/src/main/js/sap/ushell/services/VisualizationInstantiation.js +1 -1
- package/src/main/js/sap/ushell/services/_AppState/AppStatePersistencyMethod.js +13 -2
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Formatter.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundIndex.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/InboundProvider.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/PrelaunchOperations.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Search.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/StagedLogger.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/SystemContext.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/Utils.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/VirtualInbounds.js +1 -1
- package/src/main/js/sap/ushell/services/_ClientSideTargetResolution/XAppStateProcessing.js +1 -1
- package/src/main/js/sap/ushell/services/_CommonDataModel/SiteConverter.js +1 -1
- package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/ContentExtensionAdapterConfig.js +1 -1
- package/src/main/js/sap/ushell/services/_ContentExtensionAdapterFactory/FeaturedGroupConfig.js +1 -1
- package/src/main/js/sap/ushell/services/_CrossApplicationNavigation/utils.js +1 -1
- package/src/main/js/sap/ushell/services/_MessageBroker/MessageBrokerEngine.js +9 -46
- package/src/main/js/sap/ushell/services/_PageReferencing/PageReferencer.js +1 -1
- package/src/main/js/sap/ushell/services/_Personalization/TransientPersonalizer.js +10 -16
- package/src/main/js/sap/ushell/services/_PluginManager/Extensions.js +1 -1
- package/src/main/js/sap/ushell/services/_PluginManager/HeaderExtensions.js +1 -1
- package/src/main/js/sap/ushell/services/_PluginManager/MenuExtensions.js +1 -1
- package/src/main/js/sap/ushell/services/_Ui5ComponentLoader/utils.js +1 -1
- package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstance.js +43 -11
- package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceCdm.js +44 -2
- package/src/main/js/sap/ushell/services/_VisualizationInstantiation/VizInstanceLink.js +12 -4
- package/src/main/js/sap/ushell/services/{_AppState → appstate}/AppState.js +1 -1
- package/src/main/js/sap/ushell/services/appstate/AppStatePersistencyMethod.js +14 -0
- package/src/main/js/sap/ushell/services/{_AppState → appstate}/SequentializingAdapter.js +1 -1
- package/src/main/js/sap/ushell/services/{_AppState → appstate}/WindowAdapter.js +1 -1
- package/src/main/js/sap/ushell/support/plugins/flpConfig/FlpConfigurationPlugin.js +1 -1
- package/src/main/js/sap/ushell/themes/base/ContentFinder.less +0 -9
- package/src/main/js/sap/ushell/themes/base/MenuBar.less +3 -3
- package/src/main/js/sap/ushell/themes/base/SearchCEP.less +32 -198
- package/src/main/js/sap/ushell/themes/base/SearchFLP.less +5 -0
- package/src/main/js/sap/ushell/themes/base/ShellAppTitle.less +10 -30
- package/src/main/js/sap/ushell/themes/base/WorkPage.less +7 -24
- package/src/main/js/sap/ushell/themes/base/WorkPageCell.less +57 -20
- package/src/main/js/sap/ushell/themes/base/WorkPageColumn.less +37 -12
- package/src/main/js/sap/ushell/themes/base/WorkPageColumnResizer.less +59 -0
- package/src/main/js/sap/ushell/themes/base/WorkPageRow.less +12 -37
- package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.eot +0 -0
- package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.json +2 -1
- package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.ttf +0 -0
- package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.woff +0 -0
- package/src/main/js/sap/ushell/themes/base/fonts/BusinessSuiteInAppSymbols.woff2 +0 -0
- package/src/main/js/sap/ushell/themes/base/fonts/horizon/BusinessSuiteInAppSymbols.eot +0 -0
- package/src/main/js/sap/ushell/themes/base/fonts/horizon/BusinessSuiteInAppSymbols.ttf +0 -0
- package/src/main/js/sap/ushell/themes/base/fonts/horizon/BusinessSuiteInAppSymbols.woff +0 -0
- package/src/main/js/sap/ushell/themes/base/fonts/horizon/BusinessSuiteInAppSymbols.woff2 +0 -0
- package/src/main/js/sap/ushell/themes/sap_belize/ShellHeader.less +1 -11
- package/src/main/js/sap/ushell/themes/sap_belize_hcb/ShellHeader.less +0 -11
- package/src/main/js/sap/ushell/themes/sap_belize_hcw/ShellHeader.less +1 -13
- package/src/main/js/sap/ushell/themes/sap_fiori_3/ShellHeader.less +1 -9
- package/src/main/js/sap/ushell/themes/sap_fiori_3_dark/ShellHeader.less +1 -9
- package/src/main/js/sap/ushell/themes/sap_fiori_3_hcb/ShellHeader.less +1 -10
- package/src/main/js/sap/ushell/themes/sap_fiori_3_hcw/ShellHeader.less +0 -12
- package/src/main/js/sap/ushell/themes/sap_hcb/ShellHeader.less +0 -12
- package/src/main/js/sap/ushell/themes/sap_horizon/SearchCEP.less +16 -96
- package/src/main/js/sap/ushell/themes/sap_horizon/ShellAppTitle.less +1 -9
- package/src/main/js/sap/ushell/themes/sap_horizon/WorkPageCell.less +2 -7
- package/src/main/js/sap/ushell/themes/sap_horizon_dark/SearchCEP.less +15 -124
- package/src/main/js/sap/ushell/themes/sap_horizon_dark/ShellAppTitle.less +1 -7
- package/src/main/js/sap/ushell/themes/sap_horizon_dark/WorkPageCell.less +2 -7
- package/src/main/js/sap/ushell/themes/sap_horizon_hcb/SearchCEP.less +10 -196
- package/src/main/js/sap/ushell/themes/sap_horizon_hcb/ShellAppTitle.less +0 -9
- package/src/main/js/sap/ushell/themes/sap_horizon_hcb/WorkPageCell.less +2 -7
- package/src/main/js/sap/ushell/themes/sap_horizon_hcw/SearchCEP.less +9 -189
- package/src/main/js/sap/ushell/themes/sap_horizon_hcw/ShellAppTitle.less +0 -11
- package/src/main/js/sap/ushell/themes/sap_horizon_hcw/WorkPageCell.less +2 -7
- package/src/main/js/sap/ushell/ui/ContentNodeSelector.js +5 -0
- package/src/main/js/sap/ushell/ui/QuickAccess.js +11 -2
- package/src/main/js/sap/ushell/ui/ShellHeader.fragment.xml +5 -1
- package/src/main/js/sap/ushell/ui/ShellHeader.js +5 -1
- package/src/main/js/sap/ushell/ui/ShellHeaderRenderer.js +1 -1
- package/src/main/js/sap/ushell/ui/bookmark/SaveOnPage.view.xml +15 -17
- package/src/main/js/sap/ushell/ui/cards/RecentActivitiesExtension.js +1 -1
- package/src/main/js/sap/ushell/ui/footerbar/AddBookmarkButton.js +9 -8
- package/src/main/js/sap/ushell/ui/footerbar/SaveAsTile.view.js +6 -6
- package/src/main/js/sap/ushell/ui/launchpad/ExtendedChangeDetection.js +1 -1
- package/src/main/js/sap/ushell/ui/launchpad/Page.js +8 -16
- package/src/main/js/sap/ushell/ui/launchpad/Section.js +732 -171
- package/src/main/js/sap/ushell/ui/launchpad/SectionRenderer.js +66 -0
- package/src/main/js/sap/ushell/ui/launchpad/Tile.js +16 -2
- package/src/main/js/sap/ushell/ui/launchpad/TileRenderer.js +3 -2
- package/src/main/js/sap/ushell/ui/launchpad/section/CompactArea.js +14 -1
- package/src/main/js/sap/ushell/ui/shell/ShellAppTitle.js +115 -63
- package/src/main/js/sap/ushell/ui/shell/ShellHeadItem.js +1 -1
- package/src/main/js/sap/ushell/ui/shell/ShellNavigationMenu.js +30 -76
- package/src/main/js/sap/ushell/ui/shell/SysInfoBar.js +1 -1
- package/src/main/js/sap/ushell/ui/shell/ToolArea.js +9 -5
- package/src/main/js/sap/ushell/ui/shell/ToolAreaItem.js +1 -1
- package/src/main/js/sap/ushell/ui/utils.js +1 -1
- package/src/main/js/sap/ushell/ui5service/ShellUIService.js +7 -2
- package/src/main/js/sap/ushell/ui5service/UserStatus.js +1 -1
- package/src/main/js/sap/ushell/utils/DynamicTileRequest.js +23 -2
- package/src/main/js/sap/ushell/utils/UrlShortening.js +1 -1
- package/src/main/js/sap/ushell/utils/WindowUtils.js +2 -2
- package/src/main/js/sap/ushell/utils.js +108 -0
- package/src/test/js/sap/ushell/bootstrap/sandbox.js +1 -1
- package/ui5.yaml +27 -26
- package/src/main/js/sap/ushell/adapters/cep/SearchCEPApplicationAdapter.js +0 -264
- package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimePostMessage.js +0 -82
- package/src/main/js/sap/ushell/appRuntime/ui5/AppRuntimePostMessageAPI.js +0 -34
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n.properties +0 -5
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ar.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_bg.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ca.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_cs.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_cy.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_da.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_de.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_el.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_GB.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_US_sappsd.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_US_saprigi.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_en_US_saptrc.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_es.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_es_MX.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_et.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_fi.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_fr.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_fr_CA.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_hi.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_hr.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_hu.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_id.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_it.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_iw.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ja.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_kk.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ko.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_lt.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_lv.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ms.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_nl.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_no.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_pl.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_pt.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_pt_PT.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ro.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_ru.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sh.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sk.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sl.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_sv.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_th.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_tr.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_uk.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_vi.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_zh_CN.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/i18n/i18n_zh_TW.properties +0 -2
- package/src/main/js/sap/ushell/appRuntime/ui5/plugins/scriptAgent/manifest.json +0 -66
- package/src/main/js/sap/ushell/components/cepsearchresult/app/util/jsSearch.js +0 -919
- package/src/main/js/sap/ushell/components/shell/SearchCEP/SearchProviders/NavigationSvcSearchProvider.js +0 -126
- package/src/main/js/sap/ushell/ui/launchpad/Section.control.xml +0 -243
- /package/src/main/js/sap/ushell/services/{_AppState → appstate}/AppStatePersistencySettings.js +0 -0
- /package/src/main/js/sap/ushell/services/{_AppState → appstate}/LimitedBuffer.js +0 -0
- /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
|
-
});
|