@diplodoc/components 5.12.2 → 5.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -1
- package/build/cjs/components/BookmarkButton/BookmarkButton.css.map +1 -1
- package/build/cjs/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
- package/build/cjs/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
- package/build/cjs/components/Contributors/Contributors.css.map +1 -1
- package/build/cjs/components/Control/Control.css.map +1 -1
- package/build/cjs/components/Controls/Controls.css.map +1 -1
- package/build/cjs/components/Controls/Controls.d.ts +1 -0
- package/build/cjs/components/Controls/Controls.js +10 -2
- package/build/cjs/components/Controls/Controls.js.map +2 -2
- package/build/cjs/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
- package/build/cjs/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
- package/build/cjs/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
- package/build/cjs/components/DocLayout/DocLayout.css.map +1 -1
- package/build/cjs/components/DocLeadingPage/DocLeadingPage.css.map +1 -1
- package/build/cjs/components/DocPage/DocPage.css.map +1 -1
- package/build/cjs/components/DocPage/DocPage.d.ts +6 -1
- package/build/cjs/components/DocPage/DocPage.js +16 -7
- package/build/cjs/components/DocPage/DocPage.js.map +2 -2
- package/build/cjs/components/DocPageTitle/DocPageTitle.css.map +1 -1
- package/build/cjs/components/ErrorPage/ErrorPage.css.map +1 -1
- package/build/cjs/components/Feedback/Feedback.css +6 -0
- package/build/cjs/components/Feedback/Feedback.css.map +3 -3
- package/build/cjs/components/Feedback/Feedback.d.ts +5 -0
- package/build/cjs/components/Feedback/Feedback.js +70 -5
- package/build/cjs/components/Feedback/Feedback.js.map +3 -3
- package/build/cjs/components/Feedback/controls/FeedbackControl.d.ts +8 -0
- package/build/cjs/components/Feedback/controls/FeedbackControl.js +78 -0
- package/build/cjs/components/Feedback/controls/FeedbackControl.js.map +7 -0
- package/build/cjs/components/Feedback/controls/{DislikeVariantsPopup.d.ts → FeedbackFormPopup.d.ts} +6 -3
- package/build/cjs/components/Feedback/controls/{DislikeVariantsPopup.js → FeedbackFormPopup.js} +27 -18
- package/build/cjs/components/Feedback/controls/FeedbackFormPopup.js.map +7 -0
- package/build/cjs/components/Gallery/Gallery.css.map +1 -1
- package/build/cjs/components/Mark/Mark.css.map +1 -1
- package/build/cjs/components/MiniToc/MiniToc.css.map +1 -1
- package/build/cjs/components/MobileControls/MobileControl/MobileControl.css.map +1 -1
- package/build/cjs/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +1 -1
- package/build/cjs/components/MobileControls/MobileControls.css.map +1 -1
- package/build/cjs/components/NeuroExpertModal/NeuroExpertModal.css.map +1 -1
- package/build/cjs/components/NeuroExpertModal/NeuroExpertModal.js +7 -1
- package/build/cjs/components/NeuroExpertModal/NeuroExpertModal.js.map +2 -2
- package/build/cjs/components/Notification/Notification.css.map +1 -1
- package/build/cjs/components/Paginator/Paginator.css.map +1 -1
- package/build/cjs/components/SearchBar/SearchBar.css.map +1 -1
- package/build/cjs/components/SearchItem/SearchItem.css.map +1 -1
- package/build/cjs/components/SearchPage/SearchPage.css.map +1 -1
- package/build/cjs/components/SearchSuggest/index.css.map +1 -1
- package/build/cjs/components/ShareButton/ShareButton.css.map +1 -1
- package/build/cjs/components/SubNavigation/SubNavigation.css.map +1 -1
- package/build/cjs/components/Subscribe/Subscribe.css.map +1 -1
- package/build/cjs/components/Toc/Toc.css.map +1 -1
- package/build/cjs/components/TocItem/TocItem.css.map +1 -1
- package/build/cjs/components/TocLable/TocLabel.css.map +1 -1
- package/build/cjs/components/TocNavPanel/TocNavPanel.css.map +1 -1
- package/build/cjs/components/ToggleArrow/ToggleArrow.css.map +1 -1
- package/build/cjs/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
- package/build/cjs/components/Widgets/Widgets.css.map +1 -1
- package/build/cjs/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
- package/build/cjs/components/navigation/DropdownContent/Column/Column.css.map +1 -1
- package/build/cjs/components/navigation/DropdownContent/DropdownContent.css.map +1 -1
- package/build/cjs/components/navigation/DropdownContent/Section/Section.css.map +1 -1
- package/build/cjs/components/navigation/Label/Label.css.map +1 -1
- package/build/cjs/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
- package/build/cjs/components/navigation/NavigationDropdown/NavigationDropdown.css.map +1 -1
- package/build/cjs/components/navigation/Sidebar/Sidebar.css.map +1 -1
- package/build/cjs/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
- package/build/cjs/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
- package/build/cjs/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
- package/build/cjs/contexts/InterfaceContext.d.ts +13 -2
- package/build/cjs/contexts/InterfaceContext.js.map +2 -2
- package/build/cjs/i18n/index.d.ts +48 -0
- package/build/cjs/i18n/index.js +31 -16
- package/build/cjs/i18n/index.js.map +2 -2
- package/build/cjs/models/index.d.ts +3 -1
- package/build/cjs/models/index.js +1 -0
- package/build/cjs/models/index.js.map +2 -2
- package/build/cjs/shared/libs/analytics/constant.d.ts +2 -0
- package/build/cjs/shared/libs/analytics/constant.js +2 -0
- package/build/cjs/shared/libs/analytics/constant.js.map +2 -2
- package/build/esm/components/BookmarkButton/BookmarkButton.css.map +1 -1
- package/build/esm/components/Breadcrumbs/Breadcrumbs.css.map +1 -1
- package/build/esm/components/ContributorAvatars/ContributorAvatars.css.map +1 -1
- package/build/esm/components/Contributors/Contributors.css.map +1 -1
- package/build/esm/components/Control/Control.css.map +1 -1
- package/build/esm/components/Controls/Controls.css.map +1 -1
- package/build/esm/components/Controls/Controls.d.ts +1 -0
- package/build/esm/components/Controls/Controls.js +10 -2
- package/build/esm/components/Controls/Controls.js.map +2 -2
- package/build/esm/components/Controls/single-controls/DividerControl/DividerControl.css.map +1 -1
- package/build/esm/components/Controls/single-controls/LangControl/LangControl.css.map +1 -1
- package/build/esm/components/Controls/single-controls/SettingsControl/SettingsControl.css.map +1 -1
- package/build/esm/components/DocLayout/DocLayout.css.map +1 -1
- package/build/esm/components/DocLeadingPage/DocLeadingPage.css.map +1 -1
- package/build/esm/components/DocPage/DocPage.css.map +1 -1
- package/build/esm/components/DocPage/DocPage.d.ts +6 -1
- package/build/esm/components/DocPage/DocPage.js +17 -8
- package/build/esm/components/DocPage/DocPage.js.map +2 -2
- package/build/esm/components/DocPageTitle/DocPageTitle.css.map +1 -1
- package/build/esm/components/ErrorPage/ErrorPage.css.map +1 -1
- package/build/esm/components/Feedback/Feedback.css +6 -0
- package/build/esm/components/Feedback/Feedback.css.map +3 -3
- package/build/esm/components/Feedback/Feedback.d.ts +5 -0
- package/build/esm/components/Feedback/Feedback.js +71 -6
- package/build/esm/components/Feedback/Feedback.js.map +2 -2
- package/build/esm/components/Feedback/controls/FeedbackControl.d.ts +8 -0
- package/build/esm/components/Feedback/controls/FeedbackControl.js +47 -0
- package/build/esm/components/Feedback/controls/FeedbackControl.js.map +7 -0
- package/build/esm/components/Feedback/controls/{DislikeVariantsPopup.d.ts → FeedbackFormPopup.d.ts} +6 -3
- package/build/esm/components/Feedback/controls/{DislikeVariantsPopup.js → FeedbackFormPopup.js} +24 -15
- package/build/esm/components/Feedback/controls/FeedbackFormPopup.js.map +7 -0
- package/build/esm/components/Gallery/Gallery.css.map +1 -1
- package/build/esm/components/Mark/Mark.css.map +1 -1
- package/build/esm/components/MiniToc/MiniToc.css.map +1 -1
- package/build/esm/components/MobileControls/MobileControl/MobileControl.css.map +1 -1
- package/build/esm/components/MobileControls/MobileControlSheet/MobileControlSheet.css.map +1 -1
- package/build/esm/components/MobileControls/MobileControls.css.map +1 -1
- package/build/esm/components/NeuroExpertModal/NeuroExpertModal.css.map +1 -1
- package/build/esm/components/NeuroExpertModal/NeuroExpertModal.js +7 -1
- package/build/esm/components/NeuroExpertModal/NeuroExpertModal.js.map +2 -2
- package/build/esm/components/Notification/Notification.css.map +1 -1
- package/build/esm/components/Paginator/Paginator.css.map +1 -1
- package/build/esm/components/SearchBar/SearchBar.css.map +1 -1
- package/build/esm/components/SearchItem/SearchItem.css.map +1 -1
- package/build/esm/components/SearchPage/SearchPage.css.map +1 -1
- package/build/esm/components/SearchSuggest/index.css.map +1 -1
- package/build/esm/components/ShareButton/ShareButton.css.map +1 -1
- package/build/esm/components/SubNavigation/SubNavigation.css.map +1 -1
- package/build/esm/components/Subscribe/Subscribe.css.map +1 -1
- package/build/esm/components/Toc/Toc.css.map +1 -1
- package/build/esm/components/TocItem/TocItem.css.map +1 -1
- package/build/esm/components/TocLable/TocLabel.css.map +1 -1
- package/build/esm/components/TocNavPanel/TocNavPanel.css.map +1 -1
- package/build/esm/components/ToggleArrow/ToggleArrow.css.map +1 -1
- package/build/esm/components/UpdatedAtDate/UpdatedAtDate.css.map +1 -1
- package/build/esm/components/Widgets/Widgets.css.map +1 -1
- package/build/esm/components/navigation/CustomNavigation/CustomNavigation.css.map +1 -1
- package/build/esm/components/navigation/DropdownContent/Column/Column.css.map +1 -1
- package/build/esm/components/navigation/DropdownContent/DropdownContent.css.map +1 -1
- package/build/esm/components/navigation/DropdownContent/Section/Section.css.map +1 -1
- package/build/esm/components/navigation/Label/Label.css.map +1 -1
- package/build/esm/components/navigation/MobileDropdown/MobileDropdown.css.map +1 -1
- package/build/esm/components/navigation/NavigationDropdown/NavigationDropdown.css.map +1 -1
- package/build/esm/components/navigation/Sidebar/Sidebar.css.map +1 -1
- package/build/esm/components/navigation/SidebarContent/SidebarContent.css.map +1 -1
- package/build/esm/components/navigation/SidebarNavigation/SidebarNavigation.css.map +1 -1
- package/build/esm/components/navigation/ToMainMenu/ToMainMenu.css.map +1 -1
- package/build/esm/contexts/InterfaceContext.d.ts +13 -2
- package/build/esm/contexts/InterfaceContext.js.map +2 -2
- package/build/esm/i18n/index.d.ts +48 -0
- package/build/esm/i18n/index.js +31 -16
- package/build/esm/i18n/index.js.map +2 -2
- package/build/esm/models/index.d.ts +3 -1
- package/build/esm/models/index.js +1 -0
- package/build/esm/models/index.js.map +2 -2
- package/build/esm/shared/libs/analytics/constant.d.ts +2 -0
- package/build/esm/shared/libs/analytics/constant.js +2 -0
- package/build/esm/shared/libs/analytics/constant.js.map +2 -2
- package/build/index.css.map +1 -1
- package/build/themes/common/index.css.map +1 -1
- package/package.json +4 -4
- package/src/i18n/ar.json +4 -1
- package/src/i18n/bg.json +4 -1
- package/src/i18n/cs.json +4 -1
- package/src/i18n/el.json +4 -1
- package/src/i18n/en.json +4 -1
- package/src/i18n/es.json +4 -1
- package/src/i18n/et.json +4 -1
- package/src/i18n/fr.json +4 -1
- package/src/i18n/he.json +4 -1
- package/src/i18n/kk.json +4 -1
- package/src/i18n/pt.json +4 -1
- package/src/i18n/ru.json +4 -1
- package/src/i18n/tr.json +4 -1
- package/src/i18n/uz.json +4 -1
- package/src/i18n/zh-tw.json +4 -1
- package/src/i18n/zh.json +4 -1
- package/build/cjs/components/Feedback/controls/DislikeVariantsPopup.js.map +0 -7
- package/build/esm/components/Feedback/controls/DislikeVariantsPopup.js.map +0 -7
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/ErrorPage/ErrorPage.scss", "../../../../src/components/ErrorPage/%3Cinput css
|
|
3
|
+
"sources": ["../../../../src/components/ErrorPage/ErrorPage.scss", "../../../../src/components/ErrorPage/%3Cinput css bb8bRv%3E", "../../../../src/styles/mixins.scss"],
|
|
4
4
|
"sourcesContent": ["@use '../../styles/variables';\n@use '../../styles/mixins';\n\n.ErrorPage {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: 70px;\n padding: 0 50px;\n text-align: center;\n\n &__image {\n width: 230px;\n height: 230px;\n margin-bottom: 40px;\n\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center center;\n\n //The images for error page are supposed to be installed via overriding \"background-image\" variable\n &_code {\n &_403 {\n background-image: var(--dc-error-image-403);\n }\n\n &_404 {\n background-image: var(--dc-error-image-404);\n }\n\n &_500 {\n background-image: var(--dc-error-image-500);\n }\n }\n }\n\n &__code {\n margin-bottom: 10px;\n }\n\n &__title {\n @include mixins.heading3();\n\n max-width: 800px;\n margin-bottom: 20px;\n white-space: pre-line;\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 &__subtext {\n margin-bottom: 12px;\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n gap: 4px;\n }\n\n a {\n @include mixins.link();\n }\n\n .mobile & {\n margin-top: 40px;\n padding: 0 20px;\n }\n}\n", ".ErrorPage {\n display: flex;\n flex-direction: column;\n align-items: center;\n margin-top: 70px;\n padding: 0 50px;\n text-align: center;\n}\n.ErrorPage__image {\n width: 230px;\n height: 230px;\n margin-bottom: 40px;\n background-size: contain;\n background-repeat: no-repeat;\n background-position: center center;\n}\n.ErrorPage__image_code_403 {\n background-image: var(--dc-error-image-403);\n}\n.ErrorPage__image_code_404 {\n background-image: var(--dc-error-image-404);\n}\n.ErrorPage__image_code_500 {\n background-image: var(--dc-error-image-500);\n}\n.ErrorPage__code {\n margin-bottom: 10px;\n}\n.ErrorPage__title {\n font-weight: 500;\n font-size: var(--g-text-header-2-font-size);\n line-height: var(--g-text-header-2-line-height);\n max-width: 800px;\n margin-bottom: 20px;\n white-space: pre-line;\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__subtext {\n margin-bottom: 12px;\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n align-items: center;\n gap: 4px;\n}\n.ErrorPage a {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n outline: none;\n}\n.utilityfocus .ErrorPage a:focus {\n outline: 2px solid #ffdb4d;\n}\n.ErrorPage a:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n}\n.ErrorPage a:focus:not(:focus-visible) {\n box-shadow: none;\n}\n.ErrorPage a:hover, .ErrorPage a:active {\n color: var(--g-color-text-link-hover);\n}\n.mobile .ErrorPage {\n margin-top: 40px;\n padding: 0 20px;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0Vycm9yUGFnZSIsInNvdXJjZXMiOlsiRXJyb3JQYWdlLnNjc3MiLCIuLi8uLi9zdHlsZXMvbWl4aW5zLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0E7RUFDSTtFQUNBO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7O0FBRUE7RUFDSTtFQUNBO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBSUk7RUFDSTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBS1o7RUFDSTs7QUFHSjtFQytDQTtFQW5GQTtFQUNBO0VEc0NJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTtFQUVBOztBQUVBO0VBQ0k7RUFDQTs7QUFJUjtFQUNJO0VBQ0E7RUFDQTtFQUNBO0VBQ0E7RUFDQTs7QUFHSjtFQ2ZBO0VBQ0E7RUFDQTtFQUNBO0VBakNBOztBQUVBO0VBQ0k7O0FBZ0JBO0VBQ0k7RUFDQTs7QUFFSjtFQUNJOztBQWVSO0VBRUk7O0FEUUo7RUFDSTtFQUNBIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcyc7XG5AdXNlICcuLi8uLi9zdHlsZXMvbWl4aW5zJztcblxuLkVycm9yUGFnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWFyZ2luLXRvcDogNzBweDtcbiAgICBwYWRkaW5nOiAwIDUwcHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgJl9faW1hZ2Uge1xuICAgICAgICB3aWR0aDogMjMwcHg7XG4gICAgICAgIGhlaWdodDogMjMwcHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG5cbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuXG4gICAgICAgIC8vVGhlIGltYWdlcyBmb3IgZXJyb3IgcGFnZSBhcmUgc3VwcG9zZWQgdG8gYmUgaW5zdGFsbGVkIHZpYSBvdmVycmlkaW5nIFwiYmFja2dyb3VuZC1pbWFnZVwiIHZhcmlhYmxlXG4gICAgICAgICZfY29kZSB7XG4gICAgICAgICAgICAmXzQwMyB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdmFyKC0tZGMtZXJyb3ItaW1hZ2UtNDAzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJl80MDQge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWRjLWVycm9yLWltYWdlLTQwNCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICZfNTAwIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB2YXIoLS1kYy1lcnJvci1pbWFnZS01MDApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29kZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICBAaW5jbHVkZSBtaXhpbnMuaGVhZGluZzMoKTtcblxuICAgICAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogcHJlLWxpbmU7XG4gICAgfVxuXG4gICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDEwcHg7XG5cbiAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcblxuICAgICAgICAmLWxpbmsge1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDIwMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3VidGV4dCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIGdhcDogNHB4O1xuICAgIH1cblxuICAgIGEge1xuICAgICAgICBAaW5jbHVkZSBtaXhpbnMubGluaygpO1xuICAgIH1cblxuICAgIC5tb2JpbGUgJiB7XG4gICAgICAgIG1hcmdpbi10b3A6IDQwcHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICB9XG59XG4iLCJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICd2YXJpYWJsZXMnO1xuXG5AbWl4aW4gdGV4dC1zaXplKCRuYW1lKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtI3skbmFtZX0tZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWxpbmUtaGVpZ2h0KTtcbn1cblxuQG1peGluIHJlc2V0LWxpc3Qtc3R5bGUoKSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuQG1peGluIGZpeEFuY2hvclBvc2l0aW9uKCRvZmZzZXQ6IDBweCkge1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7dmFyaWFibGVzLiRoZWFkZXJIZWlnaHR9KSk7XG4gICAgbWFyZ2luLXRvcDogY2FsYygjeyRvZmZzZXR9IC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3t2YXJpYWJsZXMuJGhlYWRlckhlaWdodH0pKTtcbn1cblxuQG1peGluIHJlc2V0LWxpbmstc3R5bGUoKSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWl4aW4gaXNsYW5kcy1mb2N1cygpIHtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgLnV0aWxpdHlmb2N1cyAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICNmZmRiNGQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZm9jdXNhYmxlKCRvZmZzZXQ6IDAsICRtb2RlOiAnb3V0bGluZScpIHtcbiAgICBAaWYgJG1vZGUgPT0gJ291dGxpbmUnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAkb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRtb2RlID09ICdib3gtc2hhZG93JyB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWctY29sb3ItbGluZS1mb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbGluaygpIHtcbiAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmspO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZy1mb2N1cy1ib3JkZXItcmFkaXVzKTtcblxuICAgIEBpbmNsdWRlIGlzbGFuZHMtZm9jdXMoKTtcblxuICAgIEBpbmNsdWRlIGZvY3VzYWJsZSgwLCAnYm94LXNoYWRvdycpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluay1ob3Zlcik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzEoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTMpO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcyKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0xKTtcbn1cblxuQG1peGluIGhlYWRpbmczKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTIpO1xufVxuXG5AbWl4aW4gaGVhZGluZzQoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMSk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNSgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNigpIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBjb250cmlidXRvcnMtdGV4dCgpIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbkBtaXhpbiB0ZXh0LWJvZHktMSgpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC1ib2R5LTEtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMS1saW5lLWhlaWdodCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LWZvbnQtd2VpZ2h0KTtcbn1cblxuQG1peGluIGRlc2t0b3Atb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBkZXNrdG9wLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZ3Jhdml0eS11aS10ZXh0LXNpemVzKCRkZWx0YSkge1xuICAgIC0tZy10ZXh0LWJvZHktMS1mb250LXNpemU6ICN7MTNweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0OiAjezE4cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMi1mb250LXNpemU6ICN7MTVweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0yLWxpbmUtaGVpZ2h0OiAjezIwcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMy1mb250LXNpemU6ICN7MTdweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0zLWxpbmUtaGVpZ2h0OiAjezI0cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktc2hvcnQtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNhcHRpb24tMS1mb250LXNpemU6ICN7OXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jYXB0aW9uLTItZm9udC1zaXplOiAjezExcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWhlYWRlci0xLWZvbnQtc2l6ZTogI3syMHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1oZWFkZXItMi1mb250LXNpemU6ICN7MjRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtc3ViaGVhZGVyLTEtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LXN1YmhlYWRlci0yLWZvbnQtc2l6ZTogI3sxNXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1zdWJoZWFkZXItMy1mb250LXNpemU6ICN7MTdweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS0xLWZvbnQtc2l6ZTogI3syOHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTItZm9udC1zaXplOiAjezMycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWRpc3BsYXktMy1mb250LXNpemU6ICN7NDBweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS00LWZvbnQtc2l6ZTogI3s0OHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLTEtZm9udC1zaXplOiAjezEycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtMi1mb250LXNpemU6ICN7MTRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS0zLWZvbnQtc2l6ZTogI3sxNnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0xLWZvbnQtc2l6ZTogI3sxMnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0yLWZvbnQtc2l6ZTogI3sxNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0zLWZvbnQtc2l6ZTogI3sxNnB4ICsgJGRlbHRhfTtcblxuICAgIC0teWZtLWZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMi1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LTItbGluZS1oZWlnaHQpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oMjogdmFyKC0tZy10ZXh0LWhlYWRlci0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWgzOiB2YXIoLS1nLXRleHQtaGVhZGVyLTEtZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDQ6IHZhcigtLWctdGV4dC1zdWJoZWFkZXItMy1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oNTogdmFyKC0tZy10ZXh0LXN1YmhlYWRlci0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWg2OiB2YXIoLS1nLXRleHQtc3ViaGVhZGVyLTEtZm9udC1zaXplKTtcbn1cbiJdfQ== */", "@use 'sass:map';\n@use 'variables';\n\n@mixin text-size($name) {\n font-size: var(--g-text-#{$name}-font-size);\n line-height: var(--g-text-#{$name}-line-height);\n}\n\n@mixin reset-list-style() {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n@mixin fixAnchorPosition($offset: 0px) {\n padding-top: calc(var(--dc-header-height, #{variables.$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{variables.$headerHeight}));\n}\n\n@mixin reset-link-style() {\n color: inherit;\n text-decoration: none;\n}\n\n@mixin islands-focus() {\n outline: none;\n\n .utilityfocus &:focus {\n outline: 2px solid #ffdb4d;\n }\n}\n\n@mixin focusable($offset: 0, $mode: 'outline') {\n @if $mode == 'outline' {\n &:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: $offset;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n }\n\n @if $mode == 'box-shadow' {\n &:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n }\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n}\n\n@mixin link() {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n @include islands-focus();\n\n @include focusable(0, 'box-shadow');\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n font-weight: 500;\n\n @include text-size(display-3);\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n font-weight: 500;\n\n @include text-size(display-1);\n}\n\n@mixin heading3() {\n font-weight: 500;\n\n @include text-size(header-2);\n}\n\n@mixin heading4() {\n font-weight: 500;\n\n @include text-size(header-1);\n}\n\n@mixin heading5() {\n font-weight: 500;\n\n @include text-size(body-3);\n}\n\n@mixin heading6() {\n font-weight: 400;\n\n @include text-size(body-3);\n}\n\n@mixin contributors-text() {\n font-size: 13px;\n font-weight: 400;\n margin-right: 5px;\n align-self: center;\n}\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin desktop-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n\n@mixin gravity-ui-text-sizes($delta) {\n --g-text-body-1-font-size: #{13px + $delta};\n --g-text-body-1-line-height: #{18px + $delta};\n --g-text-body-2-font-size: #{15px + $delta};\n --g-text-body-2-line-height: #{20px + $delta};\n --g-text-body-3-font-size: #{17px + $delta};\n --g-text-body-3-line-height: #{24px + $delta};\n --g-text-body-short-font-size: #{13px + $delta};\n --g-text-caption-1-font-size: #{9px + $delta};\n --g-text-caption-2-font-size: #{11px + $delta};\n --g-text-header-1-font-size: #{20px + $delta};\n --g-text-header-2-font-size: #{24px + $delta};\n --g-text-subheader-1-font-size: #{13px + $delta};\n --g-text-subheader-2-font-size: #{15px + $delta};\n --g-text-subheader-3-font-size: #{17px + $delta};\n --g-text-display-1-font-size: #{28px + $delta};\n --g-text-display-2-font-size: #{32px + $delta};\n --g-text-display-3-font-size: #{40px + $delta};\n --g-text-display-4-font-size: #{48px + $delta};\n --g-text-code-1-font-size: #{12px + $delta};\n --g-text-code-2-font-size: #{14px + $delta};\n --g-text-code-3-font-size: #{16px + $delta};\n --g-text-code-inline-1-font-size: #{12px + $delta};\n --g-text-code-inline-2-font-size: #{14px + $delta};\n --g-text-code-inline-3-font-size: #{16px + $delta};\n\n --yfm-font-size: var(--g-text-body-2-font-size);\n --yfm-font-line-height: var(--g-text-body-2-line-height);\n --yfm-font-size-h2: var(--g-text-header-2-font-size);\n --yfm-font-size-h3: var(--g-text-header-1-font-size);\n --yfm-font-size-h4: var(--g-text-subheader-3-font-size);\n --yfm-font-size-h5: var(--g-text-subheader-2-font-size);\n --yfm-font-size-h6: var(--g-text-subheader-1-font-size);\n}\n"],
|
|
5
5
|
"mappings": ";AAGA,CAAA;AACI,WAAA;AACA,kBAAA;AACA,eAAA;AACA,cAAA;AACA,WAAA,EAAA;AACA,cAAA;ACFJ;ADII,CAAA;AACI,SAAA;AACA,UAAA;AACA,iBAAA;AAEA,mBAAA;AACA,qBAAA;AACA,uBAAA,OAAA;ACHR;ADOY,CAAA;AACI,oBAAA,IAAA;ACLhB;ADQY,CAAA;AACI,oBAAA,IAAA;ACNhB;ADSY,CAAA;AACI,oBAAA,IAAA;ACPhB;ADYI,CAAA;AACI,iBAAA;ACVR;ADaI,CAAA;AE+CA,eAAA;AAnFA,aAAA,IAAA;AACA,eAAA,IAAA;AFsCI,aAAA;AACA,iBAAA;AACA,eAAA;ACVR;ADaI,CAAA;AACI,WAAA;AACA,kBAAA;AACA,OAAA;AAEA,aAAA;ACZR;ADcQ,CAAA;AACI,SAAA;AACA,aAAA;ACZZ;ADgBI,CAAA;AACI,iBAAA;AACA,WAAA;AACA,aAAA;AACA,mBAAA;AACA,eAAA;AACA,OAAA;ACdR;ADiBI,CAnEJ,UAmEI;AEfA,SAAA,IAAA;AACA,2BAAA;AAAA,mBAAA;AACA,UAAA;AACA,iBAAA,IAAA;AAjCA,WAAA;ADmCJ;ACjCI,CAAA,aAAA,CFxBJ,UEwBI,CAAA;AACI,WAAA,IAAA,MAAA;ADmCR;ACnBQ,CFzCR,UEyCQ,CAAA;AACI,cAAA,EAAA,EAAA,EAAA,IAAA,IAAA;AACA,WAAA;ADqBZ;ACnBQ,CF7CR,UE6CQ,CAAA,MAAA,KAAA;AACI,cAAA;ADqBZ;ACNI,CF7DJ,UE6DI,CAAA;AAAA,CF7DJ,UE6DI,CAAA;AAEI,SAAA,IAAA;ADOR;ADCI,CAAA,OAAA,CAvEJ;AAwEQ,cAAA;AACA,WAAA,EAAA;ACCR;",
|
|
6
6
|
"names": []
|
|
@@ -86,7 +86,13 @@
|
|
|
86
86
|
gap: 20px;
|
|
87
87
|
}
|
|
88
88
|
.dc-feedback__controls_view_wide {
|
|
89
|
+
flex-wrap: wrap;
|
|
90
|
+
justify-content: center;
|
|
91
|
+
}
|
|
92
|
+
.dc-feedback__comment-row {
|
|
89
93
|
display: flex;
|
|
94
|
+
flex-basis: 100%;
|
|
95
|
+
justify-content: center;
|
|
90
96
|
}
|
|
91
97
|
.dc-feedback__control:nth-child(1),
|
|
92
98
|
.dc-feedback__control:nth-child(2) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../../src/components/Feedback/Feedback.scss", "../../../../src/components/Feedback/%3Cinput css
|
|
4
|
-
"sourcesContent": ["@use 'sass:map';\n@use '../../styles/mixins';\n@use '../../styles/variables';\n\n$popupWidth: 320px;\n\n@mixin tooltip-in-center {\n // use sm to cover a larger number of smartphones\n @media screen and (max-width: map.get(variables.$screenBreakpoints, 'sm')) {\n & {\n // stylelint-disable declaration-no-important\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n }\n}\n\n.dc-feedback {\n &__container {\n &_view_wide {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: 100%;\n }\n }\n\n &__container-col {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n gap: 20px;\n\n width: 100%;\n padding: 26px;\n\n border: 1px solid var(--g-color-line-generic);\n border-radius: 8px;\n\n &_view_wide {\n display: flex;\n align-items: center;\n }\n }\n\n &__success-popup {\n left: -20px;\n\n padding: variables.$popupPadding 50px variables.$popupPadding variables.$popupPadding;\n width: $popupWidth;\n\n &_view_wide {\n @include tooltip-in-center();\n }\n }\n\n &__variants-popup {\n padding: variables.$popupPadding;\n width: $popupWidth;\n left: -20px;\n\n &_view_wide {\n @include tooltip-in-center();\n }\n }\n\n &__popup-title {\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n padding-bottom: 8px;\n }\n\n &__popup-text {\n font-size: var(--g-text-body-short-font-size);\n line-height: var(--g-text-body-short-line-height);\n }\n\n &__variants {\n display: flex;\n flex-direction: column;\n padding: 8px 0;\n }\n\n &__variant {\n margin-bottom: 8px;\n white-space: normal;\n }\n\n &__variant:last-of-type {\n margin-bottom: 0;\n }\n\n &__variants-actions {\n padding-top: 8px;\n display: flex;\n justify-content: flex-end;\n }\n\n &__variants-action {\n margin-left: 10px;\n }\n\n &__textarea {\n padding: 8px 0;\n }\n\n &__title {\n &_view_wide {\n @include mixins.text-size(subheader-3);\n font-weight: 400;\n }\n }\n\n &__controls {\n display: flex;\n gap: 20px;\n\n &_view_wide {\n display: flex;\n }\n }\n\n &__control {\n &:nth-child(1),\n &:nth-child(2) {\n display: flex;\n align-items: center;\n\n font-size: 17px;\n line-height: 24px;\n font-weight: 400;\n }\n\n &_view_wide {\n margin-right: 24px;\n\n &:last-of-type {\n margin-right: 0;\n }\n }\n\n &_view_regular {\n margin-right: 4px;\n\n &:last-of-type {\n margin-right: 0;\n }\n }\n }\n}\n", ".dc-feedback__container_view_wide {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: 100%;\n}\n.dc-feedback__container-col {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n gap: 20px;\n width: 100%;\n padding: 26px;\n border: 1px solid var(--g-color-line-generic);\n border-radius: 8px;\n}\n.dc-feedback__container-col_view_wide {\n display: flex;\n align-items: center;\n}\n.dc-feedback__success-popup {\n left: -20px;\n padding: 16px 50px 16px 16px;\n width: 320px;\n}\n@media screen and (max-width: 577px) {\n .dc-feedback__success-popup_view_wide {\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n}\n.dc-feedback__variants-popup {\n padding: 16px;\n width: 320px;\n left: -20px;\n}\n@media screen and (max-width: 577px) {\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-of-type {\n margin-bottom: 0;\n}\n.dc-feedback__variants-actions {\n padding-top: 8px;\n display: flex;\n justify-content: flex-end;\n}\n.dc-feedback__variants-action {\n margin-left: 10px;\n}\n.dc-feedback__textarea {\n padding: 8px 0;\n}\n.dc-feedback__title_view_wide {\n font-size: var(--g-text-subheader-3-font-size);\n line-height: var(--g-text-subheader-3-line-height);\n font-weight: 400;\n}\n.dc-feedback__controls {\n display: flex;\n gap: 20px;\n}\n.dc-feedback__controls_view_wide {\n display: flex;\n}\n.dc-feedback__control:nth-child(1), .dc-feedback__control:nth-child(2) {\n display: flex;\n align-items: center;\n font-size: 17px;\n line-height: 24px;\n font-weight: 400;\n}\n.dc-feedback__control_view_wide {\n margin-right: 24px;\n}\n.dc-feedback__control_view_wide:last-of-type {\n margin-right: 0;\n}\n.dc-feedback__control_view_regular {\n margin-right: 4px;\n}\n.dc-feedback__control_view_regular:last-of-type {\n margin-right: 0;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0ZlZWRiYWNrIiwic291cmNlcyI6WyJGZWVkYmFjay5zY3NzIiwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vc3R5bGVzL21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9CUTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFJUjtFQUNJO0VBRUE7RUFDQSxPQS9DSzs7QUFJVDtFQUNJO0lBRUk7SUFDQTtJQUNBOzs7QUE2Q1I7RUFDSSxTQ2pETztFRGtEUCxPQXhESztFQXlETDs7QUFyREo7RUFDSTtJQUVJO0lBQ0E7SUFDQTs7O0FBdURSO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBSUE7RUV6R0o7RUFDQTtFRjBHUTs7QUFJUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTs7QUFLSjtFQUVJO0VBQ0E7RUFFQTtFQUNBO0VBQ0E7O0FBR0o7RUFDSTs7QUFFQTtFQUNJOztBQUlSO0VBQ0k7O0FBRUE7RUFDSSIsInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJ3Nhc3M6bWFwJztcbkB1c2UgJy4uLy4uL3N0eWxlcy9taXhpbnMnO1xuQHVzZSAnLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcyc7XG5cbiRwb3B1cFdpZHRoOiAzMjBweDtcblxuQG1peGluIHRvb2x0aXAtaW4tY2VudGVyIHtcbiAgICAvLyB1c2Ugc20gdG8gY292ZXIgYSBsYXJnZXIgbnVtYmVyIG9mIHNtYXJ0cGhvbmVzXG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnc20nKSkge1xuICAgICAgICAmIHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuICAgICAgICAgICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgICAgICAgICAgIG1hcmdpbjogYXV0bztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmRjLWZlZWRiYWNrIHtcbiAgICAmX19jb250YWluZXIge1xuICAgICAgICAmX3ZpZXdfd2lkZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRhaW5lci1jb2wge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgZ2FwOiAyMHB4O1xuXG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAyNnB4O1xuXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWctY29sb3ItbGluZS1nZW5lcmljKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogOHB4O1xuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fc3VjY2Vzcy1wb3B1cCB7XG4gICAgICAgIGxlZnQ6IC0yMHB4O1xuXG4gICAgICAgIHBhZGRpbmc6IHZhcmlhYmxlcy4kcG9wdXBQYWRkaW5nIDUwcHggdmFyaWFibGVzLiRwb3B1cFBhZGRpbmcgdmFyaWFibGVzLiRwb3B1cFBhZGRpbmc7XG4gICAgICAgIHdpZHRoOiAkcG9wdXBXaWR0aDtcblxuICAgICAgICAmX3ZpZXdfd2lkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b29sdGlwLWluLWNlbnRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudHMtcG9wdXAge1xuICAgICAgICBwYWRkaW5nOiB2YXJpYWJsZXMuJHBvcHVwUGFkZGluZztcbiAgICAgICAgd2lkdGg6ICRwb3B1cFdpZHRoO1xuICAgICAgICBsZWZ0OiAtMjBweDtcblxuICAgICAgICAmX3ZpZXdfd2lkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB0b29sdGlwLWluLWNlbnRlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcG9wdXAtdGl0bGUge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC1ib2R5LTItZm9udC1zaXplKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LTItbGluZS1oZWlnaHQpO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogOHB4O1xuICAgIH1cblxuICAgICZfX3BvcHVwLXRleHQge1xuICAgICAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC1ib2R5LXNob3J0LWZvbnQtc2l6ZSk7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiB2YXIoLS1nLXRleHQtYm9keS1zaG9ydC1saW5lLWhlaWdodCk7XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBwYWRkaW5nOiA4cHggMDtcbiAgICB9XG5cbiAgICAmX192YXJpYW50IHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICAgIH1cblxuICAgICZfX3ZhcmlhbnQ6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICB9XG5cbiAgICAmX192YXJpYW50cy1hY3Rpb25zIHtcbiAgICAgICAgcGFkZGluZy10b3A6IDhweDtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICB9XG5cbiAgICAmX192YXJpYW50cy1hY3Rpb24ge1xuICAgICAgICBtYXJnaW4tbGVmdDogMTBweDtcbiAgICB9XG5cbiAgICAmX190ZXh0YXJlYSB7XG4gICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIH1cblxuICAgICZfX3RpdGxlIHtcbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgQGluY2x1ZGUgbWl4aW5zLnRleHQtc2l6ZShzdWJoZWFkZXItMyk7XG4gICAgICAgICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udHJvbHMge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBnYXA6IDIwcHg7XG5cbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2NvbnRyb2wge1xuICAgICAgICAmOm50aC1jaGlsZCgxKSxcbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMjRweDtcblxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfdmlld19yZWd1bGFyIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gU2l6ZXNcbiRoZWFkZXJIZWlnaHQ6IDBweDtcbiRzdWJIZWFkZXJIZWlnaHQ6IDQwcHg7XG4kc3ViTmF2aWdhdGlvbkhlaWdodDogNTJweDtcbiRub3JtYWxPZmZzZXQ6IDIwcHg7XG4kbWluaVRvY09mZnNldDogNTZweDtcbiRibG9ja01hcmdpbkJvdHRvbUxhcmdlOiAyMHB4O1xuJGJsb2NrTWFyZ2luQm90dG9tTWVkaXVtOiAxNXB4O1xuJGhlYWRlck1hcmdpblRvcExhcmdlOiA0MHB4O1xuJGhlYWRlck1hcmdpblRvcE1lZGl1bTogMzJweDtcbiRwb3B1cFBhZGRpbmc6IDE2cHg7XG4kY2VudGVyQmxvY2tNYXhXaWR0aDogNzM2cHg7XG5cbi8vIE5hdmlnYXRpb25cbiR0b01haW5NZW51VmVydGljYWxQYWRkaW5nOiA0cHg7XG4kdG9NYWluTWVudUhvcml6b250YWxQYWRkaW5nOiAxMnB4O1xuJHRvTWFpbk1lbnVIZWlnaHQ6IGNhbGMoXG4gICAgdmFyKC0tZGMtc3VibmF2aWdhdGlvbi1oZWlnaHQsICRzdWJOYXZpZ2F0aW9uSGVpZ2h0KSAtICN7JHRvTWFpbk1lbnVWZXJ0aWNhbFBhZGRpbmd9IC1cbiAgICAgICAgI3skdG9NYWluTWVudVZlcnRpY2FsUGFkZGluZ31cbik7XG5cbi8vIE1pbmlUb2NcbiRtaW5pVG9jVmVydGljYWxQYWRkaW5nOiAxNnB4O1xuJG1pbmlUb2NUaXRsZUhlaWdodDogMjBweDsgLy8gbGluZS1oZWlnaHQgYm9keS0yXG4kbWluaVRvY1RpdGxlTWFyZ2luOiAxMnB4O1xuJG1vYmlsZU1pbmlUb2NPZmZzZXQ6IDIgKiAkbWluaVRvY1ZlcnRpY2FsUGFkZGluZyArICRtaW5pVG9jVGl0bGVIZWlnaHQgKyAkbWluaVRvY1RpdGxlTWFyZ2luO1xuXG4vLyBNb2JpbGVDb250cm9sc1xuJG1vYmlsZUNvbnRyb2xzSGVpZ2h0OiA0NHB4O1xuJG1vYmlsZUNvbnRyb2xzVG9wUGFkZGluZzogNHB4O1xuJG1vYmlsZUNvbnRyb2xzQm90dG9tUGFkZGluZzogMzRweDtcblxuJHNjcmVlbkJyZWFrcG9pbnRzOiAoXG4gICAgJ3hzJzogMzc1cHgsXG4gICAgJ3NtJzogNTc3cHgsXG4gICAgJ21kJzogNzY5cHgsXG4gICAgJ2xnJzogMTA4MXB4LFxuICAgICd4bCc6IDExODVweCxcbik7XG4iLCJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICd2YXJpYWJsZXMnO1xuXG5AbWl4aW4gdGV4dC1zaXplKCRuYW1lKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtI3skbmFtZX0tZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWxpbmUtaGVpZ2h0KTtcbn1cblxuQG1peGluIHJlc2V0LWxpc3Qtc3R5bGUoKSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuQG1peGluIGZpeEFuY2hvclBvc2l0aW9uKCRvZmZzZXQ6IDBweCkge1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7dmFyaWFibGVzLiRoZWFkZXJIZWlnaHR9KSk7XG4gICAgbWFyZ2luLXRvcDogY2FsYygjeyRvZmZzZXR9IC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3t2YXJpYWJsZXMuJGhlYWRlckhlaWdodH0pKTtcbn1cblxuQG1peGluIHJlc2V0LWxpbmstc3R5bGUoKSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWl4aW4gaXNsYW5kcy1mb2N1cygpIHtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgLnV0aWxpdHlmb2N1cyAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICNmZmRiNGQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZm9jdXNhYmxlKCRvZmZzZXQ6IDAsICRtb2RlOiAnb3V0bGluZScpIHtcbiAgICBAaWYgJG1vZGUgPT0gJ291dGxpbmUnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAkb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRtb2RlID09ICdib3gtc2hhZG93JyB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWctY29sb3ItbGluZS1mb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbGluaygpIHtcbiAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmspO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZy1mb2N1cy1ib3JkZXItcmFkaXVzKTtcblxuICAgIEBpbmNsdWRlIGlzbGFuZHMtZm9jdXMoKTtcblxuICAgIEBpbmNsdWRlIGZvY3VzYWJsZSgwLCAnYm94LXNoYWRvdycpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluay1ob3Zlcik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzEoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTMpO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcyKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0xKTtcbn1cblxuQG1peGluIGhlYWRpbmczKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTIpO1xufVxuXG5AbWl4aW4gaGVhZGluZzQoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMSk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNSgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNigpIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBjb250cmlidXRvcnMtdGV4dCgpIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbkBtaXhpbiB0ZXh0LWJvZHktMSgpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC1ib2R5LTEtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMS1saW5lLWhlaWdodCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LWZvbnQtd2VpZ2h0KTtcbn1cblxuQG1peGluIGRlc2t0b3Atb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBkZXNrdG9wLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZ3Jhdml0eS11aS10ZXh0LXNpemVzKCRkZWx0YSkge1xuICAgIC0tZy10ZXh0LWJvZHktMS1mb250LXNpemU6ICN7MTNweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0OiAjezE4cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMi1mb250LXNpemU6ICN7MTVweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0yLWxpbmUtaGVpZ2h0OiAjezIwcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMy1mb250LXNpemU6ICN7MTdweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0zLWxpbmUtaGVpZ2h0OiAjezI0cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktc2hvcnQtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNhcHRpb24tMS1mb250LXNpemU6ICN7OXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jYXB0aW9uLTItZm9udC1zaXplOiAjezExcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWhlYWRlci0xLWZvbnQtc2l6ZTogI3syMHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1oZWFkZXItMi1mb250LXNpemU6ICN7MjRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtc3ViaGVhZGVyLTEtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LXN1YmhlYWRlci0yLWZvbnQtc2l6ZTogI3sxNXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1zdWJoZWFkZXItMy1mb250LXNpemU6ICN7MTdweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS0xLWZvbnQtc2l6ZTogI3syOHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTItZm9udC1zaXplOiAjezMycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWRpc3BsYXktMy1mb250LXNpemU6ICN7NDBweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS00LWZvbnQtc2l6ZTogI3s0OHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLTEtZm9udC1zaXplOiAjezEycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtMi1mb250LXNpemU6ICN7MTRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS0zLWZvbnQtc2l6ZTogI3sxNnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0xLWZvbnQtc2l6ZTogI3sxMnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0yLWZvbnQtc2l6ZTogI3sxNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0zLWZvbnQtc2l6ZTogI3sxNnB4ICsgJGRlbHRhfTtcblxuICAgIC0teWZtLWZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMi1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LTItbGluZS1oZWlnaHQpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oMjogdmFyKC0tZy10ZXh0LWhlYWRlci0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWgzOiB2YXIoLS1nLXRleHQtaGVhZGVyLTEtZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDQ6IHZhcigtLWctdGV4dC1zdWJoZWFkZXItMy1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oNTogdmFyKC0tZy10ZXh0LXN1YmhlYWRlci0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWg2OiB2YXIoLS1nLXRleHQtc3ViaGVhZGVyLTEtZm9udC1zaXplKTtcbn1cbiJdfQ== */", "// Sizes\n$headerHeight: 0px;\n$subHeaderHeight: 40px;\n$subNavigationHeight: 52px;\n$normalOffset: 20px;\n$miniTocOffset: 56px;\n$blockMarginBottomLarge: 20px;\n$blockMarginBottomMedium: 15px;\n$headerMarginTopLarge: 40px;\n$headerMarginTopMedium: 32px;\n$popupPadding: 16px;\n$centerBlockMaxWidth: 736px;\n\n// Navigation\n$toMainMenuVerticalPadding: 4px;\n$toMainMenuHorizontalPadding: 12px;\n$toMainMenuHeight: calc(\n var(--dc-subnavigation-height, $subNavigationHeight) - #{$toMainMenuVerticalPadding} -\n #{$toMainMenuVerticalPadding}\n);\n\n// MiniToc\n$miniTocVerticalPadding: 16px;\n$miniTocTitleHeight: 20px; // line-height body-2\n$miniTocTitleMargin: 12px;\n$mobileMiniTocOffset: 2 * $miniTocVerticalPadding + $miniTocTitleHeight + $miniTocTitleMargin;\n\n// MobileControls\n$mobileControlsHeight: 44px;\n$mobileControlsTopPadding: 4px;\n$mobileControlsBottomPadding: 34px;\n\n$screenBreakpoints: (\n 'xs': 375px,\n 'sm': 577px,\n 'md': 769px,\n 'lg': 1081px,\n 'xl': 1185px,\n);\n", "@use 'sass:map';\n@use 'variables';\n\n@mixin text-size($name) {\n font-size: var(--g-text-#{$name}-font-size);\n line-height: var(--g-text-#{$name}-line-height);\n}\n\n@mixin reset-list-style() {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n@mixin fixAnchorPosition($offset: 0px) {\n padding-top: calc(var(--dc-header-height, #{variables.$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{variables.$headerHeight}));\n}\n\n@mixin reset-link-style() {\n color: inherit;\n text-decoration: none;\n}\n\n@mixin islands-focus() {\n outline: none;\n\n .utilityfocus &:focus {\n outline: 2px solid #ffdb4d;\n }\n}\n\n@mixin focusable($offset: 0, $mode: 'outline') {\n @if $mode == 'outline' {\n &:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: $offset;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n }\n\n @if $mode == 'box-shadow' {\n &:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n }\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n}\n\n@mixin link() {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n @include islands-focus();\n\n @include focusable(0, 'box-shadow');\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n font-weight: 500;\n\n @include text-size(display-3);\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n font-weight: 500;\n\n @include text-size(display-1);\n}\n\n@mixin heading3() {\n font-weight: 500;\n\n @include text-size(header-2);\n}\n\n@mixin heading4() {\n font-weight: 500;\n\n @include text-size(header-1);\n}\n\n@mixin heading5() {\n font-weight: 500;\n\n @include text-size(body-3);\n}\n\n@mixin heading6() {\n font-weight: 400;\n\n @include text-size(body-3);\n}\n\n@mixin contributors-text() {\n font-size: 13px;\n font-weight: 400;\n margin-right: 5px;\n align-self: center;\n}\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin desktop-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n\n@mixin gravity-ui-text-sizes($delta) {\n --g-text-body-1-font-size: #{13px + $delta};\n --g-text-body-1-line-height: #{18px + $delta};\n --g-text-body-2-font-size: #{15px + $delta};\n --g-text-body-2-line-height: #{20px + $delta};\n --g-text-body-3-font-size: #{17px + $delta};\n --g-text-body-3-line-height: #{24px + $delta};\n --g-text-body-short-font-size: #{13px + $delta};\n --g-text-caption-1-font-size: #{9px + $delta};\n --g-text-caption-2-font-size: #{11px + $delta};\n --g-text-header-1-font-size: #{20px + $delta};\n --g-text-header-2-font-size: #{24px + $delta};\n --g-text-subheader-1-font-size: #{13px + $delta};\n --g-text-subheader-2-font-size: #{15px + $delta};\n --g-text-subheader-3-font-size: #{17px + $delta};\n --g-text-display-1-font-size: #{28px + $delta};\n --g-text-display-2-font-size: #{32px + $delta};\n --g-text-display-3-font-size: #{40px + $delta};\n --g-text-display-4-font-size: #{48px + $delta};\n --g-text-code-1-font-size: #{12px + $delta};\n --g-text-code-2-font-size: #{14px + $delta};\n --g-text-code-3-font-size: #{16px + $delta};\n --g-text-code-inline-1-font-size: #{12px + $delta};\n --g-text-code-inline-2-font-size: #{14px + $delta};\n --g-text-code-inline-3-font-size: #{16px + $delta};\n\n --yfm-font-size: var(--g-text-body-2-font-size);\n --yfm-font-line-height: var(--g-text-body-2-line-height);\n --yfm-font-size-h2: var(--g-text-header-2-font-size);\n --yfm-font-size-h3: var(--g-text-header-1-font-size);\n --yfm-font-size-h4: var(--g-text-subheader-3-font-size);\n --yfm-font-size-h5: var(--g-text-subheader-2-font-size);\n --yfm-font-size-h6: var(--g-text-subheader-1-font-size);\n}\n"],
|
|
5
|
-
"mappings": ";AAoBQ,CAAA;AACI,WAAA;AACA,eAAA;AACA,kBAAA;AACA,SAAA;ACnBZ;ADuBI,CAAA;AACI,WAAA;AACA,mBAAA;AACA,eAAA;AACA,kBAAA;AACA,OAAA;AAEA,SAAA;AACA,WAAA;AAEA,UAAA,IAAA,MAAA,IAAA;AACA,iBAAA;ACvBR;ADyBQ,CAAA;AACI,WAAA;AACA,eAAA;ACvBZ;AD2BI,CAAA;AACI,QAAA;AAEA,WAAA,KAAA,KAAA,KAAA;AACA,SAAA;AC1BR;ADjBI,OAAA,YAAA,WAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AACA,YAAA;ACkBV;AACF;AD0BI,CAAA;AACI,WAAA;AACA,SAAA;AACA,QAAA;ACxBR;AD7BI,OAAA,YAAA,WAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AACA,YAAA;AC8BV;AACF;ADwBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;AACA,kBAAA;ACtBR;ADyBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;ACvBR;AD0BI,CAAA;AACI,WAAA;AACA,kBAAA;AACA,WAAA,IAAA;ACxBR;AD2BI,CAAA;AACI,iBAAA;AACA,eAAA;ACzBR;AD4BI,CALA,oBAKA;AACI,iBAAA;AC1BR;AD6BI,CAAA;AACI,eAAA;AACA,WAAA;AACA,mBAAA;AC3BR;AD8BI,CAAA;AACI,eAAA;AC5BR;AD+BI,CAAA;AACI,WAAA,IAAA;AC7BR;ADiCQ,CAAA;AGzGJ,aAAA,IAAA;AACA,eAAA,IAAA;AH0GQ,eAAA;AC9BZ;ADkCI,CAAA;AACI,WAAA;AACA,OAAA;AChCR;ADkCQ,CAAA;AACI,
|
|
3
|
+
"sources": ["../../../../src/components/Feedback/Feedback.scss", "../../../../src/components/Feedback/%3Cinput css gAUFYN%3E", "../../../../src/styles/variables.scss", "../../../../src/styles/mixins.scss"],
|
|
4
|
+
"sourcesContent": ["@use 'sass:map';\n@use '../../styles/mixins';\n@use '../../styles/variables';\n\n$popupWidth: 320px;\n\n@mixin tooltip-in-center {\n // use sm to cover a larger number of smartphones\n @media screen and (max-width: map.get(variables.$screenBreakpoints, 'sm')) {\n & {\n // stylelint-disable declaration-no-important\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n }\n}\n\n.dc-feedback {\n &__container {\n &_view_wide {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: 100%;\n }\n }\n\n &__container-col {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n gap: 20px;\n\n width: 100%;\n padding: 26px;\n\n border: 1px solid var(--g-color-line-generic);\n border-radius: 8px;\n\n &_view_wide {\n display: flex;\n align-items: center;\n }\n }\n\n &__success-popup {\n left: -20px;\n\n padding: variables.$popupPadding 50px variables.$popupPadding variables.$popupPadding;\n width: $popupWidth;\n\n &_view_wide {\n @include tooltip-in-center();\n }\n }\n\n &__variants-popup {\n padding: variables.$popupPadding;\n width: $popupWidth;\n left: -20px;\n\n &_view_wide {\n @include tooltip-in-center();\n }\n }\n\n &__popup-title {\n font-size: var(--g-text-body-2-font-size);\n line-height: var(--g-text-body-2-line-height);\n padding-bottom: 8px;\n }\n\n &__popup-text {\n font-size: var(--g-text-body-short-font-size);\n line-height: var(--g-text-body-short-line-height);\n }\n\n &__variants {\n display: flex;\n flex-direction: column;\n padding: 8px 0;\n }\n\n &__variant {\n margin-bottom: 8px;\n white-space: normal;\n }\n\n &__variant:last-of-type {\n margin-bottom: 0;\n }\n\n &__variants-actions {\n padding-top: 8px;\n display: flex;\n justify-content: flex-end;\n }\n\n &__variants-action {\n margin-left: 10px;\n }\n\n &__textarea {\n padding: 8px 0;\n }\n\n &__title {\n &_view_wide {\n @include mixins.text-size(subheader-3);\n font-weight: 400;\n }\n }\n\n &__controls {\n display: flex;\n gap: 20px;\n\n &_view_wide {\n flex-wrap: wrap;\n justify-content: center;\n }\n }\n\n // Wide-only: own full-width row so the button stays content-width and centered\n &__comment-row {\n display: flex;\n flex-basis: 100%;\n justify-content: center;\n }\n\n &__control {\n &:nth-child(1),\n &:nth-child(2) {\n display: flex;\n align-items: center;\n\n font-size: 17px;\n line-height: 24px;\n font-weight: 400;\n }\n\n &_view_wide {\n margin-right: 24px;\n\n &:last-of-type {\n margin-right: 0;\n }\n }\n\n &_view_regular {\n margin-right: 4px;\n\n &:last-of-type {\n margin-right: 0;\n }\n }\n }\n}\n", ".dc-feedback__container_view_wide {\n display: flex;\n align-items: center;\n flex-direction: column;\n width: 100%;\n}\n.dc-feedback__container-col {\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n gap: 20px;\n width: 100%;\n padding: 26px;\n border: 1px solid var(--g-color-line-generic);\n border-radius: 8px;\n}\n.dc-feedback__container-col_view_wide {\n display: flex;\n align-items: center;\n}\n.dc-feedback__success-popup {\n left: -20px;\n padding: 16px 50px 16px 16px;\n width: 320px;\n}\n@media screen and (max-width: 577px) {\n .dc-feedback__success-popup_view_wide {\n right: 0 !important;\n left: 0 !important;\n margin: auto;\n }\n}\n.dc-feedback__variants-popup {\n padding: 16px;\n width: 320px;\n left: -20px;\n}\n@media screen and (max-width: 577px) {\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-of-type {\n margin-bottom: 0;\n}\n.dc-feedback__variants-actions {\n padding-top: 8px;\n display: flex;\n justify-content: flex-end;\n}\n.dc-feedback__variants-action {\n margin-left: 10px;\n}\n.dc-feedback__textarea {\n padding: 8px 0;\n}\n.dc-feedback__title_view_wide {\n font-size: var(--g-text-subheader-3-font-size);\n line-height: var(--g-text-subheader-3-line-height);\n font-weight: 400;\n}\n.dc-feedback__controls {\n display: flex;\n gap: 20px;\n}\n.dc-feedback__controls_view_wide {\n flex-wrap: wrap;\n justify-content: center;\n}\n.dc-feedback__comment-row {\n display: flex;\n flex-basis: 100%;\n justify-content: center;\n}\n.dc-feedback__control:nth-child(1), .dc-feedback__control:nth-child(2) {\n display: flex;\n align-items: center;\n font-size: 17px;\n line-height: 24px;\n font-weight: 400;\n}\n.dc-feedback__control_view_wide {\n margin-right: 24px;\n}\n.dc-feedback__control_view_wide:last-of-type {\n margin-right: 0;\n}\n.dc-feedback__control_view_regular {\n margin-right: 4px;\n}\n.dc-feedback__control_view_regular:last-of-type {\n margin-right: 0;\n}\n/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VSb290IjoiL2hvbWUvcnVubmVyL3dvcmsvY29tcG9uZW50cy9jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0ZlZWRiYWNrIiwic291cmNlcyI6WyJGZWVkYmFjay5zY3NzIiwiLi4vLi4vc3R5bGVzL3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vc3R5bGVzL21peGlucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9CUTtFQUNJO0VBQ0E7RUFDQTtFQUNBOztBQUlSO0VBQ0k7RUFDQTtFQUNBO0VBQ0E7RUFDQTtFQUVBO0VBQ0E7RUFFQTtFQUNBOztBQUVBO0VBQ0k7RUFDQTs7QUFJUjtFQUNJO0VBRUE7RUFDQSxPQS9DSzs7QUFJVDtFQUNJO0lBRUk7SUFDQTtJQUNBOzs7QUE2Q1I7RUFDSSxTQ2pETztFRGtEUCxPQXhESztFQXlETDs7QUFyREo7RUFDSTtJQUVJO0lBQ0E7SUFDQTs7O0FBdURSO0VBQ0k7RUFDQTtFQUNBOztBQUdKO0VBQ0k7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJO0VBQ0E7O0FBR0o7RUFDSTs7QUFHSjtFQUNJO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUdKO0VBQ0k7O0FBSUE7RUV6R0o7RUFDQTtFRjBHUTs7QUFJUjtFQUNJO0VBQ0E7O0FBRUE7RUFDSTtFQUNBOztBQUtSO0VBQ0k7RUFDQTtFQUNBOztBQUlBO0VBRUk7RUFDQTtFQUVBO0VBQ0E7RUFDQTs7QUFHSjtFQUNJOztBQUVBO0VBQ0k7O0FBSVI7RUFDSTs7QUFFQTtFQUNJIiwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnc2FzczptYXAnO1xuQHVzZSAnLi4vLi4vc3R5bGVzL21peGlucyc7XG5AdXNlICcuLi8uLi9zdHlsZXMvdmFyaWFibGVzJztcblxuJHBvcHVwV2lkdGg6IDMyMHB4O1xuXG5AbWl4aW4gdG9vbHRpcC1pbi1jZW50ZXIge1xuICAgIC8vIHVzZSBzbSB0byBjb3ZlciBhIGxhcmdlciBudW1iZXIgb2Ygc21hcnRwaG9uZXNcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpKSB7XG4gICAgICAgICYge1xuICAgICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG4gICAgICAgICAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgICAgbWFyZ2luOiBhdXRvO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uZGMtZmVlZGJhY2sge1xuICAgICZfX2NvbnRhaW5lciB7XG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fY29udGFpbmVyLWNvbCB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBnYXA6IDIwcHg7XG5cbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDI2cHg7XG5cbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWdlbmVyaWMpO1xuICAgICAgICBib3JkZXItcmFkaXVzOiA4cHg7XG5cbiAgICAgICAgJl92aWV3X3dpZGUge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19zdWNjZXNzLXBvcHVwIHtcbiAgICAgICAgbGVmdDogLTIwcHg7XG5cbiAgICAgICAgcGFkZGluZzogdmFyaWFibGVzLiRwb3B1cFBhZGRpbmcgNTBweCB2YXJpYWJsZXMuJHBvcHVwUGFkZGluZyB2YXJpYWJsZXMuJHBvcHVwUGFkZGluZztcbiAgICAgICAgd2lkdGg6ICRwb3B1cFdpZHRoO1xuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvb2x0aXAtaW4tY2VudGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX192YXJpYW50cy1wb3B1cCB7XG4gICAgICAgIHBhZGRpbmc6IHZhcmlhYmxlcy4kcG9wdXBQYWRkaW5nO1xuICAgICAgICB3aWR0aDogJHBvcHVwV2lkdGg7XG4gICAgICAgIGxlZnQ6IC0yMHB4O1xuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHRvb2x0aXAtaW4tY2VudGVyKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19wb3B1cC10aXRsZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMi1mb250LXNpemUpO1xuICAgICAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMi1saW5lLWhlaWdodCk7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA4cHg7XG4gICAgfVxuXG4gICAgJl9fcG9wdXAtdGV4dCB7XG4gICAgICAgIGZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktc2hvcnQtZm9udC1zaXplKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LXNob3J0LWxpbmUtaGVpZ2h0KTtcbiAgICB9XG5cbiAgICAmX192YXJpYW50cyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIHBhZGRpbmc6IDhweCAwO1xuICAgIH1cblxuICAgICZfX3ZhcmlhbnQge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7XG4gICAgfVxuXG4gICAgJl9fdmFyaWFudDpsYXN0LW9mLXR5cGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cblxuICAgICZfX3ZhcmlhbnRzLWFjdGlvbnMge1xuICAgICAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgICZfX3ZhcmlhbnRzLWFjdGlvbiB7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIH1cblxuICAgICZfX3RleHRhcmVhIHtcbiAgICAgICAgcGFkZGluZzogOHB4IDA7XG4gICAgfVxuXG4gICAgJl9fdGl0bGUge1xuICAgICAgICAmX3ZpZXdfd2lkZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtaXhpbnMudGV4dC1zaXplKHN1YmhlYWRlci0zKTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmX19jb250cm9scyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGdhcDogMjBweDtcblxuICAgICAgICAmX3ZpZXdfd2lkZSB7XG4gICAgICAgICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdpZGUtb25seTogb3duIGZ1bGwtd2lkdGggcm93IHNvIHRoZSBidXR0b24gc3RheXMgY29udGVudC13aWR0aCBhbmQgY2VudGVyZWRcbiAgICAmX19jb21tZW50LXJvdyB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtYmFzaXM6IDEwMCU7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIH1cblxuICAgICZfX2NvbnRyb2wge1xuICAgICAgICAmOm50aC1jaGlsZCgxKSxcbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTdweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgICAgfVxuXG4gICAgICAgICZfdmlld193aWRlIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMjRweDtcblxuICAgICAgICAgICAgJjpsYXN0LW9mLXR5cGUge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICZfdmlld19yZWd1bGFyIHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNHB4O1xuXG4gICAgICAgICAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiLy8gU2l6ZXNcbiRoZWFkZXJIZWlnaHQ6IDBweDtcbiRzdWJIZWFkZXJIZWlnaHQ6IDQwcHg7XG4kc3ViTmF2aWdhdGlvbkhlaWdodDogNTJweDtcbiRub3JtYWxPZmZzZXQ6IDIwcHg7XG4kbWluaVRvY09mZnNldDogNTZweDtcbiRibG9ja01hcmdpbkJvdHRvbUxhcmdlOiAyMHB4O1xuJGJsb2NrTWFyZ2luQm90dG9tTWVkaXVtOiAxNXB4O1xuJGhlYWRlck1hcmdpblRvcExhcmdlOiA0MHB4O1xuJGhlYWRlck1hcmdpblRvcE1lZGl1bTogMzJweDtcbiRwb3B1cFBhZGRpbmc6IDE2cHg7XG4kY2VudGVyQmxvY2tNYXhXaWR0aDogNzM2cHg7XG5cbi8vIE5hdmlnYXRpb25cbiR0b01haW5NZW51VmVydGljYWxQYWRkaW5nOiA0cHg7XG4kdG9NYWluTWVudUhvcml6b250YWxQYWRkaW5nOiAxMnB4O1xuJHRvTWFpbk1lbnVIZWlnaHQ6IGNhbGMoXG4gICAgdmFyKC0tZGMtc3VibmF2aWdhdGlvbi1oZWlnaHQsICRzdWJOYXZpZ2F0aW9uSGVpZ2h0KSAtICN7JHRvTWFpbk1lbnVWZXJ0aWNhbFBhZGRpbmd9IC1cbiAgICAgICAgI3skdG9NYWluTWVudVZlcnRpY2FsUGFkZGluZ31cbik7XG5cbi8vIE1pbmlUb2NcbiRtaW5pVG9jVmVydGljYWxQYWRkaW5nOiAxNnB4O1xuJG1pbmlUb2NUaXRsZUhlaWdodDogMjBweDsgLy8gbGluZS1oZWlnaHQgYm9keS0yXG4kbWluaVRvY1RpdGxlTWFyZ2luOiAxMnB4O1xuJG1vYmlsZU1pbmlUb2NPZmZzZXQ6IDIgKiAkbWluaVRvY1ZlcnRpY2FsUGFkZGluZyArICRtaW5pVG9jVGl0bGVIZWlnaHQgKyAkbWluaVRvY1RpdGxlTWFyZ2luO1xuXG4vLyBNb2JpbGVDb250cm9sc1xuJG1vYmlsZUNvbnRyb2xzSGVpZ2h0OiA0NHB4O1xuJG1vYmlsZUNvbnRyb2xzVG9wUGFkZGluZzogNHB4O1xuJG1vYmlsZUNvbnRyb2xzQm90dG9tUGFkZGluZzogMzRweDtcblxuJHNjcmVlbkJyZWFrcG9pbnRzOiAoXG4gICAgJ3hzJzogMzc1cHgsXG4gICAgJ3NtJzogNTc3cHgsXG4gICAgJ21kJzogNzY5cHgsXG4gICAgJ2xnJzogMTA4MXB4LFxuICAgICd4bCc6IDExODVweCxcbik7XG4iLCJAdXNlICdzYXNzOm1hcCc7XG5AdXNlICd2YXJpYWJsZXMnO1xuXG5AbWl4aW4gdGV4dC1zaXplKCRuYW1lKSB7XG4gICAgZm9udC1zaXplOiB2YXIoLS1nLXRleHQtI3skbmFtZX0tZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LSN7JG5hbWV9LWxpbmUtaGVpZ2h0KTtcbn1cblxuQG1peGluIHJlc2V0LWxpc3Qtc3R5bGUoKSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbn1cblxuQG1peGluIGZpeEFuY2hvclBvc2l0aW9uKCRvZmZzZXQ6IDBweCkge1xuICAgIHBhZGRpbmctdG9wOiBjYWxjKHZhcigtLWRjLWhlYWRlci1oZWlnaHQsICN7dmFyaWFibGVzLiRoZWFkZXJIZWlnaHR9KSk7XG4gICAgbWFyZ2luLXRvcDogY2FsYygjeyRvZmZzZXR9IC0gdmFyKC0tZGMtaGVhZGVyLWhlaWdodCwgI3t2YXJpYWJsZXMuJGhlYWRlckhlaWdodH0pKTtcbn1cblxuQG1peGluIHJlc2V0LWxpbmstc3R5bGUoKSB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG5AbWl4aW4gaXNsYW5kcy1mb2N1cygpIHtcbiAgICBvdXRsaW5lOiBub25lO1xuXG4gICAgLnV0aWxpdHlmb2N1cyAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogMnB4IHNvbGlkICNmZmRiNGQ7XG4gICAgfVxufVxuXG5AbWl4aW4gZm9jdXNhYmxlKCRvZmZzZXQ6IDAsICRtb2RlOiAnb3V0bGluZScpIHtcbiAgICBAaWYgJG1vZGUgPT0gJ291dGxpbmUnIHtcbiAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiAycHggc29saWQgdmFyKC0tZy1jb2xvci1saW5lLWZvY3VzKTtcbiAgICAgICAgICAgIG91dGxpbmUtb2Zmc2V0OiAkb2Zmc2V0O1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGlmICRtb2RlID09ICdib3gtc2hhZG93JyB7XG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMnB4IHZhcigtLWctY29sb3ItbGluZS1mb2N1cyk7XG4gICAgICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICB9XG4gICAgICAgICY6Zm9jdXM6bm90KDpmb2N1cy12aXNpYmxlKSB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbGluaygpIHtcbiAgICBjb2xvcjogdmFyKC0tZy1jb2xvci10ZXh0LWxpbmspO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tZy1mb2N1cy1ib3JkZXItcmFkaXVzKTtcblxuICAgIEBpbmNsdWRlIGlzbGFuZHMtZm9jdXMoKTtcblxuICAgIEBpbmNsdWRlIGZvY3VzYWJsZSgwLCAnYm94LXNoYWRvdycpO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1nLWNvbG9yLXRleHQtbGluay1ob3Zlcik7XG4gICAgfVxufVxuXG5AbWl4aW4gaGVhZGluZzEoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTMpO1xuXG4gICAgQG1lZGlhIChtYXgtd2lkdGg6IG1hcC5nZXQodmFyaWFibGVzLiRzY3JlZW5CcmVha3BvaW50cywgJ21kJykgLSAxKSB7XG4gICAgICAgIEBpbmNsdWRlIHRleHQtc2l6ZShkaXNwbGF5LTIpO1xuICAgIH1cbn1cblxuQG1peGluIGhlYWRpbmcyKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoZGlzcGxheS0xKTtcbn1cblxuQG1peGluIGhlYWRpbmczKCkge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG5cbiAgICBAaW5jbHVkZSB0ZXh0LXNpemUoaGVhZGVyLTIpO1xufVxuXG5AbWl4aW4gaGVhZGluZzQoKSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcblxuICAgIEBpbmNsdWRlIHRleHQtc2l6ZShoZWFkZXItMSk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNSgpIHtcbiAgICBmb250LXdlaWdodDogNTAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBoZWFkaW5nNigpIHtcbiAgICBmb250LXdlaWdodDogNDAwO1xuXG4gICAgQGluY2x1ZGUgdGV4dC1zaXplKGJvZHktMyk7XG59XG5cbkBtaXhpbiBjb250cmlidXRvcnMtdGV4dCgpIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG59XG5cbkBtaXhpbiB0ZXh0LWJvZHktMSgpIHtcbiAgICBmb250LXNpemU6IHZhcigtLWctdGV4dC1ib2R5LTEtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tZy10ZXh0LWJvZHktMS1saW5lLWhlaWdodCk7XG4gICAgZm9udC13ZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LWZvbnQtd2VpZ2h0KTtcbn1cblxuQG1peGluIGRlc2t0b3Atb25seSgpIHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSAtIDEpIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBkZXNrdG9wLXRhYmxldC1vbmx5KCkge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpIC0gMSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS10YWJsZXQtb25seSgpIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogbWFwLmdldCh2YXJpYWJsZXMuJHNjcmVlbkJyZWFrcG9pbnRzLCAnbWQnKSkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIG1vYmlsZS1vbmx5KCkge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiBtYXAuZ2V0KHZhcmlhYmxlcy4kc2NyZWVuQnJlYWtwb2ludHMsICdzbScpKSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuXG5AbWl4aW4gZ3Jhdml0eS11aS10ZXh0LXNpemVzKCRkZWx0YSkge1xuICAgIC0tZy10ZXh0LWJvZHktMS1mb250LXNpemU6ICN7MTNweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0xLWxpbmUtaGVpZ2h0OiAjezE4cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMi1mb250LXNpemU6ICN7MTVweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0yLWxpbmUtaGVpZ2h0OiAjezIwcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktMy1mb250LXNpemU6ICN7MTdweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtYm9keS0zLWxpbmUtaGVpZ2h0OiAjezI0cHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWJvZHktc2hvcnQtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNhcHRpb24tMS1mb250LXNpemU6ICN7OXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jYXB0aW9uLTItZm9udC1zaXplOiAjezExcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWhlYWRlci0xLWZvbnQtc2l6ZTogI3syMHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1oZWFkZXItMi1mb250LXNpemU6ICN7MjRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtc3ViaGVhZGVyLTEtZm9udC1zaXplOiAjezEzcHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LXN1YmhlYWRlci0yLWZvbnQtc2l6ZTogI3sxNXB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1zdWJoZWFkZXItMy1mb250LXNpemU6ICN7MTdweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS0xLWZvbnQtc2l6ZTogI3syOHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1kaXNwbGF5LTItZm9udC1zaXplOiAjezMycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWRpc3BsYXktMy1mb250LXNpemU6ICN7NDBweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtZGlzcGxheS00LWZvbnQtc2l6ZTogI3s0OHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLTEtZm9udC1zaXplOiAjezEycHggKyAkZGVsdGF9O1xuICAgIC0tZy10ZXh0LWNvZGUtMi1mb250LXNpemU6ICN7MTRweCArICRkZWx0YX07XG4gICAgLS1nLXRleHQtY29kZS0zLWZvbnQtc2l6ZTogI3sxNnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0xLWZvbnQtc2l6ZTogI3sxMnB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0yLWZvbnQtc2l6ZTogI3sxNHB4ICsgJGRlbHRhfTtcbiAgICAtLWctdGV4dC1jb2RlLWlubGluZS0zLWZvbnQtc2l6ZTogI3sxNnB4ICsgJGRlbHRhfTtcblxuICAgIC0teWZtLWZvbnQtc2l6ZTogdmFyKC0tZy10ZXh0LWJvZHktMi1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtbGluZS1oZWlnaHQ6IHZhcigtLWctdGV4dC1ib2R5LTItbGluZS1oZWlnaHQpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oMjogdmFyKC0tZy10ZXh0LWhlYWRlci0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWgzOiB2YXIoLS1nLXRleHQtaGVhZGVyLTEtZm9udC1zaXplKTtcbiAgICAtLXlmbS1mb250LXNpemUtaDQ6IHZhcigtLWctdGV4dC1zdWJoZWFkZXItMy1mb250LXNpemUpO1xuICAgIC0teWZtLWZvbnQtc2l6ZS1oNTogdmFyKC0tZy10ZXh0LXN1YmhlYWRlci0yLWZvbnQtc2l6ZSk7XG4gICAgLS15Zm0tZm9udC1zaXplLWg2OiB2YXIoLS1nLXRleHQtc3ViaGVhZGVyLTEtZm9udC1zaXplKTtcbn1cbiJdfQ== */", "// Sizes\n$headerHeight: 0px;\n$subHeaderHeight: 40px;\n$subNavigationHeight: 52px;\n$normalOffset: 20px;\n$miniTocOffset: 56px;\n$blockMarginBottomLarge: 20px;\n$blockMarginBottomMedium: 15px;\n$headerMarginTopLarge: 40px;\n$headerMarginTopMedium: 32px;\n$popupPadding: 16px;\n$centerBlockMaxWidth: 736px;\n\n// Navigation\n$toMainMenuVerticalPadding: 4px;\n$toMainMenuHorizontalPadding: 12px;\n$toMainMenuHeight: calc(\n var(--dc-subnavigation-height, $subNavigationHeight) - #{$toMainMenuVerticalPadding} -\n #{$toMainMenuVerticalPadding}\n);\n\n// MiniToc\n$miniTocVerticalPadding: 16px;\n$miniTocTitleHeight: 20px; // line-height body-2\n$miniTocTitleMargin: 12px;\n$mobileMiniTocOffset: 2 * $miniTocVerticalPadding + $miniTocTitleHeight + $miniTocTitleMargin;\n\n// MobileControls\n$mobileControlsHeight: 44px;\n$mobileControlsTopPadding: 4px;\n$mobileControlsBottomPadding: 34px;\n\n$screenBreakpoints: (\n 'xs': 375px,\n 'sm': 577px,\n 'md': 769px,\n 'lg': 1081px,\n 'xl': 1185px,\n);\n", "@use 'sass:map';\n@use 'variables';\n\n@mixin text-size($name) {\n font-size: var(--g-text-#{$name}-font-size);\n line-height: var(--g-text-#{$name}-line-height);\n}\n\n@mixin reset-list-style() {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n@mixin fixAnchorPosition($offset: 0px) {\n padding-top: calc(var(--dc-header-height, #{variables.$headerHeight}));\n margin-top: calc(#{$offset} - var(--dc-header-height, #{variables.$headerHeight}));\n}\n\n@mixin reset-link-style() {\n color: inherit;\n text-decoration: none;\n}\n\n@mixin islands-focus() {\n outline: none;\n\n .utilityfocus &:focus {\n outline: 2px solid #ffdb4d;\n }\n}\n\n@mixin focusable($offset: 0, $mode: 'outline') {\n @if $mode == 'outline' {\n &:focus {\n outline: 2px solid var(--g-color-line-focus);\n outline-offset: $offset;\n }\n &:focus:not(:focus-visible) {\n outline: 0;\n }\n }\n\n @if $mode == 'box-shadow' {\n &:focus {\n box-shadow: 0 0 0 2px var(--g-color-line-focus);\n outline: 0;\n }\n &:focus:not(:focus-visible) {\n box-shadow: none;\n }\n }\n}\n\n@mixin link() {\n color: var(--g-color-text-link);\n text-decoration: none;\n cursor: pointer;\n border-radius: var(--g-focus-border-radius);\n\n @include islands-focus();\n\n @include focusable(0, 'box-shadow');\n\n &:hover,\n &:active {\n color: var(--g-color-text-link-hover);\n }\n}\n\n@mixin heading1() {\n font-weight: 500;\n\n @include text-size(display-3);\n\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n @include text-size(display-2);\n }\n}\n\n@mixin heading2() {\n font-weight: 500;\n\n @include text-size(display-1);\n}\n\n@mixin heading3() {\n font-weight: 500;\n\n @include text-size(header-2);\n}\n\n@mixin heading4() {\n font-weight: 500;\n\n @include text-size(header-1);\n}\n\n@mixin heading5() {\n font-weight: 500;\n\n @include text-size(body-3);\n}\n\n@mixin heading6() {\n font-weight: 400;\n\n @include text-size(body-3);\n}\n\n@mixin contributors-text() {\n font-size: 13px;\n font-weight: 400;\n margin-right: 5px;\n align-self: center;\n}\n\n@mixin text-body-1() {\n font-size: var(--g-text-body-1-font-size);\n line-height: var(--g-text-body-1-line-height);\n font-weight: var(--g-text-body-font-weight);\n}\n\n@mixin desktop-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'md') - 1) {\n display: none;\n }\n}\n\n@mixin desktop-tablet-only() {\n @media (max-width: map.get(variables.$screenBreakpoints, 'sm') - 1) {\n display: none;\n }\n}\n\n@mixin mobile-tablet-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'md')) {\n display: none;\n }\n}\n\n@mixin mobile-only() {\n @media (min-width: map.get(variables.$screenBreakpoints, 'sm')) {\n display: none;\n }\n}\n\n@mixin gravity-ui-text-sizes($delta) {\n --g-text-body-1-font-size: #{13px + $delta};\n --g-text-body-1-line-height: #{18px + $delta};\n --g-text-body-2-font-size: #{15px + $delta};\n --g-text-body-2-line-height: #{20px + $delta};\n --g-text-body-3-font-size: #{17px + $delta};\n --g-text-body-3-line-height: #{24px + $delta};\n --g-text-body-short-font-size: #{13px + $delta};\n --g-text-caption-1-font-size: #{9px + $delta};\n --g-text-caption-2-font-size: #{11px + $delta};\n --g-text-header-1-font-size: #{20px + $delta};\n --g-text-header-2-font-size: #{24px + $delta};\n --g-text-subheader-1-font-size: #{13px + $delta};\n --g-text-subheader-2-font-size: #{15px + $delta};\n --g-text-subheader-3-font-size: #{17px + $delta};\n --g-text-display-1-font-size: #{28px + $delta};\n --g-text-display-2-font-size: #{32px + $delta};\n --g-text-display-3-font-size: #{40px + $delta};\n --g-text-display-4-font-size: #{48px + $delta};\n --g-text-code-1-font-size: #{12px + $delta};\n --g-text-code-2-font-size: #{14px + $delta};\n --g-text-code-3-font-size: #{16px + $delta};\n --g-text-code-inline-1-font-size: #{12px + $delta};\n --g-text-code-inline-2-font-size: #{14px + $delta};\n --g-text-code-inline-3-font-size: #{16px + $delta};\n\n --yfm-font-size: var(--g-text-body-2-font-size);\n --yfm-font-line-height: var(--g-text-body-2-line-height);\n --yfm-font-size-h2: var(--g-text-header-2-font-size);\n --yfm-font-size-h3: var(--g-text-header-1-font-size);\n --yfm-font-size-h4: var(--g-text-subheader-3-font-size);\n --yfm-font-size-h5: var(--g-text-subheader-2-font-size);\n --yfm-font-size-h6: var(--g-text-subheader-1-font-size);\n}\n"],
|
|
5
|
+
"mappings": ";AAoBQ,CAAA;AACI,WAAA;AACA,eAAA;AACA,kBAAA;AACA,SAAA;ACnBZ;ADuBI,CAAA;AACI,WAAA;AACA,mBAAA;AACA,eAAA;AACA,kBAAA;AACA,OAAA;AAEA,SAAA;AACA,WAAA;AAEA,UAAA,IAAA,MAAA,IAAA;AACA,iBAAA;ACvBR;ADyBQ,CAAA;AACI,WAAA;AACA,eAAA;ACvBZ;AD2BI,CAAA;AACI,QAAA;AAEA,WAAA,KAAA,KAAA,KAAA;AACA,SAAA;AC1BR;ADjBI,OAAA,YAAA,WAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AACA,YAAA;ACkBV;AACF;AD0BI,CAAA;AACI,WAAA;AACA,SAAA;AACA,QAAA;ACxBR;AD7BI,OAAA,YAAA,WAAA;AACI,GAAA;AAEI,WAAA;AACA,UAAA;AACA,YAAA;AC8BV;AACF;ADwBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;AACA,kBAAA;ACtBR;ADyBI,CAAA;AACI,aAAA,IAAA;AACA,eAAA,IAAA;ACvBR;AD0BI,CAAA;AACI,WAAA;AACA,kBAAA;AACA,WAAA,IAAA;ACxBR;AD2BI,CAAA;AACI,iBAAA;AACA,eAAA;ACzBR;AD4BI,CALA,oBAKA;AACI,iBAAA;AC1BR;AD6BI,CAAA;AACI,eAAA;AACA,WAAA;AACA,mBAAA;AC3BR;AD8BI,CAAA;AACI,eAAA;AC5BR;AD+BI,CAAA;AACI,WAAA,IAAA;AC7BR;ADiCQ,CAAA;AGzGJ,aAAA,IAAA;AACA,eAAA,IAAA;AH0GQ,eAAA;AC9BZ;ADkCI,CAAA;AACI,WAAA;AACA,OAAA;AChCR;ADkCQ,CAAA;AACI,aAAA;AACA,mBAAA;AChCZ;ADqCI,CAAA;AACI,WAAA;AACA,cAAA;AACA,mBAAA;ACnCR;ADuCQ,CAAA,oBAAA;AAAA,CAAA,oBAAA;AAEI,WAAA;AACA,eAAA;AAEA,aAAA;AACA,eAAA;AACA,eAAA;ACvCZ;AD0CQ,CAAA;AACI,gBAAA;ACxCZ;AD0CY,CAHJ,8BAGI;AACI,gBAAA;ACxChB;AD4CQ,CAAA;AACI,gBAAA;AC1CZ;AD4CY,CAHJ,iCAGI;AACI,gBAAA;AC1ChB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -10,6 +10,11 @@ export interface FeedbackProps {
|
|
|
10
10
|
isDisliked?: boolean;
|
|
11
11
|
onSendFeedback: (data: FeedbackSendData) => void;
|
|
12
12
|
view?: FeedbackView;
|
|
13
|
+
/**
|
|
14
|
+
* Opt in to the rating-free "leave a comment" entry point.
|
|
15
|
+
* When omitted, falls back to the `feedback-comment` interface flag.
|
|
16
|
+
*/
|
|
17
|
+
showComment?: boolean;
|
|
13
18
|
}
|
|
14
19
|
declare const Feedback: React.FC<FeedbackProps>;
|
|
15
20
|
export default Feedback;
|
|
@@ -16,13 +16,15 @@ var __spreadValues = (a, b2) => {
|
|
|
16
16
|
};
|
|
17
17
|
|
|
18
18
|
// src/components/Feedback/Feedback.tsx
|
|
19
|
-
import React, { useCallback, useEffect, useRef, useState } from "react";
|
|
19
|
+
import React, { useCallback, useContext, useEffect, useRef, useState } from "react";
|
|
20
20
|
import block from "bem-cn-lite";
|
|
21
|
+
import { InterfaceContext } from "../../contexts/InterfaceContext";
|
|
21
22
|
import { useInterface, usePopupState, useTranslation } from "../../hooks";
|
|
22
23
|
import { FeedbackType } from "../../models";
|
|
23
24
|
import { CommonAnalyticsEvent, useAnalytics } from "../../shared/libs/analytics";
|
|
24
25
|
import DislikeControl from "./controls/DislikeControl";
|
|
25
|
-
import
|
|
26
|
+
import FeedbackControl from "./controls/FeedbackControl";
|
|
27
|
+
import FeedbackFormPopup from "./controls/FeedbackFormPopup";
|
|
26
28
|
import LikeControl from "./controls/LikeControl";
|
|
27
29
|
import SuccessPopup from "./controls/SuccessPopup";
|
|
28
30
|
import "./Feedback.css";
|
|
@@ -54,23 +56,35 @@ var Feedback = (props) => {
|
|
|
54
56
|
isLiked = false,
|
|
55
57
|
isDisliked = false,
|
|
56
58
|
onSendFeedback,
|
|
57
|
-
view = "regular" /* Regular
|
|
59
|
+
view = "regular" /* Regular */,
|
|
60
|
+
showComment
|
|
58
61
|
} = props;
|
|
59
62
|
const analytics = useAnalytics();
|
|
60
63
|
const likeControlRef = useRef(null);
|
|
61
64
|
const dislikeControlRef = useRef(null);
|
|
65
|
+
const feedbackControlRef = useRef(null);
|
|
62
66
|
const [innerState, setInnerState] = useState(getInnerState(isLiked, isDisliked));
|
|
63
67
|
useEffect(() => {
|
|
64
68
|
setInnerState(getInnerState(isLiked, isDisliked));
|
|
65
69
|
}, [isLiked, isDisliked, setInnerState]);
|
|
66
70
|
const likeSuccessPopup = usePopupState({ autoclose: 3e3 });
|
|
67
71
|
const dislikeSuccessPopup = usePopupState({ autoclose: 3e3 });
|
|
72
|
+
const commentSuccessPopup = usePopupState({ autoclose: 3e3 });
|
|
68
73
|
const dislikeVariantsPopup = usePopupState();
|
|
74
|
+
const commentFormPopup = usePopupState();
|
|
69
75
|
const hideFeedbackPopups = useCallback(() => {
|
|
70
76
|
likeSuccessPopup.close();
|
|
71
77
|
dislikeSuccessPopup.close();
|
|
78
|
+
commentSuccessPopup.close();
|
|
72
79
|
dislikeVariantsPopup.close();
|
|
73
|
-
|
|
80
|
+
commentFormPopup.close();
|
|
81
|
+
}, [
|
|
82
|
+
likeSuccessPopup,
|
|
83
|
+
dislikeSuccessPopup,
|
|
84
|
+
commentSuccessPopup,
|
|
85
|
+
dislikeVariantsPopup,
|
|
86
|
+
commentFormPopup
|
|
87
|
+
]);
|
|
74
88
|
const onChangeLike = useCallback(() => {
|
|
75
89
|
const event = view === "regular" /* Regular */ ? CommonAnalyticsEvent.DOCS_ASIDE_LIKE_CLICK : CommonAnalyticsEvent.DOCS_FOOTER_LIKE_CLICK;
|
|
76
90
|
analytics.track(event);
|
|
@@ -104,8 +118,24 @@ var Feedback = (props) => {
|
|
|
104
118
|
},
|
|
105
119
|
[onSendFeedback, setInnerState, dislikeSuccessPopup, hideFeedbackPopups]
|
|
106
120
|
);
|
|
121
|
+
const onClickFeedback = useCallback(() => {
|
|
122
|
+
const event = view === "regular" /* Regular */ ? CommonAnalyticsEvent.DOCS_ASIDE_FEEDBACK_CLICK : CommonAnalyticsEvent.DOCS_FOOTER_FEEDBACK_CLICK;
|
|
123
|
+
analytics.track(event);
|
|
124
|
+
hideFeedbackPopups();
|
|
125
|
+
commentFormPopup.open();
|
|
126
|
+
}, [view, analytics, hideFeedbackPopups, commentFormPopup]);
|
|
127
|
+
const onSendComment = useCallback(
|
|
128
|
+
(data) => {
|
|
129
|
+
hideFeedbackPopups();
|
|
130
|
+
commentSuccessPopup.open();
|
|
131
|
+
onSendFeedback({ type: FeedbackType.comment, comment: data.comment });
|
|
132
|
+
},
|
|
133
|
+
[onSendFeedback, commentSuccessPopup, hideFeedbackPopups]
|
|
134
|
+
);
|
|
107
135
|
const isDislikePopupVisible = dislikeSuccessPopup.visible || dislikeVariantsPopup.visible;
|
|
108
136
|
const isFeedbackHidden = useInterface("feedback");
|
|
137
|
+
const { interface: viewerInterface } = useContext(InterfaceContext);
|
|
138
|
+
const isCommentEnabled = showComment != null ? showComment : (viewerInterface == null ? void 0 : viewerInterface["feedback-comment"]) === true;
|
|
109
139
|
if (isFeedbackHidden) {
|
|
110
140
|
return null;
|
|
111
141
|
}
|
|
@@ -127,7 +157,21 @@ var Feedback = (props) => {
|
|
|
127
157
|
isDisliked: innerState === FeedbackType.dislike,
|
|
128
158
|
isPopupVisible: isDislikePopupVisible
|
|
129
159
|
}
|
|
130
|
-
)
|
|
160
|
+
), isCommentEnabled && (view === "wide" /* Wide */ ? /* @__PURE__ */ React.createElement("div", { className: b("comment-row") }, /* @__PURE__ */ React.createElement(
|
|
161
|
+
FeedbackControl,
|
|
162
|
+
{
|
|
163
|
+
ref: feedbackControlRef,
|
|
164
|
+
view,
|
|
165
|
+
onClick: onClickFeedback
|
|
166
|
+
}
|
|
167
|
+
)) : /* @__PURE__ */ React.createElement(
|
|
168
|
+
FeedbackControl,
|
|
169
|
+
{
|
|
170
|
+
ref: feedbackControlRef,
|
|
171
|
+
view,
|
|
172
|
+
onClick: onClickFeedback
|
|
173
|
+
}
|
|
174
|
+
))), likeControlRef.current && /* @__PURE__ */ React.createElement(
|
|
131
175
|
SuccessPopup,
|
|
132
176
|
{
|
|
133
177
|
visible: likeSuccessPopup.visible,
|
|
@@ -144,14 +188,35 @@ var Feedback = (props) => {
|
|
|
144
188
|
onOutsideClick: hideFeedbackPopups
|
|
145
189
|
}
|
|
146
190
|
), dislikeControlRef.current && /* @__PURE__ */ React.createElement(
|
|
147
|
-
|
|
191
|
+
FeedbackFormPopup,
|
|
148
192
|
{
|
|
149
193
|
visible: dislikeVariantsPopup.visible,
|
|
150
194
|
anchor: dislikeControlRef,
|
|
151
195
|
view,
|
|
196
|
+
titleKey: "dislike-variants-title",
|
|
197
|
+
showVariants: true,
|
|
152
198
|
onSubmit: onSendDislikeInformation,
|
|
153
199
|
onOutsideClick: hideFeedbackPopups
|
|
154
200
|
}
|
|
201
|
+
), isCommentEnabled && feedbackControlRef.current && /* @__PURE__ */ React.createElement(
|
|
202
|
+
SuccessPopup,
|
|
203
|
+
{
|
|
204
|
+
visible: commentSuccessPopup.visible,
|
|
205
|
+
anchor: feedbackControlRef,
|
|
206
|
+
view,
|
|
207
|
+
onOutsideClick: hideFeedbackPopups
|
|
208
|
+
}
|
|
209
|
+
), isCommentEnabled && feedbackControlRef.current && /* @__PURE__ */ React.createElement(
|
|
210
|
+
FeedbackFormPopup,
|
|
211
|
+
{
|
|
212
|
+
visible: commentFormPopup.visible,
|
|
213
|
+
anchor: feedbackControlRef,
|
|
214
|
+
view,
|
|
215
|
+
titleKey: "comment-form-title",
|
|
216
|
+
placeholderKey: "comment-form-placeholder",
|
|
217
|
+
onSubmit: onSendComment,
|
|
218
|
+
onOutsideClick: hideFeedbackPopups
|
|
219
|
+
}
|
|
155
220
|
));
|
|
156
221
|
};
|
|
157
222
|
var Feedback_default = Feedback;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/Feedback/Feedback.tsx"],
|
|
4
|
-
"sourcesContent": ["import type {PropsWithChildren} from 'react';\nimport type {FeedbackSendData} from '../../models';\nimport type {FormData} from './controls/
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAIA,OAAO,SAAQ,aAAa,WAAW,QAAQ,gBAAe;
|
|
4
|
+
"sourcesContent": ["import type {PropsWithChildren} from 'react';\nimport type {FeedbackSendData} from '../../models';\nimport type {FormData} from './controls/FeedbackFormPopup';\n\nimport React, {useCallback, useContext, useEffect, useRef, useState} from 'react';\nimport block from 'bem-cn-lite';\n\nimport {InterfaceContext} from '../../contexts/InterfaceContext';\nimport {useInterface, usePopupState, useTranslation} from '../../hooks';\nimport {FeedbackType} from '../../models';\nimport {CommonAnalyticsEvent, useAnalytics} from '../../shared/libs/analytics';\n\nimport DislikeControl from './controls/DislikeControl';\nimport FeedbackControl from './controls/FeedbackControl';\nimport FeedbackFormPopup from './controls/FeedbackFormPopup';\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 * Opt in to the rating-free \"leave a comment\" entry point.\n * When omitted, falls back to the `feedback-comment` interface flag.\n */\n showComment?: boolean;\n}\n\nconst getInnerState = (isLiked: boolean, isDisliked: boolean) => {\n switch (true) {\n case Boolean(isDisliked):\n return FeedbackType.dislike;\n case Boolean(isLiked):\n return FeedbackType.like;\n default:\n return FeedbackType.indeterminate;\n }\n};\n\nconst ControlsLayout: React.FC<PropsWithChildren<{view: FeedbackView}>> = ({view, children}) => {\n const {t} = useTranslation('feedback');\n\n if (view === FeedbackView.Regular) {\n return <React.Fragment>{children}</React.Fragment>;\n }\n\n return (\n <div className={b('container', {view})}>\n <div className={b('container-col', {view})}>\n <h3 className={b('title', {view})}>{t('main-question')}</h3>\n <div className={b('controls', {view})}>{children}</div>\n </div>\n </div>\n );\n};\n\nconst Feedback: React.FC<FeedbackProps> = (props) => {\n const {\n isLiked = false,\n isDisliked = false,\n onSendFeedback,\n view = FeedbackView.Regular,\n showComment,\n } = props;\n const analytics = useAnalytics();\n const likeControlRef = useRef<HTMLButtonElement | null>(null);\n const dislikeControlRef = useRef<HTMLButtonElement | null>(null);\n const feedbackControlRef = 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 commentSuccessPopup = usePopupState({autoclose: 3000});\n const dislikeVariantsPopup = usePopupState();\n const commentFormPopup = usePopupState();\n\n const hideFeedbackPopups = useCallback(() => {\n likeSuccessPopup.close();\n dislikeSuccessPopup.close();\n commentSuccessPopup.close();\n dislikeVariantsPopup.close();\n commentFormPopup.close();\n }, [\n likeSuccessPopup,\n dislikeSuccessPopup,\n commentSuccessPopup,\n dislikeVariantsPopup,\n commentFormPopup,\n ]);\n\n const onChangeLike = useCallback(() => {\n const event =\n view === FeedbackView.Regular\n ? CommonAnalyticsEvent.DOCS_ASIDE_LIKE_CLICK\n : CommonAnalyticsEvent.DOCS_FOOTER_LIKE_CLICK;\n analytics.track(event);\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 }, [view, analytics, hideFeedbackPopups, innerState, onSendFeedback, likeSuccessPopup]);\n\n const onChangeDislike = useCallback(() => {\n const event =\n view === FeedbackView.Regular\n ? CommonAnalyticsEvent.DOCS_ASIDE_DISLIKE_CLICK\n : CommonAnalyticsEvent.DOCS_FOOTER_DISLIKE_CLICK;\n analytics.track(event);\n hideFeedbackPopups();\n\n if (innerState === FeedbackType.dislike) {\n setInnerState(FeedbackType.indeterminate);\n onSendFeedback({type: FeedbackType.indeterminate});\n } else {\n dislikeVariantsPopup.open();\n }\n }, [view, analytics, hideFeedbackPopups, innerState, onSendFeedback, dislikeVariantsPopup]);\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 onClickFeedback = useCallback(() => {\n const event =\n view === FeedbackView.Regular\n ? CommonAnalyticsEvent.DOCS_ASIDE_FEEDBACK_CLICK\n : CommonAnalyticsEvent.DOCS_FOOTER_FEEDBACK_CLICK;\n analytics.track(event);\n hideFeedbackPopups();\n commentFormPopup.open();\n }, [view, analytics, hideFeedbackPopups, commentFormPopup]);\n\n const onSendComment = useCallback(\n (data: FormData) => {\n hideFeedbackPopups();\n commentSuccessPopup.open();\n onSendFeedback({type: FeedbackType.comment, comment: data.comment});\n },\n [onSendFeedback, commentSuccessPopup, hideFeedbackPopups],\n );\n\n const isDislikePopupVisible = dislikeSuccessPopup.visible || dislikeVariantsPopup.visible;\n const isFeedbackHidden = useInterface('feedback');\n const {interface: viewerInterface} = useContext(InterfaceContext);\n const isCommentEnabled = showComment ?? viewerInterface?.['feedback-comment'] === true;\n\n if (isFeedbackHidden) {\n return null;\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 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 {isCommentEnabled &&\n (view === FeedbackView.Wide ? (\n <div className={b('comment-row')}>\n <FeedbackControl\n ref={feedbackControlRef}\n view={view}\n onClick={onClickFeedback}\n />\n </div>\n ) : (\n <FeedbackControl\n ref={feedbackControlRef}\n view={view}\n onClick={onClickFeedback}\n />\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 <FeedbackFormPopup\n visible={dislikeVariantsPopup.visible}\n anchor={dislikeControlRef}\n view={view}\n titleKey=\"dislike-variants-title\"\n showVariants\n onSubmit={onSendDislikeInformation}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n {isCommentEnabled && feedbackControlRef.current && (\n <SuccessPopup\n visible={commentSuccessPopup.visible}\n anchor={feedbackControlRef}\n view={view}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n {isCommentEnabled && feedbackControlRef.current && (\n <FeedbackFormPopup\n visible={commentFormPopup.visible}\n anchor={feedbackControlRef}\n view={view}\n titleKey=\"comment-form-title\"\n placeholderKey=\"comment-form-placeholder\"\n onSubmit={onSendComment}\n onOutsideClick={hideFeedbackPopups}\n />\n )}\n </React.Fragment>\n );\n};\n\nexport default Feedback;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["FeedbackView"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FeedbackView } from '../Feedback';
|
|
3
|
+
type FeedbackControlProps = {
|
|
4
|
+
view: FeedbackView | undefined;
|
|
5
|
+
onClick: () => void;
|
|
6
|
+
};
|
|
7
|
+
declare const FeedbackControl: React.MemoExoticComponent<React.ForwardRefExoticComponent<FeedbackControlProps & React.RefAttributes<HTMLButtonElement>>>;
|
|
8
|
+
export default FeedbackControl;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
// src/components/Feedback/controls/FeedbackControl.tsx
|
|
2
|
+
import React, { forwardRef, memo, useContext } from "react";
|
|
3
|
+
import { Comment } from "@gravity-ui/icons";
|
|
4
|
+
import { Button } from "@gravity-ui/uikit";
|
|
5
|
+
import block from "bem-cn-lite";
|
|
6
|
+
import { useTranslation } from "../../../hooks";
|
|
7
|
+
import { Control } from "../../Control";
|
|
8
|
+
import { ControlsLayoutContext } from "../../Controls/ControlsLayout";
|
|
9
|
+
import { FeedbackView } from "../Feedback";
|
|
10
|
+
var b = block("dc-feedback");
|
|
11
|
+
var FeedbackControl = memo(
|
|
12
|
+
forwardRef(({ view, onClick }, ref) => {
|
|
13
|
+
const { t } = useTranslation("feedback");
|
|
14
|
+
const { isVerticalView, popupPosition, controlClassName } = useContext(ControlsLayoutContext);
|
|
15
|
+
if (view === FeedbackView.Wide) {
|
|
16
|
+
return /* @__PURE__ */ React.createElement(
|
|
17
|
+
Button,
|
|
18
|
+
{
|
|
19
|
+
view: "flat",
|
|
20
|
+
ref,
|
|
21
|
+
onClick,
|
|
22
|
+
className: b("comment-action", { view })
|
|
23
|
+
},
|
|
24
|
+
/* @__PURE__ */ React.createElement(Button.Icon, null, /* @__PURE__ */ React.createElement(Comment, { width: 20, height: 20 })),
|
|
25
|
+
t("comment-text")
|
|
26
|
+
);
|
|
27
|
+
}
|
|
28
|
+
return /* @__PURE__ */ React.createElement(
|
|
29
|
+
Control,
|
|
30
|
+
{
|
|
31
|
+
onClick,
|
|
32
|
+
className: b("control", { view }, controlClassName),
|
|
33
|
+
isVerticalView,
|
|
34
|
+
tooltipText: t("comment-text"),
|
|
35
|
+
ref,
|
|
36
|
+
icon: Comment,
|
|
37
|
+
popupPosition
|
|
38
|
+
}
|
|
39
|
+
);
|
|
40
|
+
})
|
|
41
|
+
);
|
|
42
|
+
FeedbackControl.displayName = "FeedbackControl";
|
|
43
|
+
var FeedbackControl_default = FeedbackControl;
|
|
44
|
+
export {
|
|
45
|
+
FeedbackControl_default as default
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=FeedbackControl.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/components/Feedback/controls/FeedbackControl.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, {forwardRef, memo, useContext} from 'react';\nimport {Comment} 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 FeedbackControlProps = {\n view: FeedbackView | undefined;\n onClick: () => void;\n};\n\nconst b = block('dc-feedback');\n\nconst FeedbackControl = memo(\n forwardRef<HTMLButtonElement, FeedbackControlProps>(({view, onClick}, ref) => {\n const {t} = useTranslation('feedback');\n const {isVerticalView, popupPosition, controlClassName} = useContext(ControlsLayoutContext);\n\n if (view === FeedbackView.Wide) {\n return (\n <Button\n view=\"flat\"\n ref={ref}\n onClick={onClick}\n className={b('comment-action', {view})}\n >\n <Button.Icon>\n <Comment width={20} height={20} />\n </Button.Icon>\n {t('comment-text')}\n </Button>\n );\n }\n\n return (\n <Control\n onClick={onClick}\n className={b('control', {view}, controlClassName)}\n isVerticalView={isVerticalView}\n tooltipText={t('comment-text')}\n ref={ref}\n icon={Comment}\n popupPosition={popupPosition}\n />\n );\n }),\n);\n\nFeedbackControl.displayName = 'FeedbackControl';\n\nexport default FeedbackControl;\n"],
|
|
5
|
+
"mappings": ";AAAA,OAAO,SAAQ,YAAY,MAAM,kBAAiB;AAClD,SAAQ,eAAc;AACtB,SAAQ,cAAa;AACrB,OAAO,WAAW;AAElB,SAAQ,sBAAqB;AAC7B,SAAQ,eAAc;AACtB,SAAQ,6BAA4B;AACpC,SAAQ,oBAAmB;AAO3B,IAAM,IAAI,MAAM,aAAa;AAE7B,IAAM,kBAAkB;AAAA,EACpB,WAAoD,CAAC,EAAC,MAAM,QAAO,GAAG,QAAQ;AAC1E,UAAM,EAAC,EAAC,IAAI,eAAe,UAAU;AACrC,UAAM,EAAC,gBAAgB,eAAe,iBAAgB,IAAI,WAAW,qBAAqB;AAE1F,QAAI,SAAS,aAAa,MAAM;AAC5B,aACI;AAAA,QAAC;AAAA;AAAA,UACG,MAAK;AAAA,UACL;AAAA,UACA;AAAA,UACA,WAAW,EAAE,kBAAkB,EAAC,KAAI,CAAC;AAAA;AAAA,QAErC,oCAAC,OAAO,MAAP,MACG,oCAAC,WAAQ,OAAO,IAAI,QAAQ,IAAI,CACpC;AAAA,QACC,EAAE,cAAc;AAAA,MACrB;AAAA,IAER;AAEA,WACI;AAAA,MAAC;AAAA;AAAA,QACG;AAAA,QACA,WAAW,EAAE,WAAW,EAAC,KAAI,GAAG,gBAAgB;AAAA,QAChD;AAAA,QACA,aAAa,EAAE,cAAc;AAAA,QAC7B;AAAA,QACA,MAAM;AAAA,QACN;AAAA;AAAA,IACJ;AAAA,EAER,CAAC;AACL;AAEA,gBAAgB,cAAc;AAE9B,IAAO,0BAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/build/esm/components/Feedback/controls/{DislikeVariantsPopup.d.ts → FeedbackFormPopup.d.ts}
RENAMED
|
@@ -8,12 +8,15 @@ export type FormData = {
|
|
|
8
8
|
comment: string;
|
|
9
9
|
answers: string[];
|
|
10
10
|
};
|
|
11
|
-
type
|
|
11
|
+
type FeedbackFormPopupProps = {
|
|
12
12
|
view: FeedbackView;
|
|
13
13
|
visible: boolean;
|
|
14
14
|
anchor: RefObject<HTMLButtonElement>;
|
|
15
|
+
titleKey: string;
|
|
16
|
+
placeholderKey?: string;
|
|
17
|
+
showVariants?: boolean;
|
|
15
18
|
onOutsideClick: () => void;
|
|
16
19
|
onSubmit: (data: FormData) => void;
|
|
17
20
|
};
|
|
18
|
-
declare const
|
|
19
|
-
export default
|
|
21
|
+
declare const FeedbackFormPopup: React.FC<FeedbackFormPopupProps>;
|
|
22
|
+
export default FeedbackFormPopup;
|
package/build/esm/components/Feedback/controls/{DislikeVariantsPopup.js → FeedbackFormPopup.js}
RENAMED
|
@@ -18,7 +18,7 @@ var __spreadValues = (a, b2) => {
|
|
|
18
18
|
};
|
|
19
19
|
var __spreadProps = (a, b2) => __defProps(a, __getOwnPropDescs(b2));
|
|
20
20
|
|
|
21
|
-
// src/components/Feedback/controls/
|
|
21
|
+
// src/components/Feedback/controls/FeedbackFormPopup.tsx
|
|
22
22
|
import React, {
|
|
23
23
|
forwardRef,
|
|
24
24
|
memo,
|
|
@@ -36,7 +36,7 @@ import { getPopupPosition } from "../../../utils";
|
|
|
36
36
|
import { ControlsLayoutContext } from "../../Controls/ControlsLayout";
|
|
37
37
|
import { FeedbackView } from "../Feedback";
|
|
38
38
|
var b = block("dc-feedback");
|
|
39
|
-
var
|
|
39
|
+
var FeedbackVariantsList = memo(
|
|
40
40
|
forwardRef((_props, ref) => {
|
|
41
41
|
const { t, i18n } = useTranslation("feedback-variants");
|
|
42
42
|
const variants = i18n.getResourceBundle(i18n.language, "feedback-variants");
|
|
@@ -70,9 +70,9 @@ var DislikeVariantsList = memo(
|
|
|
70
70
|
)));
|
|
71
71
|
})
|
|
72
72
|
);
|
|
73
|
-
|
|
74
|
-
var
|
|
75
|
-
forwardRef((
|
|
73
|
+
FeedbackVariantsList.displayName = "FeedbackVariantsList";
|
|
74
|
+
var FeedbackCommentInput = memo(
|
|
75
|
+
forwardRef(({ placeholderKey }, ref) => {
|
|
76
76
|
const { t } = useTranslation("feedback");
|
|
77
77
|
const [feedbackComment, setFeedbackComment] = useState("");
|
|
78
78
|
const onChange = useCallback((event) => {
|
|
@@ -93,7 +93,7 @@ var DislikeVariantsInput = memo(
|
|
|
93
93
|
{
|
|
94
94
|
size: "m",
|
|
95
95
|
rows: 6,
|
|
96
|
-
placeholder: t(
|
|
96
|
+
placeholder: t(placeholderKey),
|
|
97
97
|
hasClear: true,
|
|
98
98
|
value: feedbackComment,
|
|
99
99
|
onChange
|
|
@@ -101,9 +101,18 @@ var DislikeVariantsInput = memo(
|
|
|
101
101
|
));
|
|
102
102
|
})
|
|
103
103
|
);
|
|
104
|
-
|
|
105
|
-
var
|
|
106
|
-
({
|
|
104
|
+
FeedbackCommentInput.displayName = "FeedbackCommentInput";
|
|
105
|
+
var FeedbackFormPopup = memo(
|
|
106
|
+
({
|
|
107
|
+
anchor,
|
|
108
|
+
visible,
|
|
109
|
+
view,
|
|
110
|
+
titleKey,
|
|
111
|
+
placeholderKey = "comment-placeholder",
|
|
112
|
+
showVariants = false,
|
|
113
|
+
onOutsideClick,
|
|
114
|
+
onSubmit
|
|
115
|
+
}) => {
|
|
107
116
|
const { t } = useTranslation("feedback");
|
|
108
117
|
const { isVerticalView } = useContext(ControlsLayoutContext);
|
|
109
118
|
const direction = useDirection();
|
|
@@ -138,14 +147,14 @@ var DislikeVariantsPopup = memo(
|
|
|
138
147
|
placement: position,
|
|
139
148
|
offset: { mainAxis: 1, crossAxis: 0 }
|
|
140
149
|
},
|
|
141
|
-
/* @__PURE__ */ React.createElement("h3", { className: b("popup-title") }, t(
|
|
142
|
-
/* @__PURE__ */ React.createElement("form", { onSubmit: onFormSubmit }, /* @__PURE__ */ React.createElement(
|
|
150
|
+
/* @__PURE__ */ React.createElement("h3", { className: b("popup-title") }, t(titleKey)),
|
|
151
|
+
/* @__PURE__ */ React.createElement("form", { onSubmit: onFormSubmit }, showVariants && /* @__PURE__ */ React.createElement(FeedbackVariantsList, { ref: feedbackCheckboxes }), /* @__PURE__ */ React.createElement(FeedbackCommentInput, { ref: feedbackComment, placeholderKey }), /* @__PURE__ */ React.createElement("div", { className: b("variants-actions") }, /* @__PURE__ */ React.createElement(Button, { view: "action", className: b("variants-action"), type: "submit" }, t("send-action-text"))))
|
|
143
152
|
);
|
|
144
153
|
}
|
|
145
154
|
);
|
|
146
|
-
|
|
147
|
-
var
|
|
155
|
+
FeedbackFormPopup.displayName = "FeedbackFormPopup";
|
|
156
|
+
var FeedbackFormPopup_default = FeedbackFormPopup;
|
|
148
157
|
export {
|
|
149
|
-
|
|
158
|
+
FeedbackFormPopup_default as default
|
|
150
159
|
};
|
|
151
|
-
//# sourceMappingURL=
|
|
160
|
+
//# sourceMappingURL=FeedbackFormPopup.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/components/Feedback/controls/FeedbackFormPopup.tsx"],
|
|
4
|
+
"sourcesContent": ["import type {RefObject, SyntheticEvent} from 'react';\n\nimport React, {\n forwardRef,\n memo,\n useCallback,\n useContext,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport {Button, Checkbox, Popup, TextArea, useDirection} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\n\nimport {PopperPosition, useTranslation} from '../../../hooks';\nimport {getPopupPosition} from '../../../utils';\nimport {ControlsLayoutContext} from '../../Controls/ControlsLayout';\nimport {FeedbackView} from '../Feedback';\n\nexport interface FeedbackCheckboxes {\n [key: string]: boolean;\n}\n\nconst b = block('dc-feedback');\n\nconst FeedbackVariantsList = memo(\n forwardRef<FormPart<string[]>>((_props, ref) => {\n const {t, i18n} = useTranslation('feedback-variants');\n const variants = i18n.getResourceBundle(i18n.language, 'feedback-variants');\n const [checked, setChecked] = useState({} as FeedbackCheckboxes);\n\n useImperativeHandle(ref, () => {\n return {\n data() {\n return Object.keys(checked)\n .filter((key) => Boolean(checked[key]))\n .map((key) => variants[key]);\n },\n\n clean() {\n setChecked({});\n },\n };\n });\n\n if (!Object.keys(variants).length) {\n return null;\n }\n\n return (\n <div className={b('variants')}>\n {Object.keys(variants).map((variant) => (\n <Checkbox\n key={variant}\n className={b('variant')}\n checked={checked[variant]}\n // uikit Checkbox onUpdate reports only the value, not the variant key\n onUpdate={(state) => {\n setChecked({\n ...checked,\n [variant]: state,\n });\n }}\n content={t(variant)}\n />\n ))}\n </div>\n );\n }),\n);\n\nFeedbackVariantsList.displayName = 'FeedbackVariantsList';\n\nconst FeedbackCommentInput = memo(\n forwardRef<FormPart<string>, {placeholderKey: string}>(({placeholderKey}, ref) => {\n const {t} = useTranslation('feedback');\n const [feedbackComment, setFeedbackComment] = useState('');\n const onChange = useCallback((event: SyntheticEvent) => {\n setFeedbackComment((event.target as HTMLTextAreaElement).value);\n }, []);\n\n useImperativeHandle(ref, () => {\n return {\n data() {\n return feedbackComment;\n },\n\n clean() {\n setFeedbackComment('');\n },\n };\n });\n\n return (\n <div className={b('textarea')}>\n <TextArea\n size=\"m\"\n rows={6}\n placeholder={t(placeholderKey)}\n hasClear\n value={feedbackComment}\n onChange={onChange}\n />\n </div>\n );\n }),\n);\n\nFeedbackCommentInput.displayName = 'FeedbackCommentInput';\n\ntype FormPart<T> = {\n data(): T;\n clean(): void;\n};\n\nexport type FormData = {\n comment: string;\n answers: string[];\n};\n\ntype FeedbackFormPopupProps = {\n view: FeedbackView;\n visible: boolean;\n anchor: RefObject<HTMLButtonElement>;\n titleKey: string;\n placeholderKey?: string;\n showVariants?: boolean;\n onOutsideClick: () => void;\n onSubmit: (data: FormData) => void;\n};\n\nconst FeedbackFormPopup: React.FC<FeedbackFormPopupProps> = memo(\n ({\n anchor,\n visible,\n view,\n titleKey,\n placeholderKey = 'comment-placeholder',\n showVariants = false,\n onOutsideClick,\n onSubmit,\n }) => {\n const {t} = useTranslation('feedback');\n const {isVerticalView} = useContext(ControlsLayoutContext);\n const direction = useDirection();\n\n const position = useMemo(() => {\n if (!view || view === FeedbackView.Regular) {\n return getPopupPosition(isVerticalView, direction);\n }\n\n return PopperPosition.RIGHT;\n }, [isVerticalView, view, direction]);\n\n const feedbackComment = useRef<FormPart<string> | null>(null);\n const feedbackCheckboxes = useRef<FormPart<string[]> | null>(null);\n\n const onFormSubmit = useCallback(\n (event: SyntheticEvent) => {\n event.preventDefault();\n\n onSubmit({\n comment: feedbackComment.current?.data() || '',\n answers: feedbackCheckboxes.current?.data() || [],\n });\n\n feedbackComment.current?.clean();\n feedbackCheckboxes.current?.clean();\n },\n [onSubmit],\n );\n\n return (\n <Popup\n anchorElement={anchor.current}\n open={visible}\n onOutsideClick={onOutsideClick}\n className={b('variants-popup', {view})}\n placement={position}\n offset={{mainAxis: 1, crossAxis: 0}}\n >\n <h3 className={b('popup-title')}>{t(titleKey)}</h3>\n <form onSubmit={onFormSubmit}>\n {showVariants && <FeedbackVariantsList ref={feedbackCheckboxes} />}\n <FeedbackCommentInput ref={feedbackComment} placeholderKey={placeholderKey} />\n <div className={b('variants-actions')}>\n <Button view=\"action\" className={b('variants-action')} type={'submit'}>\n {t('send-action-text')}\n </Button>\n </div>\n </form>\n </Popup>\n );\n },\n);\n\nFeedbackFormPopup.displayName = 'FeedbackFormPopup';\n\nexport default FeedbackFormPopup;\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|