@diplodoc/components 4.22.0 → 4.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/build/cjs/components/BookmarkButton/BookmarkButton.css.map +1 -1
  2. package/build/cjs/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
  3. package/build/cjs/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
  4. package/build/cjs/components/Contributors/Contributors.css.map +1 -1
  5. package/build/cjs/components/Contributors/Contributors.js.map +2 -2
  6. package/build/cjs/components/Control/Control.css.map +1 -1
  7. package/build/cjs/components/Controls/Controls.css.map +1 -1
  8. package/build/cjs/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  9. package/build/cjs/components/Controls/single-controls/EditControl.js.map +2 -2
  10. package/build/cjs/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
  11. package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
  12. package/build/cjs/components/DocLayout/DocLayout.css.map +1 -1
  13. package/build/cjs/components/DocLeadingPage/DocLeadingPage.css.map +1 -1
  14. package/build/cjs/components/DocPage/DocPage.css.map +1 -1
  15. package/build/cjs/components/DocPage/DocPage.d.ts +1 -0
  16. package/build/cjs/components/DocPage/DocPage.js +2 -1
  17. package/build/cjs/components/DocPage/DocPage.js.map +2 -2
  18. package/build/cjs/components/DocPageTitle/DocPageTitle.css.map +1 -1
  19. package/build/cjs/components/ErrorPage/ErrorPage.css.map +1 -1
  20. package/build/cjs/components/ErrorPage/ErrorPage.js.map +2 -2
  21. package/build/cjs/components/Feedback/Feedback.css.map +1 -1
  22. package/build/cjs/components/Feedback/Feedback.js.map +2 -2
  23. package/build/cjs/components/Feedback/controls/DislikeControl.js.map +2 -2
  24. package/build/cjs/components/Feedback/controls/DislikeVariantsPopup.js.map +2 -2
  25. package/build/cjs/components/Feedback/controls/LikeControl.js.map +2 -2
  26. package/build/cjs/components/Feedback/controls/SuccessPopup.js.map +2 -2
  27. package/build/cjs/components/Mark/Mark.css.map +1 -1
  28. package/build/cjs/components/Meta/Meta.d.ts +25 -0
  29. package/build/cjs/components/Meta/index.d.ts +2 -0
  30. package/build/cjs/components/MiniToc/MiniToc.css.map +1 -1
  31. package/build/cjs/components/MiniToc/MiniToc.js.map +2 -2
  32. package/build/cjs/components/MobileControls/MobileControl/MobileControl.css.map +1 -1
  33. package/build/cjs/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +1 -1
  34. package/build/cjs/components/MobileControls/MobileControls.css.map +1 -1
  35. package/build/cjs/components/MobileControls/MobileControls.js.map +2 -2
  36. package/build/cjs/components/Notification/Notification.css.map +1 -1
  37. package/build/cjs/components/Paginator/Paginator.css.map +1 -1
  38. package/build/cjs/components/SearchBar/SearchBar.css.map +1 -1
  39. package/build/cjs/components/SearchBar/SearchBar.js +1 -1
  40. package/build/cjs/components/SearchBar/SearchBar.js.map +2 -2
  41. package/build/cjs/components/SearchItem/SearchItem.css.map +1 -1
  42. package/build/cjs/components/SearchItem/SearchItem.js.map +2 -2
  43. package/build/cjs/components/SearchPage/SearchPage.css.map +1 -1
  44. package/build/cjs/components/SearchPage/SearchPage.js.map +2 -2
  45. package/build/cjs/components/SearchSuggest/Suggest.js.map +2 -2
  46. package/build/cjs/components/SearchSuggest/index.css.map +1 -1
  47. package/build/cjs/components/SearchSuggest/useProvider.js +1 -4
  48. package/build/cjs/components/SearchSuggest/useProvider.js.map +2 -2
  49. package/build/cjs/components/SocialSharingMeta/SocialSharingMeta.d.ts +16 -0
  50. package/build/cjs/components/SocialSharingMeta/index.d.ts +1 -0
  51. package/build/cjs/components/SubNavigation/SubNavigation.css.map +1 -1
  52. package/build/cjs/components/Subscribe/Subscribe.css.map +1 -1
  53. package/build/cjs/components/Subscribe/Subscribe.js.map +2 -2
  54. package/build/cjs/components/Subscribe/SubscribeSuccessPopup/SubscribeSuccessPopup.js.map +2 -2
  55. package/build/cjs/components/Subscribe/SubscribeVariantsPopup/SubscribeVariantsPopup.js.map +2 -2
  56. package/build/cjs/components/Toc/Toc.css.map +1 -1
  57. package/build/cjs/components/TocItem/TocItem.css.map +1 -1
  58. package/build/cjs/components/TocLable/TocLabel.css.map +1 -1
  59. package/build/cjs/components/TocNavPanel/TocNavPanel.css.map +1 -1
  60. package/build/cjs/components/TocNavPanel/TocNavPanel.d.ts +1 -0
  61. package/build/cjs/components/TocNavPanel/TocNavPanel.js +12 -4
  62. package/build/cjs/components/TocNavPanel/TocNavPanel.js.map +2 -2
  63. package/build/cjs/components/ToggleArrow/ToggleArrow.css.map +1 -1
  64. package/build/cjs/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  65. package/build/cjs/components/UpdatedAtDate/UpdatedAtDate.js.map +2 -2
  66. package/build/cjs/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
  67. package/build/cjs/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
  68. package/build/cjs/components/navigation/Sidebar/Sidebar.css.map +1 -1
  69. package/build/cjs/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
  70. package/build/cjs/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
  71. package/build/cjs/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
  72. package/build/cjs/components/navigation/ToMainMenu/ToMainMenu.js.map +2 -2
  73. package/build/cjs/hooks/useTranslation.d.ts +1 -1
  74. package/build/cjs/models/index.d.ts +2 -0
  75. package/build/cjs/models/index.js.map +2 -2
  76. package/build/esm/components/BookmarkButton/BookmarkButton.css.map +1 -1
  77. package/build/esm/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
  78. package/build/esm/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
  79. package/build/esm/components/Contributors/Contributors.css.map +1 -1
  80. package/build/esm/components/Contributors/Contributors.js.map +2 -2
  81. package/build/esm/components/Control/Control.css.map +1 -1
  82. package/build/esm/components/Controls/Controls.css.map +1 -1
  83. package/build/esm/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  84. package/build/esm/components/Controls/single-controls/EditControl.js.map +2 -2
  85. package/build/esm/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
  86. package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
  87. package/build/esm/components/DocLayout/DocLayout.css.map +1 -1
  88. package/build/esm/components/DocLeadingPage/DocLeadingPage.css.map +1 -1
  89. package/build/esm/components/DocPage/DocPage.css.map +1 -1
  90. package/build/esm/components/DocPage/DocPage.d.ts +1 -0
  91. package/build/esm/components/DocPage/DocPage.js +2 -1
  92. package/build/esm/components/DocPage/DocPage.js.map +2 -2
  93. package/build/esm/components/DocPageTitle/DocPageTitle.css.map +1 -1
  94. package/build/esm/components/ErrorPage/ErrorPage.css.map +1 -1
  95. package/build/esm/components/ErrorPage/ErrorPage.js.map +2 -2
  96. package/build/esm/components/Feedback/Feedback.css.map +1 -1
  97. package/build/esm/components/Feedback/Feedback.js.map +2 -2
  98. package/build/esm/components/Feedback/controls/DislikeControl.js.map +2 -2
  99. package/build/esm/components/Feedback/controls/DislikeVariantsPopup.js.map +2 -2
  100. package/build/esm/components/Feedback/controls/LikeControl.js.map +2 -2
  101. package/build/esm/components/Feedback/controls/SuccessPopup.js.map +2 -2
  102. package/build/esm/components/Mark/Mark.css.map +1 -1
  103. package/build/esm/components/Meta/Meta.d.ts +25 -0
  104. package/build/esm/components/Meta/index.d.ts +2 -0
  105. package/build/esm/components/MiniToc/MiniToc.css.map +1 -1
  106. package/build/esm/components/MiniToc/MiniToc.js.map +2 -2
  107. package/build/esm/components/MobileControls/MobileControl/MobileControl.css.map +1 -1
  108. package/build/esm/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +1 -1
  109. package/build/esm/components/MobileControls/MobileControls.css.map +1 -1
  110. package/build/esm/components/MobileControls/MobileControls.js +4 -1
  111. package/build/esm/components/MobileControls/MobileControls.js.map +2 -2
  112. package/build/esm/components/Notification/Notification.css.map +1 -1
  113. package/build/esm/components/Paginator/Paginator.css.map +1 -1
  114. package/build/esm/components/SearchBar/SearchBar.css.map +1 -1
  115. package/build/esm/components/SearchBar/SearchBar.js +1 -1
  116. package/build/esm/components/SearchBar/SearchBar.js.map +2 -2
  117. package/build/esm/components/SearchItem/SearchItem.css.map +1 -1
  118. package/build/esm/components/SearchItem/SearchItem.js.map +2 -2
  119. package/build/esm/components/SearchPage/SearchPage.css.map +1 -1
  120. package/build/esm/components/SearchPage/SearchPage.js.map +2 -2
  121. package/build/esm/components/SearchSuggest/Suggest.js.map +2 -2
  122. package/build/esm/components/SearchSuggest/index.css.map +1 -1
  123. package/build/esm/components/SearchSuggest/useProvider.js +1 -4
  124. package/build/esm/components/SearchSuggest/useProvider.js.map +2 -2
  125. package/build/esm/components/SocialSharingMeta/SocialSharingMeta.d.ts +16 -0
  126. package/build/esm/components/SocialSharingMeta/index.d.ts +1 -0
  127. package/build/esm/components/SubNavigation/SubNavigation.css.map +1 -1
  128. package/build/esm/components/Subscribe/Subscribe.css.map +1 -1
  129. package/build/esm/components/Subscribe/Subscribe.js.map +2 -2
  130. package/build/esm/components/Subscribe/SubscribeSuccessPopup/SubscribeSuccessPopup.js.map +2 -2
  131. package/build/esm/components/Subscribe/SubscribeVariantsPopup/SubscribeVariantsPopup.js.map +2 -2
  132. package/build/esm/components/Toc/Toc.css.map +1 -1
  133. package/build/esm/components/TocItem/TocItem.css.map +1 -1
  134. package/build/esm/components/TocLable/TocLabel.css.map +1 -1
  135. package/build/esm/components/TocNavPanel/TocNavPanel.css.map +1 -1
  136. package/build/esm/components/TocNavPanel/TocNavPanel.d.ts +1 -0
  137. package/build/esm/components/TocNavPanel/TocNavPanel.js +12 -4
  138. package/build/esm/components/TocNavPanel/TocNavPanel.js.map +2 -2
  139. package/build/esm/components/ToggleArrow/ToggleArrow.css.map +1 -1
  140. package/build/esm/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  141. package/build/esm/components/UpdatedAtDate/UpdatedAtDate.js.map +2 -2
  142. package/build/esm/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
  143. package/build/esm/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
  144. package/build/esm/components/navigation/Sidebar/Sidebar.css.map +1 -1
  145. package/build/esm/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
  146. package/build/esm/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
  147. package/build/esm/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
  148. package/build/esm/components/navigation/ToMainMenu/ToMainMenu.js.map +2 -2
  149. package/build/esm/hooks/useTranslation.d.ts +1 -1
  150. package/build/esm/models/index.d.ts +2 -0
  151. package/build/esm/models/index.js.map +2 -2
  152. package/build/index.css +3 -0
  153. package/build/index.css.map +3 -3
  154. package/build/themes/common/index.css.map +1 -1
  155. package/package.json +8 -8
@@ -447,13 +447,14 @@ var DocPage = class extends import_react.default.Component {
447
447
  ));
448
448
  }
