@diplodoc/components 4.11.0 → 4.11.2

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 (131) 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/ContentWrapper/ContentWrapper.d.ts +5 -0
  4. package/build/cjs/components/ContentWrapper/ContentWrapper.js +74 -0
  5. package/build/cjs/components/ContentWrapper/ContentWrapper.js.map +7 -0
  6. package/build/cjs/components/ContentWrapper/index.d.ts +1 -0
  7. package/build/cjs/components/ContentWrapper/index.js +21 -0
  8. package/build/cjs/components/ContentWrapper/index.js.map +7 -0
  9. package/build/cjs/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
  10. package/build/cjs/components/Contributors/Contributors.css.map +1 -1
  11. package/build/cjs/components/Control/Control.css.map +1 -1
  12. package/build/cjs/components/Controls/Controls.css.map +1 -1
  13. package/build/cjs/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  14. package/build/cjs/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
  15. package/build/cjs/components/Controls/single-controls/LangControl/LangControl.js +0 -3
  16. package/build/cjs/components/Controls/single-controls/LangControl/LangControl.js.map +2 -2
  17. package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
  18. package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.js +24 -8
  19. package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.js.map +2 -2
  20. package/build/cjs/components/DocContentPage/DocContentPage.d.ts +1 -0
  21. package/build/cjs/components/DocContentPage/DocContentPage.js +4 -2
  22. package/build/cjs/components/DocContentPage/DocContentPage.js.map +2 -2
  23. package/build/cjs/components/DocLayout/DocLayout.css.map +1 -1
  24. package/build/cjs/components/DocLeadingPage/DocLeadingPage.css.map +1 -1
  25. package/build/cjs/components/DocLeadingPage/DocLeadingPage.d.ts +1 -0
  26. package/build/cjs/components/DocLeadingPage/DocLeadingPage.js +4 -2
  27. package/build/cjs/components/DocLeadingPage/DocLeadingPage.js.map +2 -2
  28. package/build/cjs/components/DocPage/DocPage.css.map +1 -1
  29. package/build/cjs/components/DocPage/DocPage.d.ts +1 -0
  30. package/build/cjs/components/DocPage/DocPage.js +4 -2
  31. package/build/cjs/components/DocPage/DocPage.js.map +2 -2
  32. package/build/cjs/components/DocPageTitle/DocPageTitle.css.map +1 -1
  33. package/build/cjs/components/ErrorPage/ErrorPage.css.map +1 -1
  34. package/build/cjs/components/Feedback/Feedback.css.map +1 -1
  35. package/build/cjs/components/Feedback/Feedback.js +2 -5
  36. package/build/cjs/components/Feedback/Feedback.js.map +2 -2
  37. package/build/cjs/components/Feedback/controls/DislikeControl.d.ts +0 -1
  38. package/build/cjs/components/Feedback/controls/DislikeControl.js +19 -34
  39. package/build/cjs/components/Feedback/controls/DislikeControl.js.map +2 -2
  40. package/build/cjs/components/Feedback/controls/LikeControl.d.ts +0 -1
  41. package/build/cjs/components/Feedback/controls/LikeControl.js +27 -32
  42. package/build/cjs/components/Feedback/controls/LikeControl.js.map +2 -2
  43. package/build/cjs/components/Mark/Mark.css.map +1 -1
  44. package/build/cjs/components/MiniToc/MiniToc.css.map +1 -1
  45. package/build/cjs/components/Paginator/Paginator.css.map +1 -1
  46. package/build/cjs/components/SearchBar/SearchBar.css.map +1 -1
  47. package/build/cjs/components/SearchItem/SearchItem.css.map +1 -1
  48. package/build/cjs/components/SearchPage/SearchPage.css.map +1 -1
  49. package/build/cjs/components/SearchSuggest/index.css.map +1 -1
  50. package/build/cjs/components/Subscribe/Subscribe.css.map +1 -1
  51. package/build/cjs/components/Subscribe/Subscribe.js +25 -32
  52. package/build/cjs/components/Subscribe/Subscribe.js.map +2 -2
  53. package/build/cjs/components/Toc/Toc.css.map +1 -1
  54. package/build/cjs/components/TocItem/TocItem.css.map +1 -1
  55. package/build/cjs/components/TocItem/TocItem.js +4 -4
  56. package/build/cjs/components/TocItem/TocItem.js.map +2 -2
  57. package/build/cjs/components/TocLable/TocLabel.css.map +1 -1
  58. package/build/cjs/components/TocNavPanel/TocNavPanel.css.map +1 -1
  59. package/build/cjs/components/ToggleArrow/ToggleArrow.css.map +1 -1
  60. package/build/cjs/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  61. package/build/cjs/i18n/index.d.ts +4 -2
  62. package/build/cjs/i18n/index.js +3 -2
  63. package/build/cjs/i18n/index.js.map +2 -2
  64. package/build/esm/components/BookmarkButton/BookmarkButton.css.map +1 -1
  65. package/build/esm/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
  66. package/build/esm/components/ContentWrapper/ContentWrapper.d.ts +5 -0
  67. package/build/esm/components/ContentWrapper/ContentWrapper.js +46 -0
  68. package/build/esm/components/ContentWrapper/ContentWrapper.js.map +7 -0
  69. package/build/esm/components/ContentWrapper/index.d.ts +1 -0
  70. package/build/esm/components/ContentWrapper/index.js +3 -0
  71. package/build/esm/components/ContentWrapper/index.js.map +7 -0
  72. package/build/esm/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
  73. package/build/esm/components/Contributors/Contributors.css.map +1 -1
  74. package/build/esm/components/Control/Control.css.map +1 -1
  75. package/build/esm/components/Controls/Controls.css.map +1 -1
  76. package/build/esm/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
  77. package/build/esm/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
  78. package/build/esm/components/Controls/single-controls/LangControl/LangControl.js +0 -3
  79. package/build/esm/components/Controls/single-controls/LangControl/LangControl.js.map +2 -2
  80. package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
  81. package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.js +24 -8
  82. package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.js.map +2 -2
  83. package/build/esm/components/DocContentPage/DocContentPage.d.ts +1 -0
  84. package/build/esm/components/DocContentPage/DocContentPage.js +4 -2
  85. package/build/esm/components/DocContentPage/DocContentPage.js.map +2 -2
  86. package/build/esm/components/DocLayout/DocLayout.css.map +1 -1
  87. package/build/esm/components/DocLeadingPage/DocLeadingPage.css.map +1 -1
  88. package/build/esm/components/DocLeadingPage/DocLeadingPage.d.ts +1 -0
  89. package/build/esm/components/DocLeadingPage/DocLeadingPage.js +4 -2
  90. package/build/esm/components/DocLeadingPage/DocLeadingPage.js.map +2 -2
  91. package/build/esm/components/DocPage/DocPage.css.map +1 -1
  92. package/build/esm/components/DocPage/DocPage.d.ts +1 -0
  93. package/build/esm/components/DocPage/DocPage.js +4 -2
  94. package/build/esm/components/DocPage/DocPage.js.map +2 -2
  95. package/build/esm/components/DocPageTitle/DocPageTitle.css.map +1 -1
  96. package/build/esm/components/ErrorPage/ErrorPage.css.map +1 -1
  97. package/build/esm/components/Feedback/Feedback.css.map +1 -1
  98. package/build/esm/components/Feedback/Feedback.js +2 -5
  99. package/build/esm/components/Feedback/Feedback.js.map +2 -2
  100. package/build/esm/components/Feedback/controls/DislikeControl.d.ts +0 -1
  101. package/build/esm/components/Feedback/controls/DislikeControl.js +19 -34
  102. package/build/esm/components/Feedback/controls/DislikeControl.js.map +2 -2
  103. package/build/esm/components/Feedback/controls/LikeControl.d.ts +0 -1
  104. package/build/esm/components/Feedback/controls/LikeControl.js +27 -32
  105. package/build/esm/components/Feedback/controls/LikeControl.js.map +2 -2
  106. package/build/esm/components/Mark/Mark.css.map +1 -1
  107. package/build/esm/components/MiniToc/MiniToc.css.map +1 -1
  108. package/build/esm/components/Paginator/Paginator.css.map +1 -1
  109. package/build/esm/components/SearchBar/SearchBar.css.map +1 -1
  110. package/build/esm/components/SearchItem/SearchItem.css.map +1 -1
  111. package/build/esm/components/SearchPage/SearchPage.css.map +1 -1
  112. package/build/esm/components/SearchSuggest/index.css.map +1 -1
  113. package/build/esm/components/Subscribe/Subscribe.css.map +1 -1
  114. package/build/esm/components/Subscribe/Subscribe.js +25 -32
  115. package/build/esm/components/Subscribe/Subscribe.js.map +2 -2
  116. package/build/esm/components/Toc/Toc.css.map +1 -1
  117. package/build/esm/components/TocItem/TocItem.css.map +1 -1
  118. package/build/esm/components/TocItem/TocItem.js +4 -4
  119. package/build/esm/components/TocItem/TocItem.js.map +2 -2
  120. package/build/esm/components/TocLable/TocLabel.css.map +1 -1
  121. package/build/esm/components/TocNavPanel/TocNavPanel.css.map +1 -1
  122. package/build/esm/components/ToggleArrow/ToggleArrow.css.map +1 -1
  123. package/build/esm/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
  124. package/build/esm/i18n/index.d.ts +4 -2
  125. package/build/esm/i18n/index.js +3 -2
  126. package/build/esm/i18n/index.js.map +2 -2
  127. package/build/index.css.map +1 -1
  128. package/build/themes/common/index.css.map +1 -1
  129. package/package.json +1 -1
  130. package/src/i18n/en.json +2 -1
  131. package/src/i18n/ru.json +2 -1
@@ -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, Xmark} from '@gravity-ui/icons';\nimport {Button, Icon} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\nimport {createPortal} from 'react-dom';\n\nimport {DEFAULT_SETTINGS} from '../../constants';\nimport {\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 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 {MiniToc} from '../MiniToc';\nimport {SearchBar, withHighlightedSearchWords} from '../SearchBar';\nimport {TocNavPanel} from '../TocNavPanel';\nimport UpdatedAtDate from '../UpdatedAtDate/UpdatedAtDate';\n\nimport './DocPage.scss';\n\nconst b = block('dc-doc-page');\nconst bNote = block('dc-note');\n\nexport interface DocPageProps extends DocPageData, DocSettings {\n lang: Lang;\n langs?: Lang[];\n router: Router;\n headerHeight?: number;\n tocTitleIcon?: React.ReactNode;\n hideToc?: 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) => 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 notification?: {\n title?: string;\n content?: string;\n type?: string;\n };\n notificationCb?: () => void;\n}\n\ntype DocPageInnerProps = InnerProps<DocPageProps, DocSettings>;\ntype DocPageState = {\n loading: boolean;\n keyDOM: number;\n showNotification: boolean;\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 showNotification: true,\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 headerHeight,\n wideFormat,\n fullScreen,\n singlePage,\n tocTitleIcon,\n hideTocHeader,\n hideToc,\n footer,\n onChangeSinglePage,\n pdfLink,\n } = this.props;\n\n const hideMiniToc = !this.showMiniToc;\n const modes = {\n 'regular-page-width': !wideFormat,\n 'full-screen': fullScreen,\n 'hidden-mini-toc': hideMiniToc,\n 'single-page': singlePage,\n };\n\n return (\n <DocLayout\n toc={toc}\n router={router}\n headerHeight={headerHeight}\n className={b(modes)}\n fullScreen={fullScreen}\n hideRight={hideMiniToc}\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 >\n <DocLayout.Center>\n {this.renderSearchBar()}\n {this.renderNotification()}\n {this.renderBreadcrumbs()}\n {this.renderControls()}\n <div className={b('main')}>\n <main className={b('content')}>\n {this.renderTitle()}\n {this.renderPageContributors()}\n {hideMiniToc ? null : this.renderContentMiniToc()}\n {this.renderBody()}\n {this.renderFeedback()}\n </main>\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 {hideMiniToc ? null : this.renderAsideMiniToc()}\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 renderNotification() {\n const {notification, notificationCb} = this.props;\n const {showNotification} = this.state;\n\n if (!notification || !showNotification) {\n return null;\n }\n const {title = '', content = '', type = ''} = notification;\n const isNoteTypeCorrect = ['info', 'tip', 'warning', 'alert'].includes(type.toLowerCase());\n\n return (\n <div className={bNote('wrapper')}>\n <div\n className={bNote(\n {},\n isNoteTypeCorrect ? `dc-accent-${type}` : bNote('template'),\n )}\n >\n {title && <p className={bNote('title')}>{title}</p>}\n <Button\n view={'flat'}\n className={bNote('xmark')}\n onClick={() => {\n if (notificationCb) {\n notificationCb();\n }\n this.setState({showNotification: false});\n }}\n >\n <Icon data={Xmark} />\n </Button>\n {content && <HTML className={bNote('content')}>{content}</HTML>}\n </div>\n </div>\n );\n }\n\n private renderTitle() {\n const {title, meta, bookmarkedPage, onChangeBookmarkPage} = this.props;\n const withBookmarks = onChangeBookmarkPage;\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 </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 renderAsideMiniToc() {\n const {headings, router, headerHeight, onMiniTocItemClick} = this.props;\n const {keyDOM} = this.state;\n\n return (\n <div className={b('aside-mini-toc')}>\n <MiniToc\n headings={headings}\n router={router}\n headerHeight={headerHeight}\n key={keyDOM}\n onItemClick={onMiniTocItemClick}\n />\n </div>\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, Xmark} from '@gravity-ui/icons';\nimport {Button, Icon} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\nimport {createPortal} from 'react-dom';\n\nimport {DEFAULT_SETTINGS} from '../../constants';\nimport {\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 {MiniToc} from '../MiniToc';\nimport {SearchBar, withHighlightedSearchWords} from '../SearchBar';\nimport {TocNavPanel} from '../TocNavPanel';\nimport UpdatedAtDate from '../UpdatedAtDate/UpdatedAtDate';\n\nimport './DocPage.scss';\n\nconst b = block('dc-doc-page');\nconst bNote = block('dc-note');\n\nexport interface DocPageProps extends DocPageData, DocSettings {\n lang: Lang;\n langs?: Lang[];\n router: Router;\n headerHeight?: number;\n tocTitleIcon?: React.ReactNode;\n hideToc?: 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) => 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 notification?: {\n title?: string;\n content?: string;\n type?: string;\n };\n notificationCb?: () => void;\n useMainTag?: boolean;\n}\n\ntype DocPageInnerProps = InnerProps<DocPageProps, DocSettings>;\ntype DocPageState = {\n loading: boolean;\n keyDOM: number;\n showNotification: boolean;\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 showNotification: true,\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 headerHeight,\n wideFormat,\n fullScreen,\n singlePage,\n tocTitleIcon,\n hideTocHeader,\n hideToc,\n footer,\n onChangeSinglePage,\n pdfLink,\n useMainTag,\n } = this.props;\n\n const hideMiniToc = !this.showMiniToc;\n const modes = {\n 'regular-page-width': !wideFormat,\n 'full-screen': fullScreen,\n 'hidden-mini-toc': hideMiniToc,\n 'single-page': singlePage,\n };\n\n return (\n <DocLayout\n toc={toc}\n router={router}\n headerHeight={headerHeight}\n className={b(modes)}\n fullScreen={fullScreen}\n hideRight={hideMiniToc}\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 >\n <DocLayout.Center>\n {this.renderSearchBar()}\n {this.renderNotification()}\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 {hideMiniToc ? null : 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 {hideMiniToc ? null : this.renderAsideMiniToc()}\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 renderNotification() {\n const {notification, notificationCb} = this.props;\n const {showNotification} = this.state;\n\n if (!notification || !showNotification) {\n return null;\n }\n const {title = '', content = '', type = ''} = notification;\n const isNoteTypeCorrect = ['info', 'tip', 'warning', 'alert'].includes(type.toLowerCase());\n\n return (\n <div className={bNote('wrapper')}>\n <div\n className={bNote(\n {},\n isNoteTypeCorrect ? `dc-accent-${type}` : bNote('template'),\n )}\n >\n {title && <p className={bNote('title')}>{title}</p>}\n <Button\n view={'flat'}\n className={bNote('xmark')}\n onClick={() => {\n if (notificationCb) {\n notificationCb();\n }\n this.setState({showNotification: false});\n }}\n >\n <Icon data={Xmark} />\n </Button>\n {content && <HTML className={bNote('content')}>{content}</HTML>}\n </div>\n </div>\n );\n }\n\n private renderTitle() {\n const {title, meta, bookmarkedPage, onChangeBookmarkPage} = this.props;\n const withBookmarks = onChangeBookmarkPage;\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 </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 renderAsideMiniToc() {\n const {headings, router, headerHeight, onMiniTocItemClick} = this.props;\n const {keyDOM} = this.state;\n\n return (\n <div className={b('aside-mini-toc')}>\n <MiniToc\n headings={headings}\n router={router}\n headerHeight={headerHeight}\n key={keyDOM}\n onItemClick={onMiniTocItemClick}\n />\n </div>\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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",
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%20zJivJs%3E"],
3
+ "sources": ["../../../../src/components/DocPageTitle/home/runner/work/components/components/src/components/DocPageTitle/DocPageTitle.scss", "../../../../src/components/DocPageTitle/%3Cinput%20css%20J8Qmqh%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%20_nqnyv%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%20DET3bY%3E", "../../../../src/components/ErrorPage/home/runner/work/components/components/src/styles/mixins.scss"],
4
4
  "sourcesContent": ["@import '../../styles/variables';\n@import '../../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 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 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-size: var(--g-text-header-2-font-size);\n line-height: var(--g-text-header-2-line-height);\n font-weight: 500;\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 outline: none;\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0Vycm9yUGFnZSIsInNvdXJjZXMiOlsiRXJyb3JQYWdlLnNjc3MiLCIuLi8uLi9zdHlsZXMvbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBSUk7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBS1o7RUFDSTs7QUFHSjtFQ3JDQTtFQUNBO0VBZ0ZBO0VEekNJO0VBQ0E7O0FBR0o7RUFDSTtFQUNBO0VBQ0E7RUFFQTs7QUFFQTtFQUNJO0VBQ0E7O0FBSVI7RUNwQ0E7RUFpQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBbENBO0VBQ0k7O0FBZ0JBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOztBQWNSO0VBRUk7O0FEQUo7RUFDSTtFQUNBIiwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCAnLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi8uLi9zdHlsZXMvbWl4aW5zJztcblxuLkVycm9yUGFnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogNzBweDtcbiAgICBwYWRkaW5nOiAwIDUwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICB3aWR0aDogMjMwcHg7XG4gICAgICAgIGhlaWdodDogMjMwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG5cbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXG4gICAgICAgIC8vVGhlIGltYWdlcyBmb3IgZXJyb3IgcGFnZSBhcmUgc3VwcG9zZWQgdG8gYmUgaW5zdGFsbGVkIHZpYSBvdmVycmlkaW5nIFwiYmFja2dyb3VuZC1pbWFnZVwiIHZhcmlhYmxlXG4gICAgICAgICZfY29kZSB7XG4gICAgICAgICAgICAmXzQwMyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tZGMtZXJyb3ItaW1hZ2UtNDAzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl80MDQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWRjLWVycm9yLWltYWdlLTQwNCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfNTAwIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1kYy1lcnJvci1pbWFnZS01MDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29kZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSBoZWFkaW5nMygpO1xuXG4gICAgICAgIG1heC13aWR0aDogODAwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEwcHg7XG5cbiAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcblxuICAgICAgICAmLWxpbmsge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYSB7XG4gICAgICAgIEBpbmNsdWRlIGxpbmsoKTtcbiAgICB9XG5cbiAgICAubW9iaWxlICYge1xuICAgICAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgICAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgfVxufVxuIiwiQGltcG9ydCAnLi92YXJpYWJsZXMnO1xuXG5AbWl4aW4gdGV4dC1zaXplKCRuYW1lKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtI3skbmFtZX0tZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWxpbmUtaGVpZ2h0KTtcbn1cblxuQG1peGluIHJlc2V0LWxpc3Qtc3R5bGUoKSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuQG1peGluIGZpeEFuY2hvclBvc2l0aW9uKCRvZmZzZXQ6IDBweCkge1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7JGhlYWRlckhlaWdodH0pKTtcbiAgICBtYXJnaW4tdG9wOiBjYWxjKCN7JG9mZnNldH0gLSB2YXIoLS1kYy1oZWFkZXItaGVpZ2h0LCAjeyRoZWFkZXJIZWlnaHR9KSk7XG59XG5cbkBtaXhpbiByZXNldC1saW5rLXN0eWxlKCkge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuQG1peGluIGlzbGFuZHMtZm9jdXMoKSB7XG4gICAgb3V0bGluZTogbm9uZTtcblxuICAgIC51dGlsaXR5Zm9jdXMgJjpmb2N1cyB7XG4gICAgICAgIG91dGxpbmU6IDJweCBzb2xpZCAjZmZkYjRkO1xuICAgIH1cbn1cblxuQG1peGluIGZvY3VzYWJsZSgkb2Zmc2V0OiAwLCAkbW9kZTogJ291dGxpbmUnKSB7XG4gICAgQGlmICRtb2RlID09ICdvdXRsaW5lJyB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1mb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lLW9mZnNldDogJG9mZnNldDtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkbW9kZSA9PSAnYm94LXNoYWRvdycge1xuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoLS1nLWNvbG9yLWxpbmUtZm9jdXMpO1xuICAgICAgICAgICAgb3V0bGluZTogMDtcbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzOm5vdCg6Zm9jdXMtdmlzaWJsZSkge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGxpbmsoKSB7XG4gICAgQGluY2x1ZGUgaXNsYW5kcy1mb2N1cygpO1xuICAgIEBpbmNsdWRlIGZvY3VzYWJsZSgwLCAnYm94LXNoYWRvdycpO1xuXG4gICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saW5rKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLWctZm9jdXMtYm9yZGVyLXJhZGl1cyk7XG5cbiAgICAmOmhvdmVyLFxuICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWctY29sb3ItdGV4dC1saW5rLWhvdmVyKTtcbiAgICB9XG59XG5cbkBtaXhpbiBoZWFkaW5nMSgpIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0zKTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC1nZXQoJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzIoKSB7XG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGRpc3BsYXktMSk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuQG1peGluIGhlYWRpbmczKCkge1xuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMik7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuQG1peGluIGhlYWRpbmc0KCkge1xuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMSk7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuQG1peGluIGhlYWRpbmc1KCkge1xuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShib2R5LTMpO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbkBtaXhpbiBoZWFkaW5nNigpIHtcbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoYm9keS0zKTtcbiAgICBmb250LXdlaWdodDogNDAwO1xufVxuXG5AbWl4aW4gY29udHJpYnV0b3JzLXRleHQoKSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xufVxuXG5AbWl4aW4gdGV4dC1ib2R5LTEoKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtYm9keS0xLWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LTEtbGluZS1oZWlnaHQpO1xuICAgIGZvbnQtd2VpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS1mb250LXdlaWdodCk7XG59XG5cbkBtaXhpbiBkZXNrdG9wLW9ubHkoKSB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC1nZXQoJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBkZXNrdG9wLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAtZ2V0KCRzY3JlZW5CcmVha3BvaW50cywgJ3NtJykgLSAxKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gbW9iaWxlLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAtZ2V0KCRzY3JlZW5CcmVha3BvaW50cywgJ21kJykpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBtb2JpbGUtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLWdldCgkc2NyZWVuQnJlYWtwb2ludHMsICdzbScpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuIl19 */", "@import './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, #{$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{$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 @include islands-focus();\n @include focusable(0, 'box-shadow');\n\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n @include text-size(display-3);\n font-weight: 500;\n\n @media (max-width: map-get($screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n @include text-size(display-1);\n font-weight: 500;\n}\n\n@mixin heading3() {\n @include text-size(header-2);\n font-weight: 500;\n}\n\n@mixin heading4() {\n @include text-size(header-1);\n font-weight: 500;\n}\n\n@mixin heading5() {\n @include text-size(body-3);\n font-weight: 500;\n}\n\n@mixin heading6() {\n @include text-size(body-3);\n font-weight: 400;\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($screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map-get($screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map-get($screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map-get($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;AErCA,aAAA,IAAA;AACA,eAAA,IAAA;AAgFA,eAAA;AFzCI,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;AEpCA,WAAA;AAiCA,SAAA,IAAA;AACA,2BAAA;AAAA,mBAAA;AACA,UAAA;AACA,iBAAA,IAAA;ADTJ;ACzBI,CAAA,aAAA,CFvBJ,UEuBI,CAAA;AACI,WAAA,IAAA,MAAA;AD2BR;ACXQ,CFxCR,UEwCQ,CAAA;AACI,cAAA,EAAA,EAAA,EAAA,IAAA,IAAA;AACA,WAAA;ADaZ;ACXQ,CF5CR,UE4CQ,CAAA,MAAA,KAAA;AACI,cAAA;ADaZ;ACCI,CF3DJ,UE2DI,CAAA;AAAA,CF3DJ,UE2DI,CAAA;AAEI,SAAA,IAAA;ADAR;ADAI,CAAA,OAAA,CA7DJ;AA8DQ,cAAA;AACA,WAAA,EAAA;ACER;",
6
6
  "names": []
@@ -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%20MWyfoZ%3E", "../../../../src/components/Feedback/home/runner/work/components/components/src/styles/variables.scss"],
3
+ "sources": ["../../../../src/components/Feedback/home/runner/work/components/components/src/components/Feedback/Feedback.scss", "../../../../src/components/Feedback/%3Cinput%20css%20xzYqWm%3E", "../../../../src/components/Feedback/home/runner/work/components/components/src/styles/variables.scss"],
4
4
  "sourcesContent": ["@import '../../styles/mixins';\n@import '../../styles/variables';\n\n$popupWidth: 320px;\n\n@mixin tooltip-in-center {\n @media screen and (max-width: map-get($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-row {\n display: flex;\n justify-content: center;\n width: 100%;\n padding: 28px;\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 padding: $popupPadding 50px $popupPadding $popupPadding;\n width: $popupWidth;\n\n &_view_wide {\n @include tooltip-in-center();\n }\n }\n\n &__variants-popup {\n padding: $popupPadding;\n width: $popupWidth;\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 font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n margin-right: 16px;\n font-weight: 400;\n }\n }\n\n &__controls {\n display: flex;\n gap: 10px;\n\n &_view_wide {\n display: flex;\n }\n }\n\n &__control {\n &:last-child {\n font-size: 13px;\n line-height: 18px;\n display: flex;\n align-items: center;\n }\n\n &_view_wide {\n margin-right: 12px;\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-row {\n display: flex;\n justify-content: center;\n width: 100%;\n padding: 28px;\n border: 1px solid var(--g-color-line-generic);\n border-radius: 8px;\n}\n.dc-feedback__container-row_view_wide {\n display: flex;\n align-items: center;\n}\n.dc-feedback__success-popup {\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}\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-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n margin-right: 16px;\n font-weight: 400;\n}\n.dc-feedback__controls {\n display: flex;\n gap: 10px;\n}\n.dc-feedback__controls_view_wide {\n display: flex;\n}\n.dc-feedback__control:last-child {\n font-size: 13px;\n line-height: 18px;\n display: flex;\n align-items: center;\n}\n.dc-feedback__control_view_wide {\n margin-right: 12px;\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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0ZlZWRiYWNrIiwic291cmNlcyI6WyJGZWVkYmFjay5zY3NzIiwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCUTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFFQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFJUjtFQUNJO0VBQ0EsT0F4Q0s7O0FBR1Q7RUFDSTtJQUVJO0lBQ0E7SUFDQTs7O0FBdUNSO0VBQ0ksU0MzQ087RUQ0Q1AsT0FqREs7O0FBR1Q7RUFDSTtJQUVJO0lBQ0E7SUFDQTs7O0FBZ0RSO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBSUE7RUFDSTtFQUNBO0VBQ0E7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7QUFLSjtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUdKO0VBQ0k7O0FBRUE7RUFDSTs7QUFJUjtFQUNJOztBQUVBO0VBQ0kiLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0ICcuLi8uLi9zdHlsZXMvbWl4aW5zJztcbkBpbXBvcnQgJy4uLy4uL3N0eWxlcy92YXJpYWJsZXMnO1xuXG4kcG9wdXBXaWR0aDogMzIwcHg7XG5cbkBtaXhpbiB0b29sdGlwLWluLWNlbnRlciB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogbWFwLWdldCgkc2NyZWVuQnJlYWtwb2ludHMsICd4cycpKSB7XG4gICAgICAgICYge1xuICAgICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG4gICAgICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZGMtZmVlZGJhY2sge1xuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGFpbmVyLXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgcGFkZGluZzogMjhweDtcblxuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCB2YXIoLS1nLWNvbG9yLWxpbmUtZ2VuZXJpYyk7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDhweDtcblxuICAgICAgICAmX3ZpZXdfd2lkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N1Y2Nlc3MtcG9wdXAge1xuICAgICAgICBwYWRkaW5nOiAkcG9wdXBQYWRkaW5nIDUwcHggJHBvcHVwUGFkZGluZyAkcG9wdXBQYWRkaW5nO1xuICAgICAgICB3aWR0aDogJHBvcHVwV2lkdGg7XG5cbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdG9vbHRpcC1pbi1jZW50ZXIoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3ZhcmlhbnRzLXBvcHVwIHtcbiAgICAgICAgcGFkZGluZzogJHBvcHVwUGFkZGluZztcbiAgICAgICAgd2lkdGg6ICRwb3B1cFdpZHRoO1xuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvb2x0aXAtaW4tY2VudGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wb3B1cC10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMi1mb250LXNpemUpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMi1saW5lLWhlaWdodCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgfVxuXG4gICAgJl9fcG9wdXAtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktc2hvcnQtZm9udC1zaXplKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LXNob3J0LWxpbmUtaGVpZ2h0KTtcbiAgICB9XG5cbiAgICAmX192YXJpYW50cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIH1cblxuICAgICZfX3ZhcmlhbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudDpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmX192YXJpYW50cy1hY3Rpb25zIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG5cbiAgICAmX192YXJpYW50cy1hY3Rpb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB9XG5cbiAgICAmX190ZXh0YXJlYSB7XG4gICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtYm9keS0yLWZvbnQtc2l6ZSk7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMi1saW5lLWhlaWdodCk7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udHJvbHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDEwcHg7XG5cbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRyb2wge1xuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgfVxuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMTJweDtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmX3ZpZXdfcmVndWxhciB7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDRweDtcblxuICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyBTaXplc1xuJGhlYWRlckhlaWdodDogMHB4O1xuJG5vcm1hbE9mZnNldDogMjBweDtcbiRtaW5pVG9jT2Zmc2V0OiA1NnB4O1xuJGJsb2NrTWFyZ2luQm90dG9tTGFyZ2U6IDIwcHg7XG4kYmxvY2tNYXJnaW5Cb3R0b21NZWRpdW06IDE1cHg7XG4kaGVhZGVyTWFyZ2luVG9wTGFyZ2U6IDQwcHg7XG4kaGVhZGVyTWFyZ2luVG9wTWVkaXVtOiAzMnB4O1xuJHBvcHVwUGFkZGluZzogMTZweDtcbiRjZW50ZXJCbG9ja01heFdpZHRoOiA3MzZweDtcblxuJHNjcmVlbkJyZWFrcG9pbnRzOiAoXG4gICAgJ3hzJzogMzc1cHgsXG4gICAgJ3NtJzogNTc3cHgsXG4gICAgJ21kJzogNzY5cHgsXG4gICAgJ2xnJzogMTA4MXB4LFxuICAgICd4bCc6IDExODVweCxcbik7XG4iXX0= */", "// Sizes\n$headerHeight: 0px;\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$screenBreakpoints: (\n 'xs': 375px,\n 'sm': 577px,\n 'md': 769px,\n 'lg': 1081px,\n 'xl': 1185px,\n);\n"],
5
5
  "mappings": ";AAkBQ,CAAA;AACI,WAAA;AACA,eAAA;AACA,kBAAA;AACA,SAAA;ACjBZ;ADqBI,CAAA;AACI,WAAA;AACA,mBAAA;AACA,SAAA;AACA,WAAA;AAEA,UAAA,IAAA,MAAA,IAAA;AACA,iBAAA;ACpBR;ADsBQ,CAAA;AACI,WAAA;AACA,eAAA;ACpBZ;ADwBI,CAAA;AACI,WAAA,KAAA,KAAA,KAAA;AACA,SAAA;ACtBR;ADfI,OAAA,OAAA,IAAA,CAAA,SAAA,EAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AACA,YAAA;ACgBV;AACF;ADsBI,CAAA;AACI,WAAA;AACA,SAAA;ACpBR;AD1BI,OAAA,OAAA,IAAA,CAAA,SAAA,EAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AACA,YAAA;AC2BV;AACF;ADoBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;AACA,kBAAA;AClBR;ADqBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;ACnBR;ADsBI,CAAA;AACI,WAAA;AACA,kBAAA;AACA,WAAA,IAAA;ACpBR;ADuBI,CAAA;AACI,iBAAA;AACA,eAAA;ACrBR;ADwBI,CALA,oBAKA;AACI,iBAAA;ACtBR;ADyBI,CAAA;AACI,eAAA;AACA,WAAA;AACA,mBAAA;ACvBR;AD0BI,CAAA;AACI,eAAA;ACxBR;AD2BI,CAAA;AACI,WAAA,IAAA;ACzBR;AD6BQ,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;AACA,gBAAA;AACA,eAAA;AC3BZ;AD+BI,CAAA;AACI,WAAA;AACA,OAAA;AC7BR;AD+BQ,CAAA;AACI,WAAA;AC7BZ;ADkCQ,CAAA,oBAAA;AACI,aAAA;AACA,eAAA;AACA,WAAA;AACA,eAAA;AChCZ;ADmCQ,CAAA;AACI,gBAAA;ACjCZ;ADmCY,CAHJ,8BAGI;AACI,gBAAA;ACjChB;ADqCQ,CAAA;AACI,gBAAA;ACnCZ;ADqCY,CAHJ,iCAGI;AACI,gBAAA;ACnChB;",
6
6
  "names": []
@@ -130,15 +130,13 @@ var Feedback = (props) => {
130
130
  },
131
131
  [onSendFeedback, setInnerState, dislikeSuccessPopup, hideFeedbackPopups]
132
132
  );
133
- const isDislikePopupVisible = dislikeSuccessPopup.visible || dislikeVariantsPopup.visible;
134
133
  return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(ControlsLayout, { view }, /* @__PURE__ */ import_react.default.createElement(
135
134
  import_LikeControl.default,
136
135
  {
137
136
  ref: likeControlRef,
138
137
  view,
139
138
  onClick: onChangeLike,
140
- isLiked: innerState === import_models.FeedbackType.like,
141
- isPopupVisible: likeSuccessPopup.visible
139
+ isLiked: innerState === import_models.FeedbackType.like
142
140
  }
143
141
  ), /* @__PURE__ */ import_react.default.createElement(
144
142
  import_DislikeControl.default,
@@ -146,8 +144,7 @@ var Feedback = (props) => {
146
144
  ref: dislikeControlRef,
147
145
  view,
148
146
  onClick: onChangeDislike,
149
- isDisliked: innerState === import_models.FeedbackType.dislike,
150
- isPopupVisible: isDislikePopupVisible
147
+ isDisliked: innerState === import_models.FeedbackType.dislike
151
148
  }
152
149
  )), likeControlRef.current && /* @__PURE__ */ import_react.default.createElement(
153
150
  import_SuccessPopup.default,
@@ -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-row', {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-row', {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 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 />\n <DislikeControl\n ref={dislikeControlRef}\n view={view}\n onClick={onChangeDislike}\n isDisliked={innerState === FeedbackType.dislike}\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,EAAU,eAAe,CAAE,GAC/D,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,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;AAAA,EACzC,GACA,6BAAAD,QAAA;AAAA,IAAC,sBAAAE;AAAA,IAAA;AAAA,MACG,KAAK;AAAA,MACL;AAAA,MACA,SAAS;AAAA,MACT,YAAY,eAAe,2BAAa;AAAA;AAAA,EAC5C,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
  }
@@ -3,7 +3,6 @@ import { FeedbackView } from '../Feedback';
3
3
  type DislikeControlProps = {
4
4
  isVerticalView?: boolean | undefined;
5
5
  isDisliked: boolean | undefined;
6
- isPopupVisible: boolean;
7
6
  className?: string | undefined;
8
7
  view: FeedbackView | undefined;
9
8
  onClick: () => void;
@@ -43,41 +43,26 @@ var import_ControlsLayout = require("../../Controls/ControlsLayout");
43
43
  var import_Feedback = require("../Feedback");
44
44
  var b = (0, import_bem_cn_lite.default)("dc-feedback");
45
45
  var DislikeControl = (0, import_react.memo)(
46
- (0, import_react.forwardRef)(
47
- ({ isDisliked, isPopupVisible, view, onClick }, ref) => {
48
- const { t } = (0, import_hooks.useTranslation)("feedback");
49
- const { isVerticalView, controlClassName } = (0, import_react.useContext)(import_ControlsLayout.ControlsLayoutContext);
50
- const tooltipText = isDisliked ? t("cancel-dislike-text") : t("dislike-text");
51
- const Icon = isDisliked ? import_icons.ThumbsDownFill : import_icons.ThumbsDown;
52
- if (view === import_Feedback.FeedbackView.Wide) {
53
- return /* @__PURE__ */ import_react.default.createElement(
54
- import_uikit.Button,
55
- {
56
- view: "normal",
57
- ref,
58
- onClick,
59
- className: b("control", { view })
60
- },
61
- /* @__PURE__ */ import_react.default.createElement(import_uikit.Button.Icon, null, /* @__PURE__ */ import_react.default.createElement(Icon, { width: 14, height: 14 })),
62
- t("button-dislike-text")
63
- );
64
- }
65
- return /* @__PURE__ */ import_react.default.createElement(
66
- import_Control.Control,
67
- {
68
- onClick,
69
- className: b("control", { view }, controlClassName),
70
- isVerticalView,
71
- tooltipText,
72
- ref,
73
- icon: Icon,
74
- buttonExtraProps: {
75
- "aria-expanded": isPopupVisible
76
- }
77
- }
78
- );
46
+ (0, import_react.forwardRef)(({ isDisliked, view, onClick }, ref) => {
47
+ const { t } = (0, import_hooks.useTranslation)("feedback");
48
+ const { isVerticalView, controlClassName } = (0, import_react.useContext)(import_ControlsLayout.ControlsLayoutContext);
49
+ const tooltipText = isDisliked ? t("cancel-dislike-text") : t("dislike-text");
50
+ const Icon = isDisliked ? import_icons.ThumbsDownFill : import_icons.ThumbsDown;
51
+ if (view === import_Feedback.FeedbackView.Wide) {
52
+ return /* @__PURE__ */ import_react.default.createElement(import_uikit.Button, { view: "normal", ref, onClick, className: b("control", { view }) }, /* @__PURE__ */ import_react.default.createElement(import_uikit.Button.Icon, null, /* @__PURE__ */ import_react.default.createElement(Icon, { width: 14, height: 14 })), t("button-dislike-text"));
79
53
  }
80
- )
54
+ return /* @__PURE__ */ import_react.default.createElement(
55
+ import_Control.Control,
56
+ {
57
+ onClick,
58
+ className: b("control", { view }, controlClassName),
59
+ isVerticalView,
60
+ tooltipText,
61
+ ref,
62
+ icon: Icon
63
+ }
64
+ );
65
+ })
81
66
  );
82
67
  DislikeControl.displayName = "DislikeControl";
83
68
  var DislikeControl_default = DislikeControl;
@@ -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>(\n ({isDisliked, isPopupVisible, 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\n view=\"normal\"\n ref={ref}\n onClick={onClick}\n className={b('control', {view})}\n >\n <Button.Icon>\n <Icon width={14} height={14} />\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 buttonExtraProps={{\n 'aria-expanded': isPopupVisible,\n }}\n />\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;AAAA,IACI,CAAC,EAAC,YAAY,gBAAgB,MAAM,QAAO,GAAG,QAAQ;AAClD,YAAM,EAAC,EAAC,QAAI,6BAAe,UAAU;AACrC,YAAM,EAAC,gBAAgB,iBAAgB,QAAI,yBAAW,2CAAqB;AAC3E,YAAM,cAAc,aAAa,EAAE,qBAAqB,IAAI,EAAE,cAAc;AAE5E,YAAM,OAAO,aAAa,8BAAiB;AAE3C,UAAI,SAAS,6BAAa,MAAM;AAC5B,eACI,6BAAAC,QAAA;AAAA,UAAC;AAAA;AAAA,YACG,MAAK;AAAA,YACL;AAAA,YACA;AAAA,YACA,WAAW,EAAE,WAAW,EAAC,KAAI,CAAC;AAAA;AAAA,UAE9B,6BAAAA,QAAA,cAAC,oBAAO,MAAP,MACG,6BAAAA,QAAA,cAAC,QAAK,OAAO,IAAI,QAAQ,IAAI,CACjC;AAAA,UACC,EAAU,qBAAqB;AAAA,QACpC;AAAA,MAER;AAEA,aACI,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACG;AAAA,UACA,WAAW,EAAE,WAAW,EAAC,KAAI,GAAG,gBAAgB;AAAA,UAChD;AAAA,UACA;AAAA,UACA;AAAA,UACA,MAAM;AAAA,UACN,kBAAkB;AAAA,YACd,iBAAiB;AAAA,UACrB;AAAA;AAAA,MACJ;AAAA,IAER;AAAA,EACJ;AACJ;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 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={14} height={14} />\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;AAU3B,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;",
6
6
  "names": ["block", "React"]
7
7
  }
@@ -4,7 +4,6 @@ import { FeedbackView } from '../Feedback';
4
4
  type LikeControlProps = {
5
5
  isVerticalView?: boolean | undefined;
6
6
  isLiked: boolean | undefined;
7
- isPopupVisible: boolean;
8
7
  className?: string | undefined;
9
8
  view: FeedbackView | undefined;
10
9
  onClick: () => void;
@@ -43,43 +43,38 @@ var import_ControlsLayout = require("../../Controls/ControlsLayout");
43
43
  var import_Feedback = require("../Feedback");
44
44
  var b = (0, import_bem_cn_lite.default)("dc-feedback");
45
45
  var LikeControl = (0, import_react.memo)(
46
- (0, import_react.forwardRef)(
47
- ({ isLiked, isPopupVisible, view, onClick }, ref) => {
48
- const { t } = (0, import_hooks.useTranslation)("feedback");
49
- const { isVerticalView, popupPosition, controlClassName } = (0, import_react.useContext)(import_ControlsLayout.ControlsLayoutContext);
50
- const tooltipText = isLiked ? t("cancel-like-text") : t("like-text");
51
- const Icon = isLiked ? import_icons.ThumbsUpFill : import_icons.ThumbsUp;
52
- if (view === import_Feedback.FeedbackView.Wide) {
53
- return /* @__PURE__ */ import_react.default.createElement(
54
- import_uikit.Button,
55
- {
56
- size: "m",
57
- view: "normal",
58
- ref,
59
- onClick,
60
- className: b("control", { view })
61
- },
62
- /* @__PURE__ */ import_react.default.createElement(import_uikit.Button.Icon, null, /* @__PURE__ */ import_react.default.createElement(Icon, { width: 14, height: 14 })),
63
- t("button-like-text")
64
- );
65
- }
46
+ (0, import_react.forwardRef)(({ isLiked, view, onClick }, ref) => {
47
+ const { t } = (0, import_hooks.useTranslation)("feedback");
48
+ const { isVerticalView, popupPosition, controlClassName } = (0, import_react.useContext)(import_ControlsLayout.ControlsLayoutContext);
49
+ const tooltipText = isLiked ? t("cancel-like-text") : t("like-text");
50
+ const Icon = isLiked ? import_icons.ThumbsUpFill : import_icons.ThumbsUp;
51
+ if (view === import_Feedback.FeedbackView.Wide) {
66
52
  return /* @__PURE__ */ import_react.default.createElement(
67
- import_Control.Control,
53
+ import_uikit.Button,
68
54
  {
69
- onClick,
70
- className: b("control", { view }, controlClassName),
71
- isVerticalView,
72
- tooltipText,
55
+ size: "m",
56
+ view: "normal",
73
57
  ref,
74
- icon: Icon,
75
- popupPosition,
76
- buttonExtraProps: {
77
- "aria-expanded": isPopupVisible
78
- }
79
- }
58
+ onClick,
59
+ className: b("control", { view })
60
+ },
61
+ /* @__PURE__ */ import_react.default.createElement(import_uikit.Button.Icon, null, /* @__PURE__ */ import_react.default.createElement(Icon, { width: 14, height: 14 })),
62
+ t("button-like-text")
80
63
  );
81
64
  }
82
- )
65
+ return /* @__PURE__ */ import_react.default.createElement(
66
+ import_Control.Control,
67
+ {
68
+ onClick,
69
+ className: b("control", { view }, controlClassName),
70
+ isVerticalView,
71
+ tooltipText,
72
+ ref,
73
+ icon: Icon,
74
+ popupPosition
75
+ }
76
+ );
77
+ })
83
78
  );
84
79
  LikeControl.displayName = "LikeControl";
85
80
  var LikeControl_default = LikeControl;
@@ -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>(\n ({isLiked, isPopupVisible, view, onClick}, ref) => {\n const {t} = useTranslation('feedback');\n const {isVerticalView, popupPosition, controlClassName} =\n 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\n size=\"m\"\n view=\"normal\"\n ref={ref}\n onClick={onClick}\n className={b('control', {view})}\n >\n <Button.Icon>\n <Icon width={14} height={14} />\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 buttonExtraProps={{\n 'aria-expanded': isPopupVisible,\n }}\n />\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;AAAA,IACI,CAAC,EAAC,SAAS,gBAAgB,MAAM,QAAO,GAAG,QAAQ;AAC/C,YAAM,EAAC,EAAC,QAAI,6BAAe,UAAU;AACrC,YAAM,EAAC,gBAAgB,eAAe,iBAAgB,QAClD,yBAAW,2CAAqB;AACpC,YAAM,cAAc,UAAU,EAAE,kBAAkB,IAAI,EAAE,WAAW;AAEnE,YAAM,OAAO,UAAU,4BAAe;AAEtC,UAAI,SAAS,6BAAa,MAAM;AAC5B,eACI,6BAAAC,QAAA;AAAA,UAAC;AAAA;AAAA,YACG,MAAK;AAAA,YACL,MAAK;AAAA,YACL;AAAA,YACA;AAAA,YACA,WAAW,EAAE,WAAW,EAAC,KAAI,CAAC;AAAA;AAAA,UAE9B,6BAAAA,QAAA,cAAC,oBAAO,MAAP,MACG,6BAAAA,QAAA,cAAC,QAAK,OAAO,IAAI,QAAQ,IAAI,CACjC;AAAA,UACC,EAAU,kBAAkB;AAAA,QACjC;AAAA,MAER;AAEA,aACI,6BAAAA,QAAA;AAAA,QAAC;AAAA;AAAA,UACG;AAAA,UACA,WAAW,EAAE,WAAW,EAAC,KAAI,GAAG,gBAAgB;AAAA,UAChD;AAAA,UACA;AAAA,UACA;AAAA,UACA,MAAM;AAAA,UACN;AAAA,UACA,kBAAkB;AAAA,YACd,iBAAiB;AAAA,UACrB;AAAA;AAAA,MACJ;AAAA,IAER;AAAA,EACJ;AACJ;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 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\n size=\"m\"\n view=\"normal\"\n ref={ref}\n onClick={onClick}\n className={b('control', {view})}\n >\n <Button.Icon>\n <Icon width={14} height={14} />\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;AAW3B,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;AAAA,QAAC;AAAA;AAAA,UACG,MAAK;AAAA,UACL,MAAK;AAAA,UACL;AAAA,UACA;AAAA,UACA,WAAW,EAAE,WAAW,EAAC,KAAI,CAAC;AAAA;AAAA,QAE9B,6BAAAA,QAAA,cAAC,oBAAO,MAAP,MACG,6BAAAA,QAAA,cAAC,QAAK,OAAO,IAAI,QAAQ,IAAI,CACjC;AAAA,QACC,EAAU,kBAAkB;AAAA,MACjC;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,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%20kc4EtK%3E"],
3
+ "sources": ["../../../../src/components/Mark/home/runner/work/components/components/src/components/Mark/Mark.scss", "../../../../src/components/Mark/%3Cinput%20css%20yCAzPY%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": []