@diplodoc/components 5.7.3 → 5.9.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/build/cjs/components/BookmarkButton/BookmarkButton.css.map +1 -1
- package/build/cjs/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
- package/build/cjs/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
- package/build/cjs/components/Contributors/Contributors.css.map +1 -1
- package/build/cjs/components/Control/Control.css.map +1 -1
- package/build/cjs/components/Controls/Controls.css.map +1 -1
- package/build/cjs/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
- package/build/cjs/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
- package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
- package/build/cjs/components/DocLayout/DocLayout.css.map +1 -1
- package/build/cjs/components/DocLeadingPage/DocLeadingPage.css.map +1 -1
- package/build/cjs/components/DocPage/DocPage.css.map +1 -1
- package/build/cjs/components/DocPageTitle/DocPageTitle.css.map +1 -1
- package/build/cjs/components/ErrorPage/ErrorPage.css.map +1 -1
- package/build/cjs/components/Feedback/Feedback.css.map +1 -1
- package/build/cjs/components/Mark/Mark.css.map +1 -1
- package/build/cjs/components/MiniToc/MiniToc.css.map +1 -1
- package/build/cjs/components/MobileControls/MobileControl/MobileControl.css.map +1 -1
- package/build/cjs/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +1 -1
- package/build/cjs/components/MobileControls/MobileControls.css.map +1 -1
- package/build/cjs/components/NeuroExpertModal/NeuroExpertModal.css.map +1 -1
- package/build/cjs/components/Notification/Notification.css.map +1 -1
- package/build/cjs/components/Paginator/Paginator.css.map +1 -1
- package/build/cjs/components/SearchBar/SearchBar.css.map +1 -1
- package/build/cjs/components/SearchItem/SearchItem.css.map +1 -1
- package/build/cjs/components/SearchPage/SearchPage.css.map +1 -1
- package/build/cjs/components/SearchSuggest/index.css.map +1 -1
- package/build/cjs/components/ShareButton/ShareButton.css.map +1 -1
- package/build/cjs/components/SubNavigation/SubNavigation.css.map +1 -1
- package/build/cjs/components/Subscribe/Subscribe.css.map +1 -1
- package/build/cjs/components/Toc/Toc.css.map +1 -1
- package/build/cjs/components/TocItem/TocItem.css.map +1 -1
- package/build/cjs/components/TocItem/TocItem.js +30 -3
- package/build/cjs/components/TocItem/TocItem.js.map +2 -2
- package/build/cjs/components/TocLable/TocLabel.css.map +1 -1
- package/build/cjs/components/TocNavPanel/TocNavPanel.css.map +1 -1
- package/build/cjs/components/ToggleArrow/ToggleArrow.css.map +1 -1
- package/build/cjs/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
- package/build/cjs/components/Widgets/Widgets.css.map +1 -1
- package/build/cjs/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
- package/build/cjs/components/navigation/DropdownContent/Column/Column.css +8 -0
- package/build/cjs/components/navigation/DropdownContent/Column/Column.css.map +7 -0
- package/build/cjs/components/navigation/DropdownContent/Column/Column.d.ts +7 -0
- package/build/cjs/components/navigation/DropdownContent/Column/Column.js +46 -0
- package/build/cjs/components/navigation/DropdownContent/Column/Column.js.map +7 -0
- package/build/cjs/components/navigation/DropdownContent/Column/index.d.ts +1 -0
- package/build/cjs/components/navigation/DropdownContent/Column/index.js +27 -0
- package/build/cjs/components/navigation/DropdownContent/Column/index.js.map +7 -0
- package/build/cjs/components/navigation/DropdownContent/DropdownContent.css +12 -0
- package/build/cjs/components/navigation/DropdownContent/DropdownContent.css.map +7 -0
- package/build/cjs/components/navigation/DropdownContent/DropdownContent.d.ts +7 -0
- package/build/cjs/components/navigation/DropdownContent/DropdownContent.js +47 -0
- package/build/cjs/components/navigation/DropdownContent/DropdownContent.js.map +7 -0
- package/build/cjs/components/navigation/DropdownContent/List/List.d.ts +6 -0
- package/build/cjs/components/navigation/DropdownContent/List/List.js +51 -0
- package/build/cjs/components/navigation/DropdownContent/List/List.js.map +7 -0
- package/build/cjs/components/navigation/DropdownContent/List/index.d.ts +1 -0
- package/build/cjs/components/navigation/DropdownContent/List/index.js +27 -0
- package/build/cjs/components/navigation/DropdownContent/List/index.js.map +7 -0
- package/build/cjs/components/navigation/DropdownContent/Section/Section.css +12 -0
- package/build/cjs/components/navigation/DropdownContent/Section/Section.css.map +7 -0
- package/build/cjs/components/navigation/DropdownContent/Section/Section.d.ts +7 -0
- package/build/cjs/components/navigation/DropdownContent/Section/Section.js +54 -0
- package/build/cjs/components/navigation/DropdownContent/Section/Section.js.map +7 -0
- package/build/cjs/components/navigation/DropdownContent/Section/index.d.ts +1 -0
- package/build/cjs/components/navigation/DropdownContent/Section/index.js +27 -0
- package/build/cjs/components/navigation/DropdownContent/Section/index.js.map +7 -0
- package/build/cjs/components/navigation/DropdownContent/index.d.ts +1 -0
- package/build/cjs/components/navigation/DropdownContent/index.js +27 -0
- package/build/cjs/components/navigation/DropdownContent/index.js.map +7 -0
- package/build/cjs/components/navigation/DropdownContent/utils.d.ts +2 -0
- package/build/cjs/components/navigation/DropdownContent/utils.js +38 -0
- package/build/cjs/components/navigation/DropdownContent/utils.js.map +7 -0
- package/build/cjs/components/navigation/Label/Label.css.map +1 -1
- package/build/cjs/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
- package/build/cjs/components/navigation/MobileDropdown/MobileDropdown.js +3 -13
- package/build/cjs/components/navigation/MobileDropdown/MobileDropdown.js.map +2 -2
- package/build/cjs/components/navigation/NavigationDropdown/ContentWrapper.d.ts +8 -0
- package/build/cjs/components/navigation/NavigationDropdown/ContentWrapper.js +63 -0
- package/build/cjs/components/navigation/NavigationDropdown/ContentWrapper.js.map +7 -0
- package/build/cjs/components/navigation/NavigationDropdown/NavigationDropdown.d.ts +4 -0
- package/build/cjs/components/navigation/NavigationDropdown/NavigationDropdown.js +113 -0
- package/build/cjs/components/navigation/NavigationDropdown/NavigationDropdown.js.map +7 -0
- package/build/cjs/components/navigation/NavigationDropdown/Popup/Popup.d.ts +9 -0
- package/build/cjs/components/navigation/NavigationDropdown/Popup/Popup.js +67 -0
- package/build/cjs/components/navigation/NavigationDropdown/Popup/Popup.js.map +7 -0
- package/build/cjs/components/navigation/NavigationDropdown/Popup/index.d.ts +1 -0
- package/build/cjs/components/navigation/NavigationDropdown/Popup/index.js +27 -0
- package/build/cjs/components/navigation/NavigationDropdown/Popup/index.js.map +7 -0
- package/build/cjs/components/navigation/NavigationDropdown/index.d.ts +1 -0
- package/build/cjs/components/navigation/NavigationDropdown/index.js +27 -0
- package/build/cjs/components/navigation/NavigationDropdown/index.js.map +7 -0
- package/build/cjs/components/navigation/Sidebar/Sidebar.css.map +1 -1
- package/build/cjs/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
- package/build/cjs/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
- package/build/cjs/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
- package/build/cjs/components/navigation/hooks/index.d.ts +2 -0
- package/build/cjs/components/navigation/hooks/index.js +5 -1
- package/build/cjs/components/navigation/hooks/index.js.map +2 -2
- package/build/cjs/components/navigation/hooks/useColumns.d.ts +7 -0
- package/build/cjs/components/navigation/hooks/useColumns.js +51 -0
- package/build/cjs/components/navigation/hooks/useColumns.js.map +7 -0
- package/build/cjs/components/navigation/hooks/useSections.d.ts +7 -0
- package/build/cjs/components/navigation/hooks/useSections.js +77 -0
- package/build/cjs/components/navigation/hooks/useSections.js.map +7 -0
- package/build/cjs/components/navigation/index.d.ts +1 -0
- package/build/cjs/components/navigation/index.js +2 -0
- package/build/cjs/components/navigation/index.js.map +2 -2
- package/build/cjs/components/navigation/types.d.ts +11 -0
- package/build/cjs/models/index.d.ts +2 -0
- package/build/cjs/models/index.js.map +2 -2
- package/build/cjs/shared/libs/analytics/adapters/yandex-metrika-adapter.d.ts +2 -0
- package/build/cjs/shared/libs/analytics/adapters/yandex-metrika-adapter.js +2 -0
- package/build/cjs/shared/libs/analytics/adapters/yandex-metrika-adapter.js.map +2 -2
- package/build/cjs/shared/libs/analytics/analytics.d.ts +2 -2
- package/build/cjs/shared/libs/analytics/analytics.js +7 -1
- package/build/cjs/shared/libs/analytics/analytics.js.map +2 -2
- package/build/cjs/shared/libs/analytics/constant.d.ts +3 -0
- package/build/cjs/shared/libs/analytics/constant.js +5 -1
- package/build/cjs/shared/libs/analytics/constant.js.map +2 -2
- package/build/cjs/shared/libs/analytics/index.d.ts +2 -2
- package/build/cjs/shared/libs/analytics/index.js +1 -0
- package/build/cjs/shared/libs/analytics/index.js.map +2 -2
- package/build/cjs/shared/libs/analytics/types.d.ts +5 -0
- package/build/esm/components/BookmarkButton/BookmarkButton.css.map +1 -1
- package/build/esm/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
- package/build/esm/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
- package/build/esm/components/Contributors/Contributors.css.map +1 -1
- package/build/esm/components/Control/Control.css.map +1 -1
- package/build/esm/components/Controls/Controls.css.map +1 -1
- package/build/esm/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
- package/build/esm/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
- package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
- package/build/esm/components/DocLayout/DocLayout.css.map +1 -1
- package/build/esm/components/DocLeadingPage/DocLeadingPage.css.map +1 -1
- package/build/esm/components/DocPage/DocPage.css.map +1 -1
- package/build/esm/components/DocPageTitle/DocPageTitle.css.map +1 -1
- package/build/esm/components/ErrorPage/ErrorPage.css.map +1 -1
- package/build/esm/components/Feedback/Feedback.css.map +1 -1
- package/build/esm/components/Mark/Mark.css.map +1 -1
- package/build/esm/components/MiniToc/MiniToc.css.map +1 -1
- package/build/esm/components/MobileControls/MobileControl/MobileControl.css.map +1 -1
- package/build/esm/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +1 -1
- package/build/esm/components/MobileControls/MobileControls.css.map +1 -1
- package/build/esm/components/NeuroExpertModal/NeuroExpertModal.css.map +1 -1
- package/build/esm/components/Notification/Notification.css.map +1 -1
- package/build/esm/components/Paginator/Paginator.css.map +1 -1
- package/build/esm/components/SearchBar/SearchBar.css.map +1 -1
- package/build/esm/components/SearchItem/SearchItem.css.map +1 -1
- package/build/esm/components/SearchPage/SearchPage.css.map +1 -1
- package/build/esm/components/SearchSuggest/index.css.map +1 -1
- package/build/esm/components/ShareButton/ShareButton.css.map +1 -1
- package/build/esm/components/SubNavigation/SubNavigation.css.map +1 -1
- package/build/esm/components/Subscribe/Subscribe.css.map +1 -1
- package/build/esm/components/Toc/Toc.css.map +1 -1
- package/build/esm/components/TocItem/TocItem.css.map +1 -1
- package/build/esm/components/TocItem/TocItem.js +30 -3
- package/build/esm/components/TocItem/TocItem.js.map +2 -2
- package/build/esm/components/TocLable/TocLabel.css.map +1 -1
- package/build/esm/components/TocNavPanel/TocNavPanel.css.map +1 -1
- package/build/esm/components/ToggleArrow/ToggleArrow.css.map +1 -1
- package/build/esm/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
- package/build/esm/components/Widgets/Widgets.css.map +1 -1
- package/build/esm/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
- package/build/esm/components/navigation/DropdownContent/Column/Column.css +8 -0
- package/build/esm/components/navigation/DropdownContent/Column/Column.css.map +7 -0
- package/build/esm/components/navigation/DropdownContent/Column/Column.d.ts +7 -0
- package/build/esm/components/navigation/DropdownContent/Column/Column.js +15 -0
- package/build/esm/components/navigation/DropdownContent/Column/Column.js.map +7 -0
- package/build/esm/components/navigation/DropdownContent/Column/index.d.ts +1 -0
- package/build/esm/components/navigation/DropdownContent/Column/index.js +6 -0
- package/build/esm/components/navigation/DropdownContent/Column/index.js.map +7 -0
- package/build/esm/components/navigation/DropdownContent/DropdownContent.css +12 -0
- package/build/esm/components/navigation/DropdownContent/DropdownContent.css.map +7 -0
- package/build/esm/components/navigation/DropdownContent/DropdownContent.d.ts +7 -0
- package/build/esm/components/navigation/DropdownContent/DropdownContent.js +16 -0
- package/build/esm/components/navigation/DropdownContent/DropdownContent.js.map +7 -0
- package/build/esm/components/navigation/DropdownContent/List/List.d.ts +6 -0
- package/build/esm/components/navigation/DropdownContent/List/List.js +20 -0
- package/build/esm/components/navigation/DropdownContent/List/List.js.map +7 -0
- package/build/esm/components/navigation/DropdownContent/List/index.d.ts +1 -0
- package/build/esm/components/navigation/DropdownContent/List/index.js +6 -0
- package/build/esm/components/navigation/DropdownContent/List/index.js.map +7 -0
- package/build/esm/components/navigation/DropdownContent/Section/Section.css +12 -0
- package/build/esm/components/navigation/DropdownContent/Section/Section.css.map +7 -0
- package/build/esm/components/navigation/DropdownContent/Section/Section.d.ts +7 -0
- package/build/esm/components/navigation/DropdownContent/Section/Section.js +23 -0
- package/build/esm/components/navigation/DropdownContent/Section/Section.js.map +7 -0
- package/build/esm/components/navigation/DropdownContent/Section/index.d.ts +1 -0
- package/build/esm/components/navigation/DropdownContent/Section/index.js +6 -0
- package/build/esm/components/navigation/DropdownContent/Section/index.js.map +7 -0
- package/build/esm/components/navigation/DropdownContent/index.d.ts +1 -0
- package/build/esm/components/navigation/DropdownContent/index.js +6 -0
- package/build/esm/components/navigation/DropdownContent/index.js.map +7 -0
- package/build/esm/components/navigation/DropdownContent/utils.d.ts +2 -0
- package/build/esm/components/navigation/DropdownContent/utils.js +7 -0
- package/build/esm/components/navigation/DropdownContent/utils.js.map +7 -0
- package/build/esm/components/navigation/Label/Label.css.map +1 -1
- package/build/esm/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
- package/build/esm/components/navigation/MobileDropdown/MobileDropdown.js +4 -20
- package/build/esm/components/navigation/MobileDropdown/MobileDropdown.js.map +2 -2
- package/build/esm/components/navigation/NavigationDropdown/ContentWrapper.d.ts +8 -0
- package/build/esm/components/navigation/NavigationDropdown/ContentWrapper.js +35 -0
- package/build/esm/components/navigation/NavigationDropdown/ContentWrapper.js.map +7 -0
- package/build/esm/components/navigation/NavigationDropdown/NavigationDropdown.d.ts +4 -0
- package/build/esm/components/navigation/NavigationDropdown/NavigationDropdown.js +85 -0
- package/build/esm/components/navigation/NavigationDropdown/NavigationDropdown.js.map +7 -0
- package/build/esm/components/navigation/NavigationDropdown/Popup/Popup.d.ts +9 -0
- package/build/esm/components/navigation/NavigationDropdown/Popup/Popup.js +36 -0
- package/build/esm/components/navigation/NavigationDropdown/Popup/Popup.js.map +7 -0
- package/build/esm/components/navigation/NavigationDropdown/Popup/index.d.ts +1 -0
- package/build/esm/components/navigation/NavigationDropdown/Popup/index.js +6 -0
- package/build/esm/components/navigation/NavigationDropdown/Popup/index.js.map +7 -0
- package/build/esm/components/navigation/NavigationDropdown/index.d.ts +1 -0
- package/build/esm/components/navigation/NavigationDropdown/index.js +6 -0
- package/build/esm/components/navigation/NavigationDropdown/index.js.map +7 -0
- package/build/esm/components/navigation/Sidebar/Sidebar.css.map +1 -1
- package/build/esm/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
- package/build/esm/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
- package/build/esm/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
- package/build/esm/components/navigation/hooks/index.d.ts +2 -0
- package/build/esm/components/navigation/hooks/index.js +5 -1
- package/build/esm/components/navigation/hooks/index.js.map +2 -2
- package/build/esm/components/navigation/hooks/useColumns.d.ts +7 -0
- package/build/esm/components/navigation/hooks/useColumns.js +30 -0
- package/build/esm/components/navigation/hooks/useColumns.js.map +7 -0
- package/build/esm/components/navigation/hooks/useSections.d.ts +7 -0
- package/build/esm/components/navigation/hooks/useSections.js +59 -0
- package/build/esm/components/navigation/hooks/useSections.js.map +7 -0
- package/build/esm/components/navigation/index.d.ts +1 -0
- package/build/esm/components/navigation/index.js +2 -0
- package/build/esm/components/navigation/index.js.map +2 -2
- package/build/esm/components/navigation/types.d.ts +11 -0
- package/build/esm/models/index.d.ts +2 -0
- package/build/esm/models/index.js.map +2 -2
- package/build/esm/shared/libs/analytics/adapters/yandex-metrika-adapter.d.ts +2 -0
- package/build/esm/shared/libs/analytics/adapters/yandex-metrika-adapter.js +2 -0
- package/build/esm/shared/libs/analytics/adapters/yandex-metrika-adapter.js.map +2 -2
- package/build/esm/shared/libs/analytics/analytics.d.ts +2 -2
- package/build/esm/shared/libs/analytics/analytics.js +7 -1
- package/build/esm/shared/libs/analytics/analytics.js.map +2 -2
- package/build/esm/shared/libs/analytics/constant.d.ts +3 -0
- package/build/esm/shared/libs/analytics/constant.js +5 -1
- package/build/esm/shared/libs/analytics/constant.js.map +2 -2
- package/build/esm/shared/libs/analytics/index.d.ts +2 -2
- package/build/esm/shared/libs/analytics/index.js +2 -1
- package/build/esm/shared/libs/analytics/index.js.map +2 -2
- package/build/esm/shared/libs/analytics/types.d.ts +5 -0
- package/build/index.css.map +1 -1
- package/build/themes/common/index.css.map +1 -1
- package/package.json +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/models/index.ts"],
|
|
4
|
-
"sourcesContent": ["import type {UseTranslationResponse} from 'react-i18next';\nimport type {Loc} from '../config/i18n';\nimport type {SuggestItemType} from '../components/SearchSuggest/types';\nimport type {LabelProps} from '@gravity-ui/uikit';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type TFunction = UseTranslationResponse<any, undefined>['t'];\n\nexport type OnChangeValue = (value: ControlTypes) => void;\nexport type ControlTypes =\n | string\n | boolean\n | Theme\n | Lang\n | TextSizes\n | FeedbackSendData\n | SubscribeData;\n\nexport enum Theme {\n Light = 'light',\n Dark = 'dark',\n}\n\nexport enum TextSizes {\n S = 's', // 13px\n M = 'm', // 15px\n L = 'l', // 17px\n}\n\nexport enum ControlSizes {\n M = 'm',\n L = 'l',\n XL = 'xl',\n}\n\nexport interface Config {\n lang?: string;\n loc?: Loc;\n localeCode?: string;\n}\n\nexport interface DocSettings {\n fullScreen?: boolean;\n singlePage?: boolean;\n wideFormat?: boolean;\n showMiniToc?: boolean;\n bookmarkedPage?: boolean;\n theme?: Theme;\n textSize?: TextSizes;\n isLiked?: boolean;\n isDisliked?: boolean;\n dislikeVariants?: string[];\n}\n\nexport interface DocBasePageData<T extends {} = {}> {\n toc: T & TocData;\n leading?: boolean;\n footer?: React.ReactNode;\n}\n\nexport interface DocLeadingPageData extends DocBasePageData {\n leading: true;\n data: DocLeadingData;\n}\n\nexport interface DocContentPageData<T extends {} = {}> extends DocBasePageData {\n leading: true;\n data: T & {\n fullScreen?: boolean;\n };\n children?: React.ReactNode;\n}\n\nexport interface DocLeadingData {\n title: string;\n description: string | string[];\n links: DocLeadingLinks[];\n meta: DocMeta;\n}\n\nexport interface DocLeadingLinks {\n title: string;\n description?: string;\n href?: string;\n imgSrc?: string;\n links?: DocLeadingLinks[];\n}\n\nexport enum VcsType {\n Github = 'github',\n Arcanum = 'arcanum',\n}\n\nexport interface DocPageData extends DocBasePageData {\n leading?: false;\n breadcrumbs?: BreadcrumbItem[];\n viewerInterface?: Record<string, boolean>;\n html: string;\n title?: string;\n headings: DocHeadingItem[];\n meta: DocMeta;\n vcsUrl?: string;\n vcsType?: VcsType;\n mdxArtifacts?: Record<string, unknown>;\n}\n\nexport interface DocHeadingItem {\n title: string;\n href: string;\n level: number;\n items?: DocHeadingItem[];\n}\n\nexport interface DocMeta {\n title?: string;\n description?: string;\n keywords?: string[];\n stage?: string;\n editable?: boolean;\n contributors?: Contributor[];\n author?: unknown | Contributor;\n __system?: Record<string, unknown>;\n updatedAt?: string;\n canonical?: string;\n alternate?: Alternate[];\n}\n\nexport interface TocLabel {\n title: string;\n description?: string;\n theme?: LabelProps['theme'];\n}\n\nexport interface TocData {\n title?: string;\n href?: string;\n items?: TocItem[];\n stage?: string;\n editable?: boolean;\n singlePage?: boolean;\n label?: TocLabel;\n extraHeader?: React.ReactNode;\n}\n\nexport interface TocItem {\n id: string;\n name: string;\n href?: string;\n items?: TocItem[];\n expanded?: boolean;\n labeled?: boolean;\n}\n\nexport interface BreadcrumbItem {\n name: string;\n url?: string;\n}\n\nexport interface Router {\n hostname?: string;\n pathname: string;\n hash?: string;\n}\n\nexport enum Lang {\n Ru = 'ru',\n En = 'en',\n He = 'he',\n Es = 'es',\n Fr = 'fr',\n Cs = 'cs',\n Ar = 'ar',\n}\n\nexport interface ExtendedLang {\n lang: `${Lang}` | Lang;\n tld: string;\n href: string;\n}\n\nexport interface LangOptions {\n tld?: string;\n href?: string;\n}\n\nexport type Alternate = {\n href: string;\n hreflang?: string;\n};\n\nexport interface Contributor {\n avatar: string;\n login: string;\n url: string;\n name: string | null;\n email: string | null;\n}\n\nexport interface DislikeData {\n answers: string[];\n comment: string;\n}\n\nexport enum FeedbackType {\n like = 'like',\n dislike = 'dislike',\n indeterminate = 'indeterminate',\n}\n\nexport interface FeedbackSendData {\n type: FeedbackType;\n answers?: string[];\n comment?: string;\n}\n\nexport enum SubscribeType {\n documentation = 'documentation',\n page = 'page',\n}\n\nexport interface SubscribeData {\n email: string;\n type: SubscribeType;\n}\n\nexport enum DocumentType {\n Base = 'BASE',\n Leading = 'LEADING',\n PageConstructor = 'PAGE_CONSTRUCTOR',\n}\n\nexport interface ListItem {\n value: string;\n text: string;\n country?: string;\n disabled?: boolean;\n options?: LangOptions;\n}\n\nexport interface ClassNameProps {\n className?: string;\n}\n\nexport interface ISearchProvider {\n init(): void | (() => void);\n suggest(query: string): Promise<ISearchResult[]>;\n onEmptyAction?(query: string): ISearchResultWithAction | null;\n search(\n query: string,\n ): Promise<ISearchResult[]> | Promise<{items: ISearchResult[]; total: number}>;\n link(query: string): string | null;\n}\n\ninterface ISearchResultBase {\n type: SuggestItemType;\n title: string;\n description?: string;\n breadcrumbs?: BreadcrumbItem[];\n icon?: React.ReactNode;\n hint?: React.ReactNode;\n}\n\nexport interface ISearchResultWithAction extends ISearchResultBase {\n type: SuggestItemType.Action;\n onClick: () => void;\n}\n\nexport interface ISearchResultWithLink extends ISearchResultBase {\n type: Exclude<SuggestItemType, SuggestItemType.Action>;\n link: string;\n}\n\nexport type ISearchResult = ISearchResultWithAction | ISearchResultWithLink;\n\nexport type Query = Record<string, number | string | null>;\n\nexport type AvailableLangs = readonly (`${Lang}` | Lang)[];\n"],
|
|
5
|
-
"mappings": ";
|
|
4
|
+
"sourcesContent": ["import type {UseTranslationResponse} from 'react-i18next';\nimport type {Loc} from '../config/i18n';\nimport type {SuggestItemType} from '../components/SearchSuggest/types';\nimport type {LabelProps} from '@gravity-ui/uikit';\nimport type {AnalyticsEventsProp} from '@gravity-ui/page-constructor';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type TFunction = UseTranslationResponse<any, undefined>['t'];\n\nexport type OnChangeValue = (value: ControlTypes) => void;\nexport type ControlTypes =\n | string\n | boolean\n | Theme\n | Lang\n | TextSizes\n | FeedbackSendData\n | SubscribeData;\n\nexport enum Theme {\n Light = 'light',\n Dark = 'dark',\n}\n\nexport enum TextSizes {\n S = 's', // 13px\n M = 'm', // 15px\n L = 'l', // 17px\n}\n\nexport enum ControlSizes {\n M = 'm',\n L = 'l',\n XL = 'xl',\n}\n\nexport interface Config {\n lang?: string;\n loc?: Loc;\n localeCode?: string;\n}\n\nexport interface DocSettings {\n fullScreen?: boolean;\n singlePage?: boolean;\n wideFormat?: boolean;\n showMiniToc?: boolean;\n bookmarkedPage?: boolean;\n theme?: Theme;\n textSize?: TextSizes;\n isLiked?: boolean;\n isDisliked?: boolean;\n dislikeVariants?: string[];\n}\n\nexport interface DocBasePageData<T extends {} = {}> {\n toc: T & TocData;\n leading?: boolean;\n footer?: React.ReactNode;\n}\n\nexport interface DocLeadingPageData extends DocBasePageData {\n leading: true;\n data: DocLeadingData;\n}\n\nexport interface DocContentPageData<T extends {} = {}> extends DocBasePageData {\n leading: true;\n data: T & {\n fullScreen?: boolean;\n };\n children?: React.ReactNode;\n}\n\nexport interface DocLeadingData {\n title: string;\n description: string | string[];\n links: DocLeadingLinks[];\n meta: DocMeta;\n}\n\nexport interface DocLeadingLinks {\n title: string;\n description?: string;\n href?: string;\n imgSrc?: string;\n links?: DocLeadingLinks[];\n}\n\nexport enum VcsType {\n Github = 'github',\n Arcanum = 'arcanum',\n}\n\nexport interface DocPageData extends DocBasePageData {\n leading?: false;\n breadcrumbs?: BreadcrumbItem[];\n viewerInterface?: Record<string, boolean>;\n html: string;\n title?: string;\n headings: DocHeadingItem[];\n meta: DocMeta;\n vcsUrl?: string;\n vcsType?: VcsType;\n mdxArtifacts?: Record<string, unknown>;\n}\n\nexport interface DocHeadingItem {\n title: string;\n href: string;\n level: number;\n items?: DocHeadingItem[];\n}\n\nexport interface DocMeta {\n title?: string;\n description?: string;\n keywords?: string[];\n stage?: string;\n editable?: boolean;\n contributors?: Contributor[];\n author?: unknown | Contributor;\n __system?: Record<string, unknown>;\n updatedAt?: string;\n canonical?: string;\n alternate?: Alternate[];\n}\n\nexport interface TocLabel {\n title: string;\n description?: string;\n theme?: LabelProps['theme'];\n}\n\nexport interface TocData {\n title?: string;\n href?: string;\n items?: TocItem[];\n stage?: string;\n editable?: boolean;\n singlePage?: boolean;\n label?: TocLabel;\n extraHeader?: React.ReactNode;\n}\n\nexport interface TocItem {\n id: string;\n name: string;\n href?: string;\n items?: TocItem[];\n expanded?: boolean;\n labeled?: boolean;\n analyticsEvents?: AnalyticsEventsProp;\n}\n\nexport interface BreadcrumbItem {\n name: string;\n url?: string;\n}\n\nexport interface Router {\n hostname?: string;\n pathname: string;\n hash?: string;\n}\n\nexport enum Lang {\n Ru = 'ru',\n En = 'en',\n He = 'he',\n Es = 'es',\n Fr = 'fr',\n Cs = 'cs',\n Ar = 'ar',\n}\n\nexport interface ExtendedLang {\n lang: `${Lang}` | Lang;\n tld: string;\n href: string;\n}\n\nexport interface LangOptions {\n tld?: string;\n href?: string;\n}\n\nexport type Alternate = {\n href: string;\n hreflang?: string;\n};\n\nexport interface Contributor {\n avatar: string;\n login: string;\n url: string;\n name: string | null;\n email: string | null;\n}\n\nexport interface DislikeData {\n answers: string[];\n comment: string;\n}\n\nexport enum FeedbackType {\n like = 'like',\n dislike = 'dislike',\n indeterminate = 'indeterminate',\n}\n\nexport interface FeedbackSendData {\n type: FeedbackType;\n answers?: string[];\n comment?: string;\n}\n\nexport enum SubscribeType {\n documentation = 'documentation',\n page = 'page',\n}\n\nexport interface SubscribeData {\n email: string;\n type: SubscribeType;\n}\n\nexport enum DocumentType {\n Base = 'BASE',\n Leading = 'LEADING',\n PageConstructor = 'PAGE_CONSTRUCTOR',\n}\n\nexport interface ListItem {\n value: string;\n text: string;\n country?: string;\n disabled?: boolean;\n options?: LangOptions;\n}\n\nexport interface ClassNameProps {\n className?: string;\n}\n\nexport interface ISearchProvider {\n init(): void | (() => void);\n suggest(query: string): Promise<ISearchResult[]>;\n onEmptyAction?(query: string): ISearchResultWithAction | null;\n search(\n query: string,\n ): Promise<ISearchResult[]> | Promise<{items: ISearchResult[]; total: number}>;\n link(query: string): string | null;\n}\n\ninterface ISearchResultBase {\n type: SuggestItemType;\n title: string;\n description?: string;\n breadcrumbs?: BreadcrumbItem[];\n icon?: React.ReactNode;\n hint?: React.ReactNode;\n}\n\nexport interface ISearchResultWithAction extends ISearchResultBase {\n type: SuggestItemType.Action;\n onClick: () => void;\n}\n\nexport interface ISearchResultWithLink extends ISearchResultBase {\n type: Exclude<SuggestItemType, SuggestItemType.Action>;\n link: string;\n}\n\nexport type ISearchResult = ISearchResultWithAction | ISearchResultWithLink;\n\nexport type Query = Record<string, number | string | null>;\n\nexport type AvailableLangs = readonly (`${Lang}` | Lang)[];\n"],
|
|
5
|
+
"mappings": ";AAmBO,IAAK,QAAL,kBAAKA,WAAL;AACH,EAAAA,OAAA,WAAQ;AACR,EAAAA,OAAA,UAAO;AAFC,SAAAA;AAAA,GAAA;AAKL,IAAK,YAAL,kBAAKC,eAAL;AACH,EAAAA,WAAA,OAAI;AACJ,EAAAA,WAAA,OAAI;AACJ,EAAAA,WAAA,OAAI;AAHI,SAAAA;AAAA,GAAA;AAML,IAAK,eAAL,kBAAKC,kBAAL;AACH,EAAAA,cAAA,OAAI;AACJ,EAAAA,cAAA,OAAI;AACJ,EAAAA,cAAA,QAAK;AAHG,SAAAA;AAAA,GAAA;AA2DL,IAAK,UAAL,kBAAKC,aAAL;AACH,EAAAA,SAAA,YAAS;AACT,EAAAA,SAAA,aAAU;AAFF,SAAAA;AAAA,GAAA;AA6EL,IAAK,OAAL,kBAAKC,UAAL;AACH,EAAAA,MAAA,QAAK;AACL,EAAAA,MAAA,QAAK;AACL,EAAAA,MAAA,QAAK;AACL,EAAAA,MAAA,QAAK;AACL,EAAAA,MAAA,QAAK;AACL,EAAAA,MAAA,QAAK;AACL,EAAAA,MAAA,QAAK;AAPG,SAAAA;AAAA,GAAA;AAuCL,IAAK,eAAL,kBAAKC,kBAAL;AACH,EAAAA,cAAA,UAAO;AACP,EAAAA,cAAA,aAAU;AACV,EAAAA,cAAA,mBAAgB;AAHR,SAAAA;AAAA,GAAA;AAYL,IAAK,gBAAL,kBAAKC,mBAAL;AACH,EAAAA,eAAA,mBAAgB;AAChB,EAAAA,eAAA,UAAO;AAFC,SAAAA;AAAA,GAAA;AAUL,IAAK,eAAL,kBAAKC,kBAAL;AACH,EAAAA,cAAA,UAAO;AACP,EAAAA,cAAA,aAAU;AACV,EAAAA,cAAA,qBAAkB;AAHV,SAAAA;AAAA,GAAA;",
|
|
6
6
|
"names": ["Theme", "TextSizes", "ControlSizes", "VcsType", "Lang", "FeedbackType", "SubscribeType", "DocumentType"]
|
|
7
7
|
}
|
|
@@ -31,8 +31,10 @@ export interface YandexMetrikaFn {
|
|
|
31
31
|
export interface YandexMetrikaAdapterConfig {
|
|
32
32
|
id: number;
|
|
33
33
|
params?: YandexMetrikaInitParams;
|
|
34
|
+
key?: string;
|
|
34
35
|
}
|
|
35
36
|
export declare class YandexMetrikaAdapter implements AnalyticsAdapter {
|
|
37
|
+
key: string;
|
|
36
38
|
private config;
|
|
37
39
|
private initialized;
|
|
38
40
|
constructor(config: YandexMetrikaAdapterConfig);
|
|
@@ -7,8 +7,10 @@ import { appendScriptOnce } from "../../script-utils";
|
|
|
7
7
|
var METRIKA_SCRIPT_SRC = "https://mc.yandex.ru/metrika/tag.js";
|
|
8
8
|
var YandexMetrikaAdapter = class {
|
|
9
9
|
constructor(config) {
|
|
10
|
+
__publicField(this, "key");
|
|
10
11
|
__publicField(this, "config");
|
|
11
12
|
__publicField(this, "initialized", false);
|
|
13
|
+
this.key = config.key || String(config.id);
|
|
12
14
|
this.config = config;
|
|
13
15
|
}
|
|
14
16
|
async init() {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../../src/shared/libs/analytics/adapters/yandex-metrika-adapter.ts"],
|
|
4
|
-
"sourcesContent": ["import type {AnalyticsAdapter, AnalyticsParams} from '../types';\n\nimport {appendScriptOnce} from '../../script-utils';\n\nconst METRIKA_SCRIPT_SRC = 'https://mc.yandex.ru/metrika/tag.js';\n\nexport interface YandexMetrikaInitParams {\n accurateTrackBounce?: boolean | number;\n childIframe?: boolean;\n clickmap?: boolean;\n defer?: boolean;\n ecommerce?: boolean | string | string[];\n trackHash?: boolean;\n trackLinks?: boolean;\n trustedDomains?: string[];\n webvisor?: boolean;\n triggerEvent?: boolean;\n sendTitle?: boolean;\n ssr?: boolean;\n experiments?: string;\n}\n\nexport interface YandexMetrikaFn {\n (counter: number, method: 'init', params: YandexMetrikaInitParams): void;\n (counter: number, method: 'addFileExtension', extensions: string | string[]): void;\n (counter: number, method: 'extLink', url: string, options?: Record<string, unknown>): void;\n (counter: number, method: 'file', url: string, options?: Record<string, unknown>): void;\n (counter: number, method: 'getClientID', callback: (clientId: string) => void): void;\n (counter: number, method: 'hit', url: string, options?: Record<string, unknown>): void;\n (counter: number, method: 'notBounce', options?: Record<string, unknown>): void;\n (counter: number, method: 'params', params: Record<string, unknown>): void;\n (counter: number, method: 'reachGoal', goal: string, params?: Record<string, unknown>): void;\n (counter: number, method: 'setUserID', uid: string): void;\n (counter: number, method: 'userParams', params: Record<string, unknown>): void;\n (counter: number, method: string, ...args: unknown[]): void;\n}\n\nexport interface YandexMetrikaAdapterConfig {\n id: number;\n params?: YandexMetrikaInitParams;\n}\n\ninterface YandexMetrikaInternalFn extends YandexMetrikaFn {\n a?: unknown[];\n l?: number;\n}\n\nexport class YandexMetrikaAdapter implements AnalyticsAdapter {\n private config: YandexMetrikaAdapterConfig;\n\n private initialized = false;\n\n constructor(config: YandexMetrikaAdapterConfig) {\n this.config = config;\n }\n\n async init() {\n if (this.initialized) {\n return;\n }\n\n this.initialized = true;\n\n try {\n const {id, params = {}} = this.config;\n const ym = getMetrikaFn();\n\n ym(id, 'init', params);\n\n await appendScriptOnce({\n url: METRIKA_SCRIPT_SRC,\n element: document.head,\n defer: false,\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Yandex Metrika load failed', error);\n }\n }\n\n send(event: string, params?: AnalyticsParams) {\n const ym = getMetrikaFn();\n\n ym(this.config.id, 'reachGoal', event, params);\n }\n}\n\nfunction getMetrikaFn(): YandexMetrikaFn {\n const key = 'ym';\n const win = window as Window & typeof globalThis & {ym: YandexMetrikaInternalFn};\n\n if (!win[key]) {\n win[key] = ((...args) => {\n (win[key].a = win[key].a || []).push(args);\n }) as YandexMetrikaInternalFn;\n\n win[key].l = new Date().getTime();\n }\n\n return win[key];\n}\n"],
|
|
5
|
-
"mappings": ";;;;;AAEA,SAAQ,wBAAuB;AAE/B,IAAM,qBAAqB;
|
|
4
|
+
"sourcesContent": ["import type {AnalyticsAdapter, AnalyticsParams} from '../types';\n\nimport {appendScriptOnce} from '../../script-utils';\n\nconst METRIKA_SCRIPT_SRC = 'https://mc.yandex.ru/metrika/tag.js';\n\nexport interface YandexMetrikaInitParams {\n accurateTrackBounce?: boolean | number;\n childIframe?: boolean;\n clickmap?: boolean;\n defer?: boolean;\n ecommerce?: boolean | string | string[];\n trackHash?: boolean;\n trackLinks?: boolean;\n trustedDomains?: string[];\n webvisor?: boolean;\n triggerEvent?: boolean;\n sendTitle?: boolean;\n ssr?: boolean;\n experiments?: string;\n}\n\nexport interface YandexMetrikaFn {\n (counter: number, method: 'init', params: YandexMetrikaInitParams): void;\n (counter: number, method: 'addFileExtension', extensions: string | string[]): void;\n (counter: number, method: 'extLink', url: string, options?: Record<string, unknown>): void;\n (counter: number, method: 'file', url: string, options?: Record<string, unknown>): void;\n (counter: number, method: 'getClientID', callback: (clientId: string) => void): void;\n (counter: number, method: 'hit', url: string, options?: Record<string, unknown>): void;\n (counter: number, method: 'notBounce', options?: Record<string, unknown>): void;\n (counter: number, method: 'params', params: Record<string, unknown>): void;\n (counter: number, method: 'reachGoal', goal: string, params?: Record<string, unknown>): void;\n (counter: number, method: 'setUserID', uid: string): void;\n (counter: number, method: 'userParams', params: Record<string, unknown>): void;\n (counter: number, method: string, ...args: unknown[]): void;\n}\n\nexport interface YandexMetrikaAdapterConfig {\n id: number;\n params?: YandexMetrikaInitParams;\n key?: string;\n}\n\ninterface YandexMetrikaInternalFn extends YandexMetrikaFn {\n a?: unknown[];\n l?: number;\n}\n\nexport class YandexMetrikaAdapter implements AnalyticsAdapter {\n key: string;\n private config: YandexMetrikaAdapterConfig;\n\n private initialized = false;\n\n constructor(config: YandexMetrikaAdapterConfig) {\n this.key = config.key || String(config.id);\n this.config = config;\n }\n\n async init() {\n if (this.initialized) {\n return;\n }\n\n this.initialized = true;\n\n try {\n const {id, params = {}} = this.config;\n const ym = getMetrikaFn();\n\n ym(id, 'init', params);\n\n await appendScriptOnce({\n url: METRIKA_SCRIPT_SRC,\n element: document.head,\n defer: false,\n });\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error('Yandex Metrika load failed', error);\n }\n }\n\n send(event: string, params?: AnalyticsParams) {\n const ym = getMetrikaFn();\n\n ym(this.config.id, 'reachGoal', event, params);\n }\n}\n\nfunction getMetrikaFn(): YandexMetrikaFn {\n const key = 'ym';\n const win = window as Window & typeof globalThis & {ym: YandexMetrikaInternalFn};\n\n if (!win[key]) {\n win[key] = ((...args) => {\n (win[key].a = win[key].a || []).push(args);\n }) as YandexMetrikaInternalFn;\n\n win[key].l = new Date().getTime();\n }\n\n return win[key];\n}\n"],
|
|
5
|
+
"mappings": ";;;;;AAEA,SAAQ,wBAAuB;AAE/B,IAAM,qBAAqB;AA4CpB,IAAM,uBAAN,MAAuD;AAAA,EAM1D,YAAY,QAAoC;AALhD;AACA,wBAAQ;AAER,wBAAQ,eAAc;AAGlB,SAAK,MAAM,OAAO,OAAO,OAAO,OAAO,EAAE;AACzC,SAAK,SAAS;AAAA,EAClB;AAAA,EAEA,MAAM,OAAO;AACT,QAAI,KAAK,aAAa;AAClB;AAAA,IACJ;AAEA,SAAK,cAAc;AAEnB,QAAI;AACA,YAAM,EAAC,IAAI,SAAS,CAAC,EAAC,IAAI,KAAK;AAC/B,YAAM,KAAK,aAAa;AAExB,SAAG,IAAI,QAAQ,MAAM;AAErB,YAAM,iBAAiB;AAAA,QACnB,KAAK;AAAA,QACL,SAAS,SAAS;AAAA,QAClB,OAAO;AAAA,MACX,CAAC;AAAA,IACL,SAAS,OAAO;AAEZ,cAAQ,MAAM,8BAA8B,KAAK;AAAA,IACrD;AAAA,EACJ;AAAA,EAEA,KAAK,OAAe,QAA0B;AAC1C,UAAM,KAAK,aAAa;AAExB,OAAG,KAAK,OAAO,IAAI,aAAa,OAAO,MAAM;AAAA,EACjD;AACJ;AAEA,SAAS,eAAgC;AACrC,QAAM,MAAM;AACZ,QAAM,MAAM;AAEZ,MAAI,CAAC,IAAI,GAAG,GAAG;AACX,QAAI,GAAG,KAAK,IAAI,SAAS;AACrB,OAAC,IAAI,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,IAAI;AAAA,IAC7C;AAEA,QAAI,GAAG,EAAE,KAAI,oBAAI,KAAK,GAAE,QAAQ;AAAA,EACpC;AAEA,SAAO,IAAI,GAAG;AAClB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AnalyticsAdapter, AnalyticsParams } from './types';
|
|
1
|
+
import type { AnalyticsAdapter, AnalyticsParams, AnalyticsTrackOptions } from './types';
|
|
2
2
|
export interface AnalyticsConfig {
|
|
3
3
|
adapters: AnalyticsAdapter[];
|
|
4
4
|
debug?: boolean;
|
|
@@ -8,5 +8,5 @@ export declare class Analytics {
|
|
|
8
8
|
private initialized;
|
|
9
9
|
constructor(config: AnalyticsConfig);
|
|
10
10
|
init(): Promise<void>;
|
|
11
|
-
track(event: string, params?: AnalyticsParams): void;
|
|
11
|
+
track(event: string, params?: AnalyticsParams, options?: AnalyticsTrackOptions): void;
|
|
12
12
|
}
|
|
@@ -34,8 +34,14 @@ var Analytics = class {
|
|
|
34
34
|
console.error("Failed to initialize the analytics service:", error);
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
-
track(event, params) {
|
|
37
|
+
track(event, params, options) {
|
|
38
38
|
for (const adapter of this.adapters) {
|
|
39
|
+
if (adapter.key && (options == null ? void 0 : options.includeKeys) && !options.includeKeys.includes(adapter.key)) {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
if (adapter.key && (options == null ? void 0 : options.excludeKeys) && options.excludeKeys.includes(adapter.key)) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
39
45
|
adapter.send(event, params);
|
|
40
46
|
}
|
|
41
47
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/shared/libs/analytics/analytics.ts"],
|
|
4
|
-
"sourcesContent": ["import type {AnalyticsAdapter, AnalyticsParams} from './types';\n\nimport {ConsoleAnalyticsAdapter} from './adapters/console-analytics-adapter';\nimport {checkDebugMode} from './utils';\n\nexport interface AnalyticsConfig {\n adapters: AnalyticsAdapter[];\n debug?: boolean;\n}\n\nexport class Analytics {\n private adapters: Set<AnalyticsAdapter>;\n\n private initialized = false;\n\n constructor(config: AnalyticsConfig) {\n this.adapters = new Set(config.adapters);\n this.track = this.track.bind(this);\n\n const isDebug = typeof config.debug === 'boolean' ? config.debug : checkDebugMode();\n\n if (isDebug) {\n this.adapters.add(new ConsoleAnalyticsAdapter());\n }\n }\n\n async init() {\n if (this.initialized) {\n return;\n }\n\n this.initialized = true;\n\n try {\n const promises = Array.from(this.adapters, (adapter) => {\n if (typeof adapter.init === 'function') {\n return adapter.init();\n }\n\n return null;\n });\n\n await Promise.all(promises);\n } catch (error) {\n this.initialized = false;\n\n // eslint-disable-next-line no-console\n console.error('Failed to initialize the analytics service:', error);\n }\n }\n\n track(event: string, params?: AnalyticsParams) {\n for (const adapter of this.adapters) {\n adapter.send(event, params);\n }\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;AAEA,SAAQ,+BAA8B;AACtC,SAAQ,sBAAqB;AAOtB,IAAM,YAAN,MAAgB;AAAA,EAKnB,YAAY,QAAyB;AAJrC,wBAAQ;AAER,wBAAQ,eAAc;AAGlB,SAAK,WAAW,IAAI,IAAI,OAAO,QAAQ;AACvC,SAAK,QAAQ,KAAK,MAAM,KAAK,IAAI;AAEjC,UAAM,UAAU,OAAO,OAAO,UAAU,YAAY,OAAO,QAAQ,eAAe;AAElF,QAAI,SAAS;AACT,WAAK,SAAS,IAAI,IAAI,wBAAwB,CAAC;AAAA,IACnD;AAAA,EACJ;AAAA,EAEA,MAAM,OAAO;AACT,QAAI,KAAK,aAAa;AAClB;AAAA,IACJ;AAEA,SAAK,cAAc;AAEnB,QAAI;AACA,YAAM,WAAW,MAAM,KAAK,KAAK,UAAU,CAAC,YAAY;AACpD,YAAI,OAAO,QAAQ,SAAS,YAAY;AACpC,iBAAO,QAAQ,KAAK;AAAA,QACxB;AAEA,eAAO;AAAA,MACX,CAAC;AAED,YAAM,QAAQ,IAAI,QAAQ;AAAA,IAC9B,SAAS,OAAO;AACZ,WAAK,cAAc;AAGnB,cAAQ,MAAM,+CAA+C,KAAK;AAAA,IACtE;AAAA,EACJ;AAAA,EAEA,MAAM,OAAe,QAA0B;
|
|
4
|
+
"sourcesContent": ["import type {AnalyticsAdapter, AnalyticsParams, AnalyticsTrackOptions} from './types';\n\nimport {ConsoleAnalyticsAdapter} from './adapters/console-analytics-adapter';\nimport {checkDebugMode} from './utils';\n\nexport interface AnalyticsConfig {\n adapters: AnalyticsAdapter[];\n debug?: boolean;\n}\n\nexport class Analytics {\n private adapters: Set<AnalyticsAdapter>;\n\n private initialized = false;\n\n constructor(config: AnalyticsConfig) {\n this.adapters = new Set(config.adapters);\n this.track = this.track.bind(this);\n\n const isDebug = typeof config.debug === 'boolean' ? config.debug : checkDebugMode();\n\n if (isDebug) {\n this.adapters.add(new ConsoleAnalyticsAdapter());\n }\n }\n\n async init() {\n if (this.initialized) {\n return;\n }\n\n this.initialized = true;\n\n try {\n const promises = Array.from(this.adapters, (adapter) => {\n if (typeof adapter.init === 'function') {\n return adapter.init();\n }\n\n return null;\n });\n\n await Promise.all(promises);\n } catch (error) {\n this.initialized = false;\n\n // eslint-disable-next-line no-console\n console.error('Failed to initialize the analytics service:', error);\n }\n }\n\n track(event: string, params?: AnalyticsParams, options?: AnalyticsTrackOptions) {\n for (const adapter of this.adapters) {\n if (adapter.key && options?.includeKeys && !options.includeKeys.includes(adapter.key)) {\n continue;\n }\n if (adapter.key && options?.excludeKeys && options.excludeKeys.includes(adapter.key)) {\n continue;\n }\n adapter.send(event, params);\n }\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;AAEA,SAAQ,+BAA8B;AACtC,SAAQ,sBAAqB;AAOtB,IAAM,YAAN,MAAgB;AAAA,EAKnB,YAAY,QAAyB;AAJrC,wBAAQ;AAER,wBAAQ,eAAc;AAGlB,SAAK,WAAW,IAAI,IAAI,OAAO,QAAQ;AACvC,SAAK,QAAQ,KAAK,MAAM,KAAK,IAAI;AAEjC,UAAM,UAAU,OAAO,OAAO,UAAU,YAAY,OAAO,QAAQ,eAAe;AAElF,QAAI,SAAS;AACT,WAAK,SAAS,IAAI,IAAI,wBAAwB,CAAC;AAAA,IACnD;AAAA,EACJ;AAAA,EAEA,MAAM,OAAO;AACT,QAAI,KAAK,aAAa;AAClB;AAAA,IACJ;AAEA,SAAK,cAAc;AAEnB,QAAI;AACA,YAAM,WAAW,MAAM,KAAK,KAAK,UAAU,CAAC,YAAY;AACpD,YAAI,OAAO,QAAQ,SAAS,YAAY;AACpC,iBAAO,QAAQ,KAAK;AAAA,QACxB;AAEA,eAAO;AAAA,MACX,CAAC;AAED,YAAM,QAAQ,IAAI,QAAQ;AAAA,IAC9B,SAAS,OAAO;AACZ,WAAK,cAAc;AAGnB,cAAQ,MAAM,+CAA+C,KAAK;AAAA,IACtE;AAAA,EACJ;AAAA,EAEA,MAAM,OAAe,QAA0B,SAAiC;AAC5E,eAAW,WAAW,KAAK,UAAU;AACjC,UAAI,QAAQ,QAAO,mCAAS,gBAAe,CAAC,QAAQ,YAAY,SAAS,QAAQ,GAAG,GAAG;AACnF;AAAA,MACJ;AACA,UAAI,QAAQ,QAAO,mCAAS,gBAAe,QAAQ,YAAY,SAAS,QAAQ,GAAG,GAAG;AAClF;AAAA,MACJ;AACA,cAAQ,KAAK,OAAO,MAAM;AAAA,IAC9B;AAAA,EACJ;AACJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -17,3 +17,6 @@ export declare enum CommonAnalyticsEvent {
|
|
|
17
17
|
DOCS_FONTSIZE_MODE_CLICK = "DOCS_FONTSIZE-MODE_CLICK",
|
|
18
18
|
DOCS_NEUROEXPERT_ACTION = "DOCS_NEUROEXPERT_ACTION"
|
|
19
19
|
}
|
|
20
|
+
export declare const DefaultAnalyticsEventNames: {
|
|
21
|
+
readonly DOCS_TOC_ITEM_CLICK: "DOCS_TOC_ITEM_CLICK";
|
|
22
|
+
};
|
|
@@ -19,7 +19,11 @@ var CommonAnalyticsEvent = /* @__PURE__ */ ((CommonAnalyticsEvent2) => {
|
|
|
19
19
|
CommonAnalyticsEvent2["DOCS_NEUROEXPERT_ACTION"] = "DOCS_NEUROEXPERT_ACTION";
|
|
20
20
|
return CommonAnalyticsEvent2;
|
|
21
21
|
})(CommonAnalyticsEvent || {});
|
|
22
|
+
var DefaultAnalyticsEventNames = {
|
|
23
|
+
DOCS_TOC_ITEM_CLICK: "DOCS_TOC_ITEM_CLICK"
|
|
24
|
+
};
|
|
22
25
|
export {
|
|
23
|
-
CommonAnalyticsEvent
|
|
26
|
+
CommonAnalyticsEvent,
|
|
27
|
+
DefaultAnalyticsEventNames
|
|
24
28
|
};
|
|
25
29
|
//# sourceMappingURL=constant.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/shared/libs/analytics/constant.ts"],
|
|
4
|
-
"sourcesContent": ["export enum CommonAnalyticsEvent {\n DOCS_EDIT_IN_VCS_CLICK = 'DOCS_EDIT-IN-VCS_CLICK',\n DOCS_READING_MODE_CLICK = 'DOCS_READING-MODE_CLICK',\n DOCS_FOOTER_LIKE_CLICK = 'DOCS_FOOTER-LIKE_CLICK',\n DOCS_FOOTER_DISLIKE_CLICK = 'DOCS_FOOTER-DISLIKE_CLICK',\n DOCS_ASIDE_LIKE_CLICK = 'DOCS_ASIDE-LIKE_CLICK',\n DOCS_ASIDE_DISLIKE_CLICK = 'DOCS_ASIDE-DISLIKE_CLICK',\n DOCS_SEARCH_CLICK = 'DOCS_SEARCH_CLICK',\n DOCS_FOOTER_NEXT_CLICK = 'DOCS_FOOTER-NEXT_CLICK',\n DOCS_FOOTER_PREV_CLICK = 'DOCS_FOOTER-PREV_CLICK',\n DOCS_LANG_CLICK = 'DOCS_LANG_CLICK',\n DOCS_HEADER_SETTINGS_CLICK = 'DOCS_HEADER-SETTINGS_CLICK',\n DOCS_HEADER_LOGO_CLICK = 'DOCS_HEADER-LOGO_CLICK',\n DOCS_HEADER_SANDWICH_MENU_CLICK = 'DOCS_HEADER-SANDWICH-MENU_CLICK',\n DOCS_WIDESCREEN_MODE_CLICK = 'DOCS_WIDESCREEN-MODE_CLICK',\n DOCS_HIDE_PAGE_NAV_CLICK = 'DOCS_HIDE-PAGE-NAV_CLICK',\n DOCS_FONTSIZE_MODE_CLICK = 'DOCS_FONTSIZE-MODE_CLICK',\n DOCS_NEUROEXPERT_ACTION = 'DOCS_NEUROEXPERT_ACTION',\n}\n"],
|
|
5
|
-
"mappings": ";AAAO,IAAK,uBAAL,kBAAKA,0BAAL;AACH,EAAAA,sBAAA,4BAAyB;AACzB,EAAAA,sBAAA,6BAA0B;AAC1B,EAAAA,sBAAA,4BAAyB;AACzB,EAAAA,sBAAA,+BAA4B;AAC5B,EAAAA,sBAAA,2BAAwB;AACxB,EAAAA,sBAAA,8BAA2B;AAC3B,EAAAA,sBAAA,uBAAoB;AACpB,EAAAA,sBAAA,4BAAyB;AACzB,EAAAA,sBAAA,4BAAyB;AACzB,EAAAA,sBAAA,qBAAkB;AAClB,EAAAA,sBAAA,gCAA6B;AAC7B,EAAAA,sBAAA,4BAAyB;AACzB,EAAAA,sBAAA,qCAAkC;AAClC,EAAAA,sBAAA,gCAA6B;AAC7B,EAAAA,sBAAA,8BAA2B;AAC3B,EAAAA,sBAAA,8BAA2B;AAC3B,EAAAA,sBAAA,6BAA0B;AAjBlB,SAAAA;AAAA,GAAA;",
|
|
4
|
+
"sourcesContent": ["export enum CommonAnalyticsEvent {\n DOCS_EDIT_IN_VCS_CLICK = 'DOCS_EDIT-IN-VCS_CLICK',\n DOCS_READING_MODE_CLICK = 'DOCS_READING-MODE_CLICK',\n DOCS_FOOTER_LIKE_CLICK = 'DOCS_FOOTER-LIKE_CLICK',\n DOCS_FOOTER_DISLIKE_CLICK = 'DOCS_FOOTER-DISLIKE_CLICK',\n DOCS_ASIDE_LIKE_CLICK = 'DOCS_ASIDE-LIKE_CLICK',\n DOCS_ASIDE_DISLIKE_CLICK = 'DOCS_ASIDE-DISLIKE_CLICK',\n DOCS_SEARCH_CLICK = 'DOCS_SEARCH_CLICK',\n DOCS_FOOTER_NEXT_CLICK = 'DOCS_FOOTER-NEXT_CLICK',\n DOCS_FOOTER_PREV_CLICK = 'DOCS_FOOTER-PREV_CLICK',\n DOCS_LANG_CLICK = 'DOCS_LANG_CLICK',\n DOCS_HEADER_SETTINGS_CLICK = 'DOCS_HEADER-SETTINGS_CLICK',\n DOCS_HEADER_LOGO_CLICK = 'DOCS_HEADER-LOGO_CLICK',\n DOCS_HEADER_SANDWICH_MENU_CLICK = 'DOCS_HEADER-SANDWICH-MENU_CLICK',\n DOCS_WIDESCREEN_MODE_CLICK = 'DOCS_WIDESCREEN-MODE_CLICK',\n DOCS_HIDE_PAGE_NAV_CLICK = 'DOCS_HIDE-PAGE-NAV_CLICK',\n DOCS_FONTSIZE_MODE_CLICK = 'DOCS_FONTSIZE-MODE_CLICK',\n DOCS_NEUROEXPERT_ACTION = 'DOCS_NEUROEXPERT_ACTION',\n}\n\nexport const DefaultAnalyticsEventNames = {\n DOCS_TOC_ITEM_CLICK: 'DOCS_TOC_ITEM_CLICK',\n} as const;\n"],
|
|
5
|
+
"mappings": ";AAAO,IAAK,uBAAL,kBAAKA,0BAAL;AACH,EAAAA,sBAAA,4BAAyB;AACzB,EAAAA,sBAAA,6BAA0B;AAC1B,EAAAA,sBAAA,4BAAyB;AACzB,EAAAA,sBAAA,+BAA4B;AAC5B,EAAAA,sBAAA,2BAAwB;AACxB,EAAAA,sBAAA,8BAA2B;AAC3B,EAAAA,sBAAA,uBAAoB;AACpB,EAAAA,sBAAA,4BAAyB;AACzB,EAAAA,sBAAA,4BAAyB;AACzB,EAAAA,sBAAA,qBAAkB;AAClB,EAAAA,sBAAA,gCAA6B;AAC7B,EAAAA,sBAAA,4BAAyB;AACzB,EAAAA,sBAAA,qCAAkC;AAClC,EAAAA,sBAAA,gCAA6B;AAC7B,EAAAA,sBAAA,8BAA2B;AAC3B,EAAAA,sBAAA,8BAA2B;AAC3B,EAAAA,sBAAA,6BAA0B;AAjBlB,SAAAA;AAAA,GAAA;AAoBL,IAAM,6BAA6B;AAAA,EACtC,qBAAqB;AACzB;",
|
|
6
6
|
"names": ["CommonAnalyticsEvent"]
|
|
7
7
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export type { AnalyticsAdapter, AnalyticsParams } from './types';
|
|
1
|
+
export type { AnalyticsAdapter, AnalyticsParams, AnalyticsTrackOptions } from './types';
|
|
2
2
|
export { YandexMetrikaAdapter, type YandexMetrikaAdapterConfig, type YandexMetrikaInitParams, } from './adapters/yandex-metrika-adapter';
|
|
3
3
|
export { Analytics, type AnalyticsConfig } from './analytics';
|
|
4
|
-
export { CommonAnalyticsEvent } from './constant';
|
|
4
|
+
export { CommonAnalyticsEvent, DefaultAnalyticsEventNames } from './constant';
|
|
5
5
|
export { AnalyticsProvider, useAnalytics } from './react/analytics-provider';
|
|
@@ -3,12 +3,13 @@ import {
|
|
|
3
3
|
YandexMetrikaAdapter
|
|
4
4
|
} from "./adapters/yandex-metrika-adapter";
|
|
5
5
|
import { Analytics } from "./analytics";
|
|
6
|
-
import { CommonAnalyticsEvent } from "./constant";
|
|
6
|
+
import { CommonAnalyticsEvent, DefaultAnalyticsEventNames } from "./constant";
|
|
7
7
|
import { AnalyticsProvider, useAnalytics } from "./react/analytics-provider";
|
|
8
8
|
export {
|
|
9
9
|
Analytics,
|
|
10
10
|
AnalyticsProvider,
|
|
11
11
|
CommonAnalyticsEvent,
|
|
12
|
+
DefaultAnalyticsEventNames,
|
|
12
13
|
YandexMetrikaAdapter,
|
|
13
14
|
useAnalytics
|
|
14
15
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/shared/libs/analytics/index.ts"],
|
|
4
|
-
"sourcesContent": ["export type {AnalyticsAdapter, AnalyticsParams} from './types';\nexport {\n YandexMetrikaAdapter,\n type YandexMetrikaAdapterConfig,\n type YandexMetrikaInitParams,\n} from './adapters/yandex-metrika-adapter';\nexport {Analytics, type AnalyticsConfig} from './analytics';\nexport {CommonAnalyticsEvent} from './constant';\nexport {AnalyticsProvider, useAnalytics} from './react/analytics-provider';\n"],
|
|
5
|
-
"mappings": ";AACA;AAAA,EACI;AAAA,OAGG;AACP,SAAQ,iBAAsC;AAC9C,SAAQ,
|
|
4
|
+
"sourcesContent": ["export type {AnalyticsAdapter, AnalyticsParams, AnalyticsTrackOptions} from './types';\nexport {\n YandexMetrikaAdapter,\n type YandexMetrikaAdapterConfig,\n type YandexMetrikaInitParams,\n} from './adapters/yandex-metrika-adapter';\nexport {Analytics, type AnalyticsConfig} from './analytics';\nexport {CommonAnalyticsEvent, DefaultAnalyticsEventNames} from './constant';\nexport {AnalyticsProvider, useAnalytics} from './react/analytics-provider';\n"],
|
|
5
|
+
"mappings": ";AACA;AAAA,EACI;AAAA,OAGG;AACP,SAAQ,iBAAsC;AAC9C,SAAQ,sBAAsB,kCAAiC;AAC/D,SAAQ,mBAAmB,oBAAmB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
export type AnalyticsParams = Record<string, unknown>;
|
|
2
|
+
export type AnalyticsTrackOptions = {
|
|
3
|
+
includeKeys?: string[];
|
|
4
|
+
excludeKeys?: string[];
|
|
5
|
+
};
|
|
2
6
|
export interface AnalyticsAdapter {
|
|
3
7
|
init?(): void | PromiseLike<void>;
|
|
8
|
+
key?: string;
|
|
4
9
|
send(event: string, params?: AnalyticsParams): void;
|
|
5
10
|
}
|