449
449
  renderTocNavPanel() {
450
- const { toc, singlePage, router, fullScreen } = this.props;
450
+ const { toc, singlePage, router, fullScreen, onTocNavPanelClick } = this.props;
451
451
  if (!toc || singlePage) {
452
452
  return null;
453
453
  }
454
454
  return /* @__PURE__ */ import_react.default.createElement(
455
455
  import_TocNavPanel.TocNavPanel,
456
456
  __spreadProps(__spreadValues({}, toc), {
457
+ onClick: onTocNavPanelClick,
457
458
  router,
458
459
  fixed: fullScreen,
459
460
  className: b("toc-nav-panel")
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/DocPage/DocPage.tsx"],
4
- "sourcesContent": ["import React, {ReactPortal} from 'react';\nimport {Link} from '@gravity-ui/icons';\nimport block from 'bem-cn-lite';\nimport {createPortal} from 'react-dom';\n\nimport {DEFAULT_SETTINGS} from '../../constants';\nimport {\n ControlSizes,\n DocPageData,\n DocSettings,\n FeedbackSendData,\n Lang,\n Router,\n SubscribeData,\n TextSizes,\n Theme,\n VcsType,\n} from '../../models';\nimport {InnerProps, callSafe, getRandomKey, getStateKey, isContributor} from '../../utils';\nimport {BookmarkButton} from '../BookmarkButton';\nimport {Breadcrumbs} from '../Breadcrumbs';\nimport {ContentWrapper} from '../ContentWrapper';\nimport Contributors from '../Contributors/Contributors';\nimport {Controls, ControlsLayout, EditControl} from '../Controls';\nimport {DocLayout} from '../DocLayout';\nimport {DocPageTitle} from '../DocPageTitle';\nimport {Feedback, FeedbackView} from '../Feedback';\nimport {HTML} from '../HTML';\nimport {ShareButton} from '../ShareButton';\nimport {SubNavigation} from '../SubNavigation';\nimport {SearchBar, withHighlightedSearchWords} from '../SearchBar';\nimport {TocNavPanel} from '../TocNavPanel';\nimport UpdatedAtDate from '../UpdatedAtDate/UpdatedAtDate';\nimport {Notification, NotificationProps} from '../Notification';\n\nimport './DocPage.scss';\n\nconst b = block('dc-doc-page');\n\nexport interface DocPageProps extends DocPageData, DocSettings, NotificationProps {\n lang: `${Lang}` | Lang;\n langs?: (`${Lang}` | Lang)[];\n router: Router;\n headerHeight?: number;\n tocTitleIcon?: React.ReactNode;\n hideToc?: boolean;\n legacyToc?: boolean;\n\n showSearchBar?: boolean;\n searchQuery?: string;\n onClickPrevSearch?: () => void;\n onClickNextSearch?: () => void;\n onCloseSearchBar?: () => void;\n searchCurrentIndex?: number;\n searchCountResults?: number;\n\n hideTocHeader?: boolean;\n hideControls?: boolean;\n hideEditControl?: boolean;\n hideFeedbackControls?: boolean;\n hideContributors?: boolean;\n renderLoader?: () => React.ReactNode;\n convertPathToOriginalArticle?: (path: string) => string;\n generatePathToVcs?: (path: string) => string;\n onChangeLang?: (lang: `${Lang}` | Lang) => void;\n onChangeFullScreen?: (value: boolean) => void;\n onChangeSinglePage?: (value: boolean) => void;\n onChangeWideFormat?: (value: boolean) => void;\n onChangeShowMiniToc?: (value: boolean) => void;\n onChangeBookmarkPage?: (value: boolean) => void;\n onChangeTheme?: (theme: Theme) => void;\n onChangeTextSize?: (textSize: TextSizes) => void;\n onSendFeedback?: (data: FeedbackSendData) => void;\n onContentMutation?: () => void;\n onContentLoaded?: () => void;\n onSubscribe?: (data: SubscribeData) => void;\n pdfLink?: string;\n onMiniTocItemClick?: (event: MouseEvent) => void;\n useMainTag?: boolean;\n}\n\ntype DocPageInnerProps = InnerProps<DocPageProps, DocSettings>;\ntype DocPageState = {\n loading: boolean;\n keyDOM: number;\n};\n\nclass DocPage extends React.Component<DocPageInnerProps, DocPageState> {\n static defaultProps: DocSettings = DEFAULT_SETTINGS;\n\n state: DocPageState;\n bodyRef: HTMLDivElement | null = null;\n bodyObserver: MutationObserver | null = null;\n\n constructor(props: DocPageInnerProps) {\n super(props);\n\n this.state = {\n loading: props.singlePage,\n keyDOM: getRandomKey(),\n };\n }\n\n componentDidMount(): void {\n const {singlePage} = this.props;\n\n if (singlePage) {\n this.addLinksToOriginalArticle();\n }\n\n this.setState({loading: false});\n\n this.addBodyObserver();\n }\n\n componentDidUpdate(prevProps: DocPageInnerProps): void {\n if (prevProps.singlePage !== this.props.singlePage) {\n this.setState({loading: true});\n }\n\n if (prevProps.html !== this.props.html) {\n this.setState({keyDOM: getRandomKey()});\n }\n }\n\n componentWillUnmount(): void {\n if (this.bodyObserver) {\n this.bodyObserver.disconnect();\n }\n }\n\n render() {\n const {\n toc,\n router,\n headings,\n lang,\n langs,\n theme,\n title,\n headerHeight,\n wideFormat,\n fullScreen,\n singlePage,\n tocTitleIcon,\n hideTocHeader,\n hideToc,\n footer,\n onChangeSinglePage,\n pdfLink,\n useMainTag,\n onChangeLang,\n onChangeTheme,\n onMiniTocItemClick,\n legacyToc,\n notification,\n notificationCb,\n } = this.props;\n\n const hideBurger = typeof headerHeight !== 'undefined' && headerHeight > 0;\n\n const modes = {\n 'regular-page-width': !wideFormat,\n 'full-screen': fullScreen,\n 'single-page': singlePage,\n };\n\n const mobileControlsData = {\n controlSize: ControlSizes.L,\n lang,\n userSettings: {\n langs,\n onChangeLang,\n theme,\n onChangeTheme,\n },\n };\n\n return (\n <DocLayout\n toc={toc}\n router={router}\n headerHeight={headerHeight}\n className={b(modes)}\n fullScreen={fullScreen}\n tocTitleIcon={tocTitleIcon}\n wideFormat={wideFormat}\n hideTocHeader={hideTocHeader}\n hideToc={hideToc}\n loading={this.state.loading}\n footer={footer}\n singlePage={singlePage}\n onChangeSinglePage={onChangeSinglePage}\n pdfLink={pdfLink}\n legacyToc={legacyToc}\n >\n <DocLayout.Center>\n {this.renderSearchBar()}\n <Notification notification={notification} notificationCb={notificationCb} />\n {this.renderBreadcrumbs()}\n {this.renderControls()}\n <div className={b('main')}>\n <ContentWrapper className={b('content')} useMainTag={useMainTag}>\n {this.renderTitle()}\n {this.renderPageContributors()}\n {this.showMiniToc && this.renderContentMiniToc()}\n {this.renderBody()}\n {this.renderFeedback()}\n </ContentWrapper>\n {this.renderTocNavPanel()}\n </div>\n {this.renderLoader()}\n {this.renderSinglePageControls()}\n </DocLayout.Center>\n <DocLayout.Right>\n {/* This key allows recalculating the offset for the mini-toc for Safari */}\n <div\n className={b('aside')}\n key={getStateKey(this.showMiniToc, wideFormat, singlePage)}\n >\n <SubNavigation\n router={router}\n toc={toc}\n keyDOM={this.state.keyDOM}\n pageTitle={title}\n headings={headings}\n mobileControlsData={mobileControlsData}\n headerHeight={headerHeight}\n hideMiniToc={!this.showMiniToc}\n hideBurger={hideBurger}\n hideTocHeader={hideTocHeader}\n onMiniTocItemClick={onMiniTocItemClick}\n />\n </div>\n </DocLayout.Right>\n </DocLayout>\n );\n }\n\n private handleBodyMutation = (mutationsList: MutationRecord[]) => {\n const {onContentMutation, onContentLoaded} = this.props;\n\n if (this.props.singlePage && this.bodyObserver && this.bodyRef) {\n this.bodyObserver.disconnect();\n this.addLinksToOriginalArticle();\n this.bodyObserver.observe(this.bodyRef, {\n childList: true,\n subtree: true,\n });\n }\n\n if (onContentMutation) {\n setTimeout(onContentMutation, 0);\n }\n\n this.setState({loading: false});\n\n if (!onContentLoaded) {\n return;\n }\n\n setTimeout(() => {\n mutationsList\n .filter(({type}) => type === 'childList')\n .forEach((mutation) => {\n const yfmRoot = mutation.target as HTMLElement;\n const yfmImages = Array.from(yfmRoot.querySelectorAll('img'));\n\n yfmImages.forEach((img) => {\n img.addEventListener('load', onContentLoaded, false);\n });\n });\n }, 0);\n };\n\n private addBodyObserver() {\n if (!this.bodyObserver) {\n this.bodyObserver = new MutationObserver(this.handleBodyMutation);\n }\n\n if (this.bodyRef) {\n this.bodyObserver.observe(this.bodyRef, {\n childList: true,\n subtree: true,\n });\n }\n }\n\n private setBodyRef = (ref: HTMLDivElement) => {\n this.bodyRef = ref;\n };\n\n private renderLoader() {\n const {renderLoader} = this.props;\n const {loading} = this.state;\n\n if (!renderLoader || !loading) {\n return null;\n }\n\n return <div className={b('loader-wrapper')}>{renderLoader()}</div>;\n }\n\n private renderSinglePageControls() {\n const {singlePage, convertPathToOriginalArticle, generatePathToVcs, vcsType} = this.props;\n\n if (!this.bodyRef || !singlePage) {\n return null;\n }\n\n const headers = Array.from(this.bodyRef.querySelectorAll('[data-original-article]'));\n\n return headers.reduce((acc, header, index) => {\n const href = callSafe(\n convertPathToOriginalArticle,\n header.getAttribute('data-original-article') || '',\n );\n\n if (href && header) {\n const vcsHref = callSafe(generatePathToVcs, href);\n\n acc.push(\n createPortal(\n <>\n <a className=\"yfm-anchor yfm-original-link\" href={href}>\n <Link />\n </a>\n {vcsHref && (\n <EditControl\n vcsUrl={vcsHref}\n vcsType={vcsType}\n view={'wide'}\n className={b('edit-button')}\n />\n )}\n </>,\n header,\n 'key-' + index,\n ),\n );\n }\n\n return acc;\n }, [] as ReactPortal[]);\n }\n\n private addLinksToOriginalArticle = () => {\n const {singlePage, generatePathToVcs} = this.props;\n\n if (!this.bodyRef || !singlePage) {\n return;\n }\n\n const headers = Array.from(this.bodyRef.querySelectorAll('[data-original-article]'));\n\n for (const header of headers) {\n /* Hide anchors */\n const anchors = Array.from(header.querySelectorAll('.yfm-anchor'));\n for (const anchor of anchors) {\n if (!anchor.classList.contains('yfm-original-link')) {\n anchor.classList.add('yfm-anchor_hidden');\n }\n }\n\n /* Create the link to the vcs */\n if (typeof generatePathToVcs === 'function') {\n header.classList.add(b('header-container'));\n }\n }\n };\n\n get showMiniToc() {\n const {showMiniToc, singlePage, headings, toc} = this.props;\n\n if (singlePage) {\n return false;\n }\n\n const emptyHeaderOrSinglePage = headings.length === 0 || toc.singlePage;\n const soloHeaderWithChildren =\n headings.length === 1 && headings[0].items && headings[0].items.length >= 1;\n\n if (emptyHeaderOrSinglePage || !(soloHeaderWithChildren || headings.length >= 2)) {\n return false;\n }\n\n return showMiniToc;\n }\n\n private renderBreadcrumbs() {\n const {breadcrumbs} = this.props;\n\n if (!breadcrumbs || breadcrumbs.length < 2) {\n return null;\n }\n\n return (\n <div className={b('breadcrumbs')}>\n <Breadcrumbs items={breadcrumbs} />\n </div>\n );\n }\n\n private renderTitle() {\n const {title, headerHeight, meta, bookmarkedPage, onChangeBookmarkPage} = this.props;\n const withBookmarks = onChangeBookmarkPage;\n const withShare = Number(headerHeight) > 0 && !this.showMiniToc;\n\n if (!title) {\n return null;\n }\n\n return (\n <DocPageTitle stage={meta.stage} className={b('title')}>\n <HTML>{title}</HTML>\n {withBookmarks && (\n <BookmarkButton\n isBookmarked={Boolean(bookmarkedPage)}\n onBookmark={onChangeBookmarkPage}\n />\n )}\n {withShare && <ShareButton className={b('share-button')} title={title} />}\n </DocPageTitle>\n );\n }\n\n private renderPageContributors() {\n const {meta, hideContributors} = this.props;\n\n if (hideContributors) {\n return null;\n }\n\n const author = this.renderAuthor(!meta?.contributors?.length);\n const contributors = this.renderContributors();\n const updatedAt = this.renderUpdatedAt(meta?.updatedAt);\n\n return (\n <div className={b('page-contributors')}>\n {author}\n {contributors}\n {updatedAt}\n </div>\n );\n }\n\n private renderUpdatedAt(updatedAt?: string) {\n if (!updatedAt) {\n return null;\n }\n\n return <UpdatedAtDate updatedAt={updatedAt} />;\n }\n\n private renderAuthor(onlyAuthor: boolean) {\n const {meta} = this.props;\n\n if (!isContributor(meta?.author)) {\n return null;\n }\n\n return (\n <Contributors\n users={[meta.author]}\n onlyAuthor={onlyAuthor}\n translationName={'authors'}\n isAuthor={true}\n />\n );\n }\n\n private renderContributors() {\n const {meta} = this.props;\n\n if (!meta?.contributors || meta.contributors.length === 0) {\n return null;\n }\n\n return <Contributors users={meta.contributors} />;\n }\n\n private renderContentMiniToc() {\n const {headings} = this.props;\n\n return (\n <div className={b('content-mini-toc', 'yfm')}>\n <ul>\n {headings.map(({title, href, level, items}, index) => {\n if (level !== 2) {\n return null;\n }\n\n return (\n <li key={index}>\n <a href={href}>{title}</a>\n {items && (\n <ul>\n {items.map(\n (\n {\n title: itemTitle,\n href: itemHref,\n level: itemLevel,\n },\n idx,\n ) => {\n if (itemLevel !== 3) {\n return null;\n }\n\n return (\n <li key={idx}>\n <a href={itemHref}>{itemTitle}</a>\n </li>\n );\n },\n )}\n </ul>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n );\n }\n\n private renderBody() {\n const {html, textSize} = this.props;\n\n if (!html) {\n return null;\n }\n\n return (\n <div\n ref={this.setBodyRef}\n className={b('body', {'text-size': textSize}, 'yfm')}\n dangerouslySetInnerHTML={{__html: html}}\n />\n );\n }\n\n private renderFeedback() {\n const {singlePage, isLiked, isDisliked, onSendFeedback, hideFeedbackControls} = this.props;\n\n if (singlePage || hideFeedbackControls || !onSendFeedback) {\n return null;\n }\n\n return (\n <div className={b('feedback')}>\n <Feedback\n isLiked={isLiked}\n isDisliked={isDisliked}\n onSendFeedback={onSendFeedback}\n view={FeedbackView.Wide}\n />\n </div>\n );\n }\n\n private renderTocNavPanel() {\n const {toc, singlePage, router, fullScreen} = this.props;\n\n if (!toc || singlePage) {\n return null;\n }\n\n return (\n <TocNavPanel\n {...toc}\n router={router}\n fixed={fullScreen}\n className={b('toc-nav-panel')}\n />\n );\n }\n\n private isEditable() {\n const {toc, meta, vcsUrl, vcsType} = this.props;\n const editable =\n toc.stage !== 'preview' &&\n meta.stage !== 'preview' &&\n meta.editable !== false &&\n toc.editable !== false;\n\n return Boolean(editable && vcsUrl && vcsType);\n }\n\n private getIsVerticalView = () => {\n const {fullScreen} = this.props;\n return !this.showMiniToc || fullScreen;\n };\n\n private renderSearchBar = () => {\n const {\n showSearchBar,\n searchQuery,\n searchCurrentIndex,\n searchCountResults,\n onClickPrevSearch,\n onClickNextSearch,\n onCloseSearchBar,\n singlePage,\n } = this.props;\n\n if (!showSearchBar || singlePage) {\n return null;\n }\n\n return (\n <div className={b('search-bar')}>\n <SearchBar\n searchCurrentIndex={searchCurrentIndex}\n searchCountResults={searchCountResults}\n onClickPrevSearch={onClickPrevSearch}\n onClickNextSearch={onClickNextSearch}\n onCloseSearchBar={onCloseSearchBar}\n searchQuery={searchQuery}\n />\n </div>\n );\n };\n\n private renderControls() {\n const {\n lang,\n langs,\n textSize,\n theme,\n wideFormat,\n fullScreen,\n singlePage,\n vcsUrl,\n vcsType,\n onChangeLang,\n onChangeFullScreen,\n onChangeWideFormat,\n onChangeShowMiniToc,\n onChangeTheme,\n onChangeTextSize,\n onSendFeedback,\n onSubscribe,\n isLiked,\n isDisliked,\n hideControls,\n hideEditControl,\n hideFeedbackControls,\n } = this.props;\n\n if (hideControls) {\n return null;\n }\n\n const isVerticalView = this.getIsVerticalView();\n\n return (\n <div className={b('controls', {vertical: isVerticalView})}>\n <ControlsLayout isVerticalView={isVerticalView}>\n <Controls\n lang={lang}\n langs={langs}\n textSize={textSize}\n theme={theme}\n wideFormat={wideFormat}\n showMiniToc={this.showMiniToc}\n fullScreen={fullScreen}\n singlePage={singlePage}\n vcsUrl={vcsUrl as string}\n vcsType={vcsType as VcsType}\n isLiked={isLiked}\n isDisliked={isDisliked}\n onChangeLang={onChangeLang}\n onChangeFullScreen={onChangeFullScreen}\n onChangeWideFormat={onChangeWideFormat}\n onChangeShowMiniToc={onChangeShowMiniToc}\n onChangeTheme={onChangeTheme}\n onChangeTextSize={onChangeTextSize}\n onSendFeedback={onSendFeedback}\n onSubscribe={onSubscribe}\n hideEditControl={hideEditControl || fullScreen || !this.isEditable()}\n hideFeedbackControls={hideFeedbackControls}\n />\n </ControlsLayout>\n </div>\n );\n }\n}\n\nexport default withHighlightedSearchWords(DocPage);\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import React, {ReactPortal} from 'react';\nimport {Link} from '@gravity-ui/icons';\nimport block from 'bem-cn-lite';\nimport {createPortal} from 'react-dom';\n\nimport {DEFAULT_SETTINGS} from '../../constants';\nimport {\n ControlSizes,\n DocPageData,\n DocSettings,\n FeedbackSendData,\n Lang,\n Router,\n SubscribeData,\n TextSizes,\n Theme,\n VcsType,\n} from '../../models';\nimport {InnerProps, callSafe, getRandomKey, getStateKey, isContributor} from '../../utils';\nimport {BookmarkButton} from '../BookmarkButton';\nimport {Breadcrumbs} from '../Breadcrumbs';\nimport {ContentWrapper} from '../ContentWrapper';\nimport Contributors from '../Contributors/Contributors';\nimport {Controls, ControlsLayout, EditControl} from '../Controls';\nimport {DocLayout} from '../DocLayout';\nimport {DocPageTitle} from '../DocPageTitle';\nimport {Feedback, FeedbackView} from '../Feedback';\nimport {HTML} from '../HTML';\nimport {ShareButton} from '../ShareButton';\nimport {SubNavigation} from '../SubNavigation';\nimport {SearchBar, withHighlightedSearchWords} from '../SearchBar';\nimport {TocNavPanel} from '../TocNavPanel';\nimport UpdatedAtDate from '../UpdatedAtDate/UpdatedAtDate';\nimport {Notification, NotificationProps} from '../Notification';\n\nimport './DocPage.scss';\n\nconst b = block('dc-doc-page');\n\nexport interface DocPageProps extends DocPageData, DocSettings, NotificationProps {\n lang: `${Lang}` | Lang;\n langs?: (`${Lang}` | Lang)[];\n router: Router;\n headerHeight?: number;\n tocTitleIcon?: React.ReactNode;\n hideToc?: boolean;\n legacyToc?: boolean;\n\n showSearchBar?: boolean;\n searchQuery?: string;\n onClickPrevSearch?: () => void;\n onClickNextSearch?: () => void;\n onCloseSearchBar?: () => void;\n onTocNavPanelClick?: (at: 'prev' | 'next') => void;\n searchCurrentIndex?: number;\n searchCountResults?: number;\n\n hideTocHeader?: boolean;\n hideControls?: boolean;\n hideEditControl?: boolean;\n hideFeedbackControls?: boolean;\n hideContributors?: boolean;\n renderLoader?: () => React.ReactNode;\n convertPathToOriginalArticle?: (path: string) => string;\n generatePathToVcs?: (path: string) => string;\n onChangeLang?: (lang: `${Lang}` | Lang) => void;\n onChangeFullScreen?: (value: boolean) => void;\n onChangeSinglePage?: (value: boolean) => void;\n onChangeWideFormat?: (value: boolean) => void;\n onChangeShowMiniToc?: (value: boolean) => void;\n onChangeBookmarkPage?: (value: boolean) => void;\n onChangeTheme?: (theme: Theme) => void;\n onChangeTextSize?: (textSize: TextSizes) => void;\n onSendFeedback?: (data: FeedbackSendData) => void;\n onContentMutation?: () => void;\n onContentLoaded?: () => void;\n onSubscribe?: (data: SubscribeData) => void;\n pdfLink?: string;\n onMiniTocItemClick?: (event: MouseEvent) => void;\n useMainTag?: boolean;\n}\n\ntype DocPageInnerProps = InnerProps<DocPageProps, DocSettings>;\ntype DocPageState = {\n loading: boolean;\n keyDOM: number;\n};\n\nclass DocPage extends React.Component<DocPageInnerProps, DocPageState> {\n static defaultProps: DocSettings = DEFAULT_SETTINGS;\n\n state: DocPageState;\n bodyRef: HTMLDivElement | null = null;\n bodyObserver: MutationObserver | null = null;\n\n constructor(props: DocPageInnerProps) {\n super(props);\n\n this.state = {\n loading: props.singlePage,\n keyDOM: getRandomKey(),\n };\n }\n\n componentDidMount(): void {\n const {singlePage} = this.props;\n\n if (singlePage) {\n this.addLinksToOriginalArticle();\n }\n\n this.setState({loading: false});\n\n this.addBodyObserver();\n }\n\n componentDidUpdate(prevProps: DocPageInnerProps): void {\n if (prevProps.singlePage !== this.props.singlePage) {\n this.setState({loading: true});\n }\n\n if (prevProps.html !== this.props.html) {\n this.setState({keyDOM: getRandomKey()});\n }\n }\n\n componentWillUnmount(): void {\n if (this.bodyObserver) {\n this.bodyObserver.disconnect();\n }\n }\n\n render() {\n const {\n toc,\n router,\n headings,\n lang,\n langs,\n theme,\n title,\n headerHeight,\n wideFormat,\n fullScreen,\n singlePage,\n tocTitleIcon,\n hideTocHeader,\n hideToc,\n footer,\n onChangeSinglePage,\n pdfLink,\n useMainTag,\n onChangeLang,\n onChangeTheme,\n onMiniTocItemClick,\n legacyToc,\n notification,\n notificationCb,\n } = this.props;\n\n const hideBurger = typeof headerHeight !== 'undefined' && headerHeight > 0;\n\n const modes = {\n 'regular-page-width': !wideFormat,\n 'full-screen': fullScreen,\n 'single-page': singlePage,\n };\n\n const mobileControlsData = {\n controlSize: ControlSizes.L,\n lang,\n userSettings: {\n langs,\n onChangeLang,\n theme,\n onChangeTheme,\n },\n };\n\n return (\n <DocLayout\n toc={toc}\n router={router}\n headerHeight={headerHeight}\n className={b(modes)}\n fullScreen={fullScreen}\n tocTitleIcon={tocTitleIcon}\n wideFormat={wideFormat}\n hideTocHeader={hideTocHeader}\n hideToc={hideToc}\n loading={this.state.loading}\n footer={footer}\n singlePage={singlePage}\n onChangeSinglePage={onChangeSinglePage}\n pdfLink={pdfLink}\n legacyToc={legacyToc}\n >\n <DocLayout.Center>\n {this.renderSearchBar()}\n <Notification notification={notification} notificationCb={notificationCb} />\n {this.renderBreadcrumbs()}\n {this.renderControls()}\n <div className={b('main')}>\n <ContentWrapper className={b('content')} useMainTag={useMainTag}>\n {this.renderTitle()}\n {this.renderPageContributors()}\n {this.showMiniToc && this.renderContentMiniToc()}\n {this.renderBody()}\n {this.renderFeedback()}\n </ContentWrapper>\n {this.renderTocNavPanel()}\n </div>\n {this.renderLoader()}\n {this.renderSinglePageControls()}\n </DocLayout.Center>\n <DocLayout.Right>\n {/* This key allows recalculating the offset for the mini-toc for Safari */}\n <div\n className={b('aside')}\n key={getStateKey(this.showMiniToc, wideFormat, singlePage)}\n >\n <SubNavigation\n router={router}\n toc={toc}\n keyDOM={this.state.keyDOM}\n pageTitle={title}\n headings={headings}\n mobileControlsData={mobileControlsData}\n headerHeight={headerHeight}\n hideMiniToc={!this.showMiniToc}\n hideBurger={hideBurger}\n hideTocHeader={hideTocHeader}\n onMiniTocItemClick={onMiniTocItemClick}\n />\n </div>\n </DocLayout.Right>\n </DocLayout>\n );\n }\n\n private handleBodyMutation = (mutationsList: MutationRecord[]) => {\n const {onContentMutation, onContentLoaded} = this.props;\n\n if (this.props.singlePage && this.bodyObserver && this.bodyRef) {\n this.bodyObserver.disconnect();\n this.addLinksToOriginalArticle();\n this.bodyObserver.observe(this.bodyRef, {\n childList: true,\n subtree: true,\n });\n }\n\n if (onContentMutation) {\n setTimeout(onContentMutation, 0);\n }\n\n this.setState({loading: false});\n\n if (!onContentLoaded) {\n return;\n }\n\n setTimeout(() => {\n mutationsList\n .filter(({type}) => type === 'childList')\n .forEach((mutation) => {\n const yfmRoot = mutation.target as HTMLElement;\n const yfmImages = Array.from(yfmRoot.querySelectorAll('img'));\n\n yfmImages.forEach((img) => {\n img.addEventListener('load', onContentLoaded, false);\n });\n });\n }, 0);\n };\n\n private addBodyObserver() {\n if (!this.bodyObserver) {\n this.bodyObserver = new MutationObserver(this.handleBodyMutation);\n }\n\n if (this.bodyRef) {\n this.bodyObserver.observe(this.bodyRef, {\n childList: true,\n subtree: true,\n });\n }\n }\n\n private setBodyRef = (ref: HTMLDivElement) => {\n this.bodyRef = ref;\n };\n\n private renderLoader() {\n const {renderLoader} = this.props;\n const {loading} = this.state;\n\n if (!renderLoader || !loading) {\n return null;\n }\n\n return <div className={b('loader-wrapper')}>{renderLoader()}</div>;\n }\n\n private renderSinglePageControls() {\n const {singlePage, convertPathToOriginalArticle, generatePathToVcs, vcsType} = this.props;\n\n if (!this.bodyRef || !singlePage) {\n return null;\n }\n\n const headers = Array.from(this.bodyRef.querySelectorAll('[data-original-article]'));\n\n return headers.reduce((acc, header, index) => {\n const href = callSafe(\n convertPathToOriginalArticle,\n header.getAttribute('data-original-article') || '',\n );\n\n if (href && header) {\n const vcsHref = callSafe(generatePathToVcs, href);\n\n acc.push(\n createPortal(\n <>\n <a className=\"yfm-anchor yfm-original-link\" href={href}>\n <Link />\n </a>\n {vcsHref && (\n <EditControl\n vcsUrl={vcsHref}\n vcsType={vcsType}\n view={'wide'}\n className={b('edit-button')}\n />\n )}\n </>,\n header,\n 'key-' + index,\n ),\n );\n }\n\n return acc;\n }, [] as ReactPortal[]);\n }\n\n private addLinksToOriginalArticle = () => {\n const {singlePage, generatePathToVcs} = this.props;\n\n if (!this.bodyRef || !singlePage) {\n return;\n }\n\n const headers = Array.from(this.bodyRef.querySelectorAll('[data-original-article]'));\n\n for (const header of headers) {\n /* Hide anchors */\n const anchors = Array.from(header.querySelectorAll('.yfm-anchor'));\n for (const anchor of anchors) {\n if (!anchor.classList.contains('yfm-original-link')) {\n anchor.classList.add('yfm-anchor_hidden');\n }\n }\n\n /* Create the link to the vcs */\n if (typeof generatePathToVcs === 'function') {\n header.classList.add(b('header-container'));\n }\n }\n };\n\n get showMiniToc() {\n const {showMiniToc, singlePage, headings, toc} = this.props;\n\n if (singlePage) {\n return false;\n }\n\n const emptyHeaderOrSinglePage = headings.length === 0 || toc.singlePage;\n const soloHeaderWithChildren =\n headings.length === 1 && headings[0].items && headings[0].items.length >= 1;\n\n if (emptyHeaderOrSinglePage || !(soloHeaderWithChildren || headings.length >= 2)) {\n return false;\n }\n\n return showMiniToc;\n }\n\n private renderBreadcrumbs() {\n const {breadcrumbs} = this.props;\n\n if (!breadcrumbs || breadcrumbs.length < 2) {\n return null;\n }\n\n return (\n <div className={b('breadcrumbs')}>\n <Breadcrumbs items={breadcrumbs} />\n </div>\n );\n }\n\n private renderTitle() {\n const {title, headerHeight, meta, bookmarkedPage, onChangeBookmarkPage} = this.props;\n const withBookmarks = onChangeBookmarkPage;\n const withShare = Number(headerHeight) > 0 && !this.showMiniToc;\n\n if (!title) {\n return null;\n }\n\n return (\n <DocPageTitle stage={meta.stage} className={b('title')}>\n <HTML>{title}</HTML>\n {withBookmarks && (\n <BookmarkButton\n isBookmarked={Boolean(bookmarkedPage)}\n onBookmark={onChangeBookmarkPage}\n />\n )}\n {withShare && <ShareButton className={b('share-button')} title={title} />}\n </DocPageTitle>\n );\n }\n\n private renderPageContributors() {\n const {meta, hideContributors} = this.props;\n\n if (hideContributors) {\n return null;\n }\n\n const author = this.renderAuthor(!meta?.contributors?.length);\n const contributors = this.renderContributors();\n const updatedAt = this.renderUpdatedAt(meta?.updatedAt);\n\n return (\n <div className={b('page-contributors')}>\n {author}\n {contributors}\n {updatedAt}\n </div>\n );\n }\n\n private renderUpdatedAt(updatedAt?: string) {\n if (!updatedAt) {\n return null;\n }\n\n return <UpdatedAtDate updatedAt={updatedAt} />;\n }\n\n private renderAuthor(onlyAuthor: boolean) {\n const {meta} = this.props;\n\n if (!isContributor(meta?.author)) {\n return null;\n }\n\n return (\n <Contributors\n users={[meta.author]}\n onlyAuthor={onlyAuthor}\n translationName={'authors'}\n isAuthor={true}\n />\n );\n }\n\n private renderContributors() {\n const {meta} = this.props;\n\n if (!meta?.contributors || meta.contributors.length === 0) {\n return null;\n }\n\n return <Contributors users={meta.contributors} />;\n }\n\n private renderContentMiniToc() {\n const {headings} = this.props;\n\n return (\n <div className={b('content-mini-toc', 'yfm')}>\n <ul>\n {headings.map(({title, href, level, items}, index) => {\n if (level !== 2) {\n return null;\n }\n\n return (\n <li key={index}>\n <a href={href}>{title}</a>\n {items && (\n <ul>\n {items.map(\n (\n {\n title: itemTitle,\n href: itemHref,\n level: itemLevel,\n },\n idx,\n ) => {\n if (itemLevel !== 3) {\n return null;\n }\n\n return (\n <li key={idx}>\n <a href={itemHref}>{itemTitle}</a>\n </li>\n );\n },\n )}\n </ul>\n )}\n </li>\n );\n })}\n </ul>\n </div>\n );\n }\n\n private renderBody() {\n const {html, textSize} = this.props;\n\n if (!html) {\n return null;\n }\n\n return (\n <div\n ref={this.setBodyRef}\n className={b('body', {'text-size': textSize}, 'yfm')}\n dangerouslySetInnerHTML={{__html: html}}\n />\n );\n }\n\n private renderFeedback() {\n const {singlePage, isLiked, isDisliked, onSendFeedback, hideFeedbackControls} = this.props;\n\n if (singlePage || hideFeedbackControls || !onSendFeedback) {\n return null;\n }\n\n return (\n <div className={b('feedback')}>\n <Feedback\n isLiked={isLiked}\n isDisliked={isDisliked}\n onSendFeedback={onSendFeedback}\n view={FeedbackView.Wide}\n />\n </div>\n );\n }\n\n private renderTocNavPanel() {\n const {toc, singlePage, router, fullScreen, onTocNavPanelClick} = this.props;\n\n if (!toc || singlePage) {\n return null;\n }\n\n return (\n <TocNavPanel\n {...toc}\n onClick={onTocNavPanelClick}\n router={router}\n fixed={fullScreen}\n className={b('toc-nav-panel')}\n />\n );\n }\n\n private isEditable() {\n const {toc, meta, vcsUrl, vcsType} = this.props;\n const editable =\n toc.stage !== 'preview' &&\n meta.stage !== 'preview' &&\n meta.editable !== false &&\n toc.editable !== false;\n\n return Boolean(editable && vcsUrl && vcsType);\n }\n\n private getIsVerticalView = () => {\n const {fullScreen} = this.props;\n return !this.showMiniToc || fullScreen;\n };\n\n private renderSearchBar = () => {\n const {\n showSearchBar,\n searchQuery,\n searchCurrentIndex,\n searchCountResults,\n onClickPrevSearch,\n onClickNextSearch,\n onCloseSearchBar,\n singlePage,\n } = this.props;\n\n if (!showSearchBar || singlePage) {\n return null;\n }\n\n return (\n <div className={b('search-bar')}>\n <SearchBar\n searchCurrentIndex={searchCurrentIndex}\n searchCountResults={searchCountResults}\n onClickPrevSearch={onClickPrevSearch}\n onClickNextSearch={onClickNextSearch}\n onCloseSearchBar={onCloseSearchBar}\n searchQuery={searchQuery}\n />\n </div>\n );\n };\n\n private renderControls() {\n const {\n lang,\n langs,\n textSize,\n theme,\n wideFormat,\n fullScreen,\n singlePage,\n vcsUrl,\n vcsType,\n onChangeLang,\n onChangeFullScreen,\n onChangeWideFormat,\n onChangeShowMiniToc,\n onChangeTheme,\n onChangeTextSize,\n onSendFeedback,\n onSubscribe,\n isLiked,\n isDisliked,\n hideControls,\n hideEditControl,\n hideFeedbackControls,\n } = this.props;\n\n if (hideControls) {\n return null;\n }\n\n const isVerticalView = this.getIsVerticalView();\n\n return (\n <div className={b('controls', {vertical: isVerticalView})}>\n <ControlsLayout isVerticalView={isVerticalView}>\n <Controls\n lang={lang}\n langs={langs}\n textSize={textSize}\n theme={theme}\n wideFormat={wideFormat}\n showMiniToc={this.showMiniToc}\n fullScreen={fullScreen}\n singlePage={singlePage}\n vcsUrl={vcsUrl as string}\n vcsType={vcsType as VcsType}\n isLiked={isLiked}\n isDisliked={isDisliked}\n onChangeLang={onChangeLang}\n onChangeFullScreen={onChangeFullScreen}\n onChangeWideFormat={onChangeWideFormat}\n onChangeShowMiniToc={onChangeShowMiniToc}\n onChangeTheme={onChangeTheme}\n onChangeTextSize={onChangeTextSize}\n onSendFeedback={onSendFeedback}\n onSubscribe={onSubscribe}\n hideEditControl={hideEditControl || fullScreen || !this.isEditable()}\n hideFeedbackControls={hideFeedbackControls}\n />\n </ControlsLayout>\n </div>\n );\n }\n}\n\nexport default withHighlightedSearchWords(DocPage);\n"],
5
+ "mappings": "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",
6
6
  "names": ["block", "React", "UpdatedAtDate", "Contributors"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/DocPageTitle/home/runner/work/components/components/src/components/DocPageTitle/DocPageTitle.scss", "../../../../src/components/DocPageTitle/%3Cinput%20css%20j5iVKW%3E"],
3
+ "sources": ["../../../../src/components/DocPageTitle/home/runner/work/components/components/src/components/DocPageTitle/DocPageTitle.scss", "../../../../src/components/DocPageTitle/%3Cinput%20css%20sEcyow%3E"],
4
4
  "sourcesContent": [".dc-doc-page-title {\n position: relative;\n\n &__label {\n position: absolute;\n left: 0;\n top: -11px;\n }\n}\n", ".dc-doc-page-title {\n position: relative;\n}\n.dc-doc-page-title__label {\n position: absolute;\n left: 0;\n top: -11px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0RvY1BhZ2VUaXRsZSIsInNvdXJjZXMiOlsiRG9jUGFnZVRpdGxlLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSTs7QUFFQTtFQUNJO0VBQ0E7RUFDQSIsInNvdXJjZXNDb250ZW50IjpbIi5kYy1kb2MtcGFnZS10aXRsZSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJl9fbGFiZWwge1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIHRvcDogLTExcHg7XG4gICAgfVxufVxuIl19 */"],
5
5
  "mappings": ";AAAA,CAAA;AACI,YAAA;ACCJ;ADCI,CAAA;AACI,YAAA;AACA,QAAA;AACA,OAAA;ACCR;",
6
6
  "names": []
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/ErrorPage/home/runner/work/components/components/src/components/ErrorPage/ErrorPage.scss", "../../../../src/components/ErrorPage/%3Cinput%20css%20IrRlIm%3E", "../../../../src/components/ErrorPage/home/runner/work/components/components/src/styles/mixins.scss"],
3
+ "sources": ["../../../../src/components/ErrorPage/home/runner/work/components/components/src/components/ErrorPage/ErrorPage.scss", "../../../../src/components/ErrorPage/%3Cinput%20css%20hDRVO4%3E", "../../../../src/components/ErrorPage/home/runner/work/components/components/src/styles/mixins.scss"],
4
4
  "sourcesContent": ["@use '../../styles/variables';\n@use '../../styles/mixins';\n\n.ErrorPage {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: 70px;\n padding: 0 50px;\n text-align: center;\n\n &__image {\n width: 230px;\n height: 230px;\n margin-bottom: 40px;\n\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center center;\n\n //The images for error page are supposed to be installed via overriding \"background-image\" variable\n &_code {\n &_403 {\n background-image: var(--dc-error-image-403);\n }\n\n &_404 {\n background-image: var(--dc-error-image-404);\n }\n\n &_500 {\n background-image: var(--dc-error-image-500);\n }\n }\n }\n\n &__code {\n margin-bottom: 10px;\n }\n\n &__title {\n @include mixins.heading3();\n\n max-width: 800px;\n margin-bottom: 20px;\n }\n\n &__description {\n display: flex;\n flex-direction: column;\n gap: 10px;\n\n max-width: 600px;\n\n &-link {\n width: 100%;\n max-width: 200px;\n }\n }\n\n a {\n @include mixins.link();\n }\n\n .mobile & {\n margin-top: 40px;\n padding: 0 20px;\n }\n}\n", ".ErrorPage {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: 70px;\n padding: 0 50px;\n text-align: center;\n}\n.ErrorPage__image {\n width: 230px;\n height: 230px;\n margin-bottom: 40px;\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center center;\n}\n.ErrorPage__image_code_403 {\n background-image: var(--dc-error-image-403);\n}\n.ErrorPage__image_code_404 {\n background-image: var(--dc-error-image-404);\n}\n.ErrorPage__image_code_500 {\n background-image: var(--dc-error-image-500);\n}\n.ErrorPage__code {\n margin-bottom: 10px;\n}\n.ErrorPage__title {\n font-weight: 500;\n font-size: var(--g-text-header-2-font-size);\n line-height: var(--g-text-header-2-line-height);\n max-width: 800px;\n margin-bottom: 20px;\n}\n.ErrorPage__description {\n display: flex;\n flex-direction: column;\n gap: 10px;\n max-width: 600px;\n}\n.ErrorPage__description-link {\n width: 100%;\n max-width: 200px;\n}\n.ErrorPage a {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n outline: none;\n}\n.utilityfocus .ErrorPage a:focus {\n outline: 2px solid #ffdb4d;\n}\n.ErrorPage a:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n}\n.ErrorPage a:focus:not(:focus-visible) {\n box-shadow: none;\n}\n.ErrorPage a:hover, .ErrorPage a:active {\n color: var(--g-color-text-link-hover);\n}\n.mobile .ErrorPage {\n margin-top: 40px;\n padding: 0 20px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0Vycm9yUGFnZSIsInNvdXJjZXMiOlsiRXJyb3JQYWdlLnNjc3MiLCIuLi8uLi9zdHlsZXMvbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBSUk7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBS1o7RUFDSTs7QUFHSjtFQytDQTtFQW5GQTtFQUNBO0VEc0NJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFFQTs7QUFFQTtFQUNJO0VBQ0E7O0FBSVI7RUNMQTtFQUNBO0VBQ0E7RUFDQTtFQWpDQTs7QUFFQTtFQUNJOztBQWdCQTtFQUNJO0VBQ0E7O0FBRUo7RUFDSTs7QUFlUjtFQUVJOztBREZKO0VBQ0k7RUFDQSIsInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL3N0eWxlcy92YXJpYWJsZXMnO1xuQHVzZSAnLi4vLi4vc3R5bGVzL21peGlucyc7XG5cbi5FcnJvclBhZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDcwcHg7XG4gICAgcGFkZGluZzogMCA1MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICZfX2ltYWdlIHtcbiAgICAgICAgd2lkdGg6IDIzMHB4O1xuICAgICAgICBoZWlnaHQ6IDIzMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA0MHB4O1xuXG4gICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcblxuICAgICAgICAvL1RoZSBpbWFnZXMgZm9yIGVycm9yIHBhZ2UgYXJlIHN1cHBvc2VkIHRvIGJlIGluc3RhbGxlZCB2aWEgb3ZlcnJpZGluZyBcImJhY2tncm91bmQtaW1hZ2VcIiB2YXJpYWJsZVxuICAgICAgICAmX2NvZGUge1xuICAgICAgICAgICAgJl80MDMge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWRjLWVycm9yLWltYWdlLTQwMyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfNDA0IHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1kYy1lcnJvci1pbWFnZS00MDQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmXzUwMCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tZGMtZXJyb3ItaW1hZ2UtNTAwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvZGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmhlYWRpbmczKCk7XG5cbiAgICAgICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG5cbiAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogMTBweDtcblxuICAgICAgICBtYXgtd2lkdGg6IDYwMHB4O1xuXG4gICAgICAgICYtbGluayB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgQGluY2x1ZGUgbWl4aW5zLmxpbmsoKTtcbiAgICB9XG5cbiAgICAubW9iaWxlICYge1xuICAgICAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgfVxufVxuIiwiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAndmFyaWFibGVzJztcblxuQG1peGluIHRleHQtc2l6ZSgkbmFtZSkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC0jeyRuYW1lfS1saW5lLWhlaWdodCk7XG59XG5cbkBtaXhpbiByZXNldC1saXN0LXN0eWxlKCkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbkBtaXhpbiBmaXhBbmNob3JQb3NpdGlvbigkb2Zmc2V0OiAwcHgpIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAje3ZhcmlhYmxlcy4kaGVhZGVySGVpZ2h0fSkpO1xuICAgIG1hcmdpbi10b3A6IGNhbGMoI3skb2Zmc2V0fSAtIHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7dmFyaWFibGVzLiRoZWFkZXJIZWlnaHR9KSk7XG59XG5cbkBtaXhpbiByZXNldC1saW5rLXN0eWxlKCkge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuQG1peGluIGlzbGFuZHMtZm9jdXMoKSB7XG4gICAgb3V0bGluZTogbm9uZTtcblxuICAgIC51dGlsaXR5Zm9jdXMgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAjZmZkYjRkO1xuICAgIH1cbn1cblxuQG1peGluIGZvY3VzYWJsZSgkb2Zmc2V0OiAwLCAkbW9kZTogJ291dGxpbmUnKSB7XG4gICAgQGlmICRtb2RlID09ICdvdXRsaW5lJyB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1mb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogJG9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkbW9kZSA9PSAnYm94LXNoYWRvdycge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGxpbmsoKSB7XG4gICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saW5rKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWctZm9jdXMtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICBAaW5jbHVkZSBpc2xhbmRzLWZvY3VzKCk7XG5cbiAgICBAaW5jbHVkZSBmb2N1c2FibGUoMCwgJ2JveC1zaGFkb3cnKTtcblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUge1xuICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmstaG92ZXIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcxKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0zKTtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpIC0gMSkge1xuICAgICAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0yKTtcbiAgICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nMigpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMSk7XG59XG5cbkBtaXhpbiBoZWFkaW5nMygpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGhlYWRlci0yKTtcbn1cblxuQG1peGluIGhlYWRpbmc0KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTEpO1xufVxuXG5AbWl4aW4gaGVhZGluZzUoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShib2R5LTMpO1xufVxuXG5AbWl4aW4gaGVhZGluZzYoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShib2R5LTMpO1xufVxuXG5AbWl4aW4gY29udHJpYnV0b3JzLXRleHQoKSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuXG5AbWl4aW4gdGV4dC1ib2R5LTEoKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtYm9keS0xLWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LTEtbGluZS1oZWlnaHQpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS1mb250LXdlaWdodCk7XG59XG5cbkBtaXhpbiBkZXNrdG9wLW9ubHkoKSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZGVza3RvcC10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnc20nKSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBtb2JpbGUtdGFibGV0LW9ubHkoKSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBtb2JpbGUtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnc20nKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiJdfQ== */", "@use 'sass:map';\n@use 'variables';\n\n@mixin text-size($name) {\n font-size: var(--g-text-#{$name}-font-size);\n line-height: var(--g-text-#{$name}-line-height);\n}\n\n@mixin reset-list-style() {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n@mixin fixAnchorPosition($offset: 0px) {\n padding-top: calc(var(--dc-header-height, #{variables.$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{variables.$headerHeight}));\n}\n\n@mixin reset-link-style() {\n color: inherit;\n text-decoration: none;\n}\n\n@mixin islands-focus() {\n outline: none;\n\n .utilityfocus &:focus {\n outline: 2px solid #ffdb4d;\n }\n}\n\n@mixin focusable($offset: 0, $mode: 'outline') {\n @if $mode == 'outline' {\n &:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: $offset;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n }\n\n @if $mode == 'box-shadow' {\n &:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n }\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n}\n\n@mixin link() {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n @include islands-focus();\n\n @include focusable(0, 'box-shadow');\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n font-weight: 500;\n\n @include text-size(display-3);\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n font-weight: 500;\n\n @include text-size(display-1);\n}\n\n@mixin heading3() {\n font-weight: 500;\n\n @include text-size(header-2);\n}\n\n@mixin heading4() {\n font-weight: 500;\n\n @include text-size(header-1);\n}\n\n@mixin heading5() {\n font-weight: 500;\n\n @include text-size(body-3);\n}\n\n@mixin heading6() {\n font-weight: 400;\n\n @include text-size(body-3);\n}\n\n@mixin contributors-text() {\n font-size: 13px;\n font-weight: 400;\n margin-right: 5px;\n align-self: center;\n}\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin desktop-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n"],
5
5
  "mappings": ";AAGA,CAAA;AACI,WAAA;AACA,kBAAA;AACA,eAAA;AACA,cAAA;AACA,WAAA,EAAA;AACA,cAAA;ACFJ;ADII,CAAA;AACI,SAAA;AACA,UAAA;AACA,iBAAA;AAEA,mBAAA;AACA,qBAAA;AACA,uBAAA,OAAA;ACHR;ADOY,CAAA;AACI,oBAAA,IAAA;ACLhB;ADQY,CAAA;AACI,oBAAA,IAAA;ACNhB;ADSY,CAAA;AACI,oBAAA,IAAA;ACPhB;ADYI,CAAA;AACI,iBAAA;ACVR;ADaI,CAAA;AE+CA,eAAA;AAnFA,aAAA,IAAA;AACA,eAAA,IAAA;AFsCI,aAAA;AACA,iBAAA;ACVR;ADaI,CAAA;AACI,WAAA;AACA,kBAAA;AACA,OAAA;AAEA,aAAA;ACZR;ADcQ,CAAA;AACI,SAAA;AACA,aAAA;ACZZ;ADgBI,CAzDJ,UAyDI;AELA,SAAA,IAAA;AACA,2BAAA;AAAA,mBAAA;AACA,UAAA;AACA,iBAAA,IAAA;AAjCA,WAAA;AD0BJ;ACxBI,CAAA,aAAA,CFxBJ,UEwBI,CAAA;AACI,WAAA,IAAA,MAAA;AD0BR;ACVQ,CFzCR,UEyCQ,CAAA;AACI,cAAA,EAAA,EAAA,EAAA,IAAA,IAAA;AACA,WAAA;ADYZ;ACVQ,CF7CR,UE6CQ,CAAA,MAAA,KAAA;AACI,cAAA;ADYZ;ACGI,CF7DJ,UE6DI,CAAA;AAAA,CF7DJ,UE6DI,CAAA;AAEI,SAAA,IAAA;ADFR;ADAI,CAAA,OAAA,CA7DJ;AA8DQ,cAAA;AACA,WAAA,EAAA;ACER;",
6
6
  "names": []
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/ErrorPage/ErrorPage.tsx"],
4
- "sourcesContent": ["import React from 'react';\nimport {Button, Link} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {ERROR_CODES} from '../../constants';\nimport {useTranslation} from '../../hooks';\n\nimport './ErrorPage.scss';\n\nconst b = block('ErrorPage');\n\nexport interface ErrorPageProps {\n code?: number;\n pageGroup?: string;\n homeUrl?: string;\n receiveAccessUrl?: string;\n}\n\nconst ErrorPage: React.FC<ErrorPageProps> = ({\n code = 500,\n homeUrl,\n receiveAccessUrl,\n pageGroup,\n}) => {\n let title;\n let description;\n const {t} = useTranslation('error');\n const href = homeUrl || '/';\n const homeLink = (\n <Link href={href}>\n <Button className={b('description-link')}>{t<string>('label_link-main')}</Button>\n </Link>\n );\n\n switch (code) {\n case ERROR_CODES.ACCESS_DENIED:\n title = pageGroup ? t('label_title-403_page-group') : t('label_title-403_project');\n description = (\n <React.Fragment>\n {homeLink}\n {receiveAccessUrl && (\n <Link href={receiveAccessUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n <Button view=\"action\" className={b('description-link')}>\n {t<string>('label_link-access')}\n </Button>\n </Link>\n )}\n </React.Fragment>\n );\n break;\n case ERROR_CODES.NOT_FOUND:\n title = t('label_title-404');\n description = homeLink;\n break;\n default:\n title = t('label_title-500');\n description = (\n <React.Fragment>\n {t<string>('label_description-1')}\n <Button\n className={b('description-link')}\n onClick={() => window.location.reload()}\n >\n {t<string>('label_description-link')}\n </Button>\n </React.Fragment>\n );\n }\n\n return (\n <div className={b()}>\n <div\n title={`Error image for ${code} code`}\n className={b('image', {code: code.toString()})}\n />\n <h1 className={b('code')}>{t<string>('label_title-code', {code})}</h1>\n <h2 className={b('title')}>{title}</h2>\n <p className={b('description')}>{description}</p>\n </div>\n );\n};\n\nexport default ErrorPage;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,mBAA2B;AAC3B,yBAAkB;AAElB,uBAA0B;AAC1B,mBAA6B;AAE7B,uBAAO;AAEP,IAAM,QAAI,mBAAAA,SAAM,WAAW;AAS3B,IAAM,YAAsC,CAAC;AAAA,EACzC,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AACJ,MAAM;AACF,MAAI;AACJ,MAAI;AACJ,QAAM,EAAC,EAAC,QAAI,6BAAe,OAAO;AAClC,QAAM,OAAO,WAAW;AACxB,QAAM,WACF,6BAAAC,QAAA,cAAC,qBAAK,QACF,6BAAAA,QAAA,cAAC,uBAAO,WAAW,EAAE,kBAAkB,KAAI,EAAU,iBAAiB,CAAE,CAC5E;AAGJ,UAAQ,MAAM;AAAA,IACV,KAAK,6BAAY;AACb,cAAQ,YAAY,EAAE,4BAA4B,IAAI,EAAE,yBAAyB;AACjF,oBACI,6BAAAA,QAAA,cAAC,aAAAA,QAAM,UAAN,MACI,UACA,oBACG,6BAAAA,QAAA,cAAC,qBAAK,MAAM,kBAAkB,QAAO,UAAS,KAAI,yBAC9C,6BAAAA,QAAA,cAAC,uBAAO,MAAK,UAAS,WAAW,EAAE,kBAAkB,KAChD,EAAU,mBAAmB,CAClC,CACJ,CAER;AAEJ;AAAA,IACJ,KAAK,6BAAY;AACb,cAAQ,EAAE,iBAAiB;AAC3B,oBAAc;AACd;AAAA,IACJ;AACI,cAAQ,EAAE,iBAAiB;AAC3B,oBACI,6BAAAA,QAAA,cAAC,aAAAA,QAAM,UAAN,MACI,EAAU,qBAAqB,GAChC,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACG,WAAW,EAAE,kBAAkB;AAAA,UAC/B,SAAS,MAAM,OAAO,SAAS,OAAO;AAAA;AAAA,QAErC,EAAU,wBAAwB;AAAA,MACvC,CACJ;AAAA,EAEZ;AAEA,SACI,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,KACd,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACG,OAAO,mBAAmB,IAAI;AAAA,MAC9B,WAAW,EAAE,SAAS,EAAC,MAAM,KAAK,SAAS,EAAC,CAAC;AAAA;AAAA,EACjD,GACA,6BAAAA,QAAA,cAAC,QAAG,WAAW,EAAE,MAAM,KAAI,EAAU,oBAAoB,EAAC,KAAI,CAAC,CAAE,GACjE,6BAAAA,QAAA,cAAC,QAAG,WAAW,EAAE,OAAO,KAAI,KAAM,GAClC,6BAAAA,QAAA,cAAC,OAAE,WAAW,EAAE,aAAa,KAAI,WAAY,CACjD;AAER;AAEA,IAAO,oBAAQ;",
4
+ "sourcesContent": ["import React from 'react';\nimport {Button, Link} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {ERROR_CODES} from '../../constants';\nimport {useTranslation} from '../../hooks';\n\nimport './ErrorPage.scss';\n\nconst b = block('ErrorPage');\n\nexport interface ErrorPageProps {\n code?: number;\n pageGroup?: string;\n homeUrl?: string;\n receiveAccessUrl?: string;\n}\n\nconst ErrorPage: React.FC<ErrorPageProps> = ({\n code = 500,\n homeUrl,\n receiveAccessUrl,\n pageGroup,\n}) => {\n let title;\n let description;\n const {t} = useTranslation('error');\n const href = homeUrl || '/';\n const homeLink = (\n <Link href={href}>\n <Button className={b('description-link')}>{t('label_link-main')}</Button>\n </Link>\n );\n\n switch (code) {\n case ERROR_CODES.ACCESS_DENIED:\n title = pageGroup ? t('label_title-403_page-group') : t('label_title-403_project');\n description = (\n <React.Fragment>\n {homeLink}\n {receiveAccessUrl && (\n <Link href={receiveAccessUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n <Button view=\"action\" className={b('description-link')}>\n {t('label_link-access')}\n </Button>\n </Link>\n )}\n </React.Fragment>\n );\n break;\n case ERROR_CODES.NOT_FOUND:\n title = t('label_title-404');\n description = homeLink;\n break;\n default:\n title = t('label_title-500');\n description = (\n <React.Fragment>\n {t('label_description-1')}\n <Button\n className={b('description-link')}\n onClick={() => window.location.reload()}\n >\n {t('label_description-link')}\n </Button>\n </React.Fragment>\n );\n }\n\n return (\n <div className={b()}>\n <div\n title={`Error image for ${code} code`}\n className={b('image', {code: code.toString()})}\n />\n <h1 className={b('code')}>{t('label_title-code', {code})}</h1>\n <h2 className={b('title')}>{title}</h2>\n <p className={b('description')}>{description}</p>\n </div>\n );\n};\n\nexport default ErrorPage;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkB;AAClB,mBAA2B;AAC3B,yBAAkB;AAElB,uBAA0B;AAC1B,mBAA6B;AAE7B,uBAAO;AAEP,IAAM,QAAI,mBAAAA,SAAM,WAAW;AAS3B,IAAM,YAAsC,CAAC;AAAA,EACzC,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AACJ,MAAM;AACF,MAAI;AACJ,MAAI;AACJ,QAAM,EAAC,EAAC,QAAI,6BAAe,OAAO;AAClC,QAAM,OAAO,WAAW;AACxB,QAAM,WACF,6BAAAC,QAAA,cAAC,qBAAK,QACF,6BAAAA,QAAA,cAAC,uBAAO,WAAW,EAAE,kBAAkB,KAAI,EAAE,iBAAiB,CAAE,CACpE;AAGJ,UAAQ,MAAM;AAAA,IACV,KAAK,6BAAY;AACb,cAAQ,YAAY,EAAE,4BAA4B,IAAI,EAAE,yBAAyB;AACjF,oBACI,6BAAAA,QAAA,cAAC,aAAAA,QAAM,UAAN,MACI,UACA,oBACG,6BAAAA,QAAA,cAAC,qBAAK,MAAM,kBAAkB,QAAO,UAAS,KAAI,yBAC9C,6BAAAA,QAAA,cAAC,uBAAO,MAAK,UAAS,WAAW,EAAE,kBAAkB,KAChD,EAAE,mBAAmB,CAC1B,CACJ,CAER;AAEJ;AAAA,IACJ,KAAK,6BAAY;AACb,cAAQ,EAAE,iBAAiB;AAC3B,oBAAc;AACd;AAAA,IACJ;AACI,cAAQ,EAAE,iBAAiB;AAC3B,oBACI,6BAAAA,QAAA,cAAC,aAAAA,QAAM,UAAN,MACI,EAAE,qBAAqB,GACxB,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACG,WAAW,EAAE,kBAAkB;AAAA,UAC/B,SAAS,MAAM,OAAO,SAAS,OAAO;AAAA;AAAA,QAErC,EAAE,wBAAwB;AAAA,MAC/B,CACJ;AAAA,EAEZ;AAEA,SACI,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,KACd,6BAAAA,QAAA;AAAA,IAAC;AAAA;AAAA,MACG,OAAO,mBAAmB,IAAI;AAAA,MAC9B,WAAW,EAAE,SAAS,EAAC,MAAM,KAAK,SAAS,EAAC,CAAC;AAAA;AAAA,EACjD,GACA,6BAAAA,QAAA,cAAC,QAAG,WAAW,EAAE,MAAM,KAAI,EAAE,oBAAoB,EAAC,KAAI,CAAC,CAAE,GACzD,6BAAAA,QAAA,cAAC,QAAG,WAAW,EAAE,OAAO,KAAI,KAAM,GAClC,6BAAAA,QAAA,cAAC,OAAE,WAAW,EAAE,aAAa,KAAI,WAAY,CACjD;AAER;AAEA,IAAO,oBAAQ;",
6
6
  "names": ["block", "React"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/Feedback/home/runner/work/components/components/src/components/Feedback/Feedback.scss", "../../../../src/components/Feedback/%3Cinput%20css%2068lgf1%3E", "../../../../src/components/Feedback/home/runner/work/components/components/src/styles/variables.scss", "../../../../src/components/Feedback/home/runner/work/components/components/src/styles/mixins.scss"],
3
+ "sources": ["../../../../src/components/Feedback/home/runner/work/components/components/src/components/Feedback/Feedback.scss", "../../../../src/components/Feedback/%3Cinput%20css%20QPhcn4%3E", "../../../../src/components/Feedback/home/runner/work/components/components/src/styles/variables.scss", "../../../../src/components/Feedback/home/runner/work/components/components/src/styles/mixins.scss"],
4
4
  "sourcesContent": ["@use 'sass:map';\n@use '../../styles/mixins';\n@use '../../styles/variables';\n\n$popupWidth: 320px;\n\n@mixin tooltip-in-center {\n @media screen and (max-width: map.get(variables.$screenBreakpoints, 'xs')) {\n & {\n // stylelint-disable declaration-no-important\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n }\n}\n\n.dc-feedback {\n &__container {\n &_view_wide {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: 100%;\n }\n }\n\n &__container-col {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n gap: 20px;\n\n width: 100%;\n padding: 26px;\n\n border: 1px solid var(--g-color-line-generic);\n border-radius: 8px;\n\n &_view_wide {\n display: flex;\n align-items: center;\n }\n }\n\n &__success-popup {\n left: -20px;\n\n padding: variables.$popupPadding 50px variables.$popupPadding variables.$popupPadding;\n width: $popupWidth;\n\n &_view_wide {\n @include tooltip-in-center();\n }\n }\n\n &__variants-popup {\n padding: variables.$popupPadding;\n width: $popupWidth;\n left: -20px;\n\n &_view_wide {\n @include tooltip-in-center();\n }\n }\n\n &__popup-title {\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n padding-bottom: 8px;\n }\n\n &__popup-text {\n font-size: var(--g-text-body-short-font-size);\n line-height: var(--g-text-body-short-line-height);\n }\n\n &__variants {\n display: flex;\n flex-direction: column;\n padding: 8px 0;\n }\n\n &__variant {\n margin-bottom: 8px;\n white-space: normal;\n }\n\n &__variant:last-child {\n margin-bottom: 0;\n }\n\n &__variants-actions {\n padding-top: 8px;\n display: flex;\n justify-content: flex-end;\n }\n\n &__variants-action {\n margin-left: 10px;\n }\n\n &__textarea {\n padding: 8px 0;\n }\n\n &__title {\n &_view_wide {\n @include mixins.text-size(subheader-3);\n font-weight: 400;\n }\n }\n\n &__controls {\n display: flex;\n gap: 20px;\n\n &_view_wide {\n display: flex;\n }\n }\n\n &__control {\n &:last-child,\n &:first-child {\n display: flex;\n align-items: center;\n\n font-size: 17px;\n line-height: 24px;\n font-weight: 400;\n }\n\n &_view_wide {\n margin-right: 24px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n\n &_view_regular {\n margin-right: 4px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n}\n", ".dc-feedback__container_view_wide {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: 100%;\n}\n.dc-feedback__container-col {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n gap: 20px;\n width: 100%;\n padding: 26px;\n border: 1px solid var(--g-color-line-generic);\n border-radius: 8px;\n}\n.dc-feedback__container-col_view_wide {\n display: flex;\n align-items: center;\n}\n.dc-feedback__success-popup {\n left: -20px;\n padding: 16px 50px 16px 16px;\n width: 320px;\n}\n@media screen and (max-width: 375px) {\n .dc-feedback__success-popup_view_wide {\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n}\n.dc-feedback__variants-popup {\n padding: 16px;\n width: 320px;\n left: -20px;\n}\n@media screen and (max-width: 375px) {\n .dc-feedback__variants-popup_view_wide {\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n}\n.dc-feedback__popup-title {\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n padding-bottom: 8px;\n}\n.dc-feedback__popup-text {\n font-size: var(--g-text-body-short-font-size);\n line-height: var(--g-text-body-short-line-height);\n}\n.dc-feedback__variants {\n display: flex;\n flex-direction: column;\n padding: 8px 0;\n}\n.dc-feedback__variant {\n margin-bottom: 8px;\n white-space: normal;\n}\n.dc-feedback__variant:last-child {\n margin-bottom: 0;\n}\n.dc-feedback__variants-actions {\n padding-top: 8px;\n display: flex;\n justify-content: flex-end;\n}\n.dc-feedback__variants-action {\n margin-left: 10px;\n}\n.dc-feedback__textarea {\n padding: 8px 0;\n}\n.dc-feedback__title_view_wide {\n font-size: var(--g-text-subheader-3-font-size);\n line-height: var(--g-text-subheader-3-line-height);\n font-weight: 400;\n}\n.dc-feedback__controls {\n display: flex;\n gap: 20px;\n}\n.dc-feedback__controls_view_wide {\n display: flex;\n}\n.dc-feedback__control:last-child, .dc-feedback__control:first-child {\n display: flex;\n align-items: center;\n font-size: 17px;\n line-height: 24px;\n font-weight: 400;\n}\n.dc-feedback__control_view_wide {\n margin-right: 24px;\n}\n.dc-feedback__control_view_wide:last-child {\n margin-right: 0;\n}\n.dc-feedback__control_view_regular {\n margin-right: 4px;\n}\n.dc-feedback__control_view_regular:last-child {\n margin-right: 0;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0ZlZWRiYWNrIiwic291cmNlcyI6WyJGZWVkYmFjay5zY3NzIiwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vc3R5bGVzL21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1CUTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFJUjtFQUNJO0VBRUE7RUFDQSxPQTlDSzs7QUFHVDtFQUNJO0lBRUk7SUFDQTtJQUNBOzs7QUE2Q1I7RUFDSSxTQ2hETztFRGlEUCxPQXZESztFQXdETDs7QUFyREo7RUFDSTtJQUVJO0lBQ0E7SUFDQTs7O0FBdURSO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBSUE7RUV4R0o7RUFDQTtFRnlHUTs7QUFJUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7QUFLSjtFQUVJO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7O0FBRUE7RUFDSSIsInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJy4uLy4uL3N0eWxlcy9taXhpbnMnO1xuQHVzZSAnLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcyc7XG5cbiRwb3B1cFdpZHRoOiAzMjBweDtcblxuQG1peGluIHRvb2x0aXAtaW4tY2VudGVyIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICd4cycpKSB7XG4gICAgICAgICYge1xuICAgICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG4gICAgICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZGMtZmVlZGJhY2sge1xuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGFpbmVyLWNvbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDIwcHg7XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDI2cHg7XG5cbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWdlbmVyaWMpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdWNjZXNzLXBvcHVwIHtcbiAgICAgICAgbGVmdDogLTIwcHg7XG5cbiAgICAgICAgcGFkZGluZzogdmFyaWFibGVzLiRwb3B1cFBhZGRpbmcgNTBweCB2YXJpYWJsZXMuJHBvcHVwUGFkZGluZyB2YXJpYWJsZXMuJHBvcHVwUGFkZGluZztcbiAgICAgICAgd2lkdGg6ICRwb3B1cFdpZHRoO1xuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvb2x0aXAtaW4tY2VudGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX192YXJpYW50cy1wb3B1cCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcmlhYmxlcy4kcG9wdXBQYWRkaW5nO1xuICAgICAgICB3aWR0aDogJHBvcHVwV2lkdGg7XG4gICAgICAgIGxlZnQ6IC0yMHB4O1xuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvb2x0aXAtaW4tY2VudGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wb3B1cC10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMi1mb250LXNpemUpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMi1saW5lLWhlaWdodCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgfVxuXG4gICAgJl9fcG9wdXAtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktc2hvcnQtZm9udC1zaXplKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LXNob3J0LWxpbmUtaGVpZ2h0KTtcbiAgICB9XG5cbiAgICAmX192YXJpYW50cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIH1cblxuICAgICZfX3ZhcmlhbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmX192YXJpYW50cy1hY3Rpb25zIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG5cbiAgICAmX192YXJpYW50cy1hY3Rpb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB9XG5cbiAgICAmX190ZXh0YXJlYSB7XG4gICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnRleHQtc2l6ZShzdWJoZWFkZXItMyk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udHJvbHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDIwcHg7XG5cbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRyb2wge1xuICAgICAgICAmOmxhc3QtY2hpbGQsXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMjRweDtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX3ZpZXdfcmVndWxhciB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBTaXplc1xuJGhlYWRlckhlaWdodDogMHB4O1xuJHN1YkhlYWRlckhlaWdodDogNDBweDtcbiRzdWJOYXZpZ2F0aW9uSGVpZ2h0OiA1MnB4O1xuJG5vcm1hbE9mZnNldDogMjBweDtcbiRtaW5pVG9jT2Zmc2V0OiA1NnB4O1xuJGJsb2NrTWFyZ2luQm90dG9tTGFyZ2U6IDIwcHg7XG4kYmxvY2tNYXJnaW5Cb3R0b21NZWRpdW06IDE1cHg7XG4kaGVhZGVyTWFyZ2luVG9wTGFyZ2U6IDQwcHg7XG4kaGVhZGVyTWFyZ2luVG9wTWVkaXVtOiAzMnB4O1xuJHBvcHVwUGFkZGluZzogMTZweDtcbiRjZW50ZXJCbG9ja01heFdpZHRoOiA3MzZweDtcblxuLy8gTmF2aWdhdGlvblxuJHRvTWFpbk1lbnVWZXJ0aWNhbFBhZGRpbmc6IDRweDtcbiR0b01haW5NZW51SG9yaXpvbnRhbFBhZGRpbmc6IDEycHg7XG4kdG9NYWluTWVudUhlaWdodDogY2FsYyhcbiAgICB2YXIoLS1kYy1zdWJuYXZpZ2F0aW9uLWhlaWdodCwgJHN1Yk5hdmlnYXRpb25IZWlnaHQpIC0gI3skdG9NYWluTWVudVZlcnRpY2FsUGFkZGluZ30gLSAjeyR0b01haW5NZW51VmVydGljYWxQYWRkaW5nfVxuKTtcblxuLy8gTWluaVRvY1xuJG1pbmlUb2NWZXJ0aWNhbFBhZGRpbmc6IDE2cHg7XG4kbWluaVRvY1RpdGxlSGVpZ2h0OiAyMHB4OyAvLyBsaW5lLWhlaWdodCBib2R5LTJcbiRtaW5pVG9jVGl0bGVNYXJnaW46IDEycHg7XG4kbW9iaWxlTWluaVRvY09mZnNldDogMiAqICRtaW5pVG9jVmVydGljYWxQYWRkaW5nICsgJG1pbmlUb2NUaXRsZUhlaWdodCArICRtaW5pVG9jVGl0bGVNYXJnaW47XG5cbiRzY3JlZW5CcmVha3BvaW50czogKFxuICAgICd4cyc6IDM3NXB4LFxuICAgICdzbSc6IDU3N3B4LFxuICAgICdtZCc6IDc2OXB4LFxuICAgICdsZyc6IDEwODFweCxcbiAgICAneGwnOiAxMTg1cHgsXG4pO1xuIiwiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAndmFyaWFibGVzJztcblxuQG1peGluIHRleHQtc2l6ZSgkbmFtZSkge1xuICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC0jeyRuYW1lfS1saW5lLWhlaWdodCk7XG59XG5cbkBtaXhpbiByZXNldC1saXN0LXN0eWxlKCkge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbkBtaXhpbiBmaXhBbmNob3JQb3NpdGlvbigkb2Zmc2V0OiAwcHgpIHtcbiAgICBwYWRkaW5nLXRvcDogY2FsYyh2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAje3ZhcmlhYmxlcy4kaGVhZGVySGVpZ2h0fSkpO1xuICAgIG1hcmdpbi10b3A6IGNhbGMoI3skb2Zmc2V0fSAtIHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7dmFyaWFibGVzLiRoZWFkZXJIZWlnaHR9KSk7XG59XG5cbkBtaXhpbiByZXNldC1saW5rLXN0eWxlKCkge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuQG1peGluIGlzbGFuZHMtZm9jdXMoKSB7XG4gICAgb3V0bGluZTogbm9uZTtcblxuICAgIC51dGlsaXR5Zm9jdXMgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAjZmZkYjRkO1xuICAgIH1cbn1cblxuQG1peGluIGZvY3VzYWJsZSgkb2Zmc2V0OiAwLCAkbW9kZTogJ291dGxpbmUnKSB7XG4gICAgQGlmICRtb2RlID09ICdvdXRsaW5lJyB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1mb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogJG9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkbW9kZSA9PSAnYm94LXNoYWRvdycge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGxpbmsoKSB7XG4gICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saW5rKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWctZm9jdXMtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICBAaW5jbHVkZSBpc2xhbmRzLWZvY3VzKCk7XG5cbiAgICBAaW5jbHVkZSBmb2N1c2FibGUoMCwgJ2JveC1zaGFkb3cnKTtcblxuICAgICY6aG92ZXIsXG4gICAgJjphY3RpdmUge1xuICAgICAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmstaG92ZXIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcxKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0zKTtcblxuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdtZCcpIC0gMSkge1xuICAgICAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0yKTtcbiAgICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nMigpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMSk7XG59XG5cbkBtaXhpbiBoZWFkaW5nMygpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGhlYWRlci0yKTtcbn1cblxuQG1peGluIGhlYWRpbmc0KCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTEpO1xufVxuXG5AbWl4aW4gaGVhZGluZzUoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShib2R5LTMpO1xufVxuXG5AbWl4aW4gaGVhZGluZzYoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShib2R5LTMpO1xufVxuXG5AbWl4aW4gY29udHJpYnV0b3JzLXRleHQoKSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuXG5AbWl4aW4gdGV4dC1ib2R5LTEoKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtYm9keS0xLWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LTEtbGluZS1oZWlnaHQpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS1mb250LXdlaWdodCk7XG59XG5cbkBtaXhpbiBkZXNrdG9wLW9ubHkoKSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZGVza3RvcC10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnc20nKSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBtb2JpbGUtdGFibGV0LW9ubHkoKSB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBtb2JpbGUtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnc20nKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cbiJdfQ== */", "// Sizes\n$headerHeight: 0px;\n$subHeaderHeight: 40px;\n$subNavigationHeight: 52px;\n$normalOffset: 20px;\n$miniTocOffset: 56px;\n$blockMarginBottomLarge: 20px;\n$blockMarginBottomMedium: 15px;\n$headerMarginTopLarge: 40px;\n$headerMarginTopMedium: 32px;\n$popupPadding: 16px;\n$centerBlockMaxWidth: 736px;\n\n// Navigation\n$toMainMenuVerticalPadding: 4px;\n$toMainMenuHorizontalPadding: 12px;\n$toMainMenuHeight: calc(\n var(--dc-subnavigation-height, $subNavigationHeight) - #{$toMainMenuVerticalPadding} - #{$toMainMenuVerticalPadding}\n);\n\n// MiniToc\n$miniTocVerticalPadding: 16px;\n$miniTocTitleHeight: 20px; // line-height body-2\n$miniTocTitleMargin: 12px;\n$mobileMiniTocOffset: 2 * $miniTocVerticalPadding + $miniTocTitleHeight + $miniTocTitleMargin;\n\n$screenBreakpoints: (\n 'xs': 375px,\n 'sm': 577px,\n 'md': 769px,\n 'lg': 1081px,\n 'xl': 1185px,\n);\n", "@use 'sass:map';\n@use 'variables';\n\n@mixin text-size($name) {\n font-size: var(--g-text-#{$name}-font-size);\n line-height: var(--g-text-#{$name}-line-height);\n}\n\n@mixin reset-list-style() {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n@mixin fixAnchorPosition($offset: 0px) {\n padding-top: calc(var(--dc-header-height, #{variables.$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{variables.$headerHeight}));\n}\n\n@mixin reset-link-style() {\n color: inherit;\n text-decoration: none;\n}\n\n@mixin islands-focus() {\n outline: none;\n\n .utilityfocus &:focus {\n outline: 2px solid #ffdb4d;\n }\n}\n\n@mixin focusable($offset: 0, $mode: 'outline') {\n @if $mode == 'outline' {\n &:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: $offset;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n }\n\n @if $mode == 'box-shadow' {\n &:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n }\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n}\n\n@mixin link() {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n @include islands-focus();\n\n @include focusable(0, 'box-shadow');\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n font-weight: 500;\n\n @include text-size(display-3);\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n font-weight: 500;\n\n @include text-size(display-1);\n}\n\n@mixin heading3() {\n font-weight: 500;\n\n @include text-size(header-2);\n}\n\n@mixin heading4() {\n font-weight: 500;\n\n @include text-size(header-1);\n}\n\n@mixin heading5() {\n font-weight: 500;\n\n @include text-size(body-3);\n}\n\n@mixin heading6() {\n font-weight: 400;\n\n @include text-size(body-3);\n}\n\n@mixin contributors-text() {\n font-size: 13px;\n font-weight: 400;\n margin-right: 5px;\n align-self: center;\n}\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin desktop-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n"],
5
5
  "mappings": ";AAmBQ,CAAA;AACI,WAAA;AACA,eAAA;AACA,kBAAA;AACA,SAAA;AClBZ;ADsBI,CAAA;AACI,WAAA;AACA,mBAAA;AACA,eAAA;AACA,kBAAA;AACA,OAAA;AAEA,SAAA;AACA,WAAA;AAEA,UAAA,IAAA,MAAA,IAAA;AACA,iBAAA;ACtBR;ADwBQ,CAAA;AACI,WAAA;AACA,eAAA;ACtBZ;AD0BI,CAAA;AACI,QAAA;AAEA,WAAA,KAAA,KAAA,KAAA;AACA,SAAA;ACzBR;ADlBI,OAAA,OAAA,IAAA,CAAA,SAAA,EAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AACA,YAAA;ACmBV;AACF;ADyBI,CAAA;AACI,WAAA;AACA,SAAA;AACA,QAAA;ACvBR;AD9BI,OAAA,OAAA,IAAA,CAAA,SAAA,EAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AACA,YAAA;AC+BV;AACF;ADuBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;AACA,kBAAA;ACrBR;ADwBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;ACtBR;ADyBI,CAAA;AACI,WAAA;AACA,kBAAA;AACA,WAAA,IAAA;ACvBR;AD0BI,CAAA;AACI,iBAAA;AACA,eAAA;ACxBR;AD2BI,CALA,oBAKA;AACI,iBAAA;ACzBR;AD4BI,CAAA;AACI,eAAA;AACA,WAAA;AACA,mBAAA;AC1BR;AD6BI,CAAA;AACI,eAAA;AC3BR;AD8BI,CAAA;AACI,WAAA,IAAA;AC5BR;ADgCQ,CAAA;AGxGJ,aAAA,IAAA;AACA,eAAA,IAAA;AHyGQ,eAAA;AC7BZ;ADiCI,CAAA;AACI,WAAA;AACA,OAAA;AC/BR;ADiCQ,CAAA;AACI,WAAA;AC/BZ;ADoCQ,CAAA,oBAAA;AAAA,CAAA,oBAAA;AAEI,WAAA;AACA,eAAA;AAEA,aAAA;AACA,eAAA;AACA,eAAA;ACpCZ;ADuCQ,CAAA;AACI,gBAAA;ACrCZ;ADuCY,CAHJ,8BAGI;AACI,gBAAA;ACrChB;ADyCQ,CAAA;AACI,gBAAA;ACvCZ;ADyCY,CAHJ,iCAGI;AACI,gBAAA;ACvChB;",
6
6
  "names": []
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/Feedback/Feedback.tsx"],
4
- "sourcesContent": ["import React, {PropsWithChildren, useCallback, useEffect, useRef, useState} from 'react';\nimport block from 'bem-cn-lite';\n\nimport {usePopupState, useTranslation} from '../../hooks';\nimport {FeedbackSendData, FeedbackType} from '../../models';\n\nimport DislikeControl from './controls/DislikeControl';\nimport DislikeVariantsPopup, {FormData} from './controls/DislikeVariantsPopup';\nimport LikeControl from './controls/LikeControl';\nimport SuccessPopup from './controls/SuccessPopup';\nimport './Feedback.scss';\n\nconst b = block('dc-feedback');\n\nexport enum FeedbackView {\n Wide = 'wide',\n Regular = 'regular',\n}\n\nexport interface FeedbackProps {\n isLiked?: boolean;\n isDisliked?: boolean;\n onSendFeedback: (data: FeedbackSendData) => void;\n view?: FeedbackView;\n}\n\nconst getInnerState = (isLiked: boolean, isDisliked: boolean) => {\n switch (true) {\n case Boolean(isDisliked):\n return FeedbackType.dislike;\n case Boolean(isLiked):\n return FeedbackType.like;\n default:\n return FeedbackType.indeterminate;\n }\n};\n\nconst ControlsLayout: React.FC<PropsWithChildren<{view: FeedbackView}>> = ({view, children}) => {\n const {t} = useTranslation('feedback');\n\n if (view === FeedbackView.Regular) {\n return <React.Fragment>{children}</React.Fragment>;\n }\n\n return (\n <div className={b('container', {view})}>\n <div className={b('container-col', {view})}>\n <h3 className={b('title', {view})}>{t<string>('main-question')}</h3>\n <div className={b('controls', {view})}>{children}</div>\n </div>\n </div>\n );\n};\n\nconst Feedback: React.FC<FeedbackProps> = (props) => {\n const {\n isLiked = false,\n isDisliked = false,\n onSendFeedback,\n view = FeedbackView.Regular,\n } = props;\n\n const likeControlRef = useRef<HTMLButtonElement | null>(null);\n const dislikeControlRef = useRef<HTMLButtonElement | null>(null);\n\n const [innerState, setInnerState] = useState<FeedbackType>(getInnerState(isLiked, isDisliked));\n useEffect(() => {\n setInnerState(getInnerState(isLiked, isDisliked));\n }, [isLiked, isDisliked, setInnerState]);\n\n const likeSuccessPopup = usePopupState({autoclose: 3000});\n const dislikeSuccessPopup = usePopupState({autoclose: 3000});\n const dislikeVariantsPopup = usePopupState();\n\n const hideFeedbackPopups = useCallback(() => {\n likeSuccessPopup.close();\n dislikeSuccessPopup.close();\n dislikeVariantsPopup.close();\n }, [likeSuccessPopup, dislikeSuccessPopup, dislikeVariantsPopup]);\n\n const onChangeLike = useCallback(() => {\n hideFeedbackPopups();\n\n if (innerState === FeedbackType.like) {\n setInnerState(FeedbackType.indeterminate);\n onSendFeedback({type: FeedbackType.indeterminate});\n } else {\n setInnerState(FeedbackType.like);\n onSendFeedback({type: FeedbackType.like});\n likeSuccessPopup.open();\n }\n }, [onSendFeedback, setInnerState, innerState, likeSuccessPopup, hideFeedbackPopups]);\n\n const onChangeDislike = useCallback(() => {\n hideFeedbackPopups();\n\n if (innerState === FeedbackType.dislike) {\n setInnerState(FeedbackType.indeterminate);\n onSendFeedback({type: FeedbackType.indeterminate});\n } else {\n dislikeVariantsPopup.open();\n }\n }, [onSendFeedback, setInnerState, innerState, dislikeVariantsPopup, hideFeedbackPopups]);\n\n const onSendDislikeInformation = useCallback(\n (data: FormData) => {\n hideFeedbackPopups();\n dislikeSuccessPopup.open();\n setInnerState(FeedbackType.dislike);\n onSendFeedback({type: FeedbackType.dislike, ...data});\n },\n [onSendFeedback, setInnerState, dislikeSuccessPopup, hideFeedbackPopups],\n );\n\n const isDislikePopupVisible = dislikeSuccessPopup.visible || dislikeVariantsPopup.visible;\n\n return (\n <React.Fragment>\n <ControlsLayout view={view}>\n <LikeControl\n ref={likeControlRef}\n view={view}\n onClick={onChangeLike}\n isLiked={innerState === FeedbackType.like}\n isPopupVisible={likeSuccessPopup.visible}\n />\n <DislikeControl\n ref={dislikeControlRef}\n view={view}\n onClick={onChangeDislike}\n isDisliked={innerState === FeedbackType.dislike}\n isPopupVisible={isDislikePopupVisible}\n />\n </ControlsLayout>\n {likeControlRef.current && (\n <SuccessPopup\n visible={likeSuccessPopup.visible}\n anchor={likeControlRef}\n view={view}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n {dislikeControlRef.current && (\n <SuccessPopup\n visible={dislikeSuccessPopup.visible}\n anchor={dislikeControlRef}\n view={view}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n {dislikeControlRef.current && (\n <DislikeVariantsPopup\n visible={dislikeVariantsPopup.visible}\n anchor={dislikeControlRef}\n view={view}\n onSubmit={onSendDislikeInformation}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n </React.Fragment>\n );\n};\n\nexport default Feedback;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import React, {PropsWithChildren, useCallback, useEffect, useRef, useState} from 'react';\nimport block from 'bem-cn-lite';\n\nimport {usePopupState, useTranslation} from '../../hooks';\nimport {FeedbackSendData, FeedbackType} from '../../models';\n\nimport DislikeControl from './controls/DislikeControl';\nimport DislikeVariantsPopup, {FormData} from './controls/DislikeVariantsPopup';\nimport LikeControl from './controls/LikeControl';\nimport SuccessPopup from './controls/SuccessPopup';\nimport './Feedback.scss';\n\nconst b = block('dc-feedback');\n\nexport enum FeedbackView {\n Wide = 'wide',\n Regular = 'regular',\n}\n\nexport interface FeedbackProps {\n isLiked?: boolean;\n isDisliked?: boolean;\n onSendFeedback: (data: FeedbackSendData) => void;\n view?: FeedbackView;\n}\n\nconst getInnerState = (isLiked: boolean, isDisliked: boolean) => {\n switch (true) {\n case Boolean(isDisliked):\n return FeedbackType.dislike;\n case Boolean(isLiked):\n return FeedbackType.like;\n default:\n return FeedbackType.indeterminate;\n }\n};\n\nconst ControlsLayout: React.FC<PropsWithChildren<{view: FeedbackView}>> = ({view, children}) => {\n const {t} = useTranslation('feedback');\n\n if (view === FeedbackView.Regular) {\n return <React.Fragment>{children}</React.Fragment>;\n }\n\n return (\n <div className={b('container', {view})}>\n <div className={b('container-col', {view})}>\n <h3 className={b('title', {view})}>{t('main-question')}</h3>\n <div className={b('controls', {view})}>{children}</div>\n </div>\n </div>\n );\n};\n\nconst Feedback: React.FC<FeedbackProps> = (props) => {\n const {\n isLiked = false,\n isDisliked = false,\n onSendFeedback,\n view = FeedbackView.Regular,\n } = props;\n\n const likeControlRef = useRef<HTMLButtonElement | null>(null);\n const dislikeControlRef = useRef<HTMLButtonElement | null>(null);\n\n const [innerState, setInnerState] = useState<FeedbackType>(getInnerState(isLiked, isDisliked));\n useEffect(() => {\n setInnerState(getInnerState(isLiked, isDisliked));\n }, [isLiked, isDisliked, setInnerState]);\n\n const likeSuccessPopup = usePopupState({autoclose: 3000});\n const dislikeSuccessPopup = usePopupState({autoclose: 3000});\n const dislikeVariantsPopup = usePopupState();\n\n const hideFeedbackPopups = useCallback(() => {\n likeSuccessPopup.close();\n dislikeSuccessPopup.close();\n dislikeVariantsPopup.close();\n }, [likeSuccessPopup, dislikeSuccessPopup, dislikeVariantsPopup]);\n\n const onChangeLike = useCallback(() => {\n hideFeedbackPopups();\n\n if (innerState === FeedbackType.like) {\n setInnerState(FeedbackType.indeterminate);\n onSendFeedback({type: FeedbackType.indeterminate});\n } else {\n setInnerState(FeedbackType.like);\n onSendFeedback({type: FeedbackType.like});\n likeSuccessPopup.open();\n }\n }, [onSendFeedback, setInnerState, innerState, likeSuccessPopup, hideFeedbackPopups]);\n\n const onChangeDislike = useCallback(() => {\n hideFeedbackPopups();\n\n if (innerState === FeedbackType.dislike) {\n setInnerState(FeedbackType.indeterminate);\n onSendFeedback({type: FeedbackType.indeterminate});\n } else {\n dislikeVariantsPopup.open();\n }\n }, [onSendFeedback, setInnerState, innerState, dislikeVariantsPopup, hideFeedbackPopups]);\n\n const onSendDislikeInformation = useCallback(\n (data: FormData) => {\n hideFeedbackPopups();\n dislikeSuccessPopup.open();\n setInnerState(FeedbackType.dislike);\n onSendFeedback({type: FeedbackType.dislike, ...data});\n },\n [onSendFeedback, setInnerState, dislikeSuccessPopup, hideFeedbackPopups],\n );\n\n const isDislikePopupVisible = dislikeSuccessPopup.visible || dislikeVariantsPopup.visible;\n\n return (\n <React.Fragment>\n <ControlsLayout view={view}>\n <LikeControl\n ref={likeControlRef}\n view={view}\n onClick={onChangeLike}\n isLiked={innerState === FeedbackType.like}\n isPopupVisible={likeSuccessPopup.visible}\n />\n <DislikeControl\n ref={dislikeControlRef}\n view={view}\n onClick={onChangeDislike}\n isDisliked={innerState === FeedbackType.dislike}\n isPopupVisible={isDislikePopupVisible}\n />\n </ControlsLayout>\n {likeControlRef.current && (\n <SuccessPopup\n visible={likeSuccessPopup.visible}\n anchor={likeControlRef}\n view={view}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n {dislikeControlRef.current && (\n <SuccessPopup\n visible={dislikeSuccessPopup.visible}\n anchor={dislikeControlRef}\n view={view}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n {dislikeControlRef.current && (\n <DislikeVariantsPopup\n visible={dislikeVariantsPopup.visible}\n anchor={dislikeControlRef}\n view={view}\n onSubmit={onSendDislikeInformation}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n </React.Fragment>\n );\n};\n\nexport default Feedback;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAiF;AACjF,yBAAkB;AAElB,mBAA4C;AAC5C,oBAA6C;AAE7C,4BAA2B;AAC3B,kCAA6C;AAC7C,yBAAwB;AACxB,0BAAyB;AACzB,sBAAO;AAEP,IAAM,QAAI,mBAAAA,SAAM,aAAa;AAEtB,IAAK,eAAL,kBAAKC,kBAAL;AACH,EAAAA,cAAA,UAAO;AACP,EAAAA,cAAA,aAAU;AAFF,SAAAA;AAAA,GAAA;AAYZ,IAAM,gBAAgB,CAAC,SAAkB,eAAwB;AAC7D,UAAQ,MAAM;AAAA,IACV,KAAK,QAAQ,UAAU;AACnB,aAAO,2BAAa;AAAA,IACxB,KAAK,QAAQ,OAAO;AAChB,aAAO,2BAAa;AAAA,IACxB;AACI,aAAO,2BAAa;AAAA,EAC5B;AACJ;AAEA,IAAM,iBAAoE,CAAC,EAAC,MAAM,SAAQ,MAAM;AAC5F,QAAM,EAAC,EAAC,QAAI,6BAAe,UAAU;AAErC,MAAI,SAAS,yBAAsB;AAC/B,WAAO,6BAAAC,QAAA,cAAC,aAAAA,QAAM,UAAN,MAAgB,QAAS;AAAA,EACrC;AAEA,SACI,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,aAAa,EAAC,KAAI,CAAC,KACjC,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,iBAAiB,EAAC,KAAI,CAAC,KACrC,6BAAAA,QAAA,cAAC,QAAG,WAAW,EAAE,SAAS,EAAC,KAAI,CAAC,KAAI,EAAE,eAAe,CAAE,GACvD,6BAAAA,QAAA,cAAC,SAAI,WAAW,EAAE,YAAY,EAAC,KAAI,CAAC,KAAI,QAAS,CACrD,CACJ;AAER;AAEA,IAAM,WAAoC,CAAC,UAAU;AACjD,QAAM;AAAA,IACF,UAAU;AAAA,IACV,aAAa;AAAA,IACb;AAAA,IACA,OAAO;AAAA,EACX,IAAI;AAEJ,QAAM,qBAAiB,qBAAiC,IAAI;AAC5D,QAAM,wBAAoB,qBAAiC,IAAI;AAE/D,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAuB,cAAc,SAAS,UAAU,CAAC;AAC7F,8BAAU,MAAM;AACZ,kBAAc,cAAc,SAAS,UAAU,CAAC;AAAA,EACpD,GAAG,CAAC,SAAS,YAAY,aAAa,CAAC;AAEvC,QAAM,uBAAmB,4BAAc,EAAC,WAAW,IAAI,CAAC;AACxD,QAAM,0BAAsB,4BAAc,EAAC,WAAW,IAAI,CAAC;AAC3D,QAAM,2BAAuB,4BAAc;AAE3C,QAAM,yBAAqB,0BAAY,MAAM;AACzC,qBAAiB,MAAM;AACvB,wBAAoB,MAAM;AAC1B,yBAAqB,MAAM;AAAA,EAC/B,GAAG,CAAC,kBAAkB,qBAAqB,oBAAoB,CAAC;AAEhE,QAAM,mBAAe,0BAAY,MAAM;AACnC,uBAAmB;AAEnB,QAAI,eAAe,2BAAa,MAAM;AAClC,oBAAc,2BAAa,aAAa;AACxC,qBAAe,EAAC,MAAM,2BAAa,cAAa,CAAC;AAAA,IACrD,OAAO;AACH,oBAAc,2BAAa,IAAI;AAC/B,qBAAe,EAAC,MAAM,2BAAa,KAAI,CAAC;AACxC,uBAAiB,KAAK;AAAA,IAC1B;AAAA,EACJ,GAAG,CAAC,gBAAgB,eAAe,YAAY,kBAAkB,kBAAkB,CAAC;AAEpF,QAAM,sBAAkB,0BAAY,MAAM;AACtC,uBAAmB;AAEnB,QAAI,eAAe,2BAAa,SAAS;AACrC,oBAAc,2BAAa,aAAa;AACxC,qBAAe,EAAC,MAAM,2BAAa,cAAa,CAAC;AAAA,IACrD,OAAO;AACH,2BAAqB,KAAK;AAAA,IAC9B;AAAA,EACJ,GAAG,CAAC,gBAAgB,eAAe,YAAY,sBAAsB,kBAAkB,CAAC;AAExF,QAAM,+BAA2B;AAAA,IAC7B,CAAC,SAAmB;AAChB,yBAAmB;AACnB,0BAAoB,KAAK;AACzB,oBAAc,2BAAa,OAAO;AAClC,qBAAe,iBAAC,MAAM,2BAAa,WAAY,KAAK;AAAA,IACxD;AAAA,IACA,CAAC,gBAAgB,eAAe,qBAAqB,kBAAkB;AAAA,EAC3E;AAEA,QAAM,wBAAwB,oBAAoB,WAAW,qBAAqB;AAElF,SACI,6BAAAA,QAAA,cAAC,aAAAA,QAAM,UAAN,MACG,6BAAAA,QAAA,cAAC,kBAAe,QACZ,6BAAAA,QAAA;AAAA,IAAC,mBAAAC;AAAA,IAAA;AAAA,MACG,KAAK;AAAA,MACL;AAAA,MACA,SAAS;AAAA,MACT,SAAS,eAAe,2BAAa;AAAA,MACrC,gBAAgB,iBAAiB;AAAA;AAAA,EACrC,GACA,6BAAAD,QAAA;AAAA,IAAC,sBAAAE;AAAA,IAAA;AAAA,MACG,KAAK;AAAA,MACL;AAAA,MACA,SAAS;AAAA,MACT,YAAY,eAAe,2BAAa;AAAA,MACxC,gBAAgB;AAAA;AAAA,EACpB,CACJ,GACC,eAAe,WACZ,6BAAAF,QAAA;AAAA,IAAC,oBAAAG;AAAA,IAAA;AAAA,MACG,SAAS,iBAAiB;AAAA,MAC1B,QAAQ;AAAA,MACR;AAAA,MACA,gBAAgB;AAAA;AAAA,EACpB,GAEH,kBAAkB,WACf,6BAAAH,QAAA;AAAA,IAAC,oBAAAG;AAAA,IAAA;AAAA,MACG,SAAS,oBAAoB;AAAA,MAC7B,QAAQ;AAAA,MACR;AAAA,MACA,gBAAgB;AAAA;AAAA,EACpB,GAEH,kBAAkB,WACf,6BAAAH,QAAA;AAAA,IAAC,4BAAAI;AAAA,IAAA;AAAA,MACG,SAAS,qBAAqB;AAAA,MAC9B,QAAQ;AAAA,MACR;AAAA,MACA,UAAU;AAAA,MACV,gBAAgB;AAAA;AAAA,EACpB,CAER;AAER;AAEA,IAAO,mBAAQ;",
6
6
  "names": ["block", "FeedbackView", "React", "LikeControl", "DislikeControl", "SuccessPopup", "DislikeVariantsPopup"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/Feedback/controls/DislikeControl.tsx"],
4
- "sourcesContent": ["import React, {forwardRef, memo, useContext} from 'react';\nimport {ThumbsDown, ThumbsDownFill} from '@gravity-ui/icons';\nimport {Button} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {useTranslation} from '../../../hooks';\nimport {Control} from '../../Control';\nimport {ControlsLayoutContext} from '../../Controls/ControlsLayout';\nimport {FeedbackView} from '../Feedback';\n\ntype DislikeControlProps = {\n isVerticalView?: boolean | undefined;\n isDisliked: boolean | undefined;\n isPopupVisible: boolean;\n className?: string | undefined;\n view: FeedbackView | undefined;\n onClick: () => void;\n};\n\nconst b = block('dc-feedback');\n\nconst DislikeControl = memo(\n forwardRef<HTMLButtonElement, DislikeControlProps>(({isDisliked, view, onClick}, ref) => {\n const {t} = useTranslation('feedback');\n const {isVerticalView, controlClassName} = useContext(ControlsLayoutContext);\n const tooltipText = isDisliked ? t('cancel-dislike-text') : t('dislike-text');\n\n const Icon = isDisliked ? ThumbsDownFill : ThumbsDown;\n\n if (view === FeedbackView.Wide) {\n return (\n <Button view=\"normal\" ref={ref} onClick={onClick} className={b('control', {view})}>\n <Button.Icon>\n <Icon width={20} height={20} />\n </Button.Icon>\n {t<string>('button-dislike-text')}\n </Button>\n );\n }\n\n return (\n <Control\n onClick={onClick}\n className={b('control', {view}, controlClassName)}\n isVerticalView={isVerticalView}\n tooltipText={tooltipText}\n ref={ref}\n icon={Icon}\n />\n );\n }),\n);\n\nDislikeControl.displayName = 'DislikeControl';\n\nexport default DislikeControl;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkD;AAClD,mBAAyC;AACzC,mBAAqB;AACrB,yBAAkB;AAElB,mBAA6B;AAC7B,qBAAsB;AACtB,4BAAoC;AACpC,sBAA2B;AAW3B,IAAM,QAAI,mBAAAA,SAAM,aAAa;AAE7B,IAAM,qBAAiB;AAAA,MACnB,yBAAmD,CAAC,EAAC,YAAY,MAAM,QAAO,GAAG,QAAQ;AACrF,UAAM,EAAC,EAAC,QAAI,6BAAe,UAAU;AACrC,UAAM,EAAC,gBAAgB,iBAAgB,QAAI,yBAAW,2CAAqB;AAC3E,UAAM,cAAc,aAAa,EAAE,qBAAqB,IAAI,EAAE,cAAc;AAE5E,UAAM,OAAO,aAAa,8BAAiB;AAE3C,QAAI,SAAS,6BAAa,MAAM;AAC5B,aACI,6BAAAC,QAAA,cAAC,uBAAO,MAAK,UAAS,KAAU,SAAkB,WAAW,EAAE,WAAW,EAAC,KAAI,CAAC,KAC5E,6BAAAA,QAAA,cAAC,oBAAO,MAAP,MACG,6BAAAA,QAAA,cAAC,QAAK,OAAO,IAAI,QAAQ,IAAI,CACjC,GACC,EAAU,qBAAqB,CACpC;AAAA,IAER;AAEA,WACI,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA,WAAW,EAAE,WAAW,EAAC,KAAI,GAAG,gBAAgB;AAAA,QAChD;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM;AAAA;AAAA,IACV;AAAA,EAER,CAAC;AACL;AAEA,eAAe,cAAc;AAE7B,IAAO,yBAAQ;",
4
+ "sourcesContent": ["import React, {forwardRef, memo, useContext} from 'react';\nimport {ThumbsDown, ThumbsDownFill} from '@gravity-ui/icons';\nimport {Button} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {useTranslation} from '../../../hooks';\nimport {Control} from '../../Control';\nimport {ControlsLayoutContext} from '../../Controls/ControlsLayout';\nimport {FeedbackView} from '../Feedback';\n\ntype DislikeControlProps = {\n isVerticalView?: boolean | undefined;\n isDisliked: boolean | undefined;\n isPopupVisible: boolean;\n className?: string | undefined;\n view: FeedbackView | undefined;\n onClick: () => void;\n};\n\nconst b = block('dc-feedback');\n\nconst DislikeControl = memo(\n forwardRef<HTMLButtonElement, DislikeControlProps>(({isDisliked, view, onClick}, ref) => {\n const {t} = useTranslation('feedback');\n const {isVerticalView, controlClassName} = useContext(ControlsLayoutContext);\n const tooltipText = isDisliked ? t('cancel-dislike-text') : t('dislike-text');\n\n const Icon = isDisliked ? ThumbsDownFill : ThumbsDown;\n\n if (view === FeedbackView.Wide) {\n return (\n <Button view=\"normal\" ref={ref} onClick={onClick} className={b('control', {view})}>\n <Button.Icon>\n <Icon width={20} height={20} />\n </Button.Icon>\n {t('button-dislike-text')}\n </Button>\n );\n }\n\n return (\n <Control\n onClick={onClick}\n className={b('control', {view}, controlClassName)}\n isVerticalView={isVerticalView}\n tooltipText={tooltipText}\n ref={ref}\n icon={Icon}\n />\n );\n }),\n);\n\nDislikeControl.displayName = 'DislikeControl';\n\nexport default DislikeControl;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAkD;AAClD,mBAAyC;AACzC,mBAAqB;AACrB,yBAAkB;AAElB,mBAA6B;AAC7B,qBAAsB;AACtB,4BAAoC;AACpC,sBAA2B;AAW3B,IAAM,QAAI,mBAAAA,SAAM,aAAa;AAE7B,IAAM,qBAAiB;AAAA,MACnB,yBAAmD,CAAC,EAAC,YAAY,MAAM,QAAO,GAAG,QAAQ;AACrF,UAAM,EAAC,EAAC,QAAI,6BAAe,UAAU;AACrC,UAAM,EAAC,gBAAgB,iBAAgB,QAAI,yBAAW,2CAAqB;AAC3E,UAAM,cAAc,aAAa,EAAE,qBAAqB,IAAI,EAAE,cAAc;AAE5E,UAAM,OAAO,aAAa,8BAAiB;AAE3C,QAAI,SAAS,6BAAa,MAAM;AAC5B,aACI,6BAAAC,QAAA,cAAC,uBAAO,MAAK,UAAS,KAAU,SAAkB,WAAW,EAAE,WAAW,EAAC,KAAI,CAAC,KAC5E,6BAAAA,QAAA,cAAC,oBAAO,MAAP,MACG,6BAAAA,QAAA,cAAC,QAAK,OAAO,IAAI,QAAQ,IAAI,CACjC,GACC,EAAE,qBAAqB,CAC5B;AAAA,IAER;AAEA,WACI,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA,WAAW,EAAE,WAAW,EAAC,KAAI,GAAG,gBAAgB;AAAA,QAChD;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM;AAAA;AAAA,IACV;AAAA,EAER,CAAC;AACL;AAEA,eAAe,cAAc;AAE7B,IAAO,yBAAQ;",
6
6
  "names": ["block", "React"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/Feedback/controls/DislikeVariantsPopup.tsx"],
4
- "sourcesContent": ["import React, {\n RefObject,\n SyntheticEvent,\n forwardRef,\n memo,\n useCallback,\n useContext,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {Button, Checkbox, Popup, TextArea, useDirection} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {PopperPosition, useTranslation} from '../../../hooks';\nimport {getPopupPosition} from '../../../utils';\nimport {ControlsLayoutContext} from '../../Controls/ControlsLayout';\nimport {FeedbackView} from '../Feedback';\n\nexport interface FeedbackCheckboxes {\n [key: string]: boolean;\n}\n\nconst b = block('dc-feedback');\n\nconst DislikeVariantsList = memo(\n forwardRef<FormPart<string[]>>((_props, ref) => {\n const {t, i18n} = useTranslation('feedback-variants');\n const variants = i18n.getResourceBundle(i18n.language, 'feedback-variants');\n const [checked, setChecked] = useState({} as FeedbackCheckboxes);\n\n useImperativeHandle(ref, () => {\n return {\n data() {\n return Object.keys(checked)\n .filter((key) => Boolean(checked[key]))\n .map((key) => variants[key]);\n },\n\n clean() {\n setChecked({});\n },\n };\n });\n\n if (!Object.keys(variants).length) {\n return null;\n }\n\n return (\n <div className={b('variants')}>\n {Object.keys(variants).map((variant) => (\n <Checkbox\n key={variant}\n className={b('variant')}\n checked={checked[variant]}\n // TODO: fix uikit API - onUpdate(value, key)\n onUpdate={(state) => {\n setChecked({\n ...checked,\n [variant]: state,\n });\n }}\n content={t<string>(variant)}\n />\n ))}\n </div>\n );\n }),\n);\n\nDislikeVariantsList.displayName = 'DislikeVariantsList';\n\nconst DislikeVariantsInput = memo(\n forwardRef<FormPart<string>>((_props, ref) => {\n const {t} = useTranslation('feedback');\n const [feedbackComment, setFeedbackComment] = useState('');\n const onChange = useCallback((event: SyntheticEvent) => {\n setFeedbackComment((event.target as HTMLTextAreaElement).value);\n }, []);\n\n useImperativeHandle(ref, () => {\n return {\n data() {\n return feedbackComment;\n },\n\n clean() {\n setFeedbackComment('');\n },\n };\n });\n\n return (\n <div className={b('textarea')}>\n <TextArea\n size=\"m\"\n rows={6}\n placeholder={t('comment-placeholder')}\n hasClear\n value={feedbackComment}\n onChange={onChange}\n />\n </div>\n );\n }),\n);\n\nDislikeVariantsInput.displayName = 'DislikeVariantsInput';\n\ntype FormPart<T> = {\n data(): T;\n clean(): void;\n};\n\nexport type FormData = {\n comment: string;\n answers: string[];\n};\n\ntype DislikeVariantsPopupProps = {\n view: FeedbackView;\n visible: boolean;\n anchor: RefObject<HTMLButtonElement>;\n onOutsideClick: () => void;\n onSubmit: (data: FormData) => void;\n};\n\nconst DislikeVariantsPopup: React.FC<DislikeVariantsPopupProps> = memo(\n ({anchor, visible, view, onOutsideClick, onSubmit}) => {\n const {t} = useTranslation('feedback');\n const {isVerticalView} = useContext(ControlsLayoutContext);\n const direction = useDirection();\n\n const position = useMemo(() => {\n if (!view || view === FeedbackView.Regular) {\n return getPopupPosition(isVerticalView, direction);\n }\n\n return PopperPosition.RIGHT;\n }, [isVerticalView, view, direction]);\n\n const feedbackComment = useRef<FormPart<string> | null>(null);\n const feedbackCheckboxes = useRef<FormPart<string[]> | null>(null);\n\n const onFormSubmit = useCallback(\n (event: SyntheticEvent) => {\n event.preventDefault();\n\n onSubmit({\n comment: feedbackComment.current?.data() || '',\n answers: feedbackCheckboxes.current?.data() || [],\n });\n\n feedbackComment.current?.clean();\n feedbackCheckboxes.current?.clean();\n },\n [onSubmit],\n );\n\n return (\n <Popup\n anchorRef={anchor}\n open={visible}\n onOutsideClick={onOutsideClick}\n contentClassName={b('variants-popup', {view})}\n placement={position}\n modifiers={[\n {\n name: 'preventOverflow',\n options: {padding: 1, altBoundary: true, altAxis: true},\n },\n ]}\n >\n <h3 className={b('popup-title')}>{t<string>('dislike-variants-title')}</h3>\n <form onSubmit={onFormSubmit}>\n <DislikeVariantsList ref={feedbackCheckboxes} />\n <DislikeVariantsInput ref={feedbackComment} />\n <div className={b('variants-actions')}>\n <Button view=\"action\" className={b('variants-action')} type={'submit'}>\n {t<string>('send-action-text')}\n </Button>\n </div>\n </form>\n </Popup>\n );\n },\n);\n\nDislikeVariantsPopup.displayName = 'FeedbackDislikeVariantsPopup';\n\nexport default DislikeVariantsPopup;\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import React, {\n RefObject,\n SyntheticEvent,\n forwardRef,\n memo,\n useCallback,\n useContext,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {Button, Checkbox, Popup, TextArea, useDirection} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {PopperPosition, useTranslation} from '../../../hooks';\nimport {getPopupPosition} from '../../../utils';\nimport {ControlsLayoutContext} from '../../Controls/ControlsLayout';\nimport {FeedbackView} from '../Feedback';\n\nexport interface FeedbackCheckboxes {\n [key: string]: boolean;\n}\n\nconst b = block('dc-feedback');\n\nconst DislikeVariantsList = memo(\n forwardRef<FormPart<string[]>>((_props, ref) => {\n const {t, i18n} = useTranslation('feedback-variants');\n const variants = i18n.getResourceBundle(i18n.language, 'feedback-variants');\n const [checked, setChecked] = useState({} as FeedbackCheckboxes);\n\n useImperativeHandle(ref, () => {\n return {\n data() {\n return Object.keys(checked)\n .filter((key) => Boolean(checked[key]))\n .map((key) => variants[key]);\n },\n\n clean() {\n setChecked({});\n },\n };\n });\n\n if (!Object.keys(variants).length) {\n return null;\n }\n\n return (\n <div className={b('variants')}>\n {Object.keys(variants).map((variant) => (\n <Checkbox\n key={variant}\n className={b('variant')}\n checked={checked[variant]}\n // TODO: fix uikit API - onUpdate(value, key)\n onUpdate={(state) => {\n setChecked({\n ...checked,\n [variant]: state,\n });\n }}\n content={t(variant)}\n />\n ))}\n </div>\n );\n }),\n);\n\nDislikeVariantsList.displayName = 'DislikeVariantsList';\n\nconst DislikeVariantsInput = memo(\n forwardRef<FormPart<string>>((_props, ref) => {\n const {t} = useTranslation('feedback');\n const [feedbackComment, setFeedbackComment] = useState('');\n const onChange = useCallback((event: SyntheticEvent) => {\n setFeedbackComment((event.target as HTMLTextAreaElement).value);\n }, []);\n\n useImperativeHandle(ref, () => {\n return {\n data() {\n return feedbackComment;\n },\n\n clean() {\n setFeedbackComment('');\n },\n };\n });\n\n return (\n <div className={b('textarea')}>\n <TextArea\n size=\"m\"\n rows={6}\n placeholder={t('comment-placeholder')}\n hasClear\n value={feedbackComment}\n onChange={onChange}\n />\n </div>\n );\n }),\n);\n\nDislikeVariantsInput.displayName = 'DislikeVariantsInput';\n\ntype FormPart<T> = {\n data(): T;\n clean(): void;\n};\n\nexport type FormData = {\n comment: string;\n answers: string[];\n};\n\ntype DislikeVariantsPopupProps = {\n view: FeedbackView;\n visible: boolean;\n anchor: RefObject<HTMLButtonElement>;\n onOutsideClick: () => void;\n onSubmit: (data: FormData) => void;\n};\n\nconst DislikeVariantsPopup: React.FC<DislikeVariantsPopupProps> = memo(\n ({anchor, visible, view, onOutsideClick, onSubmit}) => {\n const {t} = useTranslation('feedback');\n const {isVerticalView} = useContext(ControlsLayoutContext);\n const direction = useDirection();\n\n const position = useMemo(() => {\n if (!view || view === FeedbackView.Regular) {\n return getPopupPosition(isVerticalView, direction);\n }\n\n return PopperPosition.RIGHT;\n }, [isVerticalView, view, direction]);\n\n const feedbackComment = useRef<FormPart<string> | null>(null);\n const feedbackCheckboxes = useRef<FormPart<string[]> | null>(null);\n\n const onFormSubmit = useCallback(\n (event: SyntheticEvent) => {\n event.preventDefault();\n\n onSubmit({\n comment: feedbackComment.current?.data() || '',\n answers: feedbackCheckboxes.current?.data() || [],\n });\n\n feedbackComment.current?.clean();\n feedbackCheckboxes.current?.clean();\n },\n [onSubmit],\n );\n\n return (\n <Popup\n anchorRef={anchor}\n open={visible}\n onOutsideClick={onOutsideClick}\n contentClassName={b('variants-popup', {view})}\n placement={position}\n modifiers={[\n {\n name: 'preventOverflow',\n options: {padding: 1, altBoundary: true, altAxis: true},\n },\n ]}\n >\n <h3 className={b('popup-title')}>{t('dislike-variants-title')}</h3>\n <form onSubmit={onFormSubmit}>\n <DislikeVariantsList ref={feedbackCheckboxes} />\n <DislikeVariantsInput ref={feedbackComment} />\n <div className={b('variants-actions')}>\n <Button view=\"action\" className={b('variants-action')} type={'submit'}>\n {t('send-action-text')}\n </Button>\n </div>\n </form>\n </Popup>\n );\n },\n);\n\nDislikeVariantsPopup.displayName = 'FeedbackDislikeVariantsPopup';\n\nexport default DislikeVariantsPopup;\n"],
5
+ "mappings": "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",
6
6
  "names": ["block", "React"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/Feedback/controls/LikeControl.tsx"],
4
- "sourcesContent": ["import type {PopperPosition} from '../../../hooks';\n\nimport React, {forwardRef, memo, useContext} from 'react';\nimport {ThumbsUp, ThumbsUpFill} from '@gravity-ui/icons';\nimport {Button} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {useTranslation} from '../../../hooks';\nimport {Control} from '../../Control';\nimport {ControlsLayoutContext} from '../../Controls/ControlsLayout';\nimport {FeedbackView} from '../Feedback';\n\ntype LikeControlProps = {\n isVerticalView?: boolean | undefined;\n isLiked: boolean | undefined;\n isPopupVisible: boolean;\n className?: string | undefined;\n view: FeedbackView | undefined;\n onClick: () => void;\n popupPosition?: PopperPosition | undefined;\n};\n\nconst b = block('dc-feedback');\n\nconst LikeControl = memo(\n forwardRef<HTMLButtonElement, LikeControlProps>(({isLiked, view, onClick}, ref) => {\n const {t} = useTranslation('feedback');\n const {isVerticalView, popupPosition, controlClassName} = useContext(ControlsLayoutContext);\n const tooltipText = isLiked ? t('cancel-like-text') : t('like-text');\n\n const Icon = isLiked ? ThumbsUpFill : ThumbsUp;\n\n if (view === FeedbackView.Wide) {\n return (\n <Button view=\"normal\" ref={ref} onClick={onClick} className={b('control', {view})}>\n <Button.Icon>\n <Icon width={20} height={20} />\n </Button.Icon>\n {t<string>('button-like-text')}\n </Button>\n );\n }\n\n return (\n <Control\n onClick={onClick}\n className={b('control', {view}, controlClassName)}\n isVerticalView={isVerticalView}\n tooltipText={tooltipText}\n ref={ref}\n icon={Icon}\n popupPosition={popupPosition}\n />\n );\n }),\n);\n\nLikeControl.displayName = 'LikeControl';\n\nexport default LikeControl;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAkD;AAClD,mBAAqC;AACrC,mBAAqB;AACrB,yBAAkB;AAElB,mBAA6B;AAC7B,qBAAsB;AACtB,4BAAoC;AACpC,sBAA2B;AAY3B,IAAM,QAAI,mBAAAA,SAAM,aAAa;AAE7B,IAAM,kBAAc;AAAA,MAChB,yBAAgD,CAAC,EAAC,SAAS,MAAM,QAAO,GAAG,QAAQ;AAC/E,UAAM,EAAC,EAAC,QAAI,6BAAe,UAAU;AACrC,UAAM,EAAC,gBAAgB,eAAe,iBAAgB,QAAI,yBAAW,2CAAqB;AAC1F,UAAM,cAAc,UAAU,EAAE,kBAAkB,IAAI,EAAE,WAAW;AAEnE,UAAM,OAAO,UAAU,4BAAe;AAEtC,QAAI,SAAS,6BAAa,MAAM;AAC5B,aACI,6BAAAC,QAAA,cAAC,uBAAO,MAAK,UAAS,KAAU,SAAkB,WAAW,EAAE,WAAW,EAAC,KAAI,CAAC,KAC5E,6BAAAA,QAAA,cAAC,oBAAO,MAAP,MACG,6BAAAA,QAAA,cAAC,QAAK,OAAO,IAAI,QAAQ,IAAI,CACjC,GACC,EAAU,kBAAkB,CACjC;AAAA,IAER;AAEA,WACI,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA,WAAW,EAAE,WAAW,EAAC,KAAI,GAAG,gBAAgB;AAAA,QAChD;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN;AAAA;AAAA,IACJ;AAAA,EAER,CAAC;AACL;AAEA,YAAY,cAAc;AAE1B,IAAO,sBAAQ;",
4
+ "sourcesContent": ["import type {PopperPosition} from '../../../hooks';\n\nimport React, {forwardRef, memo, useContext} from 'react';\nimport {ThumbsUp, ThumbsUpFill} from '@gravity-ui/icons';\nimport {Button} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {useTranslation} from '../../../hooks';\nimport {Control} from '../../Control';\nimport {ControlsLayoutContext} from '../../Controls/ControlsLayout';\nimport {FeedbackView} from '../Feedback';\n\ntype LikeControlProps = {\n isVerticalView?: boolean | undefined;\n isLiked: boolean | undefined;\n isPopupVisible: boolean;\n className?: string | undefined;\n view: FeedbackView | undefined;\n onClick: () => void;\n popupPosition?: PopperPosition | undefined;\n};\n\nconst b = block('dc-feedback');\n\nconst LikeControl = memo(\n forwardRef<HTMLButtonElement, LikeControlProps>(({isLiked, view, onClick}, ref) => {\n const {t} = useTranslation('feedback');\n const {isVerticalView, popupPosition, controlClassName} = useContext(ControlsLayoutContext);\n const tooltipText = isLiked ? t('cancel-like-text') : t('like-text');\n\n const Icon = isLiked ? ThumbsUpFill : ThumbsUp;\n\n if (view === FeedbackView.Wide) {\n return (\n <Button view=\"normal\" ref={ref} onClick={onClick} className={b('control', {view})}>\n <Button.Icon>\n <Icon width={20} height={20} />\n </Button.Icon>\n {t('button-like-text')}\n </Button>\n );\n }\n\n return (\n <Control\n onClick={onClick}\n className={b('control', {view}, controlClassName)}\n isVerticalView={isVerticalView}\n tooltipText={tooltipText}\n ref={ref}\n icon={Icon}\n popupPosition={popupPosition}\n />\n );\n }),\n);\n\nLikeControl.displayName = 'LikeControl';\n\nexport default LikeControl;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAkD;AAClD,mBAAqC;AACrC,mBAAqB;AACrB,yBAAkB;AAElB,mBAA6B;AAC7B,qBAAsB;AACtB,4BAAoC;AACpC,sBAA2B;AAY3B,IAAM,QAAI,mBAAAA,SAAM,aAAa;AAE7B,IAAM,kBAAc;AAAA,MAChB,yBAAgD,CAAC,EAAC,SAAS,MAAM,QAAO,GAAG,QAAQ;AAC/E,UAAM,EAAC,EAAC,QAAI,6BAAe,UAAU;AACrC,UAAM,EAAC,gBAAgB,eAAe,iBAAgB,QAAI,yBAAW,2CAAqB;AAC1F,UAAM,cAAc,UAAU,EAAE,kBAAkB,IAAI,EAAE,WAAW;AAEnE,UAAM,OAAO,UAAU,4BAAe;AAEtC,QAAI,SAAS,6BAAa,MAAM;AAC5B,aACI,6BAAAC,QAAA,cAAC,uBAAO,MAAK,UAAS,KAAU,SAAkB,WAAW,EAAE,WAAW,EAAC,KAAI,CAAC,KAC5E,6BAAAA,QAAA,cAAC,oBAAO,MAAP,MACG,6BAAAA,QAAA,cAAC,QAAK,OAAO,IAAI,QAAQ,IAAI,CACjC,GACC,EAAE,kBAAkB,CACzB;AAAA,IAER;AAEA,WACI,6BAAAA,QAAA;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA,WAAW,EAAE,WAAW,EAAC,KAAI,GAAG,gBAAgB;AAAA,QAChD;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM;AAAA,QACN;AAAA;AAAA,IACJ;AAAA,EAER,CAAC;AACL;AAEA,YAAY,cAAc;AAE1B,IAAO,sBAAQ;",
6
6
  "names": ["block", "React"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/Feedback/controls/SuccessPopup.tsx"],
4
- "sourcesContent": ["import React, {RefObject, memo, useContext, useMemo} from 'react';\nimport {Popup, useDirection} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {PopperPosition, useTranslation} from '../../../hooks';\nimport {getPopupPosition} from '../../../utils';\nimport {ControlsLayoutContext} from '../../Controls/ControlsLayout';\nimport {FeedbackView} from '../Feedback';\n\ntype SuccessPopupProps = {\n view: FeedbackView;\n visible: boolean;\n anchor: RefObject<HTMLButtonElement>;\n onOutsideClick: () => void;\n};\n\nconst b = block('dc-feedback');\n\nconst SuccessPopup = memo<SuccessPopupProps>(({visible, anchor, onOutsideClick, view}) => {\n const {t} = useTranslation('feedback');\n const {isVerticalView} = useContext(ControlsLayoutContext);\n const direction = useDirection();\n\n const position = useMemo(() => {\n if (!view || view === FeedbackView.Regular) {\n return getPopupPosition(isVerticalView, direction);\n }\n\n return PopperPosition.RIGHT;\n }, [isVerticalView, view, direction]);\n\n return (\n <Popup\n anchorRef={anchor}\n open={visible}\n onOutsideClick={onOutsideClick}\n contentClassName={b('success-popup', {view})}\n placement={position}\n modifiers={[\n {name: 'preventOverflow', options: {padding: 1, altBoundary: true, altAxis: true}},\n ]}\n >\n <h3 className={b('popup-title')}>{t<string>('success-title')}</h3>\n <p className={b('popup-text')}>{t<string>('success-text')}</p>\n </Popup>\n );\n});\n\nSuccessPopup.displayName = 'FeedbackSuccessPopup';\n\nexport default SuccessPopup;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0D;AAC1D,mBAAkC;AAClC,yBAAkB;AAElB,mBAA6C;AAC7C,mBAA+B;AAC/B,4BAAoC;AACpC,sBAA2B;AAS3B,IAAM,QAAI,mBAAAA,SAAM,aAAa;AAE7B,IAAM,mBAAe,mBAAwB,CAAC,EAAC,SAAS,QAAQ,gBAAgB,KAAI,MAAM;AACtF,QAAM,EAAC,EAAC,QAAI,6BAAe,UAAU;AACrC,QAAM,EAAC,eAAc,QAAI,yBAAW,2CAAqB;AACzD,QAAM,gBAAY,2BAAa;AAE/B,QAAM,eAAW,sBAAQ,MAAM;AAC3B,QAAI,CAAC,QAAQ,SAAS,6BAAa,SAAS;AACxC,iBAAO,+BAAiB,gBAAgB,SAAS;AAAA,IACrD;AAEA,WAAO,4BAAe;AAAA,EAC1B,GAAG,CAAC,gBAAgB,MAAM,SAAS,CAAC;AAEpC,SACI,6BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACG,WAAW;AAAA,MACX,MAAM;AAAA,MACN;AAAA,MACA,kBAAkB,EAAE,iBAAiB,EAAC,KAAI,CAAC;AAAA,MAC3C,WAAW;AAAA,MACX,WAAW;AAAA,QACP,EAAC,MAAM,mBAAmB,SAAS,EAAC,SAAS,GAAG,aAAa,MAAM,SAAS,KAAI,EAAC;AAAA,MACrF;AAAA;AAAA,IAEA,6BAAAA,QAAA,cAAC,QAAG,WAAW,EAAE,aAAa,KAAI,EAAU,eAAe,CAAE;AAAA,IAC7D,6BAAAA,QAAA,cAAC,OAAE,WAAW,EAAE,YAAY,KAAI,EAAU,cAAc,CAAE;AAAA,EAC9D;AAER,CAAC;AAED,aAAa,cAAc;AAE3B,IAAO,uBAAQ;",
4
+ "sourcesContent": ["import React, {RefObject, memo, useContext, useMemo} from 'react';\nimport {Popup, useDirection} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {PopperPosition, useTranslation} from '../../../hooks';\nimport {getPopupPosition} from '../../../utils';\nimport {ControlsLayoutContext} from '../../Controls/ControlsLayout';\nimport {FeedbackView} from '../Feedback';\n\ntype SuccessPopupProps = {\n view: FeedbackView;\n visible: boolean;\n anchor: RefObject<HTMLButtonElement>;\n onOutsideClick: () => void;\n};\n\nconst b = block('dc-feedback');\n\nconst SuccessPopup = memo<SuccessPopupProps>(({visible, anchor, onOutsideClick, view}) => {\n const {t} = useTranslation('feedback');\n const {isVerticalView} = useContext(ControlsLayoutContext);\n const direction = useDirection();\n\n const position = useMemo(() => {\n if (!view || view === FeedbackView.Regular) {\n return getPopupPosition(isVerticalView, direction);\n }\n\n return PopperPosition.RIGHT;\n }, [isVerticalView, view, direction]);\n\n return (\n <Popup\n anchorRef={anchor}\n open={visible}\n onOutsideClick={onOutsideClick}\n contentClassName={b('success-popup', {view})}\n placement={position}\n modifiers={[\n {name: 'preventOverflow', options: {padding: 1, altBoundary: true, altAxis: true}},\n ]}\n >\n <h3 className={b('popup-title')}>{t('success-title')}</h3>\n <p className={b('popup-text')}>{t('success-text')}</p>\n </Popup>\n );\n});\n\nSuccessPopup.displayName = 'FeedbackSuccessPopup';\n\nexport default SuccessPopup;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAA0D;AAC1D,mBAAkC;AAClC,yBAAkB;AAElB,mBAA6C;AAC7C,mBAA+B;AAC/B,4BAAoC;AACpC,sBAA2B;AAS3B,IAAM,QAAI,mBAAAA,SAAM,aAAa;AAE7B,IAAM,mBAAe,mBAAwB,CAAC,EAAC,SAAS,QAAQ,gBAAgB,KAAI,MAAM;AACtF,QAAM,EAAC,EAAC,QAAI,6BAAe,UAAU;AACrC,QAAM,EAAC,eAAc,QAAI,yBAAW,2CAAqB;AACzD,QAAM,gBAAY,2BAAa;AAE/B,QAAM,eAAW,sBAAQ,MAAM;AAC3B,QAAI,CAAC,QAAQ,SAAS,6BAAa,SAAS;AACxC,iBAAO,+BAAiB,gBAAgB,SAAS;AAAA,IACrD;AAEA,WAAO,4BAAe;AAAA,EAC1B,GAAG,CAAC,gBAAgB,MAAM,SAAS,CAAC;AAEpC,SACI,6BAAAC,QAAA;AAAA,IAAC;AAAA;AAAA,MACG,WAAW;AAAA,MACX,MAAM;AAAA,MACN;AAAA,MACA,kBAAkB,EAAE,iBAAiB,EAAC,KAAI,CAAC;AAAA,MAC3C,WAAW;AAAA,MACX,WAAW;AAAA,QACP,EAAC,MAAM,mBAAmB,SAAS,EAAC,SAAS,GAAG,aAAa,MAAM,SAAS,KAAI,EAAC;AAAA,MACrF;AAAA;AAAA,IAEA,6BAAAA,QAAA,cAAC,QAAG,WAAW,EAAE,aAAa,KAAI,EAAE,eAAe,CAAE;AAAA,IACrD,6BAAAA,QAAA,cAAC,OAAE,WAAW,EAAE,YAAY,KAAI,EAAE,cAAc,CAAE;AAAA,EACtD;AAER,CAAC;AAED,aAAa,cAAc;AAE3B,IAAO,uBAAQ;",
6
6
  "names": ["block", "React"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../../src/components/Mark/home/runner/work/components/components/src/components/Mark/Mark.scss", "../../../../src/components/Mark/%3Cinput%20css%20xkKduk%3E"],
3
+ "sources": ["../../../../src/components/Mark/home/runner/work/components/components/src/components/Mark/Mark.scss", "../../../../src/components/Mark/%3Cinput%20css%20T2sUCf%3E"],
4
4
  "sourcesContent": [".dc-mark {\n display: inline-block;\n font-weight: bold;\n line-height: 1;\n\n &_color {\n &_blue {\n color: #67b0f8;\n }\n\n &_green {\n color: #56bd67;\n }\n }\n\n &_size {\n &_s {\n font-size: 10px;\n letter-spacing: 0.25px;\n }\n\n &_m {\n font-size: 12px;\n letter-spacing: 0.3px;\n }\n }\n}\n", ".dc-mark {\n display: inline-block;\n font-weight: bold;\n line-height: 1;\n}\n.dc-mark_color_blue {\n color: #67b0f8;\n}\n.dc-mark_color_green {\n color: #56bd67;\n}\n.dc-mark_size_s {\n font-size: 10px;\n letter-spacing: 0.25px;\n}\n.dc-mark_size_m {\n font-size: 12px;\n letter-spacing: 0.3px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL01hcmsiLCJzb3VyY2VzIjpbIk1hcmsuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNJO0VBQ0E7RUFDQTs7QUFHSTtFQUNJOztBQUdKO0VBQ0k7O0FBS0o7RUFDSTtFQUNBOztBQUdKO0VBQ0k7RUFDQSIsInNvdXJjZXNDb250ZW50IjpbIi5kYy1tYXJrIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAmX2NvbG9yIHtcbiAgICAgICAgJl9ibHVlIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNjdiMGY4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9ncmVlbiB7XG4gICAgICAgICAgICBjb2xvcjogIzU2YmQ2NztcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfc2l6ZSB7XG4gICAgICAgICZfcyB7XG4gICAgICAgICAgICBmb250LXNpemU6IDEwcHg7XG4gICAgICAgICAgICBsZXR0ZXItc3BhY2luZzogMC4yNXB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJl9tIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIGxldHRlci1zcGFjaW5nOiAwLjNweDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ== */"],
5
5
  "mappings": ";AAAA,CAAA;AACI,WAAA;AACA,eAAA;AACA,eAAA;ACCJ;ADEQ,CAAA;AACI,SAAA;ACAZ;ADGQ,CAAA;AACI,SAAA;ACDZ;ADMQ,CAAA;AACI,aAAA;AACA,kBAAA;ACJZ;ADOQ,CAAA;AACI,aAAA;AACA,kBAAA;ACLZ;",
6
6
  "names": []
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import { MetaProps } from '../SocialSharingMeta';
3
+ import { DocMetaProps } from '../DocMeta';
4
+ interface SharingProps {
5
+ title?: string;
6
+ description?: string;
7
+ }
8
+ export interface MetaComponentProps extends DocMetaProps {
9
+ type?: string;
10
+ url?: string;
11
+ image?: string;
12
+ locale?: string;
13
+ sharing?: SharingProps;
14
+ extra?: MetaProps[];
15
+ description?: string;
16
+ keywords?: string | string[];
17
+ noIndex?: boolean;
18
+ canonical?: string;
19
+ alternate?: Record<string, string>;
20
+ schemaJsonLd?: unknown;
21
+ isAwsServer?: boolean;
22
+ metadata?: Record<string, string>[];
23
+ }
24
+ declare const _default: React.ComponentClass<MetaComponentProps, any>;
25
+ export default _default;
@@ -0,0 +1,2 @@
1
+ export { default as Meta } from './Meta';
2
+ export * from './Meta';