@ytsaurus/ui 1.75.1 → 1.77.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.
Files changed (108) hide show
  1. package/dist/public/build/assets-manifest.json +75 -75
  2. package/dist/public/build/css/{job.c7c99207.chunk.css → job.9757ff68.chunk.css} +2 -2
  3. package/dist/public/build/css/job.9757ff68.chunk.css.map +1 -0
  4. package/dist/public/build/css/main.0efa9da5.css +10 -0
  5. package/dist/public/build/css/main.0efa9da5.css.map +1 -0
  6. package/dist/public/build/css/navigation.c199c4f2.chunk.css +2 -0
  7. package/dist/public/build/css/navigation.c199c4f2.chunk.css.map +1 -0
  8. package/dist/public/build/js/{1260.534f3f75.chunk.js → 1260.a1e22005.chunk.js} +2 -2
  9. package/dist/public/build/js/{1260.534f3f75.chunk.js.map → 1260.a1e22005.chunk.js.map} +1 -1
  10. package/dist/public/build/js/{1879.23423388.chunk.js → 1879.3975650a.chunk.js} +3 -3
  11. package/dist/public/build/js/{1879.23423388.chunk.js.map → 1879.3975650a.chunk.js.map} +1 -1
  12. package/dist/public/build/js/{1983.666923be.chunk.js → 1983.64a2e22f.chunk.js} +2 -2
  13. package/dist/public/build/js/{1983.666923be.chunk.js.map → 1983.64a2e22f.chunk.js.map} +1 -1
  14. package/dist/public/build/js/{2447.b2877275.chunk.js → 2447.eb8fde89.chunk.js} +2 -2
  15. package/dist/public/build/js/{2447.b2877275.chunk.js.map → 2447.eb8fde89.chunk.js.map} +1 -1
  16. package/dist/public/build/js/3724.3e5848f0.chunk.js +2 -0
  17. package/dist/public/build/js/{3724.425d01ec.chunk.js.map → 3724.3e5848f0.chunk.js.map} +1 -1
  18. package/dist/public/build/js/6729.39d7cf60.chunk.js +2 -0
  19. package/dist/public/build/js/6729.39d7cf60.chunk.js.map +1 -0
  20. package/dist/public/build/js/{7959.95ebd185.chunk.js → 7959.faac2ff8.chunk.js} +2 -2
  21. package/dist/public/build/js/{7959.95ebd185.chunk.js.map → 7959.faac2ff8.chunk.js.map} +1 -1
  22. package/dist/public/build/js/{8390.83f4531a.chunk.js → 8390.c3d2de6a.chunk.js} +2 -2
  23. package/dist/public/build/js/{8390.83f4531a.chunk.js.map → 8390.c3d2de6a.chunk.js.map} +1 -1
  24. package/dist/public/build/js/{8460.2d4d237e.chunk.js → 8460.fc8e2238.chunk.js} +2 -2
  25. package/dist/public/build/js/{8460.2d4d237e.chunk.js.map → 8460.fc8e2238.chunk.js.map} +1 -1
  26. package/dist/public/build/js/{8778.e18e655b.chunk.js → 8778.f3ea089f.chunk.js} +2 -2
  27. package/dist/public/build/js/{8778.e18e655b.chunk.js.map → 8778.f3ea089f.chunk.js.map} +1 -1
  28. package/dist/public/build/js/{9558.a6ea64c9.chunk.js → 9558.6a4bf9a9.chunk.js} +2 -2
  29. package/dist/public/build/js/{9558.a6ea64c9.chunk.js.map → 9558.6a4bf9a9.chunk.js.map} +1 -1
  30. package/dist/public/build/js/9569.aac48f3b.chunk.js +2 -0
  31. package/dist/public/build/js/9569.aac48f3b.chunk.js.map +1 -0
  32. package/dist/public/build/js/{accounts.2ba221c2.chunk.js → accounts.aa7ed73f.chunk.js} +2 -2
  33. package/dist/public/build/js/accounts.aa7ed73f.chunk.js.map +1 -0
  34. package/dist/public/build/js/{acl.c948c339.chunk.js → acl.4cd54663.chunk.js} +2 -2
  35. package/dist/public/build/js/{acl.c948c339.chunk.js.map → acl.4cd54663.chunk.js.map} +1 -1
  36. package/dist/public/build/js/{app-navigation.b062662b.chunk.js → app-navigation.13c65573.chunk.js} +2 -2
  37. package/dist/public/build/js/app-navigation.13c65573.chunk.js.map +1 -0
  38. package/dist/public/build/js/chyt.0ee6bfa2.chunk.js +2 -0
  39. package/dist/public/build/js/chyt.0ee6bfa2.chunk.js.map +1 -0
  40. package/dist/public/build/js/cluster-page-wrapper.bdc8607f.chunk.js +2 -0
  41. package/dist/public/build/js/cluster-page-wrapper.bdc8607f.chunk.js.map +1 -0
  42. package/dist/public/build/js/{components.bbe331cb.chunk.js → components.b39828bc.chunk.js} +2 -2
  43. package/dist/public/build/js/components.b39828bc.chunk.js.map +1 -0
  44. package/dist/public/build/js/job.ea2ba82d.chunk.js +2 -0
  45. package/dist/public/build/js/job.ea2ba82d.chunk.js.map +1 -0
  46. package/dist/public/build/js/main.6375dbc6.js +3 -0
  47. package/dist/public/build/js/main.6375dbc6.js.map +1 -0
  48. package/dist/public/build/js/manage-tokens.e1e791fc.chunk.js +2 -0
  49. package/dist/public/build/js/manage-tokens.e1e791fc.chunk.js.map +1 -0
  50. package/dist/public/build/js/{navigation-flow.eeb01518.chunk.js → navigation-flow.6d67215a.chunk.js} +2 -2
  51. package/dist/public/build/js/{navigation-flow.eeb01518.chunk.js.map → navigation-flow.6d67215a.chunk.js.map} +1 -1
  52. package/dist/public/build/js/navigation.529208de.chunk.js +2 -0
  53. package/dist/public/build/js/navigation.529208de.chunk.js.map +1 -0
  54. package/dist/public/build/js/odin.c4c4ef6f.chunk.js +2 -0
  55. package/dist/public/build/js/odin.c4c4ef6f.chunk.js.map +1 -0
  56. package/dist/public/build/js/{path-viewer.b1b3328d.chunk.js → path-viewer.c091d9f4.chunk.js} +2 -2
  57. package/dist/public/build/js/{path-viewer.b1b3328d.chunk.js.map → path-viewer.c091d9f4.chunk.js.map} +1 -1
  58. package/dist/public/build/js/{query-navigation.9964bfcf.chunk.js → query-navigation.b1574290.chunk.js} +2 -2
  59. package/dist/public/build/js/{query-navigation.9964bfcf.chunk.js.map → query-navigation.b1574290.chunk.js.map} +1 -1
  60. package/dist/public/build/js/{query-results.733b1795.chunk.js → query-results.0a05cc41.chunk.js} +2 -2
  61. package/dist/public/build/js/{query-results.733b1795.chunk.js.map → query-results.0a05cc41.chunk.js.map} +1 -1
  62. package/dist/public/build/js/query-tracker.515069f6.chunk.js +2 -0
  63. package/dist/public/build/js/query-tracker.515069f6.chunk.js.map +1 -0
  64. package/dist/public/build/js/{runtime.481a6d3a.js → runtime.09217c31.js} +2 -2
  65. package/dist/public/build/js/{runtime.481a6d3a.js.map → runtime.09217c31.js.map} +1 -1
  66. package/dist/public/build/js/{scheduling.b70d4627.chunk.js → scheduling.6448eabd.chunk.js} +2 -2
  67. package/dist/public/build/js/{scheduling.b70d4627.chunk.js.map → scheduling.6448eabd.chunk.js.map} +1 -1
  68. package/dist/public/build/js/system.1114aa96.chunk.js +2 -0
  69. package/dist/public/build/js/system.1114aa96.chunk.js.map +1 -0
  70. package/dist/public/build/js/{yt-df-dialog.9ddda260.chunk.js → yt-df-dialog.4ad719bf.chunk.js} +2 -2
  71. package/dist/public/build/js/yt-df-dialog.4ad719bf.chunk.js.map +1 -0
  72. package/dist/public/build/manifest.json +70 -70
  73. package/dist/shared/constants/settings-types.d.ts +1 -0
  74. package/package.json +3 -2
  75. package/dist/public/build/css/job.c7c99207.chunk.css.map +0 -1
  76. package/dist/public/build/css/main.2d3cbfcd.css +0 -10
  77. package/dist/public/build/css/main.2d3cbfcd.css.map +0 -1
  78. package/dist/public/build/css/navigation.0a9042b3.chunk.css +0 -2
  79. package/dist/public/build/css/navigation.0a9042b3.chunk.css.map +0 -1
  80. package/dist/public/build/js/3724.425d01ec.chunk.js +0 -2
  81. package/dist/public/build/js/5177.b4cec253.chunk.js +0 -2
  82. package/dist/public/build/js/5177.b4cec253.chunk.js.map +0 -1
  83. package/dist/public/build/js/6729.da9aa02f.chunk.js +0 -2
  84. package/dist/public/build/js/6729.da9aa02f.chunk.js.map +0 -1
  85. package/dist/public/build/js/accounts.2ba221c2.chunk.js.map +0 -1
  86. package/dist/public/build/js/app-navigation.b062662b.chunk.js.map +0 -1
  87. package/dist/public/build/js/chyt.7f99f87d.chunk.js +0 -2
  88. package/dist/public/build/js/chyt.7f99f87d.chunk.js.map +0 -1
  89. package/dist/public/build/js/cluster-page-wrapper.894fbacc.chunk.js +0 -2
  90. package/dist/public/build/js/cluster-page-wrapper.894fbacc.chunk.js.map +0 -1
  91. package/dist/public/build/js/components.bbe331cb.chunk.js.map +0 -1
  92. package/dist/public/build/js/job.4fc50056.chunk.js +0 -2
  93. package/dist/public/build/js/job.4fc50056.chunk.js.map +0 -1
  94. package/dist/public/build/js/main.7981a440.js +0 -3
  95. package/dist/public/build/js/main.7981a440.js.map +0 -1
  96. package/dist/public/build/js/manage-tokens.286a4da9.chunk.js +0 -2
  97. package/dist/public/build/js/manage-tokens.286a4da9.chunk.js.map +0 -1
  98. package/dist/public/build/js/navigation.d891266d.chunk.js +0 -2
  99. package/dist/public/build/js/navigation.d891266d.chunk.js.map +0 -1
  100. package/dist/public/build/js/odin.df1cfe56.chunk.js +0 -2
  101. package/dist/public/build/js/odin.df1cfe56.chunk.js.map +0 -1
  102. package/dist/public/build/js/query-tracker.06cc4fdc.chunk.js +0 -2
  103. package/dist/public/build/js/query-tracker.06cc4fdc.chunk.js.map +0 -1
  104. package/dist/public/build/js/system.f759d3f0.chunk.js +0 -2
  105. package/dist/public/build/js/system.f759d3f0.chunk.js.map +0 -1
  106. package/dist/public/build/js/yt-df-dialog.9ddda260.chunk.js.map +0 -1
  107. /package/dist/public/build/js/{1879.23423388.chunk.js.LICENSE.txt → 1879.3975650a.chunk.js.LICENSE.txt} +0 -0
  108. /package/dist/public/build/js/{main.7981a440.js.LICENSE.txt → main.6375dbc6.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"js/yt-df-dialog.9ddda260.chunk.js","mappings":"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","sources":["webpack://@ytsaurus/ui/./src/ui/containers/ACL/SubjectsControl/SubjectsControl.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/RequestPermissions/AclColumnGroupControl/AclColumnGroupControl.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/SortableListControl/SortableListControl.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/BytesControl.tsx","webpack://@ytsaurus/ui/./node_modules/final-form/dist/final-form.es.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/helpers/useStableEventHendler.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/configure.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/CheckBoxControl/CheckBoxControl.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/helpers/cn.ts","webpack://@ytsaurus/ui/./node_modules/react-final-form/dist/react-final-form.es.js","webpack://@ytsaurus/ui/./node_modules/final-form-arrays/dist/final-form-arrays.es.js","webpack://@ytsaurus/ui/./node_modules/react-final-form-arrays/dist/react-final-form-arrays.es.js","webpack://@ytsaurus/ui/./node_modules/final-form-calculate/dist/final-form-calculate.es.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/node_modules/react-final-form-listeners/dist/react-final-form-listeners.es.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/Icon/Icon.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/TextControl/TextControl.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/controls/TextArea/TextAreaControl.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/controls/TextArea/TextArea.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/TextAreaControl/TextAreaControl.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/SelectControl/SelectControl.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/TumblerControl/TumblerControl.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/PlainText/PlainText.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/Condition/Condition.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/CustomBlock/CustomBlock.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/RadioButtonControl/RadioButtonControl.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/EditableList/EditableList.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/hoc/withCollapsible.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/EditableManyLists/EditableManyLists.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/MultiTextControl/LabelsGroup/LabelsGroup.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/hoc/utils.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/Dialog/utils.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/FocusBlurContainer/FocusBlurContainer.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/MultiTextControl/MultiTextControl.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/TabField/TabField.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/TabField/TabFieldVertical.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/i18n.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/Dialog/i18n/index.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/esm/ChevronUp.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/CollapsibleSection/CollapsibleSection.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/dialog-fields/build/esm/dialog/Dialog/Dialog.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/RoleListControl/RoleListControl.tsx","webpack://@ytsaurus/ui/./src/ui/navigation/Navigation/PathEditorModal/CreateTableModal/CreateTableSuggests/CreateTableSuggests.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/SelectWithSubItems/SelectWithSubItems.tsx","webpack://@ytsaurus/ui/./src/ui/pages/scheduling/Instruments/CreatePoolDialog/CreatePoolParentSuggest.tsx","webpack://@ytsaurus/ui/./src/ui/store/selectors/suggests/index.ts","webpack://@ytsaurus/ui/./src/ui/pages/components/TabletCellBundlesSuggest/TabletCellBundlesSuggest.tsx","webpack://@ytsaurus/ui/./src/ui/store/actions/suggests/index.ts","webpack://@ytsaurus/ui/./src/ui/constants/suggests.ts","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/EditablePathList/EditablePathList.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/PathEditorControl/PathEditorControl.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/OutputPathControl/FormOptionItem.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/OutputPathControl/getTooltipByType.ts","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/OutputPathControl/AddOptionForm.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/OutputPathControl/OptimizeForAttribute.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/OutputPathControl/CompressionCodecAttribute.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/OutputPathControl/ErasureCodecAttribute.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/OutputPathControl/OutputPathControl.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/PoolSuggestControl/PoolSuggestControl.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/PoolTreeSuggestControl/PoolTreeSuggestControl.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/modals/TableMergeSortModal/TableSortByControl.tsx","webpack://@ytsaurus/ui/./src/ui/pages/navigation/modals/TableMergeSortModal/TableChunkSize.tsx","webpack://@ytsaurus/ui/./src/ui/pages/accounts/UsableAccountSuggest.tsx","webpack://@ytsaurus/ui/./src/ui/components/EditJsonWithPreview/EditJsonWithPreview.tsx","webpack://@ytsaurus/ui/./src/ui/pages/scheduling/PoolQoutaEditor/PoolQuotaEditor.tsx","webpack://@ytsaurus/ui/./src/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTableField/BundleTableField.tsx","webpack://@ytsaurus/ui/./src/ui/assets/img/svg/reset-icon.svg","webpack://@ytsaurus/ui/./src/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.tsx","webpack://@ytsaurus/ui/./src/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/AbcControl/AbcControl.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/BeforeDatePicker/BeforeDatePicker.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/DatePickerControl/DatePickerControl.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/RangeInputPickerControl/RangeInputPickerControl.tsx","webpack://@ytsaurus/ui/./src/ui/containers/ACL/RequestPermissions/AclColumnsControl/AclColumnsControl.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/Dialog.tsx","webpack://@ytsaurus/ui/./src/ui/components/Dialog/controls/ClusterSelectControl/ClusterSelectControl.tsx","webpack://@ytsaurus/ui/./src/ui/components/MonacoEditor/index.tsx","webpack://@ytsaurus/ui/./src/ui/components/QuotaEditor/QuotaEditor.tsx","webpack://@ytsaurus/ui/./src/ui/components/SubjectLink/SubjectLink.tsx","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/components/build/esm/components/ItemSelector/i18n/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/components/build/esm/components/ItemSelector/ItemSelector.js","webpack://@ytsaurus/ui/./src/ui/assets/img/svg/chevron.svg","webpack://@ytsaurus/ui/./src/ui/components/common/SelectControl/SelectControl.tsx","webpack://@ytsaurus/ui/./src/ui/components/common/ColumnSelector/i18n/index.ts","webpack://@ytsaurus/ui/./src/ui/components/common/ColumnSelector/ColumnSelector.tsx","webpack://@ytsaurus/ui/./src/ui/components/common/Datepicker/index.tsx","webpack://@ytsaurus/ui/./src/ui/pages/accounts/AccountsSuggest.tsx","webpack://@ytsaurus/ui/./src/ui/pages/components/GroupSuggest/GroupSuggest.tsx","webpack://@ytsaurus/ui/./src/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleParamsList/BundleParamsList.tsx","webpack://@ytsaurus/ui/./src/ui/rum/rum-measure-types.ts","webpack://@ytsaurus/ui/./src/ui/store/selectors/global/supported-features.ts","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/circle-question.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/icons/svgs/plus.svg","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/components/build/esm/components/utils/cn.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/constants.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/ProgressInnerText.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/ProgressStackItem.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/utils.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/ProgressWithStack.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/ProgressWithValue.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/Progress.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Progress/types.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Table/i18n/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Table/Table.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/components/Tooltip/Tooltip.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/hooks/private/useTooltipVisible/index.js","webpack://@ytsaurus/ui/./node_modules/@gravity-ui/uikit/build/esm/hooks/private/useBoolean/useBoolean.js","webpack://@ytsaurus/ui/./node_modules/react-use/esm/useToggle.js"],"sourcesContent":["import React from 'react';\nimport UIFactory from '../../../UIFactory';\nimport {ResponsibleType} from '../../../utils/acl/acl-types';\n\nexport interface ValueWithType {\n value: string;\n type: SubjectsControlItemType;\n text?: string;\n}\n\nexport type SubjectsControlItemType = 'users' | 'groups' | 'app';\n\nexport interface SubjectsControlProps {\n className?: string;\n value: Array<ResponsibleType>;\n onChange: (value: SubjectsControlProps['value']) => void;\n placeholder?: string;\n allowedTypes?: Array<SubjectsControlItemType>;\n}\n\nexport default class SubjectsControl extends React.Component<SubjectsControlProps> {\n static getDefaultValue() {\n return [];\n }\n\n static isEmpty(value: SubjectsControlProps['value']) {\n return !value || !value.length;\n }\n\n render() {\n return UIFactory.renderAclSubjectsSuggestControl(this.props);\n }\n}\n","import React from 'react';\n\nimport {AclColumnGroup} from '../../../../utils/acl/acl-types';\nimport {Select, SelectOption} from '@gravity-ui/uikit';\n\nexport type Props = {\n value?: AclColumnGroup['id'];\n onChange: (value?: Props['value']) => void;\n columnGroups?: Array<AclColumnGroup>;\n disabled?: boolean;\n};\n\nexport function AclColumnGroupControl({value, onChange, columnGroups, disabled}: Props) {\n const options = React.useMemo(() => {\n return columnGroups?.reduce(\n (acc, data) => {\n if (!data.removed) {\n acc.push({\n value: data.id,\n content: data.name,\n data,\n });\n }\n return acc;\n },\n [] as Array<SelectOption<AclColumnGroup>>,\n );\n }, [columnGroups]);\n\n return (\n <Select\n placeholder=\"Select column group\"\n value={value ? [value] : []}\n disabled={disabled}\n options={options}\n onUpdate={(values) => onChange(values[0])}\n width=\"max\"\n />\n );\n}\n\nAclColumnGroupControl.isEmpty = (value?: Props['value']) => {\n return !value?.length;\n};\n\nAclColumnGroupControl.getDefaultValue = () => {\n return undefined;\n};\n","// @ts-ignore\nimport {SortableContainer, SortableElement, SortableHandle} from 'react-sortable-hoc';\nimport React, {Component} from 'react';\nimport PropTypes from 'prop-types';\nimport cn from 'bem-cn-lite';\n\nimport './SortableListControl.scss';\nimport Icon from '../../../Icon/Icon';\n\nconst block = cn('ic-sortable-list-control');\n\nconst DragHandle = SortableHandle(({children}: {children: React.ReactNode}) => (\n <div className={block('drag-handle')}>\n <Icon className={block('icon')} face=\"solid\" awesome=\"list\" />\n {children}\n </div>\n));\n\nconst SortableItem = SortableElement(({value}: {value: React.ReactNode}) => (\n <li className={block('item')}>\n <DragHandle>{value}</DragHandle>\n </li>\n));\n\nconst SortableList = SortableContainer(({items}: {items: Array<React.ReactNode>}) => {\n return (\n <ul className={block()}>\n {items.map((value, index) => (\n <SortableItem key={`item-${value}`} index={index} {...{value}} />\n ))}\n </ul>\n );\n});\n\ninterface Props\n extends Omit<\n React.ComponentProps<typeof SortableList>,\n 'useDragHandle' | 'items' | 'onSortEnd'\n > {\n value: Array<React.ReactNode>;\n onChange: (value: Props['value']) => void;\n error?: string;\n\n extras?: any;\n}\n\ninterface State {\n items: Props['value'];\n}\n\nclass SortableListControl extends Component<Props> {\n static propTypes = {\n value: PropTypes.array.isRequired,\n onChange: PropTypes.func.isRequired,\n extras: PropTypes.object,\n error: PropTypes.string,\n };\n\n static defaultProps = {\n extras: {},\n };\n\n static getDefaultValue() {\n return [];\n }\n\n static isEmpty(value: Props['value']) {\n return Array.isArray(value) ? !value.length : true;\n }\n\n state: State = {\n items: this.props.value,\n };\n\n onSortEnd = ({oldIndex, newIndex}: {oldIndex: number; newIndex: number}) => {\n const {onChange} = this.props;\n\n this.setState(({items: prevItems}: State) => {\n const items = [...prevItems];\n const [removed] = items.splice(oldIndex, 1);\n items.splice(newIndex, 0, removed);\n onChange(items);\n\n return {items};\n });\n };\n\n render() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {value, onChange, error, ...rest} = this.props;\n const {items} = this.state;\n\n return <SortableList {...rest} useDragHandle {...{items}} onSortEnd={this.onSortEnd} />;\n }\n}\n\nexport default SortableListControl;\n","import React, {Component} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport NumberInput, {\n NumberInputProps,\n NumberInputWithError,\n NumberInputWithErrorProps,\n} from '../../NumberInput/NumberInput';\n\nimport './BytesControl.scss';\nconst block = cn('ic-bytes-control');\n\n/**\n * @deprecated Use NumberControl instead of it\n */\nexport default class BytesControl extends Component<Omit<NumberInputProps, 'format'>> {\n static hasErrorRenderer = true;\n\n static getDefaultValue() {\n return undefined;\n }\n\n static isEmpty(value: number | undefined) {\n return value === undefined || value === ('' as any);\n }\n\n render() {\n const {value} = this.props;\n return (\n <NumberInput\n className={block()}\n {...this.props}\n value={value === ('' as any) ? undefined : value}\n format={'Bytes'}\n />\n );\n }\n}\n\nexport class NumberControl extends Component<NumberInputWithErrorProps> {\n static hasErrorRenderer = true;\n\n static getDefaultValue() {\n return {value: undefined};\n }\n\n static isEmpty(value: NumberInputWithErrorProps['value']) {\n return value === undefined || value === ('' as any);\n }\n\n static isEqual(l: NumberInputWithErrorProps['value'], r: NumberInputWithErrorProps['value']) {\n return l?.value === r?.value && l?.error === r?.error;\n }\n\n static validate(v: NumberInputWithErrorProps['value']) {\n return v?.error ? v?.error : undefined;\n }\n\n render() {\n const {value} = this.props;\n return (\n <NumberInputWithError\n className={block()}\n {...this.props}\n value={value?.value === ('' as any) ? {...value, value: undefined} : value}\n />\n );\n }\n}\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\n\n// \n\nvar charCodeOfDot = \".\".charCodeAt(0);\nvar reEscapeChar = /\\\\(\\\\)?/g;\nvar rePropName = RegExp(\n// Match anything that isn't a dot or bracket.\n\"[^.[\\\\]]+\" + \"|\" +\n// Or match property names within brackets.\n\"\\\\[(?:\" +\n// Match a non-string expression.\n\"([^\\\"'][^[]*)\" + \"|\" +\n// Or match strings (supports escaping characters).\n\"([\\\"'])((?:(?!\\\\2)[^\\\\\\\\]|\\\\\\\\.)*?)\\\\2\" + \")\\\\]\" + \"|\" +\n// Or match \"\" as the space between consecutive dots or empty brackets.\n\"(?=(?:\\\\.|\\\\[\\\\])(?:\\\\.|\\\\[\\\\]|$))\", \"g\");\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = function stringToPath(string) {\n var result = [];\n if (string.charCodeAt(0) === charCodeOfDot) {\n result.push(\"\");\n }\n string.replace(rePropName, function (match, expression, quote, subString) {\n var key = match;\n if (quote) {\n key = subString.replace(reEscapeChar, \"$1\");\n } else if (expression) {\n key = expression.trim();\n }\n result.push(key);\n });\n return result;\n};\nvar keysCache = {};\nvar keysRegex = /[.[\\]]+/;\nvar toPath = function toPath(key) {\n if (key === null || key === undefined || !key.length) {\n return [];\n }\n if (typeof key !== \"string\") {\n throw new Error(\"toPath() expects a string\");\n }\n if (keysCache[key] == null) {\n /**\n * The following patch fixes issue 456, introduced since v4.20.3:\n *\n * Before v4.20.3, i.e. in v4.20.2, a `key` like 'choices[]' would map to ['choices']\n * (e.g. an array of choices used where 'choices[]' is name attribute of an input of type checkbox).\n *\n * Since v4.20.3, a `key` like 'choices[]' would map to ['choices', ''] which is wrong and breaks\n * this kind of inputs e.g. in React.\n *\n * v4.20.3 introduced an unwanted breaking change, this patch fixes it, see the issue at the link below.\n *\n * @see https://github.com/final-form/final-form/issues/456\n */\n if (key.endsWith(\"[]\")) {\n // v4.20.2 (a `key` like 'choices[]' should map to ['choices'], which is fine).\n keysCache[key] = key.split(keysRegex).filter(Boolean);\n } else {\n // v4.20.3 (a `key` like 'choices[]' maps to ['choices', ''], which breaks applications relying on inputs like `<input type=\"checkbox\" name=\"choices[]\" />`).\n keysCache[key] = stringToPath(key);\n }\n }\n return keysCache[key];\n};\n\n// \nvar getIn = function getIn(state, complexKey) {\n // Intentionally using iteration rather than recursion\n var path = toPath(complexKey);\n var current = state;\n for (var i = 0; i < path.length; i++) {\n var key = path[i];\n if (current === undefined || current === null || typeof current !== \"object\" || Array.isArray(current) && isNaN(key)) {\n return undefined;\n }\n current = current[key];\n }\n return current;\n};\n\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar setInRecursor = function setInRecursor(current, index, path, value, destroyArrays) {\n if (index >= path.length) {\n // end of recursion\n return value;\n }\n var key = path[index];\n\n // determine type of key\n if (isNaN(key)) {\n var _extends2;\n // object set\n if (current === undefined || current === null) {\n var _ref;\n // recurse\n var _result = setInRecursor(undefined, index + 1, path, value, destroyArrays);\n\n // delete or create an object\n return _result === undefined ? undefined : (_ref = {}, _ref[key] = _result, _ref);\n }\n if (Array.isArray(current)) {\n throw new Error(\"Cannot set a non-numeric property on an array\");\n }\n // current exists, so make a copy of all its values, and add/update the new one\n var _result2 = setInRecursor(current[key], index + 1, path, value, destroyArrays);\n if (_result2 === undefined) {\n var numKeys = Object.keys(current).length;\n if (current[key] === undefined && numKeys === 0) {\n // object was already empty\n return undefined;\n }\n if (current[key] !== undefined && numKeys <= 1) {\n // only key we had was the one we are deleting\n if (!isNaN(path[index - 1]) && !destroyArrays) {\n // we are in an array, so return an empty object\n return {};\n } else {\n return undefined;\n }\n }\n current[key];\n var _final = _objectWithoutPropertiesLoose(current, [key].map(_toPropertyKey));\n return _final;\n }\n // set result in key\n return _extends({}, current, (_extends2 = {}, _extends2[key] = _result2, _extends2));\n }\n // array set\n var numericKey = Number(key);\n if (current === undefined || current === null) {\n // recurse\n var _result3 = setInRecursor(undefined, index + 1, path, value, destroyArrays);\n\n // if nothing returned, delete it\n if (_result3 === undefined) {\n return undefined;\n }\n\n // create an array\n var _array = [];\n _array[numericKey] = _result3;\n return _array;\n }\n if (!Array.isArray(current)) {\n throw new Error(\"Cannot set a numeric property on an object\");\n }\n // recurse\n var existingValue = current[numericKey];\n var result = setInRecursor(existingValue, index + 1, path, value, destroyArrays);\n\n // current exists, so make a copy of all its values, and add/update the new one\n var array = [].concat(current);\n if (destroyArrays && result === undefined) {\n array.splice(numericKey, 1);\n if (array.length === 0) {\n return undefined;\n }\n } else {\n array[numericKey] = result;\n }\n return array;\n};\nvar setIn = function setIn(state, key, value, destroyArrays) {\n if (destroyArrays === void 0) {\n destroyArrays = false;\n }\n if (state === undefined || state === null) {\n throw new Error(\"Cannot call setIn() with \" + String(state) + \" state\");\n }\n if (key === undefined || key === null) {\n throw new Error(\"Cannot call setIn() with \" + String(key) + \" key\");\n }\n // Recursive function needs to accept and return State, but public API should\n // only deal with Objects\n return setInRecursor(state, 0, toPath(key), value, destroyArrays);\n};\n\nvar FORM_ERROR = \"FINAL_FORM/form-error\";\nvar ARRAY_ERROR = \"FINAL_FORM/array-error\";\n\n// \n\n\n/**\n * Converts internal field state to published field state\n */\nfunction publishFieldState(formState, field) {\n var errors = formState.errors,\n initialValues = formState.initialValues,\n lastSubmittedValues = formState.lastSubmittedValues,\n submitErrors = formState.submitErrors,\n submitFailed = formState.submitFailed,\n submitSucceeded = formState.submitSucceeded,\n submitting = formState.submitting,\n values = formState.values;\n var active = field.active,\n blur = field.blur,\n change = field.change,\n data = field.data,\n focus = field.focus,\n modified = field.modified,\n modifiedSinceLastSubmit = field.modifiedSinceLastSubmit,\n name = field.name,\n touched = field.touched,\n validating = field.validating,\n visited = field.visited;\n var value = getIn(values, name);\n var error = getIn(errors, name);\n if (error && error[ARRAY_ERROR]) {\n error = error[ARRAY_ERROR];\n }\n var submitError = submitErrors && getIn(submitErrors, name);\n var initial = initialValues && getIn(initialValues, name);\n var pristine = field.isEqual(initial, value);\n var dirtySinceLastSubmit = !!(lastSubmittedValues && !field.isEqual(getIn(lastSubmittedValues, name), value));\n var valid = !error && !submitError;\n return {\n active: active,\n blur: blur,\n change: change,\n data: data,\n dirty: !pristine,\n dirtySinceLastSubmit: dirtySinceLastSubmit,\n error: error,\n focus: focus,\n initial: initial,\n invalid: !valid,\n length: Array.isArray(value) ? value.length : undefined,\n modified: modified,\n modifiedSinceLastSubmit: modifiedSinceLastSubmit,\n name: name,\n pristine: pristine,\n submitError: submitError,\n submitFailed: submitFailed,\n submitSucceeded: submitSucceeded,\n submitting: submitting,\n touched: touched,\n valid: valid,\n value: value,\n visited: visited,\n validating: validating\n };\n}\n\n// \nvar fieldSubscriptionItems = [\"active\", \"data\", \"dirty\", \"dirtySinceLastSubmit\", \"error\", \"initial\", \"invalid\", \"length\", \"modified\", \"modifiedSinceLastSubmit\", \"pristine\", \"submitError\", \"submitFailed\", \"submitSucceeded\", \"submitting\", \"touched\", \"valid\", \"value\", \"visited\", \"validating\"];\n\n// \n\nvar shallowEqual = function shallowEqual(a, b) {\n if (a === b) {\n return true;\n }\n if (typeof a !== \"object\" || !a || typeof b !== \"object\" || !b) {\n return false;\n }\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n if (keysA.length !== keysB.length) {\n return false;\n }\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(b);\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n if (!bHasOwnProperty(key) || a[key] !== b[key]) {\n return false;\n }\n }\n return true;\n};\n\n// \nfunction subscriptionFilter (dest, src, previous, subscription, keys, shallowEqualKeys) {\n var different = false;\n keys.forEach(function (key) {\n if (subscription[key]) {\n dest[key] = src[key];\n if (!previous || (~shallowEqualKeys.indexOf(key) ? !shallowEqual(src[key], previous[key]) : src[key] !== previous[key])) {\n different = true;\n }\n }\n });\n return different;\n}\n\n// \nvar shallowEqualKeys$1 = [\"data\"];\n\n/**\n * Filters items in a FieldState based on a FieldSubscription\n */\nvar filterFieldState = function filterFieldState(state, previousState, subscription, force) {\n var result = {\n blur: state.blur,\n change: state.change,\n focus: state.focus,\n name: state.name\n };\n var different = subscriptionFilter(result, state, previousState, subscription, fieldSubscriptionItems, shallowEqualKeys$1) || !previousState;\n return different || force ? result : undefined;\n};\n\n// \nvar formSubscriptionItems = [\"active\", \"dirty\", \"dirtyFields\", \"dirtyFieldsSinceLastSubmit\", \"dirtySinceLastSubmit\", \"error\", \"errors\", \"hasSubmitErrors\", \"hasValidationErrors\", \"initialValues\", \"invalid\", \"modified\", \"modifiedSinceLastSubmit\", \"pristine\", \"submitting\", \"submitError\", \"submitErrors\", \"submitFailed\", \"submitSucceeded\", \"touched\", \"valid\", \"validating\", \"values\", \"visited\"];\n\n// \nvar shallowEqualKeys = [\"touched\", \"visited\"];\n\n/**\n * Filters items in a FormState based on a FormSubscription\n */\nfunction filterFormState(state, previousState, subscription, force) {\n var result = {};\n var different = subscriptionFilter(result, state, previousState, subscription, formSubscriptionItems, shallowEqualKeys) || !previousState;\n return different || force ? result : undefined;\n}\n\n// \nvar memoize = function memoize(fn) {\n var lastArgs;\n var lastResult;\n return function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!lastArgs || args.length !== lastArgs.length || args.some(function (arg, index) {\n return !shallowEqual(lastArgs[index], arg);\n })) {\n lastArgs = args;\n lastResult = fn.apply(void 0, args);\n }\n return lastResult;\n };\n};\n\nvar isPromise = (function (obj) {\n return !!obj && (typeof obj === \"object\" || typeof obj === \"function\") && typeof obj.then === \"function\";\n});\n\nvar version = \"4.20.10\";\n\nvar configOptions = [\"debug\", \"initialValues\", \"keepDirtyOnReinitialize\", \"mutators\", \"onSubmit\", \"validate\", \"validateOnBlur\"];\nvar tripleEquals = function tripleEquals(a, b) {\n return a === b;\n};\nvar hasAnyError = function hasAnyError(errors) {\n return Object.keys(errors).some(function (key) {\n var value = errors[key];\n if (value && typeof value === \"object\" && !(value instanceof Error)) {\n return hasAnyError(value);\n }\n return typeof value !== \"undefined\";\n });\n};\nfunction convertToExternalFormState(_ref) {\n var active = _ref.active,\n dirtySinceLastSubmit = _ref.dirtySinceLastSubmit,\n modifiedSinceLastSubmit = _ref.modifiedSinceLastSubmit,\n error = _ref.error,\n errors = _ref.errors,\n initialValues = _ref.initialValues,\n pristine = _ref.pristine,\n submitting = _ref.submitting,\n submitFailed = _ref.submitFailed,\n submitSucceeded = _ref.submitSucceeded,\n submitError = _ref.submitError,\n submitErrors = _ref.submitErrors,\n valid = _ref.valid,\n validating = _ref.validating,\n values = _ref.values;\n return {\n active: active,\n dirty: !pristine,\n dirtySinceLastSubmit: dirtySinceLastSubmit,\n modifiedSinceLastSubmit: modifiedSinceLastSubmit,\n error: error,\n errors: errors,\n hasSubmitErrors: !!(submitError || submitErrors && hasAnyError(submitErrors)),\n hasValidationErrors: !!(error || hasAnyError(errors)),\n invalid: !valid,\n initialValues: initialValues,\n pristine: pristine,\n submitting: submitting,\n submitFailed: submitFailed,\n submitSucceeded: submitSucceeded,\n submitError: submitError,\n submitErrors: submitErrors,\n valid: valid,\n validating: validating > 0,\n values: values\n };\n}\nfunction notifySubscriber(subscriber, subscription, state, lastState, filter, force) {\n var notification = filter(state, lastState, subscription, force);\n if (notification) {\n subscriber(notification);\n return true;\n }\n return false;\n}\nfunction notify(_ref2, state, lastState, filter, force) {\n var entries = _ref2.entries;\n Object.keys(entries).forEach(function (key) {\n var entry = entries[Number(key)];\n // istanbul ignore next\n if (entry) {\n var subscription = entry.subscription,\n subscriber = entry.subscriber,\n notified = entry.notified;\n if (notifySubscriber(subscriber, subscription, state, lastState, filter, force || !notified)) {\n entry.notified = true;\n }\n }\n });\n}\nfunction createForm(config) {\n if (!config) {\n throw new Error(\"No config specified\");\n }\n var debug = config.debug,\n destroyOnUnregister = config.destroyOnUnregister,\n keepDirtyOnReinitialize = config.keepDirtyOnReinitialize,\n initialValues = config.initialValues,\n mutators = config.mutators,\n onSubmit = config.onSubmit,\n validate = config.validate,\n validateOnBlur = config.validateOnBlur;\n if (!onSubmit) {\n throw new Error(\"No onSubmit function specified\");\n }\n var state = {\n subscribers: {\n index: 0,\n entries: {}\n },\n fieldSubscribers: {},\n fields: {},\n formState: {\n asyncErrors: {},\n dirtySinceLastSubmit: false,\n modifiedSinceLastSubmit: false,\n errors: {},\n initialValues: initialValues && _extends({}, initialValues),\n invalid: false,\n pristine: true,\n submitting: false,\n submitFailed: false,\n submitSucceeded: false,\n resetWhileSubmitting: false,\n valid: true,\n validating: 0,\n values: initialValues ? _extends({}, initialValues) : {}\n },\n lastFormState: undefined\n };\n var inBatch = 0;\n var validationPaused = false;\n var validationBlocked = false;\n var preventNotificationWhileValidationPaused = false;\n var nextAsyncValidationKey = 0;\n var asyncValidationPromises = {};\n var clearAsyncValidationPromise = function clearAsyncValidationPromise(key) {\n return function (result) {\n delete asyncValidationPromises[key];\n return result;\n };\n };\n var changeValue = function changeValue(state, name, mutate) {\n var before = getIn(state.formState.values, name);\n var after = mutate(before);\n state.formState.values = setIn(state.formState.values, name, after) || {};\n };\n var renameField = function renameField(state, from, to) {\n if (state.fields[from]) {\n var _extends2, _extends3;\n state.fields = _extends({}, state.fields, (_extends2 = {}, _extends2[to] = _extends({}, state.fields[from], {\n name: to,\n // rebind event handlers\n blur: function blur() {\n return api.blur(to);\n },\n change: function change(value) {\n return api.change(to, value);\n },\n focus: function focus() {\n return api.focus(to);\n },\n lastFieldState: undefined\n }), _extends2));\n delete state.fields[from];\n state.fieldSubscribers = _extends({}, state.fieldSubscribers, (_extends3 = {}, _extends3[to] = state.fieldSubscribers[from], _extends3));\n delete state.fieldSubscribers[from];\n var value = getIn(state.formState.values, from);\n state.formState.values = setIn(state.formState.values, from, undefined) || {};\n state.formState.values = setIn(state.formState.values, to, value);\n delete state.lastFormState;\n }\n };\n\n // bind state to mutators\n var getMutatorApi = function getMutatorApi(key) {\n return function () {\n // istanbul ignore next\n if (mutators) {\n // ^^ causes branch coverage warning, but needed to appease the Flow gods\n var mutatableState = {\n formState: state.formState,\n fields: state.fields,\n fieldSubscribers: state.fieldSubscribers,\n lastFormState: state.lastFormState\n };\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n var returnValue = mutators[key](args, mutatableState, {\n changeValue: changeValue,\n getIn: getIn,\n renameField: renameField,\n resetFieldState: api.resetFieldState,\n setIn: setIn,\n shallowEqual: shallowEqual\n });\n state.formState = mutatableState.formState;\n state.fields = mutatableState.fields;\n state.fieldSubscribers = mutatableState.fieldSubscribers;\n state.lastFormState = mutatableState.lastFormState;\n runValidation(undefined, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n return returnValue;\n }\n };\n };\n var mutatorsApi = mutators ? Object.keys(mutators).reduce(function (result, key) {\n result[key] = getMutatorApi(key);\n return result;\n }, {}) : {};\n var runRecordLevelValidation = function runRecordLevelValidation(setErrors) {\n var promises = [];\n if (validate) {\n var errorsOrPromise = validate(_extends({}, state.formState.values)); // clone to avoid writing\n if (isPromise(errorsOrPromise)) {\n promises.push(errorsOrPromise.then(function (errors) {\n return setErrors(errors, true);\n }));\n } else {\n setErrors(errorsOrPromise, false);\n }\n }\n return promises;\n };\n var getValidators = function getValidators(field) {\n return Object.keys(field.validators).reduce(function (result, index) {\n var validator = field.validators[Number(index)]();\n if (validator) {\n result.push(validator);\n }\n return result;\n }, []);\n };\n var runFieldLevelValidation = function runFieldLevelValidation(field, setError) {\n var promises = [];\n var validators = getValidators(field);\n if (validators.length) {\n var error;\n validators.forEach(function (validator) {\n var errorOrPromise = validator(getIn(state.formState.values, field.name), state.formState.values, validator.length === 0 || validator.length === 3 ? publishFieldState(state.formState, state.fields[field.name]) : undefined);\n if (errorOrPromise && isPromise(errorOrPromise)) {\n field.validating = true;\n var promise = errorOrPromise.then(function (error) {\n if (state.fields[field.name]) {\n state.fields[field.name].validating = false;\n setError(error);\n }\n }); // errors must be resolved, not rejected\n promises.push(promise);\n } else if (!error) {\n // first registered validator wins\n error = errorOrPromise;\n }\n });\n setError(error);\n }\n return promises;\n };\n var runValidation = function runValidation(fieldChanged, callback) {\n if (validationPaused) {\n validationBlocked = true;\n callback();\n return;\n }\n var fields = state.fields,\n formState = state.formState;\n var safeFields = _extends({}, fields);\n var fieldKeys = Object.keys(safeFields);\n if (!validate && !fieldKeys.some(function (key) {\n return getValidators(safeFields[key]).length;\n })) {\n callback();\n return; // no validation rules\n }\n\n // pare down field keys to actually validate\n var limitedFieldLevelValidation = false;\n if (fieldChanged) {\n var changedField = safeFields[fieldChanged];\n if (changedField) {\n var validateFields = changedField.validateFields;\n if (validateFields) {\n limitedFieldLevelValidation = true;\n fieldKeys = validateFields.length ? validateFields.concat(fieldChanged) : [fieldChanged];\n }\n }\n }\n var recordLevelErrors = {};\n var asyncRecordLevelErrors = {};\n var fieldLevelErrors = {};\n var promises = [].concat(runRecordLevelValidation(function (errors, wasAsync) {\n if (wasAsync) {\n asyncRecordLevelErrors = errors || {};\n } else {\n recordLevelErrors = errors || {};\n }\n }), fieldKeys.reduce(function (result, name) {\n return result.concat(runFieldLevelValidation(fields[name], function (error) {\n fieldLevelErrors[name] = error;\n }));\n }, []));\n var hasAsyncValidations = promises.length > 0;\n var asyncValidationPromiseKey = ++nextAsyncValidationKey;\n var promise = Promise.all(promises).then(clearAsyncValidationPromise(asyncValidationPromiseKey));\n\n // backwards-compat: add promise to submit-blocking promises iff there are any promises to await\n if (hasAsyncValidations) {\n asyncValidationPromises[asyncValidationPromiseKey] = promise;\n }\n var processErrors = function processErrors(afterAsync) {\n var merged = _extends({}, limitedFieldLevelValidation ? formState.errors : {}, recordLevelErrors, afterAsync ? asyncRecordLevelErrors // new async errors\n : formState.asyncErrors);\n var forEachError = function forEachError(fn) {\n fieldKeys.forEach(function (name) {\n if (fields[name]) {\n // make sure field is still registered\n // field-level errors take precedent over record-level errors\n var recordLevelError = getIn(recordLevelErrors, name);\n var errorFromParent = getIn(merged, name);\n var hasFieldLevelValidation = getValidators(safeFields[name]).length;\n var fieldLevelError = fieldLevelErrors[name];\n fn(name, hasFieldLevelValidation && fieldLevelError || validate && recordLevelError || (!recordLevelError && !limitedFieldLevelValidation ? errorFromParent : undefined));\n }\n });\n };\n forEachError(function (name, error) {\n merged = setIn(merged, name, error) || {};\n });\n forEachError(function (name, error) {\n if (error && error[ARRAY_ERROR]) {\n var existing = getIn(merged, name);\n var copy = [].concat(existing);\n copy[ARRAY_ERROR] = error[ARRAY_ERROR];\n merged = setIn(merged, name, copy);\n }\n });\n if (!shallowEqual(formState.errors, merged)) {\n formState.errors = merged;\n }\n if (afterAsync) {\n formState.asyncErrors = asyncRecordLevelErrors;\n }\n formState.error = recordLevelErrors[FORM_ERROR];\n };\n if (hasAsyncValidations) {\n // async validations are running, ensure validating is true before notifying\n state.formState.validating++;\n callback();\n }\n\n // process sync errors\n processErrors(false);\n // sync errors have been set. notify listeners while we wait for others\n callback();\n if (hasAsyncValidations) {\n var afterPromise = function afterPromise() {\n state.formState.validating--;\n callback();\n // field async validation may affect formState validating\n // so force notifyFormListeners if validating is still 0 after callback finished\n // and lastFormState validating is true\n if (state.formState.validating === 0 && state.lastFormState.validating) {\n notifyFormListeners();\n }\n };\n promise.then(function () {\n if (nextAsyncValidationKey > asyncValidationPromiseKey) {\n // if this async validator has been superseded by another, ignore its results\n return;\n }\n processErrors(true);\n }).then(afterPromise, afterPromise);\n }\n };\n var notifyFieldListeners = function notifyFieldListeners(name) {\n if (inBatch) {\n return;\n }\n var fields = state.fields,\n fieldSubscribers = state.fieldSubscribers,\n formState = state.formState;\n var safeFields = _extends({}, fields);\n var notifyField = function notifyField(name) {\n var field = safeFields[name];\n var fieldState = publishFieldState(formState, field);\n var lastFieldState = field.lastFieldState;\n field.lastFieldState = fieldState;\n var fieldSubscriber = fieldSubscribers[name];\n if (fieldSubscriber) {\n notify(fieldSubscriber, fieldState, lastFieldState, filterFieldState, lastFieldState === undefined);\n }\n };\n if (name) {\n notifyField(name);\n } else {\n Object.keys(safeFields).forEach(notifyField);\n }\n };\n var markAllFieldsTouched = function markAllFieldsTouched() {\n Object.keys(state.fields).forEach(function (key) {\n state.fields[key].touched = true;\n });\n };\n var hasSyncErrors = function hasSyncErrors() {\n return !!(state.formState.error || hasAnyError(state.formState.errors));\n };\n var calculateNextFormState = function calculateNextFormState() {\n var fields = state.fields,\n formState = state.formState,\n lastFormState = state.lastFormState;\n var safeFields = _extends({}, fields);\n var safeFieldKeys = Object.keys(safeFields);\n\n // calculate dirty/pristine\n var foundDirty = false;\n var dirtyFields = safeFieldKeys.reduce(function (result, key) {\n var dirty = !safeFields[key].isEqual(getIn(formState.values, key), getIn(formState.initialValues || {}, key));\n if (dirty) {\n foundDirty = true;\n result[key] = true;\n }\n return result;\n }, {});\n var dirtyFieldsSinceLastSubmit = safeFieldKeys.reduce(function (result, key) {\n // istanbul ignore next\n var nonNullLastSubmittedValues = formState.lastSubmittedValues || {}; // || {} is for flow, but causes branch coverage complaint\n if (!safeFields[key].isEqual(getIn(formState.values, key), getIn(nonNullLastSubmittedValues, key))) {\n result[key] = true;\n }\n return result;\n }, {});\n formState.pristine = !foundDirty;\n formState.dirtySinceLastSubmit = !!(formState.lastSubmittedValues && Object.values(dirtyFieldsSinceLastSubmit).some(function (value) {\n return value;\n }));\n formState.modifiedSinceLastSubmit = !!(formState.lastSubmittedValues &&\n // Object.values would treat values as mixed (facebook/flow#2221)\n Object.keys(safeFields).some(function (value) {\n return safeFields[value].modifiedSinceLastSubmit;\n }));\n formState.valid = !formState.error && !formState.submitError && !hasAnyError(formState.errors) && !(formState.submitErrors && hasAnyError(formState.submitErrors));\n var nextFormState = convertToExternalFormState(formState);\n var _safeFieldKeys$reduce = safeFieldKeys.reduce(function (result, key) {\n result.modified[key] = safeFields[key].modified;\n result.touched[key] = safeFields[key].touched;\n result.visited[key] = safeFields[key].visited;\n return result;\n }, {\n modified: {},\n touched: {},\n visited: {}\n }),\n modified = _safeFieldKeys$reduce.modified,\n touched = _safeFieldKeys$reduce.touched,\n visited = _safeFieldKeys$reduce.visited;\n nextFormState.dirtyFields = lastFormState && shallowEqual(lastFormState.dirtyFields, dirtyFields) ? lastFormState.dirtyFields : dirtyFields;\n nextFormState.dirtyFieldsSinceLastSubmit = lastFormState && shallowEqual(lastFormState.dirtyFieldsSinceLastSubmit, dirtyFieldsSinceLastSubmit) ? lastFormState.dirtyFieldsSinceLastSubmit : dirtyFieldsSinceLastSubmit;\n nextFormState.modified = lastFormState && shallowEqual(lastFormState.modified, modified) ? lastFormState.modified : modified;\n nextFormState.touched = lastFormState && shallowEqual(lastFormState.touched, touched) ? lastFormState.touched : touched;\n nextFormState.visited = lastFormState && shallowEqual(lastFormState.visited, visited) ? lastFormState.visited : visited;\n return lastFormState && shallowEqual(lastFormState, nextFormState) ? lastFormState : nextFormState;\n };\n var callDebug = function callDebug() {\n return debug && \"development\" !== \"production\" && debug(calculateNextFormState(), Object.keys(state.fields).reduce(function (result, key) {\n result[key] = state.fields[key];\n return result;\n }, {}));\n };\n var notifying = false;\n var scheduleNotification = false;\n var notifyFormListeners = function notifyFormListeners() {\n if (notifying) {\n scheduleNotification = true;\n } else {\n notifying = true;\n callDebug();\n if (!inBatch && !(validationPaused && preventNotificationWhileValidationPaused)) {\n var lastFormState = state.lastFormState;\n var nextFormState = calculateNextFormState();\n if (nextFormState !== lastFormState) {\n state.lastFormState = nextFormState;\n notify(state.subscribers, nextFormState, lastFormState, filterFormState);\n }\n }\n notifying = false;\n if (scheduleNotification) {\n scheduleNotification = false;\n notifyFormListeners();\n }\n }\n };\n var beforeSubmit = function beforeSubmit() {\n return Object.keys(state.fields).some(function (name) {\n return state.fields[name].beforeSubmit && state.fields[name].beforeSubmit() === false;\n });\n };\n var afterSubmit = function afterSubmit() {\n return Object.keys(state.fields).forEach(function (name) {\n return state.fields[name].afterSubmit && state.fields[name].afterSubmit();\n });\n };\n var resetModifiedAfterSubmit = function resetModifiedAfterSubmit() {\n return Object.keys(state.fields).forEach(function (key) {\n return state.fields[key].modifiedSinceLastSubmit = false;\n });\n };\n\n // generate initial errors\n runValidation(undefined, function () {\n notifyFormListeners();\n });\n var api = {\n batch: function batch(fn) {\n inBatch++;\n fn();\n inBatch--;\n notifyFieldListeners();\n notifyFormListeners();\n },\n blur: function blur(name) {\n var fields = state.fields,\n formState = state.formState;\n var previous = fields[name];\n if (previous) {\n // can only blur registered fields\n delete formState.active;\n fields[name] = _extends({}, previous, {\n active: false,\n touched: true\n });\n if (validateOnBlur) {\n runValidation(name, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n } else {\n notifyFieldListeners();\n notifyFormListeners();\n }\n }\n },\n change: function change(name, value) {\n var fields = state.fields,\n formState = state.formState;\n if (getIn(formState.values, name) !== value) {\n changeValue(state, name, function () {\n return value;\n });\n var previous = fields[name];\n if (previous) {\n // only track modified for registered fields\n fields[name] = _extends({}, previous, {\n modified: true,\n modifiedSinceLastSubmit: !!formState.lastSubmittedValues\n });\n }\n if (validateOnBlur) {\n notifyFieldListeners();\n notifyFormListeners();\n } else {\n runValidation(name, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n }\n }\n },\n get destroyOnUnregister() {\n return !!destroyOnUnregister;\n },\n set destroyOnUnregister(value) {\n destroyOnUnregister = value;\n },\n focus: function focus(name) {\n var field = state.fields[name];\n if (field && !field.active) {\n state.formState.active = name;\n field.active = true;\n field.visited = true;\n notifyFieldListeners();\n notifyFormListeners();\n }\n },\n mutators: mutatorsApi,\n getFieldState: function getFieldState(name) {\n var field = state.fields[name];\n return field && field.lastFieldState;\n },\n getRegisteredFields: function getRegisteredFields() {\n return Object.keys(state.fields);\n },\n getState: function getState() {\n return calculateNextFormState();\n },\n initialize: function initialize(data) {\n var fields = state.fields,\n formState = state.formState;\n var safeFields = _extends({}, fields);\n var values = typeof data === \"function\" ? data(formState.values) : data;\n if (!keepDirtyOnReinitialize) {\n formState.values = values;\n }\n /**\n * Hello, inquisitive code reader! Thanks for taking the time to dig in!\n *\n * The following code is the way it is to allow for non-registered deep\n * field values to be set via initialize()\n */\n\n // save dirty values\n var savedDirtyValues = keepDirtyOnReinitialize ? Object.keys(safeFields).reduce(function (result, key) {\n var field = safeFields[key];\n var pristine = field.isEqual(getIn(formState.values, key), getIn(formState.initialValues || {}, key));\n if (!pristine) {\n result[key] = getIn(formState.values, key);\n }\n return result;\n }, {}) : {};\n // update initalValues and values\n formState.initialValues = values;\n formState.values = values;\n // restore the dirty values\n Object.keys(savedDirtyValues).forEach(function (key) {\n formState.values = setIn(formState.values, key, savedDirtyValues[key]) || {};\n });\n runValidation(undefined, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n },\n isValidationPaused: function isValidationPaused() {\n return validationPaused;\n },\n pauseValidation: function pauseValidation(preventNotification) {\n if (preventNotification === void 0) {\n preventNotification = true;\n }\n validationPaused = true;\n preventNotificationWhileValidationPaused = preventNotification;\n },\n registerField: function registerField(name, subscriber, subscription, fieldConfig) {\n if (subscription === void 0) {\n subscription = {};\n }\n if (!state.fieldSubscribers[name]) {\n state.fieldSubscribers[name] = {\n index: 0,\n entries: {}\n };\n }\n var index = state.fieldSubscribers[name].index++;\n\n // save field subscriber callback\n state.fieldSubscribers[name].entries[index] = {\n subscriber: memoize(subscriber),\n subscription: subscription,\n notified: false\n };\n\n // create initial field state if not exists\n var field = state.fields[name] || {\n active: false,\n afterSubmit: fieldConfig && fieldConfig.afterSubmit,\n beforeSubmit: fieldConfig && fieldConfig.beforeSubmit,\n data: fieldConfig && fieldConfig.data || {},\n isEqual: fieldConfig && fieldConfig.isEqual || tripleEquals,\n lastFieldState: undefined,\n modified: false,\n modifiedSinceLastSubmit: false,\n name: name,\n touched: false,\n valid: true,\n validateFields: fieldConfig && fieldConfig.validateFields,\n validators: {},\n validating: false,\n visited: false\n };\n // Mutators can create a field in order to keep the field states\n // We must update this field when registerField is called afterwards\n field.blur = field.blur || function () {\n return api.blur(name);\n };\n field.change = field.change || function (value) {\n return api.change(name, value);\n };\n field.focus = field.focus || function () {\n return api.focus(name);\n };\n state.fields[name] = field;\n var haveValidator = false;\n var silent = fieldConfig && fieldConfig.silent;\n var notify = function notify() {\n if (silent && state.fields[name]) {\n notifyFieldListeners(name);\n } else {\n notifyFormListeners();\n notifyFieldListeners();\n }\n };\n if (fieldConfig) {\n haveValidator = !!(fieldConfig.getValidator && fieldConfig.getValidator());\n if (fieldConfig.getValidator) {\n state.fields[name].validators[index] = fieldConfig.getValidator;\n }\n var noValueInFormState = getIn(state.formState.values, name) === undefined;\n if (fieldConfig.initialValue !== undefined && (noValueInFormState || getIn(state.formState.values, name) === getIn(state.formState.initialValues, name))\n // only initialize if we don't yet have any value for this field\n ) {\n state.formState.initialValues = setIn(state.formState.initialValues || {}, name, fieldConfig.initialValue);\n state.formState.values = setIn(state.formState.values, name, fieldConfig.initialValue);\n runValidation(undefined, notify);\n }\n\n // only use defaultValue if we don't yet have any value for this field\n if (fieldConfig.defaultValue !== undefined && fieldConfig.initialValue === undefined && getIn(state.formState.initialValues, name) === undefined && noValueInFormState) {\n state.formState.values = setIn(state.formState.values, name, fieldConfig.defaultValue);\n }\n }\n if (haveValidator) {\n runValidation(undefined, notify);\n } else {\n notify();\n }\n return function () {\n var validatorRemoved = false;\n // istanbul ignore next\n if (state.fields[name]) {\n // state.fields[name] may have been removed by a mutator\n validatorRemoved = !!(state.fields[name].validators[index] && state.fields[name].validators[index]());\n delete state.fields[name].validators[index];\n }\n var hasFieldSubscribers = !!state.fieldSubscribers[name];\n if (hasFieldSubscribers) {\n // state.fieldSubscribers[name] may have been removed by a mutator\n delete state.fieldSubscribers[name].entries[index];\n }\n var lastOne = hasFieldSubscribers && !Object.keys(state.fieldSubscribers[name].entries).length;\n if (lastOne) {\n delete state.fieldSubscribers[name];\n delete state.fields[name];\n if (validatorRemoved) {\n state.formState.errors = setIn(state.formState.errors, name, undefined) || {};\n }\n if (destroyOnUnregister) {\n state.formState.values = setIn(state.formState.values, name, undefined, true) || {};\n }\n }\n if (!silent) {\n if (validatorRemoved) {\n runValidation(undefined, function () {\n notifyFormListeners();\n notifyFieldListeners();\n });\n } else if (lastOne) {\n // values or errors may have changed\n notifyFormListeners();\n }\n }\n };\n },\n reset: function reset(initialValues) {\n if (initialValues === void 0) {\n initialValues = state.formState.initialValues;\n }\n if (state.formState.submitting) {\n state.formState.resetWhileSubmitting = true;\n }\n state.formState.submitFailed = false;\n state.formState.submitSucceeded = false;\n delete state.formState.submitError;\n delete state.formState.submitErrors;\n delete state.formState.lastSubmittedValues;\n api.initialize(initialValues || {});\n },\n /**\n * Resets all field flags (e.g. touched, visited, etc.) to their initial state\n */\n resetFieldState: function resetFieldState(name) {\n state.fields[name] = _extends({}, state.fields[name], {\n active: false,\n lastFieldState: undefined,\n modified: false,\n touched: false,\n valid: true,\n validating: false,\n visited: false\n });\n runValidation(undefined, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n },\n /**\n * Returns the form to a clean slate; that is:\n * - Clear all values\n * - Resets all fields to their initial state\n */\n restart: function restart(initialValues) {\n if (initialValues === void 0) {\n initialValues = state.formState.initialValues;\n }\n api.batch(function () {\n for (var name in state.fields) {\n api.resetFieldState(name);\n state.fields[name] = _extends({}, state.fields[name], {\n active: false,\n lastFieldState: undefined,\n modified: false,\n modifiedSinceLastSubmit: false,\n touched: false,\n valid: true,\n validating: false,\n visited: false\n });\n }\n api.reset(initialValues);\n });\n },\n resumeValidation: function resumeValidation() {\n validationPaused = false;\n preventNotificationWhileValidationPaused = false;\n if (validationBlocked) {\n // validation was attempted while it was paused, so run it now\n runValidation(undefined, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n }\n validationBlocked = false;\n },\n setConfig: function setConfig(name, value) {\n switch (name) {\n case \"debug\":\n debug = value;\n break;\n case \"destroyOnUnregister\":\n destroyOnUnregister = value;\n break;\n case \"initialValues\":\n api.initialize(value);\n break;\n case \"keepDirtyOnReinitialize\":\n keepDirtyOnReinitialize = value;\n break;\n case \"mutators\":\n mutators = value;\n if (value) {\n Object.keys(mutatorsApi).forEach(function (key) {\n if (!(key in value)) {\n delete mutatorsApi[key];\n }\n });\n Object.keys(value).forEach(function (key) {\n mutatorsApi[key] = getMutatorApi(key);\n });\n } else {\n Object.keys(mutatorsApi).forEach(function (key) {\n delete mutatorsApi[key];\n });\n }\n break;\n case \"onSubmit\":\n onSubmit = value;\n break;\n case \"validate\":\n validate = value;\n runValidation(undefined, function () {\n notifyFieldListeners();\n notifyFormListeners();\n });\n break;\n case \"validateOnBlur\":\n validateOnBlur = value;\n break;\n default:\n throw new Error(\"Unrecognised option \" + name);\n }\n },\n submit: function submit() {\n var formState = state.formState;\n if (formState.submitting) {\n return;\n }\n delete formState.submitErrors;\n delete formState.submitError;\n formState.lastSubmittedValues = _extends({}, formState.values);\n if (hasSyncErrors()) {\n markAllFieldsTouched();\n resetModifiedAfterSubmit();\n state.formState.submitFailed = true;\n notifyFormListeners();\n notifyFieldListeners();\n return; // no submit for you!!\n }\n\n var asyncValidationPromisesKeys = Object.keys(asyncValidationPromises);\n if (asyncValidationPromisesKeys.length) {\n // still waiting on async validation to complete...\n Promise.all(asyncValidationPromisesKeys.map(function (key) {\n return asyncValidationPromises[Number(key)];\n })).then(api.submit, console.error);\n return;\n }\n var submitIsBlocked = beforeSubmit();\n if (submitIsBlocked) {\n return;\n }\n var resolvePromise;\n var completeCalled = false;\n var complete = function complete(errors) {\n formState.submitting = false;\n var resetWhileSubmitting = formState.resetWhileSubmitting;\n if (resetWhileSubmitting) {\n formState.resetWhileSubmitting = false;\n }\n if (errors && hasAnyError(errors)) {\n formState.submitFailed = true;\n formState.submitSucceeded = false;\n formState.submitErrors = errors;\n formState.submitError = errors[FORM_ERROR];\n markAllFieldsTouched();\n } else {\n if (!resetWhileSubmitting) {\n formState.submitFailed = false;\n formState.submitSucceeded = true;\n }\n afterSubmit();\n }\n notifyFormListeners();\n notifyFieldListeners();\n completeCalled = true;\n if (resolvePromise) {\n resolvePromise(errors);\n }\n return errors;\n };\n formState.submitting = true;\n formState.submitFailed = false;\n formState.submitSucceeded = false;\n formState.lastSubmittedValues = _extends({}, formState.values);\n resetModifiedAfterSubmit();\n\n // onSubmit is either sync, callback or async with a Promise\n var result = onSubmit(formState.values, api, complete);\n if (!completeCalled) {\n if (result && isPromise(result)) {\n // onSubmit is async with a Promise\n notifyFormListeners(); // let everyone know we are submitting\n notifyFieldListeners(); // notify fields also\n return result.then(complete, function (error) {\n complete();\n throw error;\n });\n } else if (onSubmit.length >= 3) {\n // must be async, so we should return a Promise\n notifyFormListeners(); // let everyone know we are submitting\n notifyFieldListeners(); // notify fields also\n return new Promise(function (resolve) {\n resolvePromise = resolve;\n });\n } else {\n // onSubmit is sync\n complete(result);\n }\n }\n },\n subscribe: function subscribe(subscriber, subscription) {\n if (!subscriber) {\n throw new Error(\"No callback given.\");\n }\n if (!subscription) {\n throw new Error(\"No subscription provided. What values do you want to listen to?\");\n }\n var memoized = memoize(subscriber);\n var subscribers = state.subscribers;\n var index = subscribers.index++;\n subscribers.entries[index] = {\n subscriber: memoized,\n subscription: subscription,\n notified: false\n };\n var nextFormState = calculateNextFormState();\n notifySubscriber(memoized, subscription, nextFormState, nextFormState, filterFormState, true);\n return function () {\n delete subscribers.entries[index];\n };\n }\n };\n return api;\n}\n\nexport { ARRAY_ERROR, FORM_ERROR, configOptions, createForm, fieldSubscriptionItems, formSubscriptionItems, getIn, setIn, version };\n","import React from 'react';\n\nexport function useStableEventHandler<TFunc extends (...args: unknown[]) => void>(\n func: TFunc | undefined,\n) {\n const ref = React.useRef<TFunc | undefined>(undefined);\n\n React.useEffect(() => {\n ref.current = func;\n return () => {\n ref.current = undefined;\n };\n }, [func]);\n\n return React.useCallback((...args: Parameters<TFunc>) => {\n return ref.current?.(...args);\n }, []);\n}\n","export type Lang = 'ru' | 'en';\n\ninterface Config {\n lang: Lang;\n}\n\ntype Subscriber = (config: Config) => void;\n\nlet subscribers: Subscriber[] = [];\n\nlet config: Config = readOnly({lang: 'en'});\n\nfunction readOnly(newConfig: Config) {\n return new Proxy(newConfig, {\n set: () => {\n throw new Error('Do not edit the config directly');\n },\n });\n}\n\nexport const configure = (newConfig: Config) => {\n config = readOnly(Object.assign({}, config, newConfig));\n subscribers.forEach((sub) => {\n sub(config);\n });\n};\n\nexport const subscribeConfigure = (sub: Subscriber) => {\n subscribers.push(sub);\n sub(config);\n\n return () => {\n subscribers = subscribers.filter((item) => item !== sub);\n };\n};\n\nexport const getConfig = (): Config => config;\n","import React, {useCallback} from 'react';\n\nimport {Checkbox, CheckboxProps} from '@gravity-ui/uikit';\n\nimport './CheckBoxControl.scss';\n\nexport interface CheckBoxControlProps\n extends Omit<CheckboxProps, 'value' | 'view' | 'checked' | 'onUpdate' | 'onChange'> {\n value: boolean;\n onChange: (value: CheckBoxControlProps['value']) => void;\n}\n\nexport function CheckBoxControl({value, onChange, ...props}: CheckBoxControlProps) {\n const onCheckBoxChange = useCallback(() => onChange(!value), [onChange, value]);\n const {children, ...rest} = props || {};\n\n return (\n <Checkbox onChange={onCheckBoxChange} size=\"l\" {...rest} checked={value}>\n {children}\n </Checkbox>\n );\n}\n\nCheckBoxControl.getDefaultValue = function () {\n return false;\n};\n\nCheckBoxControl.isEmpty = function (value: CheckBoxControlProps['value']) {\n return typeof value !== 'boolean' || !value;\n};\n","import {withNaming} from '@bem-react/classname';\n\nexport const NAMESPACE = 'df-';\n\nexport const dfCN = withNaming({n: NAMESPACE, e: '__', m: '_'});\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport * as React from 'react';\nimport React__default from 'react';\nimport { formSubscriptionItems, createForm, version as version$1, fieldSubscriptionItems } from 'final-form';\n\nvar _excluded$3 = [\"render\", \"children\", \"component\"];\n// shared logic between components that use either render prop,\n// children render function, or component prop\nfunction renderComponent(props, lazyProps, name) {\n var render = props.render,\n children = props.children,\n component = props.component,\n rest = _objectWithoutPropertiesLoose(props, _excluded$3);\n\n if (component) {\n return /*#__PURE__*/React.createElement(component, Object.assign(lazyProps, rest, {\n children: children,\n render: render\n }));\n }\n\n if (render) {\n return render(children === undefined ? Object.assign(lazyProps, rest) : // inject children back in\n Object.assign(lazyProps, rest, {\n children: children\n }));\n }\n\n if (typeof children !== \"function\") {\n throw new Error(\"Must specify either a render prop, a render function as children, or a component prop to \" + name);\n }\n\n return children(Object.assign(lazyProps, rest));\n}\n\nfunction useWhenValueChanges(value, callback, isEqual) {\n if (isEqual === void 0) {\n isEqual = function isEqual(a, b) {\n return a === b;\n };\n }\n\n var previous = React__default.useRef(value);\n React__default.useEffect(function () {\n if (!isEqual(value, previous.current)) {\n callback();\n previous.current = value;\n }\n });\n}\n\n/**\n * A simple hook to create a constant value that lives for\n * the lifetime of the component.\n *\n * Plagiarized from https://github.com/Andarist/use-constant\n *\n * Do NOT reuse this code unless you know what you're doing.\n * Use Andarist's hook; it's more fault tolerant to things like\n * falsy values.\n *\n * @param {Function} init - A function to generate the value\n */\n\nfunction useConstant(init) {\n var ref = React__default.useRef();\n\n if (!ref.current) {\n ref.current = init();\n }\n\n return ref.current;\n}\n\nvar shallowEqual = function shallowEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== \"object\" || !a || typeof b !== \"object\" || !b) {\n return false;\n }\n\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(b);\n\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key) || a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n};\n\nvar isSyntheticEvent = function isSyntheticEvent(candidate) {\n return !!(candidate && typeof candidate.stopPropagation === \"function\");\n};\n\nvar ReactFinalFormContext = /*#__PURE__*/React.createContext();\n\nfunction useLatest(value) {\n var ref = React__default.useRef(value);\n React__default.useEffect(function () {\n ref.current = value;\n });\n return ref;\n}\n\nvar version = \"6.5.8\";\n\nvar addLazyState = function addLazyState(dest, state, keys) {\n keys.forEach(function (key) {\n Object.defineProperty(dest, key, {\n get: function get() {\n return state[key];\n },\n enumerable: true\n });\n });\n};\n\nvar addLazyFormState = function addLazyFormState(dest, state) {\n return addLazyState(dest, state, [\"active\", \"dirty\", \"dirtyFields\", \"dirtySinceLastSubmit\", \"dirtyFieldsSinceLastSubmit\", \"error\", \"errors\", \"hasSubmitErrors\", \"hasValidationErrors\", \"initialValues\", \"invalid\", \"modified\", \"modifiedSinceLastSubmit\", \"pristine\", \"submitError\", \"submitErrors\", \"submitFailed\", \"submitSucceeded\", \"submitting\", \"touched\", \"valid\", \"validating\", \"values\", \"visited\"]);\n};\nvar addLazyFieldMetaState = function addLazyFieldMetaState(dest, state) {\n return addLazyState(dest, state, [\"active\", \"data\", \"dirty\", \"dirtySinceLastSubmit\", \"error\", \"initial\", \"invalid\", \"length\", \"modified\", \"modifiedSinceLastSubmit\", \"pristine\", \"submitError\", \"submitFailed\", \"submitSucceeded\", \"submitting\", \"touched\", \"valid\", \"validating\", \"visited\"]);\n};\n\nvar _excluded$2 = [\"debug\", \"decorators\", \"destroyOnUnregister\", \"form\", \"initialValues\", \"initialValuesEqual\", \"keepDirtyOnReinitialize\", \"mutators\", \"onSubmit\", \"subscription\", \"validate\", \"validateOnBlur\"];\nvar versions = {\n \"final-form\": version$1,\n \"react-final-form\": version\n};\nvar all$1 = formSubscriptionItems.reduce(function (result, key) {\n result[key] = true;\n return result;\n}, {});\n\nfunction ReactFinalForm(_ref) {\n var debug = _ref.debug,\n _ref$decorators = _ref.decorators,\n decorators = _ref$decorators === void 0 ? [] : _ref$decorators,\n destroyOnUnregister = _ref.destroyOnUnregister,\n alternateFormApi = _ref.form,\n initialValues = _ref.initialValues,\n initialValuesEqual = _ref.initialValuesEqual,\n keepDirtyOnReinitialize = _ref.keepDirtyOnReinitialize,\n mutators = _ref.mutators,\n onSubmit = _ref.onSubmit,\n _ref$subscription = _ref.subscription,\n subscription = _ref$subscription === void 0 ? all$1 : _ref$subscription,\n validate = _ref.validate,\n validateOnBlur = _ref.validateOnBlur,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n var config = {\n debug: debug,\n destroyOnUnregister: destroyOnUnregister,\n initialValues: initialValues,\n keepDirtyOnReinitialize: keepDirtyOnReinitialize,\n mutators: mutators,\n onSubmit: onSubmit,\n validate: validate,\n validateOnBlur: validateOnBlur\n };\n var form = useConstant(function () {\n var f = alternateFormApi || createForm(config); // pause validation until children register all fields on first render (unpaused in useEffect() below)\n\n f.pauseValidation();\n return f;\n }); // synchronously register and unregister to query form state for our subscription on first render\n\n var _React$useState = React.useState(function () {\n var initialState = {};\n form.subscribe(function (state) {\n initialState = state;\n }, subscription)();\n return initialState;\n }),\n state = _React$useState[0],\n setState = _React$useState[1]; // save a copy of state that can break through the closure\n // on the shallowEqual() line below.\n\n\n var stateRef = useLatest(state);\n React.useEffect(function () {\n // We have rendered, so all fields are now registered, so we can unpause validation\n form.isValidationPaused() && form.resumeValidation();\n var unsubscriptions = [form.subscribe(function (s) {\n if (!shallowEqual(s, stateRef.current)) {\n setState(s);\n }\n }, subscription)].concat(decorators ? decorators.map(function (decorator) {\n return (// this noop ternary is to appease the flow gods\n // istanbul ignore next\n decorator(form)\n );\n }) : []);\n return function () {\n form.pauseValidation(); // pause validation so we don't revalidate on every field deregistration\n\n unsubscriptions.reverse().forEach(function (unsubscribe) {\n return unsubscribe();\n }); // don't need to resume validation here; either unmounting, or will re-run this hook with new deps\n }; // eslint-disable-next-line react-hooks/exhaustive-deps\n }, decorators); // warn about decorator changes\n // istanbul ignore next\n\n if (process.env.NODE_ENV !== \"production\") {\n // You're never supposed to use hooks inside a conditional, but in this\n // case we can be certain that you're not going to be changing your\n // NODE_ENV between renders, so this is safe.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useWhenValueChanges(decorators, function () {\n console.error(\"Form decorators should not change from one render to the next as new values will be ignored\");\n }, shallowEqual);\n } // allow updatable config\n\n\n useWhenValueChanges(debug, function () {\n form.setConfig(\"debug\", debug);\n });\n useWhenValueChanges(destroyOnUnregister, function () {\n form.destroyOnUnregister = !!destroyOnUnregister;\n });\n useWhenValueChanges(keepDirtyOnReinitialize, function () {\n form.setConfig(\"keepDirtyOnReinitialize\", keepDirtyOnReinitialize);\n });\n useWhenValueChanges(initialValues, function () {\n form.setConfig(\"initialValues\", initialValues);\n }, initialValuesEqual || shallowEqual);\n useWhenValueChanges(mutators, function () {\n form.setConfig(\"mutators\", mutators);\n });\n useWhenValueChanges(onSubmit, function () {\n form.setConfig(\"onSubmit\", onSubmit);\n });\n useWhenValueChanges(validate, function () {\n form.setConfig(\"validate\", validate);\n });\n useWhenValueChanges(validateOnBlur, function () {\n form.setConfig(\"validateOnBlur\", validateOnBlur);\n });\n\n var handleSubmit = function handleSubmit(event) {\n if (event) {\n // sometimes not true, e.g. React Native\n if (typeof event.preventDefault === \"function\") {\n event.preventDefault();\n }\n\n if (typeof event.stopPropagation === \"function\") {\n // prevent any outer forms from receiving the event too\n event.stopPropagation();\n }\n }\n\n return form.submit();\n };\n\n var renderProps = {\n form: _extends({}, form, {\n reset: function reset(eventOrValues) {\n if (isSyntheticEvent(eventOrValues)) {\n // it's a React SyntheticEvent, call reset with no arguments\n form.reset();\n } else {\n form.reset(eventOrValues);\n }\n }\n }),\n handleSubmit: handleSubmit\n };\n addLazyFormState(renderProps, state);\n return /*#__PURE__*/React.createElement(ReactFinalFormContext.Provider, {\n value: form\n }, renderComponent(_extends({}, rest, {\n __versions: versions\n }), renderProps, \"ReactFinalForm\"));\n}\n\nfunction useForm(componentName) {\n var form = React.useContext(ReactFinalFormContext);\n\n if (!form) {\n throw new Error((componentName || \"useForm\") + \" must be used inside of a <Form> component\");\n }\n\n return form;\n}\n\nfunction useFormState(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n onChange = _ref.onChange,\n _ref$subscription = _ref.subscription,\n subscription = _ref$subscription === void 0 ? all$1 : _ref$subscription;\n\n var form = useForm(\"useFormState\");\n var firstRender = React.useRef(true);\n var onChangeRef = React.useRef(onChange);\n onChangeRef.current = onChange; // synchronously register and unregister to query field state for our subscription on first render\n\n var _React$useState = React.useState(function () {\n var initialState = {};\n form.subscribe(function (state) {\n initialState = state;\n }, subscription)();\n\n if (onChange) {\n onChange(initialState);\n }\n\n return initialState;\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n React.useEffect(function () {\n return form.subscribe(function (newState) {\n if (firstRender.current) {\n firstRender.current = false;\n } else {\n setState(newState);\n\n if (onChangeRef.current) {\n onChangeRef.current(newState);\n }\n }\n }, subscription);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n var lazyState = {};\n addLazyFormState(lazyState, state);\n return lazyState;\n}\n\nvar _excluded$1 = [\"onChange\", \"subscription\"];\n\nfunction FormSpy(_ref) {\n var onChange = _ref.onChange,\n subscription = _ref.subscription,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n var reactFinalForm = useForm(\"FormSpy\");\n var state = useFormState({\n onChange: onChange,\n subscription: subscription\n });\n\n if (onChange) {\n return null;\n }\n\n var renderProps = {\n form: _extends({}, reactFinalForm, {\n reset: function reset(eventOrValues) {\n if (isSyntheticEvent(eventOrValues)) {\n // it's a React SyntheticEvent, call reset with no arguments\n reactFinalForm.reset();\n } else {\n reactFinalForm.reset(eventOrValues);\n }\n }\n })\n };\n return renderComponent(_extends({}, rest, renderProps), state, \"FormSpy\");\n}\n\nvar isReactNative = typeof window !== \"undefined\" && window.navigator && window.navigator.product && window.navigator.product === \"ReactNative\";\n\nvar getSelectedValues = function getSelectedValues(options) {\n var result = [];\n\n if (options) {\n for (var index = 0; index < options.length; index++) {\n var option = options[index];\n\n if (option.selected) {\n result.push(option.value);\n }\n }\n }\n\n return result;\n};\n\nvar getValue = function getValue(event, currentValue, valueProp, isReactNative) {\n if (!isReactNative && event.nativeEvent && event.nativeEvent.text !== undefined) {\n return event.nativeEvent.text;\n }\n\n if (isReactNative && event.nativeEvent) {\n return event.nativeEvent.text;\n }\n\n var detypedEvent = event;\n var _detypedEvent$target = detypedEvent.target,\n type = _detypedEvent$target.type,\n value = _detypedEvent$target.value,\n checked = _detypedEvent$target.checked;\n\n switch (type) {\n case \"checkbox\":\n if (valueProp !== undefined) {\n // we are maintaining an array, not just a boolean\n if (checked) {\n // add value to current array value\n return Array.isArray(currentValue) ? currentValue.concat(valueProp) : [valueProp];\n } else {\n // remove value from current array value\n if (!Array.isArray(currentValue)) {\n return currentValue;\n }\n\n var index = currentValue.indexOf(valueProp);\n\n if (index < 0) {\n return currentValue;\n } else {\n return currentValue.slice(0, index).concat(currentValue.slice(index + 1));\n }\n }\n } else {\n // it's just a boolean\n return !!checked;\n }\n\n case \"select-multiple\":\n return getSelectedValues(event.target.options);\n\n default:\n return value;\n }\n};\n\n/**\n * Creates a callback, even with closures, that will be\n * instance === for the lifetime of the component, always\n * calling the most recent version of the function and its\n * closures.\n */\n\nfunction useConstantCallback(callback) {\n var ref = React.useRef(callback);\n React.useEffect(function () {\n ref.current = callback;\n });\n return React.useCallback(function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return ref.current.apply(null, args);\n }, []);\n}\n\nvar all = fieldSubscriptionItems.reduce(function (result, key) {\n result[key] = true;\n return result;\n}, {});\n\nvar defaultFormat = function defaultFormat(value, name) {\n return value === undefined ? \"\" : value;\n};\n\nvar defaultParse = function defaultParse(value, name) {\n return value === \"\" ? undefined : value;\n};\n\nvar defaultIsEqual = function defaultIsEqual(a, b) {\n return a === b;\n};\n\nfunction useField(name, config) {\n if (config === void 0) {\n config = {};\n }\n\n var _config = config,\n afterSubmit = _config.afterSubmit,\n allowNull = _config.allowNull,\n component = _config.component,\n data = _config.data,\n defaultValue = _config.defaultValue,\n _config$format = _config.format,\n format = _config$format === void 0 ? defaultFormat : _config$format,\n formatOnBlur = _config.formatOnBlur,\n initialValue = _config.initialValue,\n multiple = _config.multiple,\n _config$parse = _config.parse,\n parse = _config$parse === void 0 ? defaultParse : _config$parse,\n _config$subscription = _config.subscription,\n subscription = _config$subscription === void 0 ? all : _config$subscription,\n type = _config.type,\n validateFields = _config.validateFields,\n _value = _config.value;\n var form = useForm(\"useField\");\n var configRef = useLatest(config);\n\n var register = function register(callback, silent) {\n return (// avoid using `state` const in any closures created inside `register`\n // because they would refer `state` from current execution context\n // whereas actual `state` would defined in the subsequent `useField` hook\n // execution\n // (that would be caused by `setState` call performed in `register` callback)\n form.registerField(name, callback, subscription, {\n afterSubmit: afterSubmit,\n beforeSubmit: function beforeSubmit() {\n var _configRef$current = configRef.current,\n beforeSubmit = _configRef$current.beforeSubmit,\n formatOnBlur = _configRef$current.formatOnBlur,\n _configRef$current$fo = _configRef$current.format,\n format = _configRef$current$fo === void 0 ? defaultFormat : _configRef$current$fo;\n\n if (formatOnBlur) {\n var _ref = form.getFieldState(name),\n value = _ref.value;\n\n var formatted = format(value, name);\n\n if (formatted !== value) {\n form.change(name, formatted);\n }\n }\n\n return beforeSubmit && beforeSubmit();\n },\n data: data,\n defaultValue: defaultValue,\n getValidator: function getValidator() {\n return configRef.current.validate;\n },\n initialValue: initialValue,\n isEqual: function isEqual(a, b) {\n return (configRef.current.isEqual || defaultIsEqual)(a, b);\n },\n silent: silent,\n validateFields: validateFields\n })\n );\n };\n\n var firstRender = React.useRef(true); // synchronously register and unregister to query field state for our subscription on first render\n\n var _React$useState = React.useState(function () {\n var initialState = {}; // temporarily disable destroyOnUnregister\n\n // temporarily disable destroyOnUnregister\n var destroyOnUnregister = form.destroyOnUnregister;\n form.destroyOnUnregister = false;\n register(function (state) {\n initialState = state;\n }, true)(); // return destroyOnUnregister to its original value\n\n // return destroyOnUnregister to its original value\n form.destroyOnUnregister = destroyOnUnregister;\n return initialState;\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n React.useEffect(function () {\n return register(function (state) {\n if (firstRender.current) {\n firstRender.current = false;\n } else {\n setState(state);\n }\n }, false);\n }, // eslint-disable-next-line react-hooks/exhaustive-deps\n [name, data, defaultValue, // If we want to allow inline fat-arrow field-level validation functions, we\n // cannot reregister field every time validate function !==.\n // validate,\n initialValue // The validateFields array is often passed as validateFields={[]}, creating\n // a !== new array every time. If it needs to be changed, a rerender/reregister\n // can be forced by changing the key prop\n // validateFields\n ]);\n var meta = {};\n addLazyFieldMetaState(meta, state);\n var input = {\n name: name,\n\n get value() {\n var value = state.value;\n\n if (formatOnBlur) {\n if (component === \"input\") {\n value = defaultFormat(value);\n }\n } else {\n value = format(value, name);\n }\n\n if (value === null && !allowNull) {\n value = \"\";\n }\n\n if (type === \"checkbox\" || type === \"radio\") {\n return _value;\n } else if (component === \"select\" && multiple) {\n return value || [];\n }\n\n return value;\n },\n\n get checked() {\n var value = state.value;\n\n if (type === \"checkbox\") {\n value = format(value, name);\n\n if (_value === undefined) {\n return !!value;\n } else {\n return !!(Array.isArray(value) && ~value.indexOf(_value));\n }\n } else if (type === \"radio\") {\n return format(value, name) === _value;\n }\n\n return undefined;\n },\n\n onBlur: useConstantCallback(function (event) {\n state.blur();\n\n if (formatOnBlur) {\n /**\n * Here we must fetch the value directly from Final Form because we cannot\n * trust that our `state` closure has the most recent value. This is a problem\n * if-and-only-if the library consumer has called `onChange()` immediately\n * before calling `onBlur()`, but before the field has had a chance to receive\n * the value update from Final Form.\n */\n var fieldState = form.getFieldState(state.name);\n state.change(format(fieldState.value, state.name));\n }\n }),\n onChange: useConstantCallback(function (event) {\n // istanbul ignore next\n if (process.env.NODE_ENV !== \"production\" && event && event.target) {\n var targetType = event.target.type;\n var unknown = ~[\"checkbox\", \"radio\", \"select-multiple\"].indexOf(targetType) && !type && component !== \"select\";\n\n var _value2 = targetType === \"select-multiple\" ? state.value : _value;\n\n if (unknown) {\n console.error(\"You must pass `type=\\\"\" + (targetType === \"select-multiple\" ? \"select\" : targetType) + \"\\\"` prop to your Field(\" + name + \") component.\\n\" + (\"Without it we don't know how to unpack your `value` prop - \" + (Array.isArray(_value2) ? \"[\" + _value2 + \"]\" : \"\\\"\" + _value2 + \"\\\"\") + \".\"));\n }\n }\n\n var value = event && event.target ? getValue(event, state.value, _value, isReactNative) : event;\n state.change(parse(value, name));\n }),\n onFocus: useConstantCallback(function (event) {\n return state.focus();\n })\n };\n\n if (multiple) {\n input.multiple = multiple;\n }\n\n if (type !== undefined) {\n input.type = type;\n }\n\n var renderProps = {\n input: input,\n meta: meta\n }; // assign to force Flow check\n\n return renderProps;\n}\n\nvar _excluded = [\"afterSubmit\", \"allowNull\", \"beforeSubmit\", \"children\", \"component\", \"data\", \"defaultValue\", \"format\", \"formatOnBlur\", \"initialValue\", \"isEqual\", \"multiple\", \"name\", \"parse\", \"subscription\", \"type\", \"validate\", \"validateFields\", \"value\"];\nvar Field = /*#__PURE__*/React.forwardRef(function Field(_ref, ref) {\n var afterSubmit = _ref.afterSubmit,\n allowNull = _ref.allowNull,\n beforeSubmit = _ref.beforeSubmit,\n children = _ref.children,\n component = _ref.component,\n data = _ref.data,\n defaultValue = _ref.defaultValue,\n format = _ref.format,\n formatOnBlur = _ref.formatOnBlur,\n initialValue = _ref.initialValue,\n isEqual = _ref.isEqual,\n multiple = _ref.multiple,\n name = _ref.name,\n parse = _ref.parse,\n subscription = _ref.subscription,\n type = _ref.type,\n validate = _ref.validate,\n validateFields = _ref.validateFields,\n value = _ref.value,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var field = useField(name, {\n afterSubmit: afterSubmit,\n allowNull: allowNull,\n beforeSubmit: beforeSubmit,\n children: children,\n component: component,\n data: data,\n defaultValue: defaultValue,\n format: format,\n formatOnBlur: formatOnBlur,\n initialValue: initialValue,\n isEqual: isEqual,\n multiple: multiple,\n parse: parse,\n subscription: subscription,\n type: type,\n validate: validate,\n validateFields: validateFields,\n value: value\n });\n\n if (typeof children === \"function\") {\n return children(_extends({}, field, rest));\n }\n\n if (typeof component === \"string\") {\n // ignore meta, combine input with any other props\n return /*#__PURE__*/React.createElement(component, _extends({}, field.input, {\n children: children,\n ref: ref\n }, rest));\n }\n\n if (!name) {\n throw new Error(\"prop name cannot be undefined in <Field> component\");\n }\n\n return renderComponent(_extends({\n children: children,\n component: component,\n ref: ref\n }, rest), field, \"Field(\" + name + \")\");\n});\n\nfunction withTypes() {\n return {\n Form: ReactFinalForm,\n FormSpy: FormSpy\n };\n}\n\nexport { Field, ReactFinalForm as Form, FormSpy, useField, useForm, useFormState, version, withTypes };\n","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\n// \nfunction copyField(oldFields, oldKey, newFields, newKey) {\n newFields[newKey] = _extends({}, oldFields[oldKey], {\n name: newKey,\n // prevent functions from being overwritten\n // if the newFields[newKey] does not exist, it will be created\n // when that field gets registered, with its own change/blur/focus callbacks\n change: oldFields[newKey] && oldFields[newKey].change,\n blur: oldFields[newKey] && oldFields[newKey].blur,\n focus: oldFields[newKey] && oldFields[newKey].focus,\n lastFieldState: undefined // clearing lastFieldState forces renotification\n\n });\n\n if (!newFields[newKey].change) {\n delete newFields[newKey].change;\n }\n\n if (!newFields[newKey].blur) {\n delete newFields[newKey].blur;\n }\n\n if (!newFields[newKey].focus) {\n delete newFields[newKey].focus;\n }\n}\n\n// \n// From MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#Escaping\nvar escapeRegexTokens = function escapeRegexTokens(string) {\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n}; // $& means the whole matched string\n\n// \n\nvar insert = function insert(_ref, state, _ref2) {\n var name = _ref[0],\n index = _ref[1],\n value = _ref[2];\n var changeValue = _ref2.changeValue;\n changeValue(state, name, function (array) {\n var copy = [].concat(array || []);\n copy.splice(index, 0, value);\n return copy;\n }); // now we have increment any higher indexes\n\n var pattern = new RegExp(\"^\" + escapeRegexTokens(name) + \"\\\\[(\\\\d+)\\\\](.*)\");\n var newFields = {};\n Object.keys(state.fields).forEach(function (key) {\n var tokens = pattern.exec(key);\n\n if (tokens) {\n var fieldIndex = Number(tokens[1]);\n\n if (fieldIndex >= index) {\n // Shift all higher indices up\n var incrementedKey = name + \"[\" + (fieldIndex + 1) + \"]\" + tokens[2];\n copyField(state.fields, key, newFields, incrementedKey);\n return;\n }\n } // Keep this field that does not match the name,\n // or has index smaller than what is being inserted\n\n\n newFields[key] = state.fields[key];\n });\n state.fields = newFields;\n};\n\n// \nvar concat = function concat(_ref, state, _ref2) {\n var name = _ref[0],\n value = _ref[1];\n var changeValue = _ref2.changeValue;\n changeValue(state, name, function (array) {\n return array ? [].concat(array, value) : value;\n });\n};\n\n// \n\nvar move = function move(_ref, state, _ref2) {\n var name = _ref[0],\n from = _ref[1],\n to = _ref[2];\n var changeValue = _ref2.changeValue;\n\n if (from === to) {\n return;\n }\n\n changeValue(state, name, function (array) {\n var copy = [].concat(array || []);\n var value = copy[from];\n copy.splice(from, 1);\n copy.splice(to, 0, value);\n return copy;\n });\n var newFields = {};\n var pattern = new RegExp(\"^\" + escapeRegexTokens(name) + \"\\\\[(\\\\d+)\\\\](.*)\");\n var lowest;\n var highest;\n var increment;\n\n if (from > to) {\n lowest = to;\n highest = from;\n increment = 1;\n } else {\n lowest = from;\n highest = to;\n increment = -1;\n }\n\n Object.keys(state.fields).forEach(function (key) {\n var tokens = pattern.exec(key);\n\n if (tokens) {\n var fieldIndex = Number(tokens[1]);\n\n if (fieldIndex === from) {\n var newKey = name + \"[\" + to + \"]\" + tokens[2];\n copyField(state.fields, key, newFields, newKey);\n return;\n }\n\n if (lowest <= fieldIndex && fieldIndex <= highest) {\n // Shift all indices\n var _newKey = name + \"[\" + (fieldIndex + increment) + \"]\" + tokens[2];\n\n copyField(state.fields, key, newFields, _newKey);\n return;\n }\n } // Keep this field that does not match the name,\n // or has index smaller or larger than affected range\n\n\n newFields[key] = state.fields[key];\n });\n state.fields = newFields;\n};\n\n// \n\nvar remove = function remove(_ref, state, _ref2) {\n var name = _ref[0],\n index = _ref[1];\n var changeValue = _ref2.changeValue,\n getIn = _ref2.getIn,\n setIn = _ref2.setIn;\n var returnValue;\n changeValue(state, name, function (array) {\n if (!array) {\n return array;\n }\n\n var copy = [].concat(array);\n returnValue = copy[index];\n copy.splice(index, 1);\n return copy.length > 0 ? copy : undefined;\n }); // now we have to remove any subfields for our index,\n // and decrement all higher indexes.\n\n var pattern = new RegExp(\"^\" + escapeRegexTokens(name) + \"\\\\[(\\\\d+)\\\\](.*)\");\n var newFields = {};\n Object.keys(state.fields).forEach(function (key) {\n var tokens = pattern.exec(key);\n\n if (tokens) {\n var fieldIndex = Number(tokens[1]);\n\n if (fieldIndex === index) {\n // delete any submitErrors for this array item\n // if the root key of the delete index\n if (key === name + \"[\" + index + \"]\") {\n var path = \"formState.submitErrors.\" + name;\n var submitErrors = getIn(state, path); // if has submitErrors for array\n\n if (Array.isArray(submitErrors)) {\n submitErrors.splice(index, 1);\n state = setIn(state, path, submitErrors);\n }\n }\n\n return;\n }\n\n if (fieldIndex > index) {\n // Shift all higher indices down\n var decrementedKey = name + \"[\" + (fieldIndex - 1) + \"]\" + tokens[2];\n copyField(state.fields, key, newFields, decrementedKey);\n return;\n }\n } // Keep this field that does not match the name,\n // or has index smaller than what is being removed\n\n\n newFields[key] = state.fields[key];\n });\n state.fields = newFields;\n return returnValue;\n};\n\n// \n\nvar pop = function pop(_ref, state, tools) {\n var name = _ref[0];\n var getIn = tools.getIn;\n var array = getIn(state.formState.values, name);\n return array && array.length > 0 ? remove([name, array.length - 1], state, tools) : undefined;\n};\n\n// \nvar push = function push(_ref, state, _ref2) {\n var name = _ref[0],\n value = _ref[1];\n var changeValue = _ref2.changeValue;\n changeValue(state, name, function (array) {\n return array ? [].concat(array, [value]) : [value];\n });\n};\n\n// \n\nvar binarySearch = function binarySearch(list, value) {\n // This algorithm assumes the items in list is unique\n var first = 0;\n var last = list.length - 1;\n var middle = 0;\n\n while (first <= last) {\n middle = Math.floor((first + last) / 2);\n\n if (list[middle] === value) {\n return middle;\n }\n\n if (list[middle] > value) {\n last = middle - 1;\n } else {\n first = middle + 1;\n }\n }\n\n return ~first;\n};\n\nvar removeBatch = function removeBatch(_ref, state, _ref2) {\n var name = _ref[0],\n indexes = _ref[1];\n var changeValue = _ref2.changeValue;\n\n if (indexes.length === 0) {\n return [];\n }\n\n var sortedIndexes = [].concat(indexes);\n sortedIndexes.sort(); // Remove duplicates\n\n for (var i = sortedIndexes.length - 1; i > 0; i -= 1) {\n if (sortedIndexes[i] === sortedIndexes[i - 1]) {\n sortedIndexes.splice(i, 1);\n }\n }\n\n var returnValue = [];\n changeValue(state, name, function (array) {\n // use original order of indexes for return value\n returnValue = indexes.map(function (index) {\n return array && array[index];\n });\n\n if (!array) {\n return array;\n }\n\n var copy = [].concat(array);\n\n for (var _i = sortedIndexes.length - 1; _i >= 0; _i -= 1) {\n var index = sortedIndexes[_i];\n copy.splice(index, 1);\n }\n\n return copy.length > 0 ? copy : undefined;\n }); // now we have to remove any subfields for our indexes,\n // and decrement all higher indexes.\n\n var pattern = new RegExp(\"^\" + escapeRegexTokens(name) + \"\\\\[(\\\\d+)\\\\](.*)\");\n var newFields = {};\n Object.keys(state.fields).forEach(function (key) {\n var tokens = pattern.exec(key);\n\n if (tokens) {\n var fieldIndex = Number(tokens[1]);\n var indexOfFieldIndex = binarySearch(sortedIndexes, fieldIndex);\n\n if (indexOfFieldIndex >= 0) {\n // One of the removed indices\n return;\n }\n\n if (fieldIndex > sortedIndexes[0]) {\n // Shift all higher indices down\n var decrementedKey = name + \"[\" + (fieldIndex - ~indexOfFieldIndex) + \"]\" + tokens[2];\n copyField(state.fields, key, newFields, decrementedKey);\n return;\n }\n } // Keep this field that does not match the name,\n // or has index smaller than what is being removed\n\n\n newFields[key] = state.fields[key];\n });\n state.fields = newFields;\n return returnValue;\n};\n\n// \n\nvar shift = function shift(_ref, state, tools) {\n var name = _ref[0];\n return remove([name, 0], state, tools);\n};\n\n// \n\nvar swap = function swap(_ref, state, _ref2) {\n var name = _ref[0],\n indexA = _ref[1],\n indexB = _ref[2];\n var changeValue = _ref2.changeValue;\n\n if (indexA === indexB) {\n return;\n }\n\n changeValue(state, name, function (array) {\n var copy = [].concat(array || []);\n var a = copy[indexA];\n copy[indexA] = copy[indexB];\n copy[indexB] = a;\n return copy;\n }); // swap all field state that begin with \"name[indexA]\" with that under \"name[indexB]\"\n\n var aPrefix = name + \"[\" + indexA + \"]\";\n var bPrefix = name + \"[\" + indexB + \"]\";\n var newFields = {};\n Object.keys(state.fields).forEach(function (key) {\n if (key.substring(0, aPrefix.length) === aPrefix) {\n var suffix = key.substring(aPrefix.length);\n var newKey = bPrefix + suffix;\n copyField(state.fields, key, newFields, newKey);\n } else if (key.substring(0, bPrefix.length) === bPrefix) {\n var _suffix = key.substring(bPrefix.length);\n\n var _newKey = aPrefix + _suffix;\n\n copyField(state.fields, key, newFields, _newKey);\n } else {\n // Keep this field that does not match the name\n newFields[key] = state.fields[key];\n }\n });\n state.fields = newFields;\n};\n\n// \n\nvar unshift = function unshift(_ref, state, tools) {\n var name = _ref[0],\n value = _ref[1];\n return insert([name, 0, value], state, tools);\n};\n\n// \nvar update = function update(_ref, state, _ref2) {\n var name = _ref[0],\n index = _ref[1],\n value = _ref[2];\n var changeValue = _ref2.changeValue;\n changeValue(state, name, function (array) {\n var copy = [].concat(array || []);\n copy.splice(index, 1, value);\n return copy;\n });\n};\n\n// \nvar mutators = {\n insert: insert,\n concat: concat,\n move: move,\n pop: pop,\n push: push,\n remove: remove,\n removeBatch: removeBatch,\n shift: shift,\n swap: swap,\n unshift: unshift,\n update: update\n};\n\nexport default mutators;\n","import _extends from '@babel/runtime/helpers/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/objectWithoutPropertiesLoose';\nimport { fieldSubscriptionItems, ARRAY_ERROR, version as version$1 } from 'final-form';\nimport { useForm, useField, version as version$2 } from 'react-final-form';\nimport * as React from 'react';\nimport React__default, { useMemo } from 'react';\n\nvar _excluded$2 = [\"render\", \"children\", \"component\"];\n// shared logic between components that use either render prop,\n// children render function, or component prop\nfunction renderComponent(props, name) {\n var render = props.render,\n children = props.children,\n component = props.component,\n rest = _objectWithoutPropertiesLoose(props, _excluded$2);\n if (component) {\n return /*#__PURE__*/React.createElement(component, _extends({}, rest, {\n children: children,\n render: render\n })); // inject children back in\n }\n\n if (render) {\n return render(children === undefined ? rest : _extends({}, rest, {\n children: children\n })); // inject children back in\n }\n\n if (typeof children !== 'function') {\n throw new Error(\"Must specify either a render prop, a render function as children, or a component prop to \" + name);\n }\n return children(rest);\n}\n\nvar defaultIsEqual = function defaultIsEqual(aArray, bArray) {\n return aArray === bArray || Array.isArray(aArray) && Array.isArray(bArray) && aArray.length === bArray.length && !aArray.some(function (a, index) {\n return a !== bArray[index];\n });\n};\n\n/**\n * A simple hook to create a constant value that lives for\n * the lifetime of the component.\n *\n * Plagiarized from https://github.com/Andarist/use-constant\n *\n * Do NOT reuse this code unless you know what you're doing.\n * Use Andarist's hook; it's more fault tolerant to things like\n * falsy values.\n *\n * @param {Function} init - A function to generate the value\n */\nfunction useConstant(init) {\n var ref = React__default.useRef();\n if (!ref.current) {\n ref.current = init();\n }\n return ref.current;\n}\n\nvar _excluded$1 = [\"length\"],\n _excluded2 = [\"meta\", \"input\"];\nvar all = fieldSubscriptionItems.reduce(function (result, key) {\n result[key] = true;\n return result;\n}, {});\nvar useFieldArray = function useFieldArray(name, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$subscription = _ref.subscription,\n subscription = _ref$subscription === void 0 ? all : _ref$subscription,\n defaultValue = _ref.defaultValue,\n initialValue = _ref.initialValue,\n _ref$isEqual = _ref.isEqual,\n isEqual = _ref$isEqual === void 0 ? defaultIsEqual : _ref$isEqual,\n validateProp = _ref.validate;\n var form = useForm('useFieldArray');\n var formMutators = form.mutators;\n var hasMutators = !!(formMutators && formMutators.push && formMutators.pop);\n if (!hasMutators) {\n throw new Error('Array mutators not found. You need to provide the mutators from final-form-arrays to your form');\n }\n var mutators = useMemo(function () {\n return (\n // curry the field name onto all mutator calls\n Object.keys(formMutators).reduce(function (result, key) {\n result[key] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return formMutators[key].apply(formMutators, [name].concat(args));\n };\n return result;\n }, {})\n );\n }, [name, formMutators]);\n var validate = useConstant(function () {\n return function (value, allValues, meta) {\n if (!validateProp) return undefined;\n var error = validateProp(value, allValues, meta);\n if (!error || Array.isArray(error)) {\n return error;\n } else {\n var arrayError = []\n // gross, but we have to set a string key on the array\n ;\n arrayError[ARRAY_ERROR] = error;\n return arrayError;\n }\n };\n });\n var _useField = useField(name, {\n subscription: _extends({}, subscription, {\n length: true\n }),\n defaultValue: defaultValue,\n initialValue: initialValue,\n isEqual: isEqual,\n validate: validate,\n format: function format(v) {\n return v;\n }\n }),\n _useField$meta = _useField.meta,\n length = _useField$meta.length,\n meta = _objectWithoutPropertiesLoose(_useField$meta, _excluded$1),\n input = _useField.input,\n fieldState = _objectWithoutPropertiesLoose(_useField, _excluded2);\n var forEach = function forEach(iterator) {\n // required || for Flow, but results in uncovered line in Jest/Istanbul\n // istanbul ignore next\n var len = length || 0;\n for (var i = 0; i < len; i++) {\n iterator(name + \"[\" + i + \"]\", i);\n }\n };\n var map = function map(iterator) {\n // required || for Flow, but results in uncovered line in Jest/Istanbul\n // istanbul ignore next\n var len = length || 0;\n var results = [];\n for (var i = 0; i < len; i++) {\n results.push(iterator(name + \"[\" + i + \"]\", i));\n }\n return results;\n };\n return {\n fields: _extends({\n name: name,\n forEach: forEach,\n length: length || 0,\n map: map\n }, mutators, fieldState, {\n value: input.value\n }),\n meta: meta\n };\n};\n\nvar version = \"3.1.3\";\n\nvar _excluded = [\"name\", \"subscription\", \"defaultValue\", \"initialValue\", \"isEqual\", \"validate\"];\nvar versions = {\n 'final-form': version$1,\n 'react-final-form': version$2,\n 'react-final-form-arrays': version\n};\nvar FieldArray = function FieldArray(_ref) {\n var name = _ref.name,\n subscription = _ref.subscription,\n defaultValue = _ref.defaultValue,\n initialValue = _ref.initialValue,\n isEqual = _ref.isEqual,\n validate = _ref.validate,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n var _useFieldArray = useFieldArray(name, {\n subscription: subscription,\n defaultValue: defaultValue,\n initialValue: initialValue,\n isEqual: isEqual,\n validate: validate\n }),\n fields = _useFieldArray.fields,\n meta = _useFieldArray.meta;\n return renderComponent(_extends({\n fields: fields,\n meta: _extends({}, meta, {\n __versions: versions\n })\n }, rest), \"FieldArray(\" + name + \")\");\n};\n\nexport { FieldArray, useFieldArray, version };\n","import { getIn } from 'final-form';\n\nvar isPromise = (function (obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n});\n\n// \n\nvar tripleEquals = function tripleEquals(a, b) {\n return a === b;\n};\n\nvar createDecorator = function createDecorator() {\n for (var _len = arguments.length, calculations = new Array(_len), _key = 0; _key < _len; _key++) {\n calculations[_key] = arguments[_key];\n }\n\n return function (form) {\n var previousValues = {};\n var unsubscribe = form.subscribe(function (_ref) {\n var values = _ref.values;\n form.batch(function () {\n var runUpdates = function runUpdates(field, isEqual, updates) {\n var next = values && getIn(values, field);\n var previous = previousValues && getIn(previousValues, field);\n\n if (!isEqual(next, previous)) {\n if (typeof updates === 'function') {\n var results = updates(next, field, values, previousValues);\n\n if (isPromise(results)) {\n results.then(function (resolved) {\n Object.keys(resolved).forEach(function (destField) {\n form.change(destField, resolved[destField]);\n });\n });\n } else {\n Object.keys(results).forEach(function (destField) {\n form.change(destField, results[destField]);\n });\n }\n } else {\n Object.keys(updates).forEach(function (destField) {\n var update = updates[destField];\n var result = update(next, values, previousValues);\n\n if (isPromise(result)) {\n result.then(function (resolved) {\n form.change(destField, resolved);\n });\n } else {\n form.change(destField, result);\n }\n });\n }\n }\n };\n\n var fields = form.getRegisteredFields();\n calculations.forEach(function (_ref2) {\n var field = _ref2.field,\n isEqual = _ref2.isEqual,\n updates = _ref2.updates;\n\n if (typeof field === 'string') {\n runUpdates(field, isEqual || tripleEquals, updates);\n } else {\n // field is a either array or regex\n var matches = Array.isArray(field) ? function (name) {\n return ~field.indexOf(name) || field.findIndex(function (f) {\n return f instanceof RegExp && f.test(name);\n }) !== -1;\n } : function (name) {\n return field.test(name);\n };\n fields.forEach(function (fieldName) {\n if (matches(fieldName)) {\n runUpdates(fieldName, isEqual || tripleEquals, updates);\n }\n });\n }\n });\n previousValues = values;\n });\n }, {\n values: true\n });\n return unsubscribe;\n };\n};\n\n//\n\nexport default createDecorator;\n","import { createElement, Component } from 'react';\nimport { Field } from 'react-final-form';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar ExternallyChangedState =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ExternallyChangedState, _React$Component);\n\n function ExternallyChangedState(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n previous: props.input.value,\n externallyChanged: false\n };\n return _this;\n }\n\n var _proto = ExternallyChangedState.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var _this$props = this.props,\n value = _this$props.input.value,\n active = _this$props.meta.active;\n var previous = this.state.previous;\n\n if (value !== previous) {\n this.setState({\n previous: value,\n externallyChanged: !active\n });\n }\n };\n\n _proto.render = function render() {\n return this.props.children(this.state.externallyChanged);\n };\n\n return ExternallyChangedState;\n}(Component);\n\nvar ExternallyChanged = function ExternallyChanged(_ref) {\n var name = _ref.name,\n children = _ref.children;\n return createElement(Field, {\n name: name,\n subscription: {\n active: true,\n value: true\n },\n allowNull: true,\n render: function render(props) {\n return createElement(ExternallyChangedState, _extends({}, props, {\n children: children\n }));\n }\n });\n};\n\nvar OnBlurState =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(OnBlurState, _React$Component);\n\n function OnBlurState(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n previous: !!props.meta.active\n };\n return _this;\n }\n\n var _proto = OnBlurState.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var _this$props = this.props,\n children = _this$props.children,\n active = _this$props.meta.active;\n var previous = this.state.previous;\n\n if (previous && !active) {\n children();\n }\n\n if (previous !== active) {\n this.setState({\n previous: active\n });\n }\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return OnBlurState;\n}(Component);\n\nvar OnBlur = function OnBlur(_ref) {\n var name = _ref.name,\n children = _ref.children;\n return createElement(Field, {\n name: name,\n subscription: {\n active: true\n },\n render: function render(props) {\n return createElement(OnBlurState, _extends({}, props, {\n children: children\n }));\n }\n });\n};\n\nvar OnChangeState =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(OnChangeState, _React$Component);\n\n function OnChangeState(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n previous: props.input.value\n };\n return _this;\n }\n\n var _proto = OnChangeState.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var _this$props = this.props,\n children = _this$props.children,\n value = _this$props.input.value;\n var previous = this.state.previous;\n\n if (value !== previous) {\n this.setState({\n previous: value\n });\n children(value, previous);\n }\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return OnChangeState;\n}(Component);\n\nvar OnChange = function OnChange(_ref) {\n var name = _ref.name,\n children = _ref.children;\n return createElement(Field, {\n name: name,\n subscription: {\n value: true\n },\n allowNull: true,\n render: function render(props) {\n return createElement(OnChangeState, _extends({}, props, {\n children: children\n }));\n }\n });\n};\n\nvar OnFocusState =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(OnFocusState, _React$Component);\n\n function OnFocusState(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n previous: !!props.meta.active\n };\n return _this;\n }\n\n var _proto = OnFocusState.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n var _this$props = this.props,\n children = _this$props.children,\n active = _this$props.meta.active;\n var previous = this.state.previous;\n\n if (active && !previous) {\n this.setState({\n previous: active\n });\n children();\n } else if (!active && previous) {\n this.setState({\n previous: active\n });\n }\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return OnFocusState;\n}(Component);\n\nvar OnFocus = function OnFocus(_ref) {\n var name = _ref.name,\n children = _ref.children;\n return createElement(Field, {\n name: name,\n subscription: {\n active: true\n },\n render: function render(props) {\n return createElement(OnFocusState, _extends({}, props, {\n children: children\n }));\n }\n });\n};\n\nexport { ExternallyChanged, OnBlur, OnChange, OnFocus };\n","import React from 'react';\n\nexport function CloseIcon(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <rect opacity=\"0.01\" width=\"24\" height=\"24\" fill=\"none\" />\n <path\n d=\"M6.5 6.5L17.5 17.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M17.5 6.5L6.5 17.5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n />\n </svg>\n );\n}\n\nexport function RepeatIcon(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M3.713 9a.75.75 0 0 1-.697-1.026l1.862-4.705a.75.75 0 0 1 1.318-.145l.9 1.328a9 9 0 1 1-3.939 9.234 1 1 0 0 1 1.966-.373 7 7 0 1 0 3.096-7.205l1.167 1.721A.75.75 0 0 1 8.766 9H3.712z\"\n />\n </svg>\n );\n}\n\nexport function DangerIcon(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n d=\"M7.08594 6.30469C7.0625 6.23438 7.08594 6.16406 7.15625 6.09375C7.20312 6.04688 7.27344 6 7.36719 6H8.63281C8.70312 6 8.77344 6.04688 8.84375 6.09375C8.89062 6.16406 8.91406 6.23438 8.91406 6.30469L8.77344 8.92969C8.75 9 8.70312 9.07031 8.65625 9.11719C8.60938 9.16406 8.53906 9.1875 8.49219 9.1875H7.50781C7.4375 9.1875 7.36719 9.16406 7.32031 9.11719C7.27344 9.07031 7.22656 9 7.22656 8.92969L7.08594 6.30469ZM8.98438 10.5C8.98438 10.2422 8.86719 10.0078 8.67969 9.82031C8.49219 9.63281 8.25781 9.51562 8 9.51562C7.71875 9.51562 7.48438 9.63281 7.29688 9.82031C7.10938 10.0078 7.01562 10.2422 7.01562 10.5C7.01562 10.7812 7.10938 11.0156 7.29688 11.2031C7.48438 11.3906 7.71875 11.4844 8 11.4844C8.25781 11.4844 8.49219 11.3906 8.67969 11.2031C8.86719 11.0156 8.98438 10.7812 8.98438 10.5ZM8.98438 2.0625L14.6094 11.8125C14.7266 12.0703 14.7734 12.3281 14.7266 12.5859C14.6797 12.8438 14.5391 13.0547 14.3516 13.2422C14.1406 13.4297 13.9062 13.5 13.625 13.5H2.375C2.09375 13.5 1.83594 13.4297 1.64844 13.2422C1.4375 13.0547 1.32031 12.8438 1.27344 12.5859C1.22656 12.3281 1.25 12.0703 1.39062 11.8125L7.01562 2.0625C7.15625 1.82812 7.34375 1.66406 7.60156 1.57031C7.85938 1.47656 8.11719 1.47656 8.375 1.57031C8.63281 1.66406 8.84375 1.82812 8.98438 2.0625ZM2.49219 12.1641C2.44531 12.2109 2.44531 12.2578 2.49219 12.3047C2.51562 12.3516 2.5625 12.375 2.60938 12.375H13.3906C13.4375 12.375 13.4609 12.3516 13.5078 12.3047C13.5312 12.2578 13.5312 12.2109 13.5078 12.1641L8.11719 2.83594C8.07031 2.78906 8.04688 2.76562 8 2.76562C7.95312 2.76562 7.90625 2.78906 7.88281 2.83594L2.49219 12.1641Z\"\n fill=\"#FF0400\"\n fillOpacity=\"0.5\"\n />\n </svg>\n );\n}\n\nexport function InfoIcon(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fill=\"currentColor\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M7.54268 14.6625C7.3269 14.644 7.11187 14.6178 6.89798 14.5839C3.9426 14.09 1.67759 11.6887 1.35703 8.70957C1.3237 8.42756 1.3237 7.57085 1.35703 7.2895C1.54171 5.74409 2.17174 4.41136 3.22846 3.32997C4.31451 2.21991 5.69592 1.54855 7.28866 1.35854C7.57001 1.3252 8.42739 1.3252 8.70873 1.35854C10.3015 1.54855 11.6829 2.21991 12.7689 3.32997C13.8257 4.41136 14.4557 5.74342 14.6404 7.28883C14.6737 7.57085 14.6737 8.42756 14.6404 8.70891C14.4557 10.2543 13.8257 11.5877 12.7689 12.6684C11.6849 13.7765 10.2981 14.4512 8.7154 14.6392C8.32477 14.6635 7.93329 14.6713 7.54201 14.6625H7.54268ZM7.63388 13.3299C7.46126 13.3151 7.28923 13.2941 7.11812 13.267C4.75382 12.8719 2.94181 10.9509 2.68537 8.5676C2.6587 8.342 2.6587 7.65664 2.68537 7.43156C2.83311 6.19526 3.33713 5.12909 4.18251 4.26399C5.05135 3.37596 6.15647 2.83888 7.43067 2.68687C7.65575 2.6602 8.34165 2.6602 8.56673 2.68687C9.84092 2.83888 10.946 3.37596 11.8149 4.26399C12.6603 5.12909 13.1643 6.19472 13.312 7.43103C13.3387 7.65664 13.3387 8.342 13.312 8.56707C13.1643 9.80338 12.6603 10.8701 11.8149 11.7346C10.9476 12.6211 9.83826 13.1608 8.57206 13.3112C8.25956 13.3307 7.94637 13.3369 7.63335 13.3299H7.63388ZM8.83236 9.3352V6.66854H7.16436V12.0019H8.83236V9.3352ZM8.20036 5.6312C8.4837 5.56387 8.72503 5.32387 8.80036 5.0332C8.82636 4.93254 8.82636 4.73054 8.80036 4.6292C8.72225 4.33618 8.49338 4.10732 8.20036 4.0292C8.15636 4.01854 8.06836 4.0092 7.99836 4.0092C7.76236 4.0092 7.58436 4.0832 7.41703 4.25054C7.25746 4.40072 7.17006 4.61219 7.17703 4.8312C7.17703 5.05454 7.24903 5.23854 7.39903 5.39654C7.61036 5.61854 7.89903 5.7032 8.20036 5.6312Z\"\n />\n </svg>\n );\n}\n\nexport function WarningIcon(props: React.SVGProps<SVGSVGElement>) {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M1.10067 13.1764L7.25321 2.41823C7.57211 1.86059 8.4284 1.86059 8.74642 2.41823L14.899 13.1764C15.2002 13.7023 14.7915 14.3375 14.1528 14.3375H1.84772C1.20815 14.3375 0.800269 13.7023 1.10067 13.1764Z\"\n fill=\"var(--g-color-base-warning-heavy)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.87908 9.43224C8.87908 9.70838 8.65523 9.93224 8.37908 9.93224H7.61719C7.34105 9.93224 7.11719 9.70838 7.11719 9.43224V6.55078C7.11719 6.27464 7.34105 6.05078 7.61719 6.05078H8.37908C8.65522 6.05078 8.87908 6.27464 8.87908 6.55078V9.43224Z\"\n fill=\"var(--g-color-text-complementary)\"\n />\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M8.87908 12.0989C8.87908 12.375 8.65523 12.5989 8.37908 12.5989H7.61719C7.34105 12.5989 7.11719 12.375 7.11719 12.0989V11.5176C7.11719 11.2414 7.34105 11.0176 7.61719 11.0176H8.37908C8.65522 11.0176 8.87908 11.2414 8.87908 11.5176V12.0989Z\"\n fill=\"var(--g-color-text-complementary)\"\n />\n </svg>\n );\n}\n\nexport function TooltipIcon({className}: {className?: string} = {}) {\n return (\n <svg\n className={className}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M15.5 8C15.5 12.1421 12.1421 15.5 8 15.5C3.85786 15.5 0.5 12.1421 0.5 8C0.5 3.85786 3.85786 0.5 8 0.5C12.1421 0.5 15.5 3.85786 15.5 8Z\"\n stroke=\"currentColor\"\n strokeOpacity=\"0.15\"\n />\n <path\n opacity=\"0.5\"\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n fill=\"currentColor\"\n d=\"M8.46436 9.92432H7.09473C7.09115 9.72738 7.08936 9.60742 7.08936 9.56445C7.08936 9.12044 7.16276 8.75521 7.30957 8.46875C7.45638 8.18229 7.75 7.86003 8.19043 7.50195C8.63086 7.14388 8.89404 6.90934 8.97998 6.79834C9.11247 6.62288 9.17871 6.42953 9.17871 6.21826C9.17871 5.92464 9.06144 5.6731 8.8269 5.46362C8.59237 5.25415 8.27637 5.14941 7.87891 5.14941C7.49577 5.14941 7.17529 5.25863 6.91748 5.47705C6.65967 5.69548 6.48242 6.02848 6.38574 6.47607L5 6.3042C5.03939 5.66325 5.31242 5.11898 5.81909 4.67139C6.32577 4.22379 6.99088 4 7.81445 4C8.68099 4 9.37028 4.22648 9.88232 4.67944C10.3944 5.13241 10.6504 5.65966 10.6504 6.26123C10.6504 6.59424 10.5564 6.90934 10.3684 7.20654C10.1804 7.50375 9.77849 7.90836 9.1626 8.42041C8.84391 8.68539 8.64608 8.89844 8.56909 9.05957C8.49211 9.2207 8.45719 9.50895 8.46436 9.92432ZM7.09473 11.9546V10.4453H8.604V11.9546H7.09473Z\"\n />\n </svg>\n );\n}\n","import React, {Component} from 'react';\nimport {dfCN} from '../../helpers/cn';\n\nimport {TextInput, TextInputProps} from '@gravity-ui/uikit';\nimport {ControlProps} from '../types';\n\nconst block = dfCN('text-control');\n\nexport type TextControlProps = ControlProps<string> &\n Omit<TextInputProps, keyof ControlProps<string>>;\n\nexport class TextControl extends Component<TextControlProps> {\n static defaultProps = {\n extras: {},\n };\n\n static hasErrorRenderer = true;\n\n static getDefaultValue() {\n return '';\n }\n\n static isEmpty(value: string) {\n return !value;\n }\n\n render() {\n const {value, onChange, ...rest} = this.props;\n\n const empty = TextControl.isEmpty(value);\n\n return (\n <div className={block({empty})}>\n <TextInput\n hasClear\n {...rest}\n autoComplete={false}\n onUpdate={onChange}\n value={value}\n />\n </div>\n );\n }\n}\n","'use client';\nimport React from 'react';\nimport { useForkRef } from '../../../hooks';\nimport { block } from '../../utils/cn';\nconst b = block('text-area');\nconst calculateLinesByScrollHeight = (args) => {\n const { height, lineHeight } = args;\n const paddingTop = Number.isNaN(args.paddingTop) ? 0 : args.paddingTop;\n const paddingBottom = Number.isNaN(args.paddingBottom) ? 0 : args.paddingBottom;\n return (height - paddingTop - paddingBottom) / lineHeight;\n};\nexport function TextAreaControl(props) {\n var _a;\n const { name, id, tabIndex, autoComplete, placeholder, value, defaultValue, controlRef, controlProps, size, rows, minRows = 1, maxRows, autoFocus, disabled, onChange, onFocus, onBlur, onKeyDown, onKeyUp, onKeyPress, } = props;\n const innerControlRef = React.useRef(null);\n const handleRef = useForkRef(controlRef, innerControlRef);\n const textareaRows = rows || minRows;\n const innerValue = value || ((_a = innerControlRef === null || innerControlRef === void 0 ? void 0 : innerControlRef.current) === null || _a === void 0 ? void 0 : _a.value);\n const resizeHeight = React.useCallback(() => {\n const control = innerControlRef === null || innerControlRef === void 0 ? void 0 : innerControlRef.current;\n if (control && !rows) {\n const controlStyles = getComputedStyle(control);\n const lineHeight = parseInt(controlStyles.getPropertyValue('line-height'), 10);\n const paddingTop = parseInt(controlStyles.getPropertyValue('padding-top'), 10);\n const paddingBottom = parseInt(controlStyles.getPropertyValue('padding-bottom'), 10);\n const linesWithCarriageReturn = ((innerValue === null || innerValue === void 0 ? void 0 : innerValue.match(/\\n/g)) || []).length + 1;\n const linesByScrollHeight = calculateLinesByScrollHeight({\n height: control.scrollHeight,\n paddingTop,\n paddingBottom,\n lineHeight,\n });\n control.style.height = 'auto';\n if (maxRows && maxRows < Math.max(linesByScrollHeight, linesWithCarriageReturn)) {\n control.style.height = `${maxRows * lineHeight + 2 * paddingTop}px`;\n }\n else if (linesWithCarriageReturn > 1 || linesByScrollHeight > 1) {\n control.style.height = `${control.scrollHeight}px`;\n }\n }\n }, [rows, maxRows, innerValue]);\n React.useEffect(() => {\n resizeHeight();\n }, [resizeHeight, size, value]);\n return (React.createElement(\"textarea\", Object.assign({}, controlProps, { ref: handleRef, style: Object.assign(Object.assign({}, controlProps.style), { height: rows ? 'auto' : undefined }), className: b('control', controlProps.className), name: name, id: id, tabIndex: tabIndex, placeholder: placeholder, value: value, defaultValue: defaultValue, rows: textareaRows, autoFocus: autoFocus, autoComplete: autoComplete, onChange: onChange, onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown, onKeyUp: onKeyUp, onKeyPress: onKeyPress, disabled: disabled !== null && disabled !== void 0 ? disabled : controlProps.disabled })));\n}\n","'use client';\nimport React from 'react';\nimport { useControlledState, useForkRef, useUniqId } from '../../../hooks';\nimport { useFormResetHandler } from '../../../hooks/private';\nimport { block } from '../../utils/cn';\nimport { ClearButton, mapTextInputSizeToButtonSize } from '../common';\nimport { OuterAdditionalContent } from '../common/OuterAdditionalContent/OuterAdditionalContent';\nimport { errorPropsMapper, getInputControlState, prepareAutoComplete } from '../utils';\nimport { TextAreaControl } from './TextAreaControl';\nimport './TextArea.css';\nconst b = block('text-area');\n// eslint-disable-next-line complexity\nexport const TextArea = React.forwardRef(function TextArea(props, ref) {\n const { view = 'normal', size = 'm', pin = 'round-round', name, value, defaultValue, disabled = false, hasClear = false, error, errorMessage: errorMessageProp, validationState: validationStateProp, autoComplete, id: originalId, tabIndex, style, className, qa, controlProps, note, onUpdate, onChange, } = props;\n const { errorMessage, validationState } = errorPropsMapper({\n error,\n errorMessage: errorMessageProp,\n validationState: validationStateProp,\n });\n const [inputValue, setInputValue] = useControlledState(value, defaultValue !== null && defaultValue !== void 0 ? defaultValue : '', onUpdate);\n const innerControlRef = React.useRef(null);\n const fieldRef = useFormResetHandler({ initialValue: inputValue, onReset: setInputValue });\n const handleRef = useForkRef(props.controlRef, innerControlRef, fieldRef);\n const [hasVerticalScrollbar, setHasVerticalScrollbar] = React.useState(false);\n const state = getInputControlState(validationState);\n const innerId = useUniqId();\n const isErrorMsgVisible = validationState === 'invalid' && Boolean(errorMessage);\n const isClearControlVisible = Boolean(hasClear && !disabled && inputValue);\n const id = originalId || innerId;\n const errorMessageId = useUniqId();\n const noteId = useUniqId();\n const ariaDescribedBy = [\n controlProps === null || controlProps === void 0 ? void 0 : controlProps['aria-describedby'],\n note ? noteId : undefined,\n isErrorMsgVisible ? errorMessageId : undefined,\n ]\n .filter(Boolean)\n .join(' ');\n const commonProps = {\n id,\n tabIndex,\n name,\n onChange(event) {\n setInputValue(event.target.value);\n if (onChange) {\n onChange(event);\n }\n },\n autoComplete: prepareAutoComplete(autoComplete),\n controlProps: Object.assign(Object.assign({}, controlProps), { 'aria-describedby': ariaDescribedBy || undefined, 'aria-invalid': validationState === 'invalid' || undefined }),\n };\n const handleClear = (event) => {\n const control = innerControlRef.current;\n if (control) {\n control.focus();\n const syntheticEvent = Object.create(event);\n syntheticEvent.target = control;\n syntheticEvent.currentTarget = control;\n control.value = '';\n if (onChange) {\n onChange(syntheticEvent);\n }\n }\n setInputValue('');\n };\n React.useEffect(() => {\n const control = innerControlRef.current;\n if (control) {\n const currHasVerticalScrollbar = control.scrollHeight > control.clientHeight;\n if (hasVerticalScrollbar !== currHasVerticalScrollbar) {\n setHasVerticalScrollbar(currHasVerticalScrollbar);\n }\n }\n }, [inputValue, hasVerticalScrollbar]);\n return (React.createElement(\"span\", { ref: ref, style: style, className: b({\n view,\n size,\n disabled,\n state,\n pin: view === 'clear' ? undefined : pin,\n 'has-clear': isClearControlVisible,\n 'has-scrollbar': hasVerticalScrollbar,\n }, className), \"data-qa\": qa },\n React.createElement(\"span\", { className: b('content') },\n React.createElement(TextAreaControl, Object.assign({}, props, commonProps, { controlRef: handleRef })),\n isClearControlVisible && (React.createElement(ClearButton, { className: b('clear', { size }), size: mapTextInputSizeToButtonSize(size), onClick: handleClear }))),\n React.createElement(OuterAdditionalContent, { errorMessage: isErrorMsgVisible ? errorMessage : null, errorMessageId: errorMessageId, note: note, noteId: noteId })));\n});\n","import React, {Component} from 'react';\nimport {TextArea} from '@gravity-ui/uikit';\nimport {dfCN} from '../../helpers/cn';\n\nimport './TextAreaControl.scss';\n\nconst block = dfCN('field-textarea');\n\nexport type TextAreaControlProps = Omit<\n React.ComponentProps<typeof TextArea>,\n 'value' | 'ref' | 'onUpdate' | 'onChange' | 'error'\n> & {\n value: string;\n onChange: (value: string) => void;\n error?: string | undefined;\n};\n\nexport class TextAreaControl extends Component<TextAreaControlProps> {\n static hasErrorRenderer = true;\n\n static getDefaultValue() {\n return '';\n }\n\n static isEmpty(value: string) {\n return !value;\n }\n\n render() {\n const {value, onChange, ...rest} = this.props;\n\n return (\n <TextArea\n className={block()}\n autoComplete={false}\n hasClear\n rows={4}\n {...rest}\n value={value}\n onUpdate={onChange}\n />\n );\n }\n}\n","import React from 'react';\nimport {Select, SelectProps} from '@gravity-ui/uikit';\n\nexport type SelectControlProps = Omit<SelectProps, 'onUpdate' | 'onChange'> & {\n onChange: (value: SelectControlProps['value']) => void;\n};\n\nexport function SelectControl(props: SelectControlProps) {\n const {onChange, ...rest} = props;\n return <Select {...rest} onUpdate={onChange} />;\n}\n\nSelectControl.getDefaultValue = () => {\n return undefined;\n};\n\nSelectControl.isEmpty = (value: SelectControlProps['value']) => {\n return !value?.length;\n};\n","import React, {useCallback} from 'react';\nimport {dfCN} from '../../helpers/cn';\n\nimport {Switch} from '@gravity-ui/uikit';\nimport {ControlProps} from '../types';\n\nimport './TumblerControl.scss';\n\nconst block = dfCN('tumbler-control');\n\nexport type TumblerControlProps = ControlProps<boolean> &\n Omit<React.ComponentProps<typeof Switch>, 'value' | 'checked' | 'onUpdate' | 'onChange'> & {\n labelLeft?: string;\n labelRight?: string;\n };\n\nexport function TumblerControl({value, onChange, ...extras}: TumblerControlProps) {\n const onTumblerChange = useCallback(() => onChange(!value), [onChange, value]);\n const {labelLeft, labelRight, size = 'm', className, ...rest} = extras;\n\n return (\n <span className={block({size})}>\n {labelLeft}\n <Switch\n {...rest}\n size={size}\n className={block(\n 'switch',\n {\n 'label-left': Boolean(labelLeft),\n 'label-right': Boolean(labelRight),\n },\n className,\n )}\n onChange={onTumblerChange}\n checked={value}\n />\n {labelRight}\n </span>\n );\n}\n\nTumblerControl.getDefaultValue = function () {\n return false;\n};\n\nTumblerControl.isEmpty = function (value: boolean) {\n return typeof value !== 'boolean' || !value;\n};\n","import React from 'react';\n\nimport {dfCN} from '../../helpers/cn';\nimport './PlainText.scss';\n\nconst block = dfCN('plain-text');\n\nexport type PlainTextProps = {\n value: string;\n onChange: (value: PlainTextProps['value']) => void;\n className?: string;\n placeholder?: React.ReactNode;\n};\n\nexport class PlainText extends React.Component<PlainTextProps> {\n static getDefaultValue() {\n return '';\n }\n\n static isEmpty(value: string) {\n return !value;\n }\n\n render() {\n const {value, placeholder, className} = this.props;\n\n return (\n <div className={block(null, className)}>\n {value || <span className={block('placeholder')}>{placeholder}</span>}\n </div>\n );\n }\n}\n","import React from 'react';\nimport {Field} from 'react-final-form';\n\ninterface Props<T = any> {\n when: string;\n isActive: (value: T) => boolean;\n children: React.ReactNode;\n}\n\nexport function Condition<T>({when, isActive, children}: Props<T>) {\n return (\n <Field name={when} subscription={{value: true}}>\n {({input: {value}}) => (isActive(value) ? children : null)}\n </Field>\n );\n}\n","import React from 'react';\n\nexport interface CustomBlockProps {\n value: unknown;\n onChange: (value: CustomBlockProps['value']) => void;\n\n children: React.ReactNode;\n}\n\nexport class CustomBlock extends React.Component<CustomBlockProps> {\n static renderLabel = () => null;\n static getDefaultValue = () => undefined;\n\n render() {\n return this.props.children || null;\n }\n}\n","import React, {useCallback} from 'react';\nimport map_ from 'lodash/map';\nimport {RadioButton, RadioButtonProps} from '@gravity-ui/uikit';\n\nRadioButtonControl.defaultProps = {\n extras: {},\n};\n\nRadioButtonControl.getDefaultValue = function () {\n return '';\n};\n\nRadioButtonControl.isEmpty = function (value: RadioButtonControlProps['value']) {\n return typeof value !== 'string' || !value;\n};\n\nexport interface RadioButtonControlProps extends Omit<RadioButtonProps, 'onChange' | 'value'> {\n value: RadioButtonProps['value'];\n onChange: (value: RadioButtonControlProps['value']) => void;\n options?: Array<{value: string; label: React.ReactNode}>;\n}\n\nexport function RadioButtonControl({value, onChange, ...props}: RadioButtonControlProps) {\n const onRadioChange = useCallback(\n (evt: React.ChangeEvent<HTMLInputElement>) => onChange(evt.target.value),\n [onChange],\n );\n const {options = [], size = 'm', ...rest} = props;\n\n return (\n <RadioButton {...rest} size={size} value={value} onChange={onRadioChange}>\n {map_(options, ({value, label}) => (\n <RadioButton.Option value={value} key={value}>\n {label}\n </RadioButton.Option>\n ))}\n </RadioButton>\n );\n}\n","import React from 'react';\nimport {dfCN} from '../../helpers/cn';\n\nimport {RepeatIcon, CloseIcon} from '../Icon/Icon';\n\nimport './EditableList.scss';\n\nconst block = dfCN('editable-list');\n\nEditableListItem.defaultProps = {\n itemRenderer: (item: EditableListItemType<unknown>) => item.title,\n};\n\ninterface EditableListItemProps<T> {\n index: number;\n className?: EditableListProps<T>['itemClassName'];\n item: EditableListItemType<T>;\n frozen?: boolean;\n toggleRemove: (item: EditableListItemType<T>, index: number) => void;\n itemRenderer: (item: EditableListItemType<T>) => React.ReactNode;\n}\n\nfunction EditableListItem<T>({\n index,\n className,\n item,\n frozen,\n toggleRemove,\n itemRenderer,\n}: EditableListItemProps<T>) {\n const onClick = React.useCallback(() => {\n toggleRemove(item, index);\n }, [item, toggleRemove, index]);\n const icon = item.removed ? <RepeatIcon /> : <CloseIcon />;\n const hasActions = !frozen && !item.frozen;\n\n return (\n <span className={block('item', className)}>\n <span className={block('item-content', {removed: item.removed})} title={item.title}>\n {itemRenderer(item)}\n </span>\n {hasActions && (\n <span className={block('item-action')} onClick={onClick}>\n {icon}\n </span>\n )}\n </span>\n );\n}\n\nexport interface EditableListProps<T = any> {\n className?: string;\n\n itemClassName?: string;\n value: Array<EditableListItemType<T>>;\n maxVisibleCount?: number;\n\n itemRenderer?: (item: EditableListItemType<T>) => React.ReactNode;\n frozen?: boolean;\n\n onChange: (value: EditableListProps<T>['value']) => void;\n}\n\nexport interface EditableListItemType<T> {\n title: string;\n removed?: boolean;\n frozen?: boolean;\n data?: T;\n}\n\ninterface State {\n showAll: boolean;\n}\n\nexport class EditableList<T = any> extends React.Component<EditableListProps<T>, State> {\n static defaultProps = {\n value: [],\n };\n\n static getDefaultValue() {\n return [];\n }\n\n static isEmpty() {\n return false;\n }\n\n state: State = {\n showAll: false,\n };\n\n renderItem = (item: EditableListItemType<T>, index: number) => {\n const {itemClassName, itemRenderer, frozen} = this.props;\n return (\n <EditableListItem\n key={index}\n className={itemClassName}\n index={index}\n item={item}\n frozen={frozen}\n toggleRemove={this.toggleRemove}\n itemRenderer={itemRenderer}\n />\n );\n };\n\n toggleRemove = (item: EditableListItemType<T>, index: number) => {\n const {value, onChange} = this.props;\n const res = [...value];\n res[index] = {...item, removed: !item.removed};\n onChange(res);\n };\n\n renderShowAll() {\n const {showAll} = this.state;\n const text = showAll ? 'Hide' : 'Show all';\n return (\n <span className={block('show-all')} onClick={this.onShowAll}>\n {text}\n </span>\n );\n }\n\n onShowAll = () => {\n this.setState({showAll: !this.state.showAll});\n };\n\n render() {\n const {className, value, maxVisibleCount} = this.props;\n const {showAll} = this.state;\n\n const itemsToRender = !showAll && maxVisibleCount ? value.slice(0, maxVisibleCount) : value;\n const showAllVisible = showAll || itemsToRender.length !== value.length;\n\n return (\n <div className={block(null, className)}>\n {itemsToRender.map(this.renderItem)}\n {showAllVisible && this.renderShowAll()}\n </div>\n );\n }\n}\n","import React from 'react';\n\nimport {Button} from '@gravity-ui/uikit';\nimport {getDisplayName} from './utils';\n\nexport interface CollapsedState {\n collapsed: boolean;\n}\n\nexport interface CollapsedProps {\n items: Array<unknown>;\n visibleCount: number;\n initialExpanded?: boolean;\n\n renderToggler?: () => void;\n}\n\nexport default function withCollapsible<P extends CollapsedProps>(\n Component: React.ComponentType<P>,\n): React.ComponentType<P> {\n const ResultComponent: React.ComponentType<P> = class WithCollapsible extends React.Component<\n P,\n CollapsedState\n > {\n static displayName = `WithCollapsible(${getDisplayName(Component)})`;\n\n state: CollapsedState = {collapsed: true};\n\n constructor(props: P) {\n super(props);\n this.state = {collapsed: !props.initialExpanded};\n if (props.renderToggler) {\n console.warn('\"renderToggler\" property will be overriden');\n }\n }\n\n render() {\n return (\n <Component\n {...this.props}\n items={this.getItems()}\n renderToggler={this.renderToggler}\n />\n );\n }\n\n getItems() {\n const visibleCount = this.getVisibleItemsCount();\n const {items} = this.props;\n return visibleCount < items.length ? items.slice(0, visibleCount) : items;\n }\n\n getVisibleItemsCount() {\n const {items, visibleCount} = this.props;\n const {collapsed} = this.state;\n\n return collapsed && items.length > visibleCount ? visibleCount : items.length;\n }\n\n handleToggle = () => this.setState((prevState) => ({collapsed: !prevState.collapsed}));\n\n renderToggler = () => {\n const {items, visibleCount} = this.props;\n const {collapsed} = this.state;\n const hasToggler = items.length > visibleCount;\n const resCount = items.length - visibleCount;\n\n return (\n hasToggler && (\n <Button size=\"s\" view=\"flat\" onClick={this.handleToggle}>\n {collapsed ? `Show more (${resCount})` : 'Show less'}\n </Button>\n )\n );\n };\n };\n\n return ResultComponent;\n}\n","import React from 'react';\nimport {dfCN} from '../../helpers/cn';\n\nimport {EditableList, EditableListItemType, EditableListProps} from '../EditableList';\nimport './EditableManyLists.scss';\n\nconst block = dfCN('editable-many-lists');\n\nexport interface EditableManyListsProps<T> {\n className?: string;\n titleClassName?: string;\n\n value: Array<EditableManyListsItemType<T>>;\n onChange: (value: EditableManyListsProps<T>['value']) => void;\n\n itemRenderer?: EditableListProps<T>['itemRenderer'];\n\n maxVisibleCount?: number;\n}\n\nexport interface EditableManyListsItemType<T> {\n title: string;\n itemClassName?: string;\n data: Array<EditableListItemType<T>>;\n}\n\nexport class EditableManyLists<T> extends React.Component<EditableManyListsProps<T>> {\n static getDefaultValue() {\n return [];\n }\n\n static isEmpty() {\n return false;\n }\n\n onChange = (index: number, data: EditableManyListsItemType<T>['data']) => {\n const {value, onChange} = this.props;\n const newRowData = {...value[index], data};\n const newValue = [...value];\n newValue.splice(index, 1, newRowData);\n onChange(newValue);\n };\n\n render() {\n const {className, value, itemRenderer, titleClassName, maxVisibleCount} = this.props;\n return (\n <div className={block(null, className)}>\n {value.map(({title, data, ...rest}, index) => (\n <React.Fragment key={index}>\n <span key={index} className={block('title', titleClassName)}>\n {title}\n </span>\n <EditableList\n itemRenderer={itemRenderer}\n maxVisibleCount={maxVisibleCount}\n {...rest}\n value={data}\n onChange={this.onChange.bind(this, index)}\n />\n </React.Fragment>\n ))}\n </div>\n );\n }\n}\n","import React, {Component} from 'react';\nimport map_ from 'lodash/map';\nimport {Button, Label} from '@gravity-ui/uikit';\nimport {dfCN} from '../../../helpers/cn';\nimport withCollapsible from '../../../hoc/withCollapsible';\n\nimport './LabelsGroup.scss';\nimport {ArrayElement} from '../../types';\n\nconst block = dfCN('labels-group');\n\nexport type LabelGroupProps = {\n items: Array<{name: string; isDefault?: boolean}>;\n visibleCount: number;\n disabled?: boolean;\n\n onClick?: (item: ItemType) => void;\n onRemove?: (item: ItemType) => void;\n onRemoveAll?: () => void;\n\n renderToggler?: () => React.ReactNode;\n};\n\ntype ItemType = ArrayElement<LabelGroupProps['items']>;\n\nclass LabelsGroupComponent extends Component<LabelGroupProps> {\n handleLabelClick = (label: ItemType) => {\n const {onClick} = this.props;\n if (typeof onClick === 'function') {\n onClick(label);\n }\n };\n\n handleRemoveClick = (evt: React.MouseEvent<HTMLElement>, label: ItemType) => {\n const {onRemove} = this.props;\n\n evt.stopPropagation();\n if (typeof onRemove === 'function') {\n onRemove(label);\n }\n };\n\n renderLabel(label: ItemType) {\n const {onRemove, disabled} = this.props;\n const {name, isDefault} = label;\n\n const onLabelClick = () => this.handleLabelClick(label);\n const onRemoveClick = (evt: React.MouseEvent<HTMLElement>) =>\n this.handleRemoveClick(evt, label);\n\n return (\n <Label\n key={name}\n className={block('label')}\n type={onRemove && !isDefault ? 'close' : 'default'}\n onClick={onLabelClick}\n onCloseClick={onRemoveClick}\n size=\"s\"\n disabled={disabled}\n >\n {name}\n </Label>\n );\n }\n\n render() {\n const {items, renderToggler, onRemoveAll, disabled} = this.props;\n\n return (\n <div className={block()}>\n {map_(items, (label) => this.renderLabel(label))}\n {renderToggler?.()}\n {onRemoveAll && items.length > 0 && (\n <Button\n size=\"s\"\n view=\"flat-secondary\"\n onClick={onRemoveAll}\n disabled={disabled}\n >\n Clear all\n </Button>\n )}\n </div>\n );\n }\n}\n\nexport const LabelsGroup = withCollapsible(LabelsGroupComponent);\n","export function getDisplayName(Component: {displayName?: string; name?: string}) {\n return Component.displayName || Component.name || 'Component';\n}\n","import _find from 'lodash/find';\n\nconst TAB_ID = 'id';\n\ninterface TabData {\n [TAB_ID]: string;\n}\n\nexport function getTabId(tabValues: TabData) {\n return tabValues[TAB_ID];\n}\n\nexport function checkTabId(newTabData: TabData, tabs: TabData[]) {\n const id = getTabId(newTabData);\n if (id === undefined) {\n throw new Error('id field must be defined');\n }\n\n const tab = _find(tabs, (tab) => id === getTabId(tab));\n if (tab) {\n throw new Error('id of a tab must be unique');\n }\n}\n\nexport function applyFunctions<T extends (...args: unknown[]) => void>(...fns: (T | undefined)[]) {\n return (...args: Parameters<T>) => fns.forEach((fn) => fn?.(...args));\n}\n","import React from 'react';\n\nimport {useStableEventHandler} from '../../helpers/useStableEventHendler';\nimport {applyFunctions} from '../Dialog/utils';\n\nfunction noop() {}\n\nexport interface FocusBlurContainerProps {\n children?: React.ReactNode;\n className?: string;\n onFocus?: () => void;\n onBlur?: () => void;\n}\nexport function FocusBlurContainer({\n children,\n className,\n onFocus,\n onBlur = noop,\n}: FocusBlurContainerProps) {\n const [focused, setFocused] = React.useState(false);\n\n const handleBlur = useStableEventHandler(\n applyFunctions(onBlur, () => {\n setFocused(false);\n }),\n );\n\n const handleFocus = useOnFocusOutside(handleBlur, focused);\n const handleClick = useOnClickOutside(handleBlur, focused);\n\n return (\n <div\n className={className}\n onFocus={applyFunctions(handleFocus, onFocus, () => {\n setFocused(true);\n })}\n onClick={handleClick}\n >\n {children}\n </div>\n );\n}\n\nfunction useOnFocusOutside(onFocusOutside: () => void, enable = true) {\n const capturedRef = React.useRef(false);\n\n React.useEffect(() => {\n if (enable) {\n const handleFocus = function () {\n capturedRef.current = false;\n window.setTimeout(() => {\n if (!capturedRef.current) {\n onFocusOutside();\n }\n }, 0);\n };\n\n window.addEventListener('focus', handleFocus, {capture: true});\n\n return () => {\n window.removeEventListener('focus', handleFocus, {capture: true});\n };\n }\n\n return undefined;\n }, [enable, onFocusOutside]);\n\n return React.useCallback(() => {\n capturedRef.current = true;\n }, []);\n}\n\nfunction useOnClickOutside(onClickOutside: () => void, enable = true) {\n const capturedRef = React.useRef(false);\n\n React.useEffect(() => {\n if (enable) {\n const handleClick = function () {\n capturedRef.current = false;\n window.setTimeout(() => {\n if (!capturedRef.current) {\n onClickOutside();\n }\n }, 0);\n };\n\n window.addEventListener('click', handleClick, {capture: true});\n\n return () => {\n window.removeEventListener('click', handleClick, {capture: true});\n };\n }\n\n return undefined;\n }, [enable, onClickOutside]);\n\n return React.useCallback(() => {\n capturedRef.current = true;\n }, []);\n}\n","import React, {Component} from 'react';\nimport find_ from 'lodash/find';\nimport findIndex_ from 'lodash/findIndex';\nimport {TextInput, TextInputProps} from '@gravity-ui/uikit';\n\nimport {dfCN} from '../../helpers/cn';\nimport {LabelsGroup} from './LabelsGroup/LabelsGroup';\nimport {FocusBlurContainer} from '../FocusBlurContainer/FocusBlurContainer';\n\nimport type {ArrayElement} from '../types';\n\nimport './MultiTextControl.scss';\n\nconst block = dfCN('multi-text-control');\n\nexport type MultiTextControlProps = Partial<\n Omit<\n TextInputProps,\n 'value' | 'onBlur' | 'onFocus' | 'onUpdate' | 'onChange' | 'onKeyDown' | 'error'\n >\n> & {\n value: Array<{name: string; isDefault?: boolean}>;\n onChange: (value: MultiTextControlProps['value']) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n error?: string | undefined;\n};\n\ntype ItemType = ArrayElement<MultiTextControlProps['value']>;\n\ninterface State {\n currentLabel: string;\n}\n\nexport class MultiTextControl extends Component<MultiTextControlProps, State> {\n static ENTER = 13;\n\n static hasErrorRenderer = true;\n\n static getDefaultValue() {\n return [];\n }\n\n static isEmpty(value: MultiTextControlProps['value']) {\n return !value.length;\n }\n\n static remove(theItem: ItemType, items: Array<ItemType>) {\n const index = findIndex_(items, (anItem) => theItem.name === anItem.name);\n if (index > -1) {\n const copy = [...items];\n copy.splice(index, 1);\n return copy;\n }\n\n return items;\n }\n\n state: State = {currentLabel: ''};\n\n updateLabel = (text: string) => {\n this.setState({currentLabel: text});\n };\n\n confirmText = () => {\n const {currentLabel} = this.state;\n\n if (currentLabel?.length > 0) {\n const {onChange, value: labels} = this.props;\n\n if (!find_(labels, (label) => label.name === currentLabel)) {\n onChange(labels.concat({name: currentLabel}));\n }\n this.setState({currentLabel: ''});\n }\n };\n\n handleAdd = (evt: React.KeyboardEvent<HTMLInputElement>) => {\n if (evt.keyCode === MultiTextControl.ENTER) {\n this.confirmText();\n }\n };\n\n handleClear = () => {\n this.props.onChange(MultiTextControl.getDefaultValue());\n };\n\n handleRemove = (item: ItemType) => {\n const {onChange, value: items} = this.props;\n onChange(MultiTextControl.remove(item, items));\n };\n\n render() {\n const {value: labels, onChange: _onChange, onBlur, onFocus, disabled, ...rest} = this.props;\n\n return (\n <FocusBlurContainer className={block()} onBlur={onBlur} onFocus={onFocus}>\n <TextInput\n size=\"s\"\n view=\"normal\"\n autoComplete={false}\n hasClear\n disabled={disabled}\n {...rest}\n onUpdate={this.updateLabel}\n onKeyDown={this.handleAdd}\n {...{onBlur: this.confirmText}}\n value={this.state.currentLabel}\n />\n <LabelsGroup\n items={labels}\n visibleCount={4}\n disabled={disabled}\n onRemoveAll={this.handleClear}\n onRemove={this.handleRemove}\n />\n </FocusBlurContainer>\n );\n }\n}\n","import React, {Component} from 'react';\nimport {Tabs} from '@gravity-ui/uikit';\n\nimport {dfCN} from '../../helpers/cn';\nimport {DangerIcon, CloseIcon} from '../Icon/Icon';\n\nimport some_ from 'lodash/some';\n\nimport './TabField.scss';\n\nconst block = dfCN('dialog-tab');\n\nexport interface TabFieldProps {\n className?: string;\n\n activeTab?: string;\n setActiveTab: (activeTab: string) => void;\n\n onRemoveTab?: (item: TabItem) => void;\n onCreateTab?: (fieldName: string, active?: boolean, opts?: {userOptions?: any}) => void;\n\n tabItems: Array<TabItem>;\n\n size?: 's' | 'm' | 'l';\n}\n\nexport interface TabItem {\n id: string;\n name: string;\n title: string;\n multiple?: boolean;\n removable?: boolean;\n error?: string | object;\n}\n\nexport interface TabSpec {\n multiple?: boolean;\n}\n\nexport class TabField extends Component<TabFieldProps> {\n static isTabControl = true as const;\n static isTabControlVertical = false;\n\n static getDefaultValue(tabSpec: TabSpec) {\n return tabSpec.multiple ? [] : {};\n }\n\n static isEmpty(value: Array<unknown>, tabSpec: TabSpec) {\n return tabSpec.multiple ? !value.length : !Object.keys(value).length;\n }\n\n static wrapTabItem = (\n onRemoveTab: TabFieldProps['onRemoveTab'],\n _onCreateTab: TabFieldProps['onCreateTab'],\n item: TabItem,\n tabNode: React.ReactNode,\n wrapperMods = {},\n ) => {\n const hasError =\n item.error && ('string' === typeof item.error || some_(item.error, (v) => Boolean(v)));\n return (\n <div key={item.id} className={block('wrapper', wrapperMods)}>\n <span className={block('name')}>\n <span className={block('name-text')}>{tabNode}</span>\n {hasError && (\n <span\n className={block('warning-icon')}\n title=\"Some fields in this tab are not valid\"\n >\n <DangerIcon />\n </span>\n )}\n </span>\n {item.multiple && item.removable && (\n <span\n className={block('remove-icon')}\n onClick={(e) => {\n e.stopPropagation();\n onRemoveTab!(item);\n }}\n >\n <CloseIcon />\n </span>\n )}\n </div>\n );\n };\n\n render() {\n const {className, tabItems, activeTab, setActiveTab, onRemoveTab, onCreateTab} = this.props;\n\n return (\n <Tabs\n className={block('control', className)}\n items={tabItems}\n activeTab={activeTab}\n onSelectTab={setActiveTab}\n wrapTo={TabField.wrapTabItem.bind(null, onRemoveTab, onCreateTab)}\n />\n );\n }\n}\n","import React from 'react';\nimport {dfCN} from '../../helpers/cn';\n\nimport findIndex_ from 'lodash/findIndex';\n\nimport {TabField, TabFieldProps, TabItem} from './TabField';\nimport {List, ListProps} from '@gravity-ui/uikit';\n\nimport './TabFieldVertical.scss';\n\nconst block = dfCN('tab-field-vertical');\n\nconst ITEM_HEIGHT = {\n s: 28,\n m: 36,\n l: 48,\n};\n\nexport interface TabFieldVerticalProps extends TabFieldProps {\n size?: keyof typeof ITEM_HEIGHT;\n sortable?: boolean;\n\n onOrderChanged?: ListProps<any>['onSortEnd'];\n wrapTo?: (node: React.ReactNode, item: TabItem) => React.ReactNode;\n virtualized?: boolean;\n}\n\nexport class TabFieldVertical extends React.Component<TabFieldVerticalProps> {\n static defaultProps = {\n size: 's' as Exclude<TabFieldVerticalProps['size'], undefined>,\n };\n\n static isTabControl = true as const;\n static isTabControlVertical = true;\n\n static getDefaultValue = TabField.getDefaultValue;\n static isEmpty = TabField.isEmpty;\n\n onItemClick = (item: TabItem) => {\n const {setActiveTab} = this.props;\n setActiveTab(item.id);\n };\n\n renderItem = (item: TabItem) => {\n const {onRemoveTab, onCreateTab, wrapTo} = this.props;\n const node = TabField.wrapTabItem(onRemoveTab, onCreateTab, item, item.title, {\n vertical: true,\n });\n return wrapTo ? wrapTo(node, item) : node;\n };\n\n render() {\n const {className, activeTab, size, sortable, tabItems, onOrderChanged, ...rest} =\n this.props;\n const selected = findIndex_(tabItems, ({id}) => id === activeTab);\n\n return (\n <div className={block({size}, className)}>\n <List\n {...{className: block('list')}}\n itemHeight={ITEM_HEIGHT[size || TabFieldVertical.defaultProps.size]}\n size={size}\n items={tabItems}\n renderItem={this.renderItem}\n onItemClick={this.onItemClick}\n selectedItemIndex={selected}\n filterable={false}\n onSortEnd={onOrderChanged}\n sortable={sortable}\n {...rest}\n />\n </div>\n );\n }\n}\n","import {I18N, Params} from '@gravity-ui/i18n';\nimport {Lang, subscribeConfigure} from './configure';\n\nconst i18n = new I18N();\n\nsubscribeConfigure((config) => {\n i18n.setLang(config.lang);\n});\n\ntype KeysetData = Parameters<typeof i18n.registerKeyset>[2];\n\nexport function makeKeyset<Keyset extends KeysetData>(\n component: string,\n {ru, en}: Record<Lang, Keyset>,\n) {\n i18n.registerKeyset('ru', component, ru);\n i18n.registerKeyset('en', component, en);\n\n return i18n.keyset(component) as (key: keyof Keyset, params?: Params) => string;\n}\n","import {makeKeyset} from '../../../i18n';\nimport ru from './ru.json';\nimport en from './en.json';\n\nexport default makeKeyset('infra-components-dialog', {ru, en});\n","import * as React from 'react';\nconst ChevronUp = (props) => (React.createElement(\"svg\", Object.assign({ xmlns: \"http://www.w3.org/2000/svg\", width: 16, height: 16, fill: \"none\", viewBox: \"0 0 16 16\" }, props),\n React.createElement(\"path\", { fill: \"currentColor\", fillRule: \"evenodd\", d: \"M13.03 10.53a.75.75 0 0 1-1.06 0L8 6.56l-3.97 3.97a.75.75 0 1 1-1.06-1.06l4.5-4.5a.75.75 0 0 1 1.06 0l4.5 4.5a.75.75 0 0 1 0 1.06Z\", clipRule: \"evenodd\" })));\nexport default ChevronUp;\n","import React from 'react';\nimport {ChevronDown, ChevronUp} from '@gravity-ui/icons';\n\nimport {dfCN} from '../../helpers/cn';\n\nimport './CollapsibleSection.scss';\n\nconst block = dfCN('collapsible-section');\n\nexport type CollapsibleSectionProps = {\n className?: string;\n\n alwaysExpanded?: boolean;\n initialCollapsed?: boolean;\n\n caption: string;\n captionClassName?: string;\n\n children?: React.ReactNode;\n};\n\nexport function CollapsibleSection({\n className,\n alwaysExpanded,\n initialCollapsed,\n children,\n caption,\n captionClassName,\n}: CollapsibleSectionProps) {\n const [collapsed, setCollapsed] = React.useState(initialCollapsed && !alwaysExpanded);\n const handleToggle = React.useCallback(() => {\n setCollapsed(!collapsed);\n }, [collapsed]);\n\n return (\n <section className={block(null, className)}>\n <h2\n className={block(\n 'caption',\n {collapsed, collapsible: !alwaysExpanded},\n captionClassName,\n )}\n onClick={alwaysExpanded ? undefined : handleToggle}\n >\n {caption}\n {!alwaysExpanded && <span> {collapsed ? <ChevronDown /> : <ChevronUp />}</span>}\n </h2>\n <section className={block('content', {collapsed})}>{children}</section>\n </section>\n );\n}\n","import React, {Component, Fragment} from 'react';\nimport reduce_ from 'lodash/reduce';\nimport find_ from 'lodash/find';\nimport findIndex_ from 'lodash/findIndex';\nimport isEqual_ from 'lodash/isEqual';\nimport get_ from 'lodash/get';\nimport isEmpty_ from 'lodash/isEmpty';\nimport map_ from 'lodash/map';\nimport {\n Dialog as CommonDialog,\n DialogFooterProps,\n ModalCloseReason,\n Popover,\n} from '@gravity-ui/uikit';\nimport {dfCN} from '../../helpers/cn';\nimport {Decorator, FORM_ERROR, FormApi, FormState, ValidationErrors, FieldState} from 'final-form';\nimport {Field, FieldInputProps, FieldMetaState, Form, FormProps, FormSpy} from 'react-final-form';\nimport arrayMutators from 'final-form-arrays';\nimport {FieldArray} from 'react-final-form-arrays';\nimport createDecorator, {Calculation, Updates} from 'final-form-calculate';\nimport {OnChange} from 'react-final-form-listeners';\n\nimport {InfoIcon, TooltipIcon, WarningIcon} from '../Icon/Icon';\nimport {TextControl, TextControlProps} from '../TextControl';\nimport {TextAreaControl, TextAreaControlProps} from '../TextAreaControl';\nimport {SelectControl, SelectControlProps} from '../SelectControl';\nimport {TumblerControl, TumblerControlProps} from '../TumblerControl';\nimport {PlainText, PlainTextProps} from '../PlainText';\nimport {CheckBoxControl, CheckBoxControlProps} from '../CheckBoxControl';\nimport {Condition} from '../Condition';\nimport {CustomBlock, CustomBlockProps} from '../CustomBlock';\nimport {RadioButtonControl, RadioButtonControlProps} from '../RadioButtonControl';\nimport {EditableList, EditableListProps} from '../EditableList';\nimport {EditableManyLists, EditableManyListsProps} from '../EditableManyLists';\nimport {MultiTextControl, MultiTextControlProps} from '../MultiTextControl';\nimport {\n TabField,\n TabFieldProps,\n TabFieldVertical,\n TabFieldVerticalProps,\n TabItem,\n} from '../TabField';\nimport {checkTabId, getTabId, applyFunctions} from './utils';\nimport {useStableEventHandler} from '../../helpers/useStableEventHendler';\n\nimport './Dialog.scss';\n\nimport i18n from './i18n';\nimport {\n ArrayElement,\n ControlProps,\n ControlStaticApi,\n DistributiveOmit,\n TabControlStaticApi,\n ValidatorType,\n} from '../types';\nimport {CollapsibleSection} from '../CollapsibleSection/CollapsibleSection';\n\nconst bDialog = dfCN('dialog');\nconst bPage = dfCN('page-dialog');\n\nfunction composeValidators<T, FormValuesT>(...validators: Array<ValidatorType<T, FormValuesT>>) {\n return async (value: T, allValues: FormValuesT, state?: FieldState<T>) => {\n for (const validate of validators) {\n try {\n const res = await validate(value, allValues, state);\n if (res) {\n return res;\n }\n } catch (e) {\n return 'Validation exception: ' + e;\n }\n }\n return undefined;\n };\n}\n\nconst noop = () => {};\n\nconst tabControlTypes: Array<string> = [];\n\nfunction isSectionField<FieldT>(field: DialogField<FieldT>): field is SectionType<FieldT> {\n return (field as SectionType<FieldT>).section !== undefined;\n}\n\nfunction isSeparatorField<FieldT>(field: DialogField<FieldT>): field is SeparatorType {\n return (field as SeparatorType).separator !== undefined;\n}\n\nfunction isControlField(field: {type?: string}): field is ControlField {\n try {\n return !isTabbedField(field) && getControl(field.type) !== undefined;\n } catch (_e) {\n return false;\n }\n}\n\nfunction isTabbedField<F extends ControlField>(field: {type?: string}): field is TabbedField<F> {\n return isTabControl(field.type);\n}\n\nfunction isArrayOfTabs<F>(v: any): v is Array<TabbedField<F>> {\n return Dialog.hasTabs(v);\n}\n\nfunction isTabControl(type?: string) {\n return 'string' === typeof type && tabControlTypes.indexOf(type) !== -1;\n}\n\nconst controls = new Map();\nfunction getControl<V, P>(type?: string): ControlStaticApi<V> & React.ComponentType<P> {\n if (controls.has(type)) {\n return controls.get(type);\n } else {\n throw new Error(`Control '${type}' is not registered as the Dialog control!`);\n }\n}\n\n// TODO: in future, different tab types may be supported, but for a single form only only type of tabs should be used\nfunction checkTabSpecCorrectness(fields: Array<{type?: string; multiple?: boolean}>) {\n const topLevelTabs: typeof fields = fields.filter(isTabbedField);\n const preamble = `Invalid prop '${fields}' passed to '${DFDialog.name || 'DFDialog'}'.`;\n if (0 < topLevelTabs.length && topLevelTabs.length < fields.length) {\n return new Error(\n `${preamble} No top level real fields are allowed if there are tab fields on top-level.`,\n );\n }\n\n const multipleTabCount = topLevelTabs.filter(({multiple}) => multiple).length;\n if (multipleTabCount > 1) {\n return new Error(`${preamble} It is forbidden to have more than one multiple tab fields.`);\n }\n\n return undefined;\n}\n\nfunction checkFieldsSpec(props: {fields: Array<any>}) {\n const error = checkTabSpecCorrectness(props.fields);\n if (error) {\n console.error(\n 'Tab specification is wrong, please recheck provided `field` property',\n error,\n );\n }\n}\n\ntype FieldName = string;\n\nexport interface ControlField<\n T extends string = string,\n V = any,\n E = Record<string, any>,\n FormValues = unknown,\n> {\n name: string;\n type: T;\n\n fullWidth?: boolean;\n\n initialValue?: V;\n\n extras?:\n | E\n | ((\n allValues: FormValues,\n options: {\n form: FormApi<any>;\n input: FieldInputProps<V>;\n field: ControlField<T, V, E, FormValues>;\n },\n ) => E);\n touched?: boolean;\n\n visibilityCondition?: {\n when: FieldName;\n isActive: (v: any) => boolean;\n };\n\n className?: string;\n required?: boolean;\n caption?: string;\n tooltip?: React.ReactNode;\n warning?: React.ReactNode;\n\n validator?: ValidatorType<V, FormValues>;\n validateFields?: string[];\n\n subscribers?: Updates;\n onChange?: (\n value: V,\n oldValue: V,\n field: ControlField<T, V>,\n fullName: string,\n form: FormApi<any>,\n formValues: FormState<any>,\n ) => void;\n error?: () => void;\n}\n\nexport type TabbedField<FieldT, TabData = any, K extends string = string> = {\n name: string;\n type: K;\n fields: Array<DialogField<FieldT>>;\n size?: string;\n title?: string;\n getTitle?: (data: TabData) => string;\n isRemovable?: (position: number) => boolean;\n renderControls?: (\n data: TabData,\n onCreate: (active?: boolean) => void,\n onRemove?: () => void,\n ) => React.ReactNode;\n visibilityCondition?: {\n when: any;\n isActive: (v: any) => boolean;\n };\n\n subscribers?: undefined;\n} & MultipleTabField<TabData>;\n\nexport type MultipleTabField<TabData> =\n | {\n multiple?: false;\n onCreateTab?: undefined;\n }\n | {\n multiple: true;\n onCreateTab?: (data: TabData, opts: CreateTabOptions) => TabData;\n };\n\ninterface CreateTabOptions {\n userOptions: any;\n}\n\ntype SectionType<FieldT> = {\n section: string;\n fields?: FieldT[] | SeparatorType;\n wrapTo?: (sectionNode: React.ReactNode) => React.ReactNode;\n\n collapsible?: boolean;\n initialCollapsed?: boolean;\n\n type?: never;\n};\n\ntype SeparatorType = {separator: boolean; type?: never; name?: never; subscribers?: never};\n\ntype DialogField<FieldT> = FieldT | SectionType<FieldT> | SeparatorType;\n\ntype FieldsType<TabT extends TabbedField<FieldT>, FieldT> =\n | Array<TabT>\n | Array<DialogField<FieldT>>;\n\nexport type DeepPartial<T> = T extends object ? {[K in keyof T]?: DeepPartial<T[K]>} : T;\n\nexport interface DFDialogProps<\n FormValues = Record<string, any>,\n InitialFormValues = DeepPartial<FormValues>,\n TabT extends TabbedField<FieldT> = any,\n FieldT = any,\n> {\n className?: string;\n visible: boolean;\n fields: FieldsType<TabT, FieldT>;\n onAdd: (\n form: FormApi<FormValues, InitialFormValues>,\n ) => Promise<{validationErrors?: ValidationErrors & {[FORM_ERROR]?: any}} | undefined | void>;\n onClose?: (form: FormApi<FormValues, InitialFormValues>) => void;\n validate?: (values: FormValues) => ValidationErrors | Promise<ValidationErrors> | undefined;\n onActiveTabChange?: (tab: string) => void;\n size?: 's' | 'm' | 'l';\n\n // optional, if not provided - the default field initial values will be used\n initialValues?: InitialFormValues;\n modal?: boolean;\n pristineSubmittable?: boolean;\n isApplyDisabled?: (values: FormState<FormValues>) => boolean;\n headerProps?: {\n title?: React.ReactNode;\n insertAfter?: React.ReactNode;\n insertBefore?: React.ReactNode;\n };\n footerProps?: {\n hidden?: boolean;\n textApply?: React.ReactNode;\n textCancel?: string;\n content?: React.ReactNode;\n propsButtonCancel?: DialogFooterProps['propsButtonCancel'];\n propsButtonApply?: DialogFooterProps['propsButtonApply'];\n };\n waitingMessage?: React.ReactNode;\n virtualized?: boolean;\n formId?: string;\n /**\n * The property allows to pass additional properties which usually are not required\n * but might be useful in some special cases\n * See https://final-form.org/docs/react-final-form/types/FormProps\n */\n formExtras?: Partial<FormProps<FormValues, InitialFormValues>>;\n disableFormReset?: boolean;\n}\n\ninterface State<FormValues> {\n defaultValues?: FormValues;\n tabsCount: number;\n activeTabId?: string;\n verticalTabs?: boolean | null;\n}\n\ntype OperateOnTabsCb = (tabInfo: OperateTabInfo) => void;\n\ninterface OperateTabInfo {\n id: string;\n error?: string;\n name: string;\n multiple?: boolean;\n index: number;\n title: string;\n isRemovable: (position: number) => boolean;\n renderControls?: TabbedField<any>['renderControls'];\n visibilityCondition?: TabbedField<any>['visibilityCondition'];\n}\n\nclass Dialog<\n FormValues = Record<string, any>,\n InitialFormValues = DeepPartial<FormValues>,\n TabT extends TabbedField<FieldT> = any,\n FieldT extends ControlField = never,\n> extends Component<DFDialogProps<FormValues, InitialFormValues, TabT, FieldT>, State<FormValues>> {\n static defaultProps = {\n pristineSubmittable: false,\n modal: true,\n size: 'm',\n headerProps: {},\n footerProps: {\n textApply: 'Confirm',\n textCancel: 'Cancel',\n },\n onClose: () => {},\n };\n\n static FINAL_FORM_SUBSCRIPTIONS = {\n submitting: true,\n pristine: true,\n invalid: true,\n dirtySinceLastSubmit: true,\n hasValidationErrors: true,\n hasSubmitErrors: true,\n };\n\n /**\n * @param {string} controlId\n * @param {function} controlComponent\n * @param {{\n * suppressDuplicateWarning: boolean | undefined,\n * } | undefined} opts\n */\n static registerControl<K extends string, V, P extends {value?: any; onChange?: any}>(\n controlId: K,\n controlComponent: React.ComponentType<P> & ControlStaticApi<V>,\n {suppressDuplicateWarning}: {suppressDuplicateWarning?: boolean} = {},\n ) {\n if (controls.has(controlId) && !suppressDuplicateWarning) {\n console.warn(`Control '${controlId}' is already registered as the Dialog control!`);\n }\n\n if (controlComponent.isTabControl) {\n tabControlTypes.push(controlId);\n }\n\n controls.set(controlId, controlComponent);\n }\n\n static registerTabControl<K extends string>(\n controlId: K,\n tabComponent: React.ComponentType<TabFieldProps> & TabControlStaticApi,\n opts?: {suppressDuplicateWarning?: boolean},\n ) {\n Dialog.registerControl(controlId, tabComponent as any, opts);\n }\n\n static isEmptyField<F extends ControlField, V>(field: F, value: V) {\n const control = getControl<V, any>(field.type);\n const isEmpty = control && control.isEmpty ? control.isEmpty : () => false;\n return isEmpty(value);\n }\n\n static getDefaultValues<T extends TabbedField<F>, F>(\n fields: FieldsType<T, F> = [],\n ): Record<string, any> {\n return reduce_(\n fields,\n (acc, item) => {\n const field = item as ArrayElement<typeof fields>;\n if (isSectionField(field)) {\n if (Array.isArray(field.fields)) {\n return {...acc, ...Dialog.getDefaultValues(field.fields)};\n }\n } else if (isTabbedField(field)) {\n const tabData = Dialog.getDefaultValues(field.fields);\n acc[field.name] = field.multiple ? [{...tabData, id: 1}] : tabData;\n } else if (isControlField(field)) {\n acc[field.name] = getControl(field.type).getDefaultValue();\n }\n return acc;\n },\n {} as Record<string, any>,\n );\n }\n\n static makeRequiredValidator<F extends ControlField, V>(field: F) {\n return (value: V) =>\n Dialog.isEmptyField(field, value) ? i18n('validator:value-required') : undefined;\n }\n\n static getDerivedStateFromProps<\n TabT extends TabbedField<FieldT>,\n FieldT extends ControlField,\n FormValues,\n >(props: DFDialogProps<FormValues, unknown, TabT, FieldT>, prevState: State<FormValues>) {\n const res: Partial<typeof prevState> = {};\n const {fields} = props;\n if (!prevState.defaultValues) {\n res.defaultValues = Dialog.getDefaultValues<TabT, FieldT>(fields) as FormValues;\n }\n\n if (prevState.verticalTabs === undefined) {\n res.verticalTabs = Dialog.getTabsOrientation(fields);\n }\n\n if (Dialog.hasTabs<TabT, FieldT>(fields)) {\n const {initialValues} = props;\n if (prevState.activeTabId === undefined) {\n res.activeTabId = Dialog.getFirstTabId(fields, initialValues);\n }\n }\n\n return isEmpty_(res) ? null : res;\n }\n\n static hasTabs<TabT extends TabbedField<FieldT>, FieldT extends ControlField>(\n fields: FieldsType<TabT, FieldT>,\n ): fields is Array<TabT> {\n return fields.some(isTabbedField);\n }\n\n static getFirstTabId<FieldT>(fields: Array<TabbedField<FieldT>>, values: any) {\n const {multiple, name} = fields[0];\n return multiple ? getTabId(values[name][0]) : name;\n }\n\n static getTabsOrientation<TabT extends TabbedField<FieldT>, FieldT>(\n fields: FieldsType<TabT, FieldT>,\n ) {\n const [field] = fields;\n if (!field || !isTabbedField(field)) {\n return null;\n }\n const control = getControl(field.type);\n const {isTabControl, isTabControlVertical} = control;\n if (isTabControl === undefined) {\n return null;\n }\n return isTabControlVertical;\n }\n\n static renderField<FieldT extends ControlField, Value = any>(\n field: FieldT,\n input: FieldInputProps<Value>,\n meta: FieldMetaState<Value>,\n ) {\n const {extras} = field;\n\n if (typeof extras === 'function') {\n return (\n <FormSpy subscription={{values: true}}>\n {({values, form}) => {\n const extrasValues = extras(values, {input, form, field});\n return (\n <FieldWithExtras\n field={field}\n input={input}\n meta={meta}\n extras={extrasValues}\n />\n );\n }}\n </FormSpy>\n );\n }\n\n return <FieldWithExtras field={field} input={input} meta={meta} extras={extras} />;\n }\n\n static renderSeparator(_field: SeparatorType, index: number) {\n return <div className={bDialog('separator')} key={`separator-${index}`} />;\n }\n\n static renderLabel(\n field: Pick<ControlField, 'name' | 'type' | 'required' | 'caption' | 'tooltip'>,\n ) {\n const {name, type, required, caption, tooltip} = field;\n\n const renderLabel = controls.get(type) && controls.get(type).renderLabel;\n if (typeof renderLabel === 'function') {\n return renderLabel(field);\n }\n\n return (\n <label className={bDialog('label')} htmlFor={name}>\n <div className={bDialog('label-text', {required})}>{caption}</div>\n {Boolean(tooltip) && (\n <div>\n <Popover\n content={tooltip}\n delayOpening={150}\n delayClosing={150}\n placement={['bottom', 'top', 'right']}\n >\n <TooltipIcon className={bDialog('q-icon')} />\n </Popover>\n </div>\n )}\n </label>\n );\n }\n\n static operateOnTabs<TabT extends TabbedField<FieldT, TabData>, FieldT, TabData = any>(\n {fields, values, errors}: {fields: Array<TabT>; values: any; errors: ValidationErrors},\n callback: OperateOnTabsCb,\n ) {\n let tabIndex = 0;\n\n fields.forEach((field) => {\n const {name} = field;\n const {\n type,\n multiple,\n renderControls,\n title = name,\n getTitle,\n isRemovable,\n visibilityCondition,\n } = field;\n if (!isTabControl(type)) {\n throw new Error(`Expected field of type 'tab', got '${type}'`);\n }\n const fieldValues: TabData | Array<TabData> = values[name];\n const fieldErrors = errors && errors[name];\n\n const args = {multiple, name, renderControls, visibilityCondition};\n\n if (multiple) {\n (fieldValues as Array<TabData>).forEach((tabValues, index) => {\n const id = getTabId(tabValues as any);\n callback({\n id,\n error: fieldErrors && fieldErrors[index],\n index: tabIndex,\n title:\n typeof getTitle === 'function' ? getTitle(tabValues) : `${title} ${id}`,\n isRemovable:\n typeof isRemovable === 'function'\n ? isRemovable\n : (index) => index !== 0,\n ...args,\n });\n tabIndex++;\n });\n } else {\n callback({\n id: name,\n error: fieldErrors,\n index: tabIndex,\n title:\n typeof getTitle === 'function' ? getTitle(fieldValues as TabData) : title,\n isRemovable: () => false,\n ...args,\n });\n tabIndex++;\n }\n });\n }\n\n static collectSubscribers<TabT extends TabbedField<FieldT>, FieldT extends ControlField>(\n prefix = '',\n fields: FieldsType<TabT, FieldT>,\n dst: Array<{name: Calculation['field']; subscribers: Calculation['updates']}> = [],\n ) {\n return reduce_(\n fields,\n (acc, field) => {\n const item = field as ArrayElement<typeof fields>;\n if (isSectionField(item)) {\n if (Array.isArray(item.fields)) {\n Dialog.collectSubscribers(prefix, item.fields, acc);\n }\n } else {\n const {name, subscribers} = item;\n const fullName = `${prefix}${name}`;\n if (subscribers) {\n acc.push({name: fullName, subscribers});\n }\n if (isTabbedField(item)) {\n Dialog.collectSubscribers(`${fullName}.`, item.fields, acc);\n }\n }\n return acc;\n },\n dst,\n );\n }\n\n state: State<FormValues> = {\n tabsCount: 1,\n activeTabId: undefined,\n verticalTabs: undefined,\n };\n\n form?: FormApi<FormValues, InitialFormValues>;\n\n constructor(props: DFDialogProps<FormValues, InitialFormValues, TabT, FieldT>) {\n super(props);\n\n checkFieldsSpec(props);\n }\n\n componentDidUpdate(_prevProps: unknown, prevState: State<FormValues>) {\n if (prevState.tabsCount !== this.state.tabsCount) {\n setTimeout(() => document.querySelector('.g-dialog__modal')?.scrollTo(0, 0), 0); // setTimeout for safari\n }\n }\n\n onClose = (_event?: unknown, reason?: ModalCloseReason | 'closeButtonClick') => {\n if (reason === 'outsideClick') {\n return;\n }\n\n this.setState({activeTabId: undefined});\n\n const {onClose = Dialog.defaultProps.onClose, disableFormReset} = this.props;\n onClose(this.form!);\n\n if (!disableFormReset) {\n window.setTimeout(() => {\n this.form!.reset();\n }, 0);\n }\n };\n\n _isApplyDisabled(formState: FormState<FormValues, InitialFormValues>) {\n const {pristineSubmittable} = this.props;\n const {pristine, invalid, hasSubmitErrors, dirtySinceLastSubmit, hasValidationErrors} =\n formState;\n if (invalid) {\n return hasValidationErrors || (hasSubmitErrors && !dirtySinceLastSubmit);\n }\n return pristineSubmittable ? false : pristine;\n }\n\n isApplyDisabled(formState: FormState<FormValues, InitialFormValues>) {\n const {isApplyDisabled} = this.props;\n if (typeof isApplyDisabled === 'function') {\n return isApplyDisabled(formState);\n } else {\n return this._isApplyDisabled(formState);\n }\n }\n\n onApply = () => {\n const {onAdd} = this.props;\n\n return onAdd(this.form!)\n .then((response) => {\n const {validationErrors} = response || {};\n if (validationErrors) {\n return validationErrors;\n }\n this.onClose();\n return null;\n })\n .catch((error) => console.error(error));\n };\n\n renderFieldGroup(field: FieldT, fieldPrefix = '') {\n const {name, type, className, warning, fullWidth} = field;\n const fieldName = fieldPrefix ? `${fieldPrefix}.${name}` : name;\n\n const {required, validator, validateFields = [], initialValue, onChange} = field;\n const validators = [];\n\n if (required) {\n validators.push(Dialog.makeRequiredValidator(field));\n }\n if (typeof validator === 'function') {\n validators.push(validator);\n }\n\n const {format, validate: customValidate, isEqual} = getControl(field.type);\n if (customValidate) {\n validators.push(customValidate);\n }\n\n const validate = composeValidators(...validators);\n\n return (\n <Field\n key={fieldName}\n name={fieldName}\n initialValue={initialValue}\n validate={validate}\n validateFields={validateFields}\n isEqual={isEqual}\n format={format}\n formatOnBlur\n >\n {({input, meta}) => (\n <div\n className={bDialog(\n 'field-group',\n {type, 'full-width': fullWidth, dirty: meta.dirty},\n className,\n )}\n >\n {Dialog.renderLabel(field)}\n <div\n className={bDialog('field-wrapper', {\n type,\n empty: Dialog.isEmptyField(field, input.value),\n 'full-width': fullWidth,\n })}\n >\n {Dialog.renderField(field, input, meta)}\n {warning && (\n <div className={bDialog('field-warning')}>\n <WarningIcon />\n <span className={bDialog('field-warning-content')}>\n {warning}\n </span>\n </div>\n )}\n </div>\n {typeof onChange === 'function' && (\n <OnChange name={fieldName}>\n {(value: unknown, oldValue: unknown) => {\n if (value !== oldValue) {\n onChange(\n value,\n oldValue,\n field,\n fieldName,\n this.form! as any,\n this.form!.getState(),\n );\n }\n }}\n </OnChange>\n )}\n </div>\n )}\n </Field>\n );\n }\n\n renderSection(field: SectionType<FieldT>, index: number, fieldPrefix?: string) {\n const {\n wrapTo = (sectionNode) => sectionNode,\n section,\n collapsible,\n initialCollapsed,\n } = field;\n let children: React.ReactNode;\n if (!Array.isArray(field.fields) || field.fields.length === 0) {\n children = [];\n } else {\n children = this.renderFields(field.fields, fieldPrefix);\n }\n\n const key = `section-field-${index}`;\n return (\n <React.Fragment key={key}>\n {wrapTo(\n <CollapsibleSection\n className={bDialog('section')}\n caption={section}\n captionClassName={bDialog('section-title')}\n initialCollapsed={initialCollapsed}\n alwaysExpanded={!collapsible}\n >\n {children}\n </CollapsibleSection>,\n )}\n </React.Fragment>\n );\n }\n\n renderFields(fields: Array<DialogField<FieldT>>, fieldPrefix?: string) {\n return fields.map((field, index) => {\n if (isSectionField(field)) {\n return this.renderSection(field, index, fieldPrefix);\n } else if (isSeparatorField(field)) {\n return Dialog.renderSeparator(field, index);\n } else {\n const {visibilityCondition} = field;\n if (visibilityCondition) {\n return (\n <Condition key={`cond-${index}`} {...visibilityCondition}>\n {this.renderFieldGroup(field, fieldPrefix)}\n </Condition>\n );\n }\n\n return this.renderFieldGroup(field, fieldPrefix);\n }\n });\n }\n\n renderFormError() {\n const {[FORM_ERROR]: formError} = this.form!.getState().submitErrors || {};\n if (!formError) {\n return null;\n }\n return <div className={bDialog('error-message')}>{formError}</div>;\n }\n\n isActiveTab = (tabValues: TabT) => getTabId(tabValues as any) === this.state.activeTabId;\n\n renderMultiTabContent(tab: TabT) {\n const {virtualized} = this.props;\n const {name, fields, renderControls} = tab;\n\n return (\n <FieldArray key={name} name={name}>\n {({fields: tabs}) => {\n return tabs.map((fieldPrefix, index) => {\n const tabValues = tabs.value[index];\n const isActive = this.isActiveTab(tabValues);\n\n const onCreate = (active?: boolean) => {\n const formState = this.form!.getState();\n const {createTab} = this.prepareTabs(this.form!, formState);\n createTab(name, active);\n };\n\n const onRemove = () => {\n const formState = this.form!.getState();\n const {removeTab} = this.prepareTabs(this.form!, formState);\n removeTab({...tabValues, name});\n };\n\n return (\n (isActive || !virtualized) && (\n <div\n key={index}\n className={bDialog('tabs-content-item', {\n hidden: !isActive,\n name,\n })}\n >\n {this.renderFields(fields, fieldPrefix)}\n {this.renderFormError()}\n {renderControls && (\n <div className={bDialog('extra-controls')}>\n {renderControls(\n tabValues,\n onCreate,\n index !== 0 ? onRemove : undefined,\n )}\n </div>\n )}\n </div>\n )\n );\n });\n }}\n </FieldArray>\n );\n }\n\n renderSingleTabContent(tab: TabT) {\n const {virtualized} = this.props;\n const {activeTabId} = this.state;\n const {name, fields} = tab;\n const isActive = name === activeTabId;\n\n return (\n (isActive || !virtualized) && (\n <div\n key={`single-tab-${name}`}\n className={bDialog('tabs-content-item', {hidden: !isActive, name})}\n >\n {this.renderFields(fields, name)}\n {this.renderFormError()}\n </div>\n )\n );\n }\n\n onActiveTabChange = (tab: string) => {\n const {onActiveTabChange} = this.props;\n this.setState({activeTabId: tab});\n if (typeof onActiveTabChange === 'function') {\n onActiveTabChange(tab);\n }\n };\n\n isVisibleTab(tabAttributes: OperateTabInfo, values: FormValues) {\n const {visibilityCondition} = tabAttributes;\n if (!visibilityCondition) {\n return true;\n }\n const value = get_(values, visibilityCondition.when);\n return visibilityCondition.isActive(value);\n }\n\n prepareTabs(\n form: FormApi<FormValues, InitialFormValues>,\n formState: FormState<FormValues, InitialFormValues>,\n ) {\n const {remove, push} = form.mutators;\n const {activeTabId} = this.state;\n const {fields: propFields} = this.props;\n const {values: stateValues, errors} = formState;\n const tabItems: Array<TabItem> = [];\n let firstMultiTabIndex = 0;\n\n const values = stateValues as any;\n const fields = propFields as Array<TabT>;\n\n const createTab = (\n fieldName: string,\n active?: boolean,\n options: {userOptions?: any} = {},\n ) => {\n const tabSpec = find_(fields, (fieldSpec) => fieldSpec.name === fieldName);\n const {onCreateTab} = tabSpec || {};\n if (!tabSpec?.multiple) {\n return;\n }\n\n const {userOptions} = options;\n\n const index = findIndex_(values[fieldName], this.isActiveTab);\n const {id: _id, ...srcTabData} = values[fieldName][index === -1 ? 0 : index];\n const newTabData = onCreateTab ? onCreateTab(srcTabData, {userOptions}) : srcTabData;\n if (newTabData.id === undefined) {\n const ids = new Set(map_(values[fieldName], ({id}) => String(id)));\n for (let i = 0; i <= ids.size; ++i) {\n const id = String(i + 1);\n if (!ids.has(id)) {\n newTabData.id = id;\n break;\n }\n }\n } else {\n checkTabId(newTabData, values[fieldName]);\n }\n push(fieldName, newTabData);\n this.setState({tabsCount: tabItems.length + 1});\n if (active) {\n this.onActiveTabChange(getTabId(newTabData));\n }\n };\n\n const removeTab = (tabItemToDelete: TabItem) => {\n const tabIndexToDelete = findIndex_(tabItems, (item) => item.id === tabItemToDelete.id);\n if (tabIndexToDelete < 0) {\n return;\n }\n\n if (tabItemToDelete.id === activeTabId) {\n const tabIdToSwitch = tabItems[tabIndexToDelete - 1].id;\n this.setState({activeTabId: tabIdToSwitch});\n }\n remove(tabItemToDelete.name, tabIndexToDelete - firstMultiTabIndex);\n this.setState({tabsCount: tabItems.length - 1});\n };\n\n let seenMultiTab = false;\n let updateActiveTab = false;\n Dialog.operateOnTabs({fields, values, errors}, (tabAttributes) => {\n const {id, error, name, multiple, index, renderControls, title, isRemovable} =\n tabAttributes;\n\n if (!this.isVisibleTab(tabAttributes, stateValues)) {\n updateActiveTab = updateActiveTab || activeTabId === id;\n return;\n }\n\n if (multiple && !seenMultiTab) {\n seenMultiTab = true;\n firstMultiTabIndex = index;\n }\n\n tabItems.push({\n id,\n error,\n name,\n multiple,\n ...{renderControls},\n title,\n removable: isRemovable(index - firstMultiTabIndex),\n });\n });\n\n if (updateActiveTab) {\n this.setState({activeTabId: tabItems[0]?.id});\n }\n\n return {tabItems, createTab, removeTab};\n }\n\n renderTabs = ({\n form,\n ...formState\n }: {form: FormApi<FormValues, InitialFormValues>} & FormState<\n FormValues,\n InitialFormValues\n >) => {\n const {activeTabId, verticalTabs} = this.state;\n const {size, fields} = this.props;\n const {tabItems, removeTab, createTab} = this.prepareTabs(form, formState);\n\n const tabbedFields = fields as Array<TabT>;\n\n const TabComponent = getControl<unknown, TabFieldProps>(tabbedFields[0]?.type);\n return (\n <TabComponent\n className={bDialog('tabs-control', {vertical: Boolean(verticalTabs)})}\n size={size}\n tabItems={tabItems}\n activeTab={activeTabId}\n setActiveTab={this.onActiveTabChange}\n onRemoveTab={removeTab}\n onCreateTab={createTab}\n />\n );\n };\n\n renderTabbedFields() {\n const {fields} = this.props;\n const {verticalTabs} = this.state;\n\n const tabbedFields = fields as Array<TabT>;\n\n return (\n <Fragment>\n <FormSpy render={this.renderTabs} subscription={{values: true, errors: true}} />\n <div className={bDialog('tabs-content', {with_vertical_tabs: verticalTabs as any})}>\n {tabbedFields.map((tab) =>\n tab.multiple\n ? this.renderMultiTabContent(tab)\n : this.renderSingleTabContent(tab),\n )}\n </div>\n </Fragment>\n );\n }\n\n hasTabs() {\n return Dialog.hasTabs(this.props.fields);\n }\n\n renderDialogContent = (\n handleSubmit: () => void,\n form: FormApi<FormValues, InitialFormValues>,\n ) => {\n this.form = form;\n const {waitingMessage, headerProps, footerProps, fields, formId, size} = this.props;\n const {verticalTabs} = this.state;\n const {title, insertAfter, insertBefore} = headerProps || {};\n const {textApply: textApplyDefault, textCancel: textCancelDefault} =\n Dialog.defaultProps.footerProps;\n const {\n textApply = textApplyDefault,\n textCancel = textCancelDefault,\n content,\n propsButtonCancel = {},\n propsButtonApply = {},\n hidden,\n } = footerProps || {};\n const formState = form.getState();\n const disabled = this.isApplyDisabled(formState);\n\n return (\n <Fragment>\n {title && (\n <CommonDialog.Header\n caption={<span className={bDialog('caption')}>{title}</span>}\n insertAfter={insertAfter}\n insertBefore={insertBefore}\n />\n )}\n <form id={formId} onSubmit={handleSubmit}>\n <CommonDialog.Body\n className={bDialog('body', {with_vertical_tabs: Boolean(verticalTabs)})}\n >\n <div className={bDialog({size, with_vertical_tabs: Boolean(verticalTabs)})}>\n {isArrayOfTabs(fields) ? (\n this.renderTabbedFields()\n ) : (\n <React.Fragment>\n {this.renderFields(fields as Array<DialogField<FieldT>>)}\n {this.renderFormError()}\n </React.Fragment>\n )}\n </div>\n </CommonDialog.Body>\n {!hidden && (\n <CommonDialog.Footer\n preset=\"default\"\n loading={formState.submitting}\n textButtonCancel={textCancel}\n textButtonApply={textApply as string}\n propsButtonApply={{disabled, type: 'submit', ...propsButtonApply}}\n propsButtonCancel={propsButtonCancel}\n onClickButtonCancel={this.onClose}\n onClickButtonApply={noop}\n >\n <div className={bDialog('footer-controls')}>{content}</div>\n </CommonDialog.Footer>\n )}\n </form>\n {waitingMessage && (\n <div className={bDialog('waiting-message')}>\n <div className={bDialog('waiting-message-inner')}>\n <InfoIcon />\n {waitingMessage}\n </div>\n </div>\n )}\n </Fragment>\n );\n };\n\n renderPageDialog = ({\n handleSubmit,\n form,\n }: {\n handleSubmit: () => void;\n form: FormApi<FormValues, InitialFormValues>;\n }): React.ReactNode => {\n const {className, modal, size} = this.props;\n return (\n <div className={bPage('wrapper', {modal}, className)}>\n <div className={bPage({size})}>{this.renderDialogContent(handleSubmit, form)}</div>\n </div>\n );\n };\n\n renderModalDialog = ({\n handleSubmit,\n form,\n }: {\n handleSubmit: () => void;\n form: FormApi<FormValues, InitialFormValues>;\n }): React.ReactNode => {\n const {visible, className, size} = this.props;\n\n return (\n visible && (\n <CommonDialog\n className={className}\n open\n hasCloseButton\n size={size}\n onClose={this.onClose}\n >\n {this.renderDialogContent(handleSubmit, form)}\n </CommonDialog>\n )\n );\n };\n\n getFieldsCalculator = () => {\n const calculator = Dialog.collectSubscribers('', this.props.fields).map(\n ({name, subscribers}) => ({\n field: name,\n updates: subscribers,\n }),\n );\n\n if (!calculator.length) {\n return undefined;\n }\n\n return createDecorator(...calculator) as Decorator<any, any>;\n };\n\n render() {\n const {initialValues, modal, formExtras, validate} = this.props;\n const {defaultValues} = this.state;\n const calculator = this.getFieldsCalculator();\n const decorators: undefined | Array<Decorator<FormValues, InitialFormValues>> = calculator\n ? [calculator]\n : undefined;\n\n let values;\n if (initialValues) {\n // simple form initialized with values\n values = Object.assign({}, defaultValues, initialValues);\n } else {\n // simple form with default field values\n values = defaultValues;\n }\n\n const renderDialog = modal ? this.renderModalDialog : this.renderPageDialog;\n const {mutators} = formExtras ?? {};\n\n return (\n <Form\n initialValuesEqual={isEqual_}\n keepDirtyOnReinitialize={true}\n {...formExtras}\n onSubmit={this.onApply}\n validate={validate}\n subscription={Dialog.FINAL_FORM_SUBSCRIPTIONS}\n mutators={this.hasTabs() ? {...mutators, ...(arrayMutators as any)} : mutators}\n initialValues={values as any}\n decorators={decorators}\n render={renderDialog as any}\n />\n );\n }\n}\n\nDialog.registerTabControl('tab', TabField);\nDialog.registerTabControl('tab-vertical', TabFieldVertical);\n\nexport type RegisteredDialogTabField<\n Key extends string,\n P extends TabFieldProps,\n FieldT,\n> = TabbedField<FieldT, any, Key> &\n Omit<P, keyof TabbedField<unknown> | 'setActiveTab' | 'tabItems'>;\n\nexport type DFDialogTabField<FieldT> =\n | RegisteredDialogTabField<'tab', TabFieldProps, FieldT>\n | RegisteredDialogTabField<'tab-vertical', TabFieldVerticalProps, FieldT>;\n\nDialog.registerControl('text', TextControl);\nDialog.registerControl('textarea', TextAreaControl);\nDialog.registerControl('select', SelectControl);\nDialog.registerControl('tumbler', TumblerControl);\nDialog.registerControl('block', CustomBlock);\nDialog.registerControl('plain', PlainText);\nDialog.registerControl('checkbox', CheckBoxControl);\nDialog.registerControl('radio', RadioButtonControl);\nDialog.registerControl('editable-list', EditableList);\nDialog.registerControl('multi-editable-lists', EditableManyLists);\nDialog.registerControl('multi-text', MultiTextControl);\n\nexport const DeprecatedDialog = Dialog;\n\nexport type RegisteredDialogField<\n Key extends string,\n P extends {value?: any},\n FormValues,\n> = ControlField<Key, P['value'], DistributiveOmit<P, keyof ControlProps<any>>, FormValues>;\n\nexport type DFDialogField<FormValues = any, AdditionalControlFields = never> =\n | SectionType<DFDialogControlField<FormValues> | AdditionalControlFields | SeparatorType>\n | SeparatorType\n | DFDialogControlField<FormValues>\n | AdditionalControlFields;\n\ntype DFDialogControlField<FormValues = any> =\n | RegisteredDialogField<'text', TextControlProps, FormValues>\n | RegisteredDialogField<'textarea', TextAreaControlProps, FormValues>\n | RegisteredDialogField<'select', SelectControlProps, FormValues>\n | RegisteredDialogField<'tumbler', TumblerControlProps, FormValues>\n | RegisteredDialogField<'block', CustomBlockProps, FormValues>\n | RegisteredDialogField<'plain', PlainTextProps, FormValues>\n | RegisteredDialogField<'checkbox', CheckBoxControlProps, FormValues>\n | RegisteredDialogField<'radio', RadioButtonControlProps, FormValues>\n | RegisteredDialogField<'editable-list', EditableListProps<any>, FormValues>\n | RegisteredDialogField<'multi-editable-lists', EditableManyListsProps<any>, FormValues>\n | RegisteredDialogField<'multi-text', MultiTextControlProps, FormValues>;\n\nexport function DFDialog<FormValues, InitialValuesType = DeepPartial<FormValues>>(\n props: DFDialogProps<\n FormValues,\n InitialValuesType,\n DFDialogTabField<DFDialogField<FormValues>>,\n DFDialogField<FormValues>\n >,\n) {\n return <Dialog {...(props as any)} />;\n}\n\nexport const registerDialogControl = Dialog.registerControl;\nexport const registerDialogTabControl = Dialog.registerTabControl;\n\ninterface FieldWithExtrasProps<FieldT extends ControlField, Value = any> {\n field: FieldT;\n input: FieldInputProps<Value>;\n meta: FieldMetaState<Value>;\n extras: any;\n}\nfunction FieldWithExtras<FieldT extends ControlField, Value = any>({\n field,\n extras = {},\n meta,\n input,\n}: FieldWithExtrasProps<FieldT, Value>) {\n const {type, name, touched} = field;\n\n let error;\n if (meta.error && (touched || meta.touched || meta.dirty)) {\n error = meta.error;\n } else if (meta.submitError && !meta.dirtySinceLastSubmit && !meta.submitting) {\n error = meta.submitError;\n }\n\n const {onFocus: onFocusExternal, onBlur: onBlurExternal} = extras;\n const {onFocus: onFocusField, onBlur: onBlurField} = input;\n\n const onFocus = useStableEventHandler(applyFunctions(onFocusExternal, onFocusField));\n const onBlur = useStableEventHandler(applyFunctions(onBlurExternal, onBlurField));\n\n const controlProps: any = {\n id: name,\n ...extras,\n ...input,\n onFocus,\n onBlur,\n };\n\n const Control = getControl(type);\n if (Control.hasErrorRenderer) {\n controlProps.error = error;\n error = null;\n }\n\n return (\n <React.Fragment>\n {React.createElement(Control, {...controlProps})}\n {error && <div className={bDialog('field-error')}>{error}</div>}\n </React.Fragment>\n );\n}\n","import React from 'react';\n\nimport {\n EditableListItemType,\n EditableManyLists,\n EditableManyListsItemType,\n} from '@gravity-ui/dialog-fields';\n\nimport {SubjectCard} from '../../../SubjectLink/SubjectLink';\nimport {ResponsibleType, RoleConverted} from '../../../../utils/acl/acl-types';\nimport SubjectsControl from '../../../../containers/ACL/SubjectsControl/SubjectsControl';\n\nimport './RoleListControl.scss';\n\nimport {block} from './utils';\n\nexport interface RoleListControlProps {\n className?: string;\n value: {\n newItems: Array<ResponsibleType>;\n current: EditableManyListsItemType<RoleConverted>;\n toAdd: EditableManyListsItemType<RoleConverted>;\n toRemove: EditableManyListsItemType<RoleConverted>;\n unrecognized: EditableManyListsItemType<RoleConverted>;\n };\n\n onChange: (value: RoleListControlProps['value']) => void;\n placeholder?: string;\n maxVisibleCount?: number;\n allowedTypes?: Array<'users' | 'groups'>;\n}\n\nexport default class RoleListControl extends React.Component<RoleListControlProps> {\n static defaultProps = {\n maxVisibleCount: 3,\n };\n\n static getDefaultValue() {\n return {\n newItems: [],\n current: {title: '', data: []},\n toAdd: {title: '', data: []},\n toRemove: {title: '', data: []},\n unrecognized: {title: '', data: []},\n };\n }\n\n static isEmpty() {\n return false;\n }\n\n static prepareManyListData(value: RoleListControlProps['value']) {\n const {current, toAdd, toRemove, unrecognized} = value;\n return [{...current}, toAdd, toRemove, unrecognized].filter(\n (item) => item.data && item.data.length > 0,\n );\n }\n\n onSubejctsControlChange = (newItems?: RoleListControlProps['value']['newItems']) => {\n const {value, onChange} = this.props;\n onChange({\n ...value,\n newItems: newItems as any,\n });\n };\n\n onManyListsChange = (arr: Array<EditableManyListsItemType<RoleConverted>>) => {\n const [current] = arr;\n if (!current) {\n return;\n }\n const {value, onChange} = this.props;\n onChange({\n ...value,\n current,\n });\n };\n\n renderItem = (item: EditableListItemType<RoleConverted>) => {\n const {title, data} = item;\n const {type} = data || {};\n\n return type === 'users' ? <SubjectCard name={title} /> : title;\n };\n\n render() {\n const {className, value, placeholder, maxVisibleCount, allowedTypes} = this.props;\n\n const manyListsData = RoleListControl.prepareManyListData(value);\n\n return (\n <div className={block(null, className)}>\n <SubjectsControl\n onChange={this.onSubejctsControlChange as any}\n value={value.newItems || []}\n placeholder={placeholder}\n allowedTypes={allowedTypes}\n />\n {manyListsData.length > 0 && (\n <EditableManyLists\n className={block('many-lists')}\n value={manyListsData}\n titleClassName={block('many-lists-title')}\n onChange={this.onManyListsChange}\n maxVisibleCount={maxVisibleCount}\n itemRenderer={this.renderItem}\n />\n )}\n </div>\n );\n }\n}\n","import React from 'react';\nimport {connect} from 'react-redux';\n\nimport {\n getColumnGroupSuggestions,\n getColumnLockSuggestions,\n} from '../../../../../store/selectors/navigation/modals/create-table';\nimport Suggest, {SuggestItem} from '../../../../../components/Suggest/Suggest';\nimport {RootState} from '../../../../../store/reducers';\n\ninterface Props {\n className?: string;\n value: string | undefined;\n onChange: (value: Props['value']) => void;\n getItems: () => Array<string>;\n suggestions?: Array<string>;\n\n children?: React.ReactNode;\n}\n\nclass LockSuggest extends React.Component<Props> {\n static isEmpty = (v: Props['value']) => {\n return v === '' || v === null || v === undefined;\n };\n\n static getDefaultValue = () => '';\n\n getItems = (items: Array<SuggestItem>) => {\n return items;\n };\n\n onChange = (value: SuggestItem) => {\n const {onChange} = this.props;\n onChange('string' === typeof value ? value : value.value);\n };\n\n render() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const {className, value, onChange, children, suggestions, ...rest} = this.props;\n\n return (\n <Suggest\n {...rest}\n text={value}\n apply={this.onChange}\n items={suggestions}\n filter={this.getItems}\n />\n );\n }\n}\n\nconst mapLockStateToProps = (state: RootState) => {\n const suggestions = getColumnLockSuggestions(state);\n\n return {\n suggestions,\n };\n};\n\nexport const LockSuggestControl = connect(mapLockStateToProps)(LockSuggest);\n\nconst mapGroupStateToProps = (state: RootState) => {\n const suggestions = getColumnGroupSuggestions(state);\n\n return {\n suggestions,\n };\n};\n\nexport const GroupSuggestControl = connect(mapGroupStateToProps)(LockSuggest);\n","import React, {Component} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Select} from '@gravity-ui/uikit';\n\nimport './SelectWithSubItems.scss';\n\nconst block = cn('ic-select-with-subitems');\n\nexport interface Props {\n className?: string;\n value: Array<string>;\n onChange: (value: Props['value']) => void;\n items: Array<{value: string; content: string}>;\n subItemsMap?: Record<string, Props['items']>;\n labels?: Array<React.ReactNode>;\n labelClassName?: string;\n placeholder?: string;\n}\n\nexport type SelectWithSubItemsProps = Props;\n\nexport default class SelectWithSubItems extends Component<Props> {\n static getDefaultValue() {\n return [];\n }\n\n static isEmpty(value: Props['value']) {\n return !value || value.length === 0;\n }\n\n render() {\n const {className, value: input, items, labels, placeholder, subItemsMap = {}} = this.props;\n const [first, second] = input || [];\n const [label, subLabel] = labels || [];\n\n const subItems = subItemsMap[first];\n\n const subValue = second || (subItems && subItems[0].value);\n\n return (\n <div className={block(null, className)}>\n {this.renderSelect(first, items, this.onChange, label, placeholder)}\n {this.renderSelect(\n subValue,\n subItemsMap[first],\n this.onSubValueChange,\n subLabel,\n undefined,\n )}\n </div>\n );\n }\n\n renderSelect(\n value: string,\n items: Props['items'],\n onChange: (value: string) => void,\n label: React.ReactNode,\n placeholder?: string,\n ) {\n if (!items || !items.length) {\n return null;\n }\n\n const {labelClassName} = this.props;\n\n return (\n <div className={block('control')}>\n {label && <span className={block('control-label', labelClassName)}>{label}</span>}\n <Select\n options={items}\n value={[value]}\n onUpdate={(vals) => onChange(vals[0])}\n placeholder={placeholder}\n width=\"max\"\n disablePortal\n />\n </div>\n );\n }\n\n onChange = (newValue: string) => {\n const {value: input, onChange, subItemsMap = {}} = this.props;\n const [oldValue, second] = input || [];\n const subItems = subItemsMap[newValue];\n\n if (oldValue === newValue) {\n return;\n }\n\n if (subItems) {\n const subValue = subItems.find(({value}) => value === second)\n ? second\n : subItems[0].value;\n onChange([newValue, subValue]);\n } else {\n onChange([newValue]);\n }\n };\n\n onSubValueChange = (newSubValue: string) => {\n const {value: input, onChange} = this.props;\n const [oldValue] = input || [];\n onChange([oldValue, newSubValue]);\n };\n}\n","import React from 'react';\nimport {useSelector} from 'react-redux';\n\nimport map_ from 'lodash/map';\n\nimport cn from 'bem-cn-lite';\n\nimport {getCreatePoolDialogFlatTreeItems} from '../../../../store/selectors/scheduling/create-pool-dialog';\nimport Select from '../../../../components/Select/Select';\n\nconst block = cn('accounts-suggest');\n\ninterface Props {\n placeholder?: string;\n value: string;\n onChange: (value: Props['value']) => void;\n error?: React.ReactNode;\n validate?: (v: Props['value']) => React.ReactNode;\n}\n\nexport default function CreatePoolParentSuggest(props: Props) {\n const {onChange, placeholder, value, error, ...rest} = props;\n\n const {sortedFlatTree} = useSelector(getCreatePoolDialogFlatTreeItems);\n\n const ycItems = map_(sortedFlatTree, (item) => ({\n value: item,\n text: item,\n }));\n\n return (\n <div className={block({empty: !value, error: Boolean(error)})}>\n <Select\n {...rest}\n items={ycItems}\n onUpdate={(vals) => onChange(vals[0])}\n placeholder={placeholder}\n value={value ? [value] : undefined}\n width=\"max\"\n />\n {error && <div className={block('error')}>{error}</div>}\n </div>\n );\n}\n\nCreatePoolParentSuggest.isEmpty = (value: string) => {\n return !value;\n};\n\nCreatePoolParentSuggest.getDefaultValue = () => {\n return '';\n};\n\nCreatePoolParentSuggest.hasErrorRenderer = true;\n","import {RootState} from '../../reducers';\n\nexport const getTabletCellBundlesSuggests = (state: RootState) =>\n state.suggests.tabletCellBundles.items;\n","import React, {ComponentProps} from 'react';\n\nimport map_ from 'lodash/map';\n\nimport cn from 'bem-cn-lite';\nimport {useDispatch, useSelector} from 'react-redux';\n\nimport {getTabletCellBundlesSuggests} from '../../../store/selectors/suggests';\nimport {loadUsableTabletCellBundlesSuggests} from '../../../store/actions/suggests';\nimport Select from '../../../components/Select/Select';\n\nconst block = cn('tablet-cell-bundles-suggest');\n\ninterface Props\n extends Omit<ComponentProps<typeof Select>, 'value' | 'onChange' | 'onUpdate' | 'items'> {\n value?: string;\n onChange: (value?: string) => void;\n}\n\nfunction TabletCellBundlesSuggest(props: Props) {\n const items = useSelector(getTabletCellBundlesSuggests);\n const dispatch = useDispatch();\n React.useEffect(() => {\n dispatch(loadUsableTabletCellBundlesSuggests());\n }, []);\n\n const {onChange, placeholder, ...rest} = props;\n const value = props.value;\n\n const ycItems = map_(items, (item) => ({\n value: item,\n text: item,\n }));\n\n return (\n <div className={block({empty: !value})}>\n <Select\n {...rest}\n items={ycItems}\n onUpdate={(vals) => onChange(vals[0])}\n placeholder={placeholder}\n value={value ? [value] : undefined}\n width=\"max\"\n disablePortal\n />\n </div>\n );\n}\n\nTabletCellBundlesSuggest.isEmpty = (value: string) => {\n return !value;\n};\n\nTabletCellBundlesSuggest.getDefaultValue = () => {\n return '';\n};\n\nexport default TabletCellBundlesSuggest;\n","import {ThunkAction} from 'redux-thunk';\n\nimport {RootState} from '../../../store/reducers';\nimport {TabletCellBundlesSuggestAction} from '../../../store/reducers/suggests/tablet-cell-bundless';\nimport {\n SUGGEST_TABLET_CELL_BUNDLES_ERROR,\n SUGGEST_TABLET_CELL_BUNDLES_REQUEST,\n SUGGEST_TABLET_CELL_BUNDLES_SUCCESS,\n} from '../../../constants/suggests';\nimport {getCurrentUserName} from '../../selectors/global';\nimport {YTApiId, ytApiV3Id} from '../../../rum/rum-wrap-api';\n\ntype TabletCellBundlesSuggestThunkAction = ThunkAction<\n any,\n RootState,\n any,\n TabletCellBundlesSuggestAction\n>;\n\nexport function loadUsableTabletCellBundlesSuggests(): TabletCellBundlesSuggestThunkAction {\n return (dispatch, getState) => {\n dispatch({type: SUGGEST_TABLET_CELL_BUNDLES_REQUEST});\n\n const username = getCurrentUserName(getState());\n\n return ytApiV3Id\n .get(YTApiId.getUsableBundles, {\n path: `//sys/users/${username}/@usable_tablet_cell_bundles`,\n })\n .then((items: Array<string>) => {\n dispatch({\n type: SUGGEST_TABLET_CELL_BUNDLES_SUCCESS,\n data: {items},\n });\n })\n .catch((e: any) => {\n dispatch({type: SUGGEST_TABLET_CELL_BUNDLES_ERROR, data: e});\n });\n };\n}\n","export const SUGGEST_TABLET_CELL_BUNDLES_REQUEST = 'SUGGEST_TABLET_CELL_BUNDLES_REQUEST';\nexport const SUGGEST_TABLET_CELL_BUNDLES_SUCCESS = 'SUGGEST_TABLET_CELL_BUNDLES_SUCCESS';\nexport const SUGGEST_TABLET_CELL_BUNDLES_ERROR = 'SUGGEST_TABLET_CELL_BUNDLES_ERROR';\n","import React from 'react';\nimport map_ from 'lodash/map';\nimport reduce_ from 'lodash/reduce';\nimport sortBy_ from 'lodash/sortBy';\nimport cn from 'bem-cn-lite';\n\nimport PathEditor from '../../../../containers/PathEditor/PathEditor';\nimport {EditableList} from '@gravity-ui/dialog-fields';\n\nimport './EditablePathList.scss';\nimport {FIX_MY_TYPE} from '../../../../types';\n\nconst block = cn('editable-path-list');\n\ninterface Props {\n value: Array<string>;\n defaultPath?: string;\n placeholder?: string;\n onChange: (value: Props['value']) => void;\n}\n\nexport default class EditablePathList extends React.Component<Props> {\n static getDefaultValue() {\n return EditableList.getDefaultValue();\n }\n\n static isEmpty(value: Props['value']) {\n return !value?.length;\n }\n\n onListChange = (value: FIX_MY_TYPE) => {\n const newValue = reduce_(\n value,\n (acc, {title, removed}) => {\n if (!removed) {\n acc.push(title);\n }\n return acc;\n },\n [] as Props['value'],\n );\n this.props.onChange(newValue);\n };\n\n onPathEditorChange = (...args: any) => {\n const [path] = args;\n const {value = [], onChange} = this.props;\n const newValue = [...value, path].sort();\n onChange(newValue);\n };\n\n render() {\n const {value, defaultPath, placeholder} = this.props;\n const listItems = map_(sortBy_(value), (path) => {\n return {title: path};\n });\n return (\n <div className={block()}>\n <PathEditor\n placeholder={placeholder}\n defaultPath={defaultPath}\n onApply={this.onPathEditorChange}\n />\n <EditableList\n className={block('list')}\n value={listItems}\n onChange={this.onListChange}\n />\n </div>\n );\n }\n}\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport PathEditor from '../../../../containers/PathEditor/PathEditor';\n\nconst block = cn('path-editor-control');\n\ninterface Props {\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n disabled?: boolean;\n}\n\nexport function PathEditorControl(props: Props) {\n const {value, placeholder, onChange, ...rest} = props;\n\n const handleApply = React.useCallback(\n (value: Props['value']) => {\n onChange(value);\n },\n [onChange],\n );\n\n return (\n <PathEditor\n className={block()}\n defaultPath={value}\n placeholder={placeholder}\n onApply={handleApply}\n onChange={handleApply}\n {...rest}\n />\n );\n}\n\nPathEditorControl.getDefaultValue = () => {\n return '';\n};\n\nPathEditorControl.isEmpty = (value: Props['value']) => {\n return !value;\n};\n","import React, {FC} from 'react';\nimport {Checkbox, CheckboxProps, Icon, Tooltip} from '@gravity-ui/uikit';\nimport CircleQuestionIcon from '@gravity-ui/icons/svgs/circle-question.svg';\nimport cn from 'bem-cn-lite';\nimport './FormOptionItem.scss';\nimport {PathAttribute} from '../../../../store/reducers/navigation/modals/tableMergeSortModalSlice';\n\nconst block = cn('form-option-item');\n\ntype Props = {\n name: PathAttribute;\n tooltip: string;\n onUpdate: (key: PathAttribute, value: boolean) => void;\n} & Pick<CheckboxProps, 'checked'>;\n\nexport const FormOptionItem: FC<Props> = ({name, tooltip, checked, onUpdate}) => {\n const handleUpdate = (value: boolean) => {\n onUpdate(name, value);\n };\n\n return (\n <div className={block()}>\n <Checkbox checked={checked} onUpdate={handleUpdate}>\n {name}\n </Checkbox>\n\n <Tooltip content={tooltip} className={block('tooltip')}>\n <Icon data={CircleQuestionIcon} className={block('info')} size={16} />\n </Tooltip>\n </div>\n );\n};\n","import {PathAttribute} from '../../../../store/reducers/navigation/modals/tableMergeSortModalSlice';\n\nconst TOOLTIP_MAP: Record<PathAttribute, string> = {\n [PathAttribute.COMPRESSION_CODEC]:\n 'Sets the compression format for output table. The attribute can be specified with the write_file, write_table commands, and on operation output paths. This attribute is incompatible with <append=true>.',\n [PathAttribute.ERASURE_CODEC]:\n 'Turn off erasure-coding to create a table. The attribute can be monitored with the write_file, write_table commands, and on operation output paths. This attribute is incompatible with <append=true>.',\n [PathAttribute.OPTIMIZE_FOR]:\n 'Sets the storage format for output table. The attribute can be specified with the write_table command and on the output paths of operations. This attribute is not compatible with <append=true>.',\n};\n\nexport const getTooltipByType = (type: string) =>\n type in TOOLTIP_MAP ? TOOLTIP_MAP[type as PathAttribute] : undefined;\n","import React, {FC, useMemo, useRef} from 'react';\nimport {Button, Icon, Popup} from '@gravity-ui/uikit';\nimport PlusIcon from '@gravity-ui/icons/svgs/plus.svg';\nimport {useToggle} from 'react-use';\nimport './AddOptionForm.scss';\nimport cn from 'bem-cn-lite';\nimport {FormOptionItem} from './FormOptionItem';\nimport {getTooltipByType} from './getTooltipByType';\nimport {\n PathAttribute,\n TableSortMergeModal,\n} from '../../../../store/reducers/navigation/modals/tableMergeSortModalSlice';\n\nconst popup = cn('add-option-form');\n\ntype Props = {\n attributes: TableSortMergeModal['outputPathAttributes'];\n onChange: (key: PathAttribute, isActive: boolean) => void;\n};\n\nexport const AddOptionForm: FC<Props> = ({attributes, onChange}) => {\n const btnRef = useRef(null);\n const [isOpen, toggleOpen] = useToggle(false);\n\n const items = useMemo(() => {\n return Object.values(attributes).map(({active, type}) => (\n <FormOptionItem\n key={type}\n name={type}\n onUpdate={onChange}\n tooltip={getTooltipByType(type) || ''}\n checked={active}\n />\n ));\n }, [attributes, onChange]);\n\n return (\n <>\n <Button ref={btnRef} view=\"outlined\" onClick={toggleOpen}>\n <Icon data={PlusIcon} size={16} />\n </Button>\n <Popup anchorRef={btnRef} open={isOpen} contentClassName={popup()} onClose={toggleOpen}>\n {items}\n </Popup>\n </>\n );\n};\n","import React, {FC} from 'react';\nimport {Attribute} from '../../../../store/reducers/navigation/modals/tableMergeSortModalSlice';\nimport {RadioButton} from '@gravity-ui/uikit';\n\nconst options = [\n {value: 'scan', content: 'Scan'},\n {value: 'lookup', content: 'Lookup'},\n];\n\ntype Props = {\n attribute: Attribute;\n onChange: (attribute: Attribute) => void;\n};\nexport const OptimizeForAttribute: FC<Props> = ({attribute, onChange}) => {\n if (!attribute.active) return null;\n\n const handleAttributeUpdate = (value: string) => {\n onChange({...attribute, value});\n };\n\n return (\n <>\n <div>Optimize for:</div>\n <RadioButton\n defaultValue={attribute.value}\n onUpdate={handleAttributeUpdate}\n options={options}\n />\n </>\n );\n};\n","import React, {FC} from 'react';\nimport {Attribute} from '../../../../store/reducers/navigation/modals/tableMergeSortModalSlice';\nimport {CompressionCodecs} from '../../../../store/selectors/global/supported-features';\nimport SelectWithSubItems from '../SelectWithSubItems/SelectWithSubItems';\n\ntype Props = {\n attribute: Attribute;\n codecs: CompressionCodecs;\n onChange: (attribute: Attribute) => void;\n};\nexport const CompressionCodecAttribute: FC<Props> = ({attribute, codecs, onChange}) => {\n if (!attribute.active) return null;\n\n let newValue = attribute.value.split('_');\n if (newValue.length > 1) {\n if (newValue.length === 2) {\n newValue[0] = `${newValue[0]}_`;\n } else {\n newValue = [attribute.value];\n }\n }\n\n const handleChange = (value: string[]) => {\n onChange({\n ...attribute,\n value: value.join(''),\n });\n };\n\n return (\n <React.Fragment>\n <div>Compression:</div>\n <SelectWithSubItems\n value={newValue}\n {...codecs}\n labels={['', 'level']}\n onChange={handleChange}\n />\n </React.Fragment>\n );\n};\n","import React, {FC} from 'react';\nimport {Attribute} from '../../../../store/reducers/navigation/modals/tableMergeSortModalSlice';\nimport {SelectSingle} from '../../../Select/Select';\n\ntype Props = {\n attribute: Attribute;\n codecs: {value: string; text: string}[];\n onChange: (attribute: Attribute) => void;\n};\nexport const ErasureCodecAttribute: FC<Props> = ({attribute, codecs, onChange}) => {\n if (!attribute.active) return null;\n\n const handleChange = (value?: string) => {\n onChange({\n ...attribute,\n value: value || '',\n });\n };\n\n return (\n <>\n <div>Erasure codec:</div>\n <SelectSingle value={attribute.value} onChange={handleChange} items={codecs} />\n </>\n );\n};\n","import React, {FC, useCallback, useEffect} from 'react';\nimport type {ControlStaticApi} from '../../../../components/Dialog';\nimport {TextInput} from '@gravity-ui/uikit';\nimport './OutputPathControl.scss';\nimport cn from 'bem-cn-lite';\nimport {AddOptionForm} from './AddOptionForm';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {getNavigationTableOutputPathAttributes} from '../../../../store/selectors/navigation/modals/table-merge-sort-modal';\nimport {loadStorageAttributes} from '../../../../store/actions/navigation/modals/table-merge-sort-modal';\nimport {\n Attribute,\n PathAttribute,\n changeAttribute,\n resetAttributes,\n setAttributeActive,\n} from '../../../../store/reducers/navigation/modals/tableMergeSortModalSlice';\nimport {OptimizeForAttribute} from './OptimizeForAttribute';\nimport {CompressionCodecAttribute} from './CompressionCodecAttribute';\nimport {\n getCompressionCodecs,\n getErasureCodecs,\n} from '../../../../store/selectors/global/supported-features';\nimport {ErasureCodecAttribute} from './ErasureCodecAttribute';\n\nconst block = cn('output-path-control');\n\ntype Props = {\n value: string;\n onChange: (value: string) => void;\n placeholder?: string;\n disabled?: boolean;\n};\n\nexport const OutputPathControl: FC<Props> & ControlStaticApi<any> = ({\n value,\n onChange,\n placeholder,\n disabled,\n}) => {\n const dispatch = useDispatch();\n const outputPathAttributes = useSelector(getNavigationTableOutputPathAttributes);\n const compressionCodecs = useSelector(getCompressionCodecs);\n const erasureCodecs = useSelector(getErasureCodecs);\n\n useEffect(() => {\n if (value) {\n dispatch(loadStorageAttributes(value));\n }\n return () => {\n dispatch(resetAttributes());\n };\n }, [dispatch, value]);\n\n const handleAttributeActiveChange = useCallback(\n (key: PathAttribute, isActive: boolean) => {\n dispatch(\n setAttributeActive({\n key,\n isActive,\n }),\n );\n },\n [dispatch],\n );\n\n const handleAttributeChange = useCallback(\n (attribute: Attribute) => {\n dispatch(changeAttribute(attribute));\n },\n [dispatch],\n );\n\n return (\n <div className={block()}>\n <div className={block('form')}>\n <AddOptionForm\n attributes={outputPathAttributes}\n onChange={handleAttributeActiveChange}\n />\n <TextInput\n hasClear\n value={value || ''}\n onUpdate={onChange}\n placeholder={placeholder}\n disabled={disabled}\n />\n </div>\n <div className={block('attributes')}>\n <OptimizeForAttribute\n attribute={outputPathAttributes[PathAttribute.OPTIMIZE_FOR]}\n onChange={handleAttributeChange}\n />\n <CompressionCodecAttribute\n attribute={outputPathAttributes[PathAttribute.COMPRESSION_CODEC]}\n codecs={compressionCodecs}\n onChange={handleAttributeChange}\n />\n <ErasureCodecAttribute\n attribute={outputPathAttributes[PathAttribute.ERASURE_CODEC]}\n codecs={erasureCodecs}\n onChange={handleAttributeChange}\n />\n </div>\n </div>\n );\n};\n\nOutputPathControl.getDefaultValue = () => '';\n\nOutputPathControl.isEmpty = (value: Props['value']) => {\n return !value;\n};\n","import React from 'react';\n\nimport filter_ from 'lodash/filter';\nimport indexOf_ from 'lodash/indexOf';\nimport slice_ from 'lodash/slice';\nimport sortBy_ from 'lodash/sortBy';\nimport sortedIndexBy_ from 'lodash/sortedIndexBy';\nimport sortedLastIndexBy_ from 'lodash/sortedLastIndexBy';\n\nimport cn from 'bem-cn-lite';\nimport axios from 'axios';\n\nimport {USE_MAX_SIZE} from '../../../../../shared/constants/yt-api';\nimport ypath from '../../../../common/thor/ypath';\n\nimport {DialogControlProps} from '../../../../components/Dialog/Dialog.types';\nimport Suggest from '../../../../components/Suggest/Suggest';\n\nimport {YTApiId, ytApiV3Id} from '../../../../rum/rum-wrap-api';\nimport {wrapApiPromiseByToaster} from '../../../../utils/utils';\nimport {useDefaultPoolTree} from '../../../../hooks/global-pool-trees';\n\nimport './PoolSuggestControl.scss';\n\nconst block = cn('pool-suggest-control');\n\ntype Props = DialogControlProps<string> & {\n // If not defined then current cluster should be used\n cluster?: string;\n // If not defined then default pool tree should be used\n poolTrees?: string[];\n calculateValueOnPoolsLoaded?: (params: {loadedPoolNames: Array<string>}) => string;\n\n allowEmpty?: boolean;\n allowEphemeral?: boolean;\n\n disabled?: boolean;\n};\n\n/**\n * The suggest should be used to select pools of current cluster\n * @param props\n * @returns\n */\nexport function PoolSuggestControl(props: Props) {\n const {\n allowEmpty,\n allowEphemeral,\n value,\n onChange,\n placeholder,\n poolTrees,\n cluster,\n calculateValueOnPoolsLoaded,\n disabled,\n } = props;\n\n const [poolNames, setPoolNames] = React.useState<Array<string>>([]);\n\n const names = useLoadedPools(cluster, poolTrees);\n\n React.useEffect(\n function onPoolLoaded() {\n if (!names) {\n return;\n }\n const noRoot = filter_(names, (item) => '<Root>' !== item);\n const valueIndex = indexOf_(noRoot, value);\n if (value && -1 === valueIndex) {\n onChange('');\n }\n setPoolNames(sortBy_(noRoot));\n if (calculateValueOnPoolsLoaded) {\n onChange(calculateValueOnPoolsLoaded({loadedPoolNames: noRoot}));\n }\n },\n // value should not affect the useEffect\n [names && names.join(), setPoolNames, onChange, calculateValueOnPoolsLoaded /*, value */],\n );\n\n const getItems = React.useCallback(\n (_items: unknown, filter?: string) => {\n if (!filter) {\n return poolNames;\n }\n const from = sortedIndexBy_(poolNames, filter, (item) =>\n item.substring(0, filter.length),\n );\n const to = sortedLastIndexBy_(poolNames, filter, (item) =>\n item.substring(0, filter.length),\n );\n\n const res = slice_(poolNames, from, to);\n return res;\n },\n [poolNames],\n );\n\n return (\n <Suggest\n popupClassName={block('popup')}\n text={value}\n filter={getItems}\n onItemClick={(v) => onChange(typeof v === 'string' ? v : v.value)}\n onTextUpdate={(text) => {\n if (allowEmpty && !text) {\n onChange('');\n } else if (allowEphemeral) {\n onChange(text);\n }\n }}\n placeholder={placeholder}\n disabled={disabled}\n />\n );\n}\n\nPoolSuggestControl.getDefaultValue = () => {\n return '';\n};\n\nPoolSuggestControl.isEmpty = (value: Props['value']) => {\n return !value;\n};\n\nfunction useLoadedPools(cluster?: string, poolTrees?: string[]): Array<string> | null {\n poolTrees = poolTrees || [];\n\n const [poolNames, setPoolNames] = React.useState<Array<string> | null>(null);\n\n const defaultPoolTree = useDefaultPoolTree();\n\n React.useMemo(() => {\n const localPoolTrees: string[] = poolTrees.length\n ? poolTrees\n : defaultPoolTree\n ? [defaultPoolTree]\n : [];\n\n if (!localPoolTrees.length) {\n return;\n }\n\n let promise: Promise<string[]>;\n\n if (cluster) {\n promise = fetchPoolNamesByCluster(cluster, localPoolTrees);\n } else {\n promise = fetchPoolNamesByPoolTrees(localPoolTrees);\n }\n\n return wrapApiPromiseByToaster(promise, {\n skipSuccessToast: true,\n toasterName: 'load-pool-names',\n errorTitle: 'Failed to load pools',\n }).then((result) => {\n setPoolNames(result);\n });\n }, [cluster, defaultPoolTree, poolTrees.join()]);\n\n return poolNames;\n}\n\nfunction fetchPoolNamesByCluster(cluster: string, poolTrees: string[]): Promise<string[]> {\n const promises = Promise.all(\n poolTrees.map((poolTree) => {\n return axios.get(`/api/pool-names/${cluster}?poolTree=${poolTree}`);\n }),\n );\n\n return promises.then((results) => {\n const namesMap: Record<string, boolean> = {};\n\n for (const result of results) {\n for (const poolName of result.data.names) {\n namesMap[poolName] = true;\n }\n }\n\n return Object.keys(namesMap);\n });\n}\n\nfunction fetchPoolNamesByPoolTrees(poolTrees: string[]): Promise<string[]> {\n const promises = Promise.all(\n poolTrees.map((poolTree) => {\n return ytApiV3Id.list(YTApiId.listPoolNames, {\n path: `//sys/scheduler/orchid/scheduler/pool_trees/${poolTree}/pools`,\n ...USE_MAX_SIZE,\n });\n }),\n );\n\n return promises.then((results) => {\n const namesMap: Record<string, boolean> = {};\n\n for (const result of results) {\n for (const poolName of ypath.getValue(result)) {\n namesMap[poolName] = true;\n }\n }\n\n return Object.keys(namesMap);\n });\n}\n","import React from 'react';\nimport {useSelector} from 'react-redux';\nimport map_ from 'lodash/map';\n\nimport {Select} from '@gravity-ui/uikit';\n\nimport {DialogControlProps} from '../../../../components/Dialog/Dialog.types';\nimport {getAllPoolTreeNames} from '../../../../store/selectors/global';\nimport {usePoolTreesLoaded} from '../../../../hooks/global-pool-trees';\n\ntype Props = DialogControlProps<string[]> & {\n disabled?: boolean;\n};\n\nexport function PoolTreeSuggestControl(props: Props) {\n const {value, onChange, disabled, placeholder} = props;\n const treeNames = useSelector(getAllPoolTreeNames);\n\n usePoolTreesLoaded();\n\n const items = React.useMemo(() => {\n return map_(treeNames, (value) => {\n return {value, content: value};\n });\n }, [treeNames]);\n\n return (\n <Select\n disabled={disabled}\n value={value}\n options={items}\n onUpdate={onChange}\n placeholder={placeholder}\n width=\"max\"\n filterable={items?.length > 5}\n multiple\n />\n );\n}\n\nPoolTreeSuggestControl.getDefaultValue = () => {\n return [];\n};\n\nPoolTreeSuggestControl.isEmpty = (value: Props['value']) => {\n return !value.length;\n};\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport map_ from 'lodash/map';\n\nimport {ColumnSelector} from '../../../../components/common/ColumnSelector';\nimport {DialogControlProps} from '../../../../components/Dialog/Dialog.types';\nimport Icon from '../../../../components/Icon/Icon';\n\nimport './TableSortByControl.scss';\n\nconst block = cn('table-sort-by-control');\n\nexport interface TableSortByControlProps extends DialogControlProps<Array<ColumnSortByInfo>> {\n suggestColumns: Array<string>;\n allowDescending?: boolean;\n}\n\nexport interface ColumnSortByInfo {\n name: string;\n descending?: boolean;\n}\n\nexport function TableSortByControl(props: TableSortByControlProps) {\n const {value, suggestColumns, onChange, allowDescending} = props;\n const columns = React.useMemo(() => {\n return map_(value, 'name');\n }, [value]);\n const [descendingMap, setDescendingMap] = React.useState<Record<string, boolean>>({});\n\n const handleChange = React.useCallback(\n (newColumns: Array<string>) => {\n const newValue = map_(newColumns, (name) => {\n const res: ColumnSortByInfo = {name};\n if (descendingMap[name]) {\n res.descending = true;\n }\n return res;\n });\n onChange(newValue);\n },\n [descendingMap, onChange],\n );\n\n return (\n <ColumnSelector\n className={block()}\n value={columns}\n onUpdate={handleChange}\n items={suggestColumns}\n renderItemValue={(name: string) => {\n const desc = descendingMap[name];\n const icon = desc ? 'sort-amount-up' : 'sort-amount-down-alt';\n return (\n <div className={block('item')}>\n {allowDescending && (\n <span\n className={block('item-icon')}\n title={desc ? 'Descending' : 'Ascending'}\n onClick={() => {\n const newMap = {...descendingMap};\n if (descendingMap[name]) {\n delete newMap[name];\n } else {\n newMap[name] = true;\n }\n setDescendingMap(newMap);\n }}\n >\n <Icon awesome={icon} />\n </span>\n )}\n <span className={block('item-name')}>{name}</span>\n </div>\n );\n }}\n />\n );\n}\n\nTableSortByControl.getDefaultValue = () => {\n return [];\n};\n\nTableSortByControl.isEmpty = (v: TableSortByControlProps['value']) => {\n return !v?.length;\n};\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport {DialogControlProps} from '../../../../components/Dialog/Dialog.types';\nimport Suggest from '../../../../components/Suggest/Suggest';\nimport format from '../../../../common/hammer/format';\nimport {parseBytes} from '../../../../utils';\n\nimport './TableChunkSize.scss';\n\nconst block = cn('table-chunk-size');\n\nfunction asPrettyNumber(value: string): string {\n if (!value) {\n return '';\n }\n\n const asNumber = parseBytes(value);\n if (isNaN(asNumber)) {\n return 'Cannot parse as bytes';\n }\n\n return format['Bytes'](asNumber);\n}\n\nfunction getItems() {\n return ['512M', '2G'];\n}\n\ntype Props = DialogControlProps<string | undefined>;\n\nexport function TableChunkSize(props: Props) {\n const {value = '', onChange, placeholder} = props;\n\n return (\n <div className={block()}>\n <Suggest\n text={value}\n popupClassName={block('popup')}\n apply={(item) => onChange('string' === typeof item ? item : item.value)}\n filter={getItems}\n items={getItems()}\n placeholder={placeholder || 'Chunk size...'}\n popupPlacement={['top']}\n />\n <div className={block('pretty')}>\n <span>{asPrettyNumber(value)}&nbsp;</span>\n </div>\n </div>\n );\n}\n\nTableChunkSize.getDefaultValue = () => {\n return undefined;\n};\n\nTableChunkSize.isEmpty = (value: Props['value']) => {\n return !value;\n};\n","import React from 'react';\nimport {DialogControlProps} from '../../components/Dialog/Dialog.types';\nimport {AccountSuggestImpl} from './AccountsSuggest';\nimport {getCurrentUserName} from '../../store/selectors/global';\nimport {useSelector} from 'react-redux';\nimport {Toaster} from '@gravity-ui/uikit';\nimport {showErrorPopup} from '../../utils/utils';\nimport {YTApiId, ytApiV3Id} from '../../rum/rum-wrap-api';\n\nexport function UsableAccountSuggest(props: DialogControlProps<string | undefined>) {\n const {onChange, placeholder, value} = props;\n const [items, setItems] = React.useState<Array<string>>([]);\n\n const login = useSelector(getCurrentUserName);\n React.useEffect(() => {\n ytApiV3Id\n .get(YTApiId.listUsableAccounts, {path: `//sys/users/${login}/@usable_accounts`})\n .then((accounts: Array<string>) => {\n setItems(accounts);\n })\n .catch((e: any) => {\n const toaster = new Toaster();\n toaster.add({\n name: 'usable_accounts',\n theme: 'danger',\n title: 'Failed to load usable accounts',\n content: e?.message,\n actions: [{label: ' Details', onClick: () => showErrorPopup(e)}],\n autoHiding: false,\n });\n });\n }, [login, setItems]);\n\n return (\n <AccountSuggestImpl\n placeholder={placeholder}\n value={value}\n onChange={onChange}\n items={items}\n />\n );\n}\n\nUsableAccountSuggest.isEmpty = (value: string) => {\n return !value;\n};\n\nUsableAccountSuggest.getDefaultValue = () => {\n return '';\n};\n","import React from 'react';\n\nimport {Text} from '@gravity-ui/uikit';\n\nimport {\n EditTextWithPreview,\n EditTextWithPreviewProps,\n} from '../../components/EditTextWithPreview/EditTextWithPreview';\nimport Yson, {YsonProps} from '../../components/Yson/Yson';\nimport ErrorBoundary from '../../components/ErrorBoundary/ErrorBoundary';\nimport {DialogControlProps} from '../../components/Dialog/Dialog.types';\n\nexport type EditJsonProps = DialogControlProps<\n {value: string | undefined; error?: string},\n {\n unipikaSettings?: YsonProps['settings'];\n nullPreview?: any;\n folding?: boolean;\n }\n> &\n Omit<\n EditTextWithPreviewProps,\n keyof DialogControlProps<unknown> | 'renderPreview' | 'editorLang'\n >;\n\nconst YsonPreviewMemo = React.memo(YsonPreview);\n\nEditJsonWithPreview.isEmpty = (value: EditTextWithPreviewProps['value']) => {\n return !value;\n};\n\nEditJsonWithPreview.validate = (value: EditTextWithPreviewProps['value']) => {\n try {\n if (!value.value) return undefined;\n JSON.parse(value.value);\n return undefined;\n } catch (e) {\n return (e as Error).message;\n }\n};\n\nEditJsonWithPreview.getDefaultValue = () => {\n return {value: undefined};\n};\n\nexport function EditJsonWithPreview({\n value: valueProp,\n onChange,\n unipikaSettings,\n nullPreview,\n folding,\n ...rest\n}: EditJsonProps) {\n const {value} = valueProp;\n const onTextChange = React.useCallback(\n ({value: newValue}: {value?: string} = {}) => {\n if (value !== newValue) {\n const prevIsUndefined = value === undefined;\n if (prevIsUndefined && newValue === '') {\n // nothing to do\n } else {\n // validate newValue\n try {\n if (newValue) JSON.parse(newValue);\n onChange({value: newValue});\n } catch (e) {\n if (!(e instanceof Error)) return;\n onChange({value: newValue, error: e.message});\n }\n }\n }\n },\n [onChange, value],\n );\n\n const onError = React.useCallback(\n (e: any) => {\n onChange({value, error: `${e}`});\n },\n [value, onChange],\n );\n\n return (\n <EditTextWithPreview\n initialShowPreview\n {...rest}\n value={valueProp}\n onChange={onTextChange}\n editorTitle={'Use JSON syntax' + (rest.disabled ? ' (readonly)' : '')}\n editorLang={'json'}\n renderPreview={() => (\n // This ErrorBoundary catches some unipika errors\n <ErrorBoundary\n key={value}\n maxCompactMessageLength={200}\n onError={onError}\n disableRum\n >\n <YsonPreviewMemo\n value={valueProp}\n nullPreview={nullPreview}\n settings={unipikaSettings}\n onError={onError}\n folding={folding}\n />\n </ErrorBoundary>\n )}\n />\n );\n}\n\nfunction YsonPreview({\n value: {value, error},\n settings,\n folding,\n onError,\n nullPreview,\n}: {\n value: EditJsonProps['value'];\n settings: YsonProps['settings'];\n folding: YsonProps['folding'];\n onError: (e: any) => void;\n nullPreview: any;\n}) {\n const obj = React.useMemo(() => {\n try {\n return JSON.parse(value || 'null');\n } catch (e) {\n onError(e);\n return undefined;\n }\n }, [value, onError]);\n\n if (error) {\n return <Text color=\"danger\">{error}</Text>;\n }\n\n if (obj === null || obj === undefined) {\n return (\n <React.Fragment>\n Default value:\n <Yson value={nullPreview ?? null} folding={folding} settings={settings} />\n </React.Fragment>\n );\n }\n\n return <Yson value={obj} folding={folding} settings={settings} />;\n}\n","import React from 'react';\n\nimport isEqual_ from 'lodash/isEqual';\nimport map_ from 'lodash/map';\n\nimport QuotaEditor, {QuotaEditorProps} from '../../../components/QuotaEditor/QuotaEditor';\nimport isEmpty_ from 'lodash/isEmpty';\nimport {RootState} from '../../../store/reducers';\nimport {ConnectedProps, connect, useSelector} from 'react-redux';\nimport {getSchedulingPoolsMapByName} from '../../../store/selectors/scheduling/scheduling-pools';\nimport {\n getSchedulingSourcesOfEditItem,\n getSchedulingSourcesOfEditItemSkipParent,\n} from '../../../store/selectors/scheduling/scheduling';\nimport Select from '../../../components/Select/Select';\nimport {PoolResourceType, getPoolResourceInfo} from '../../../utils/scheduling/scheduling';\n\ninterface Props {\n resourceType: PoolResourceType;\n pool: string;\n format?: QuotaEditorProps['format'];\n decimalPlaces?: number;\n error?: string;\n\n value: {\n source?: string;\n limit?: number;\n error?: string;\n };\n initialLimit: number | undefined;\n onChange: (value: Props['value']) => void;\n\n min?: number;\n max?: number;\n\n sourcesSkipParent?: boolean;\n\n limitInputTitle?: string;\n}\n\ntype ReduxProps = ConnectedProps<typeof connector>;\n\nclass PoolQuotaEditorControl extends React.Component<Props & ReduxProps> {\n static hasErrorRenderer = true;\n\n static getDefaultValue() {\n return {};\n }\n\n static isEmpty(value: Props['value']) {\n return isEmpty_(value);\n }\n\n static validate({error}: Props['value']) {\n return error;\n }\n\n static isEqual(left: Props['value'], right: Props['value']) {\n return isEqual_(left, right);\n }\n\n render() {\n const {\n pool,\n format,\n value: {source, limit} = {},\n error,\n initialLimit,\n decimalPlaces,\n min,\n max,\n sourcesSkipParent,\n limitInputTitle,\n } = this.props;\n return (\n <QuotaEditor\n currentAccount={pool}\n sourceAccount={source}\n limit={limit}\n prevLimit={initialLimit}\n min={min}\n max={max}\n error={error}\n format={format}\n onChange={this.onChange}\n getInfoByName={this.getInfoByName}\n renderSourceSuggest={(props) => {\n return <PoolSourceSuggest {...props} skipParent={sourcesSkipParent} />;\n }}\n limitInputTitle={limitInputTitle || 'Guaranteed'}\n sourceSuggestTitle={'Pool for distribution'}\n decimalPlaces={decimalPlaces}\n />\n );\n }\n\n onChange: QuotaEditorProps['onChange'] = ({limit, source, error}) => {\n const {onChange} = this.props;\n onChange({limit, source, error});\n };\n\n getInfoByName: QuotaEditorProps['getInfoByName'] = (poolName = '') => {\n const {poolsByName, resourceType} = this.props;\n const data = poolsByName[poolName];\n\n if (isEmpty_(data)) {\n return {\n limit: Infinity,\n total: Infinity,\n };\n }\n\n const {value, childrenSum} = getPoolResourceInfo(data, resourceType);\n return {totalChildrenLimit: childrenSum, total: 0, limit: value};\n };\n}\n\nconst mapStateToProps = (state: RootState) => {\n return {\n poolsByName: getSchedulingPoolsMapByName(state),\n };\n};\n\nconst connector = connect(mapStateToProps);\nexport default connector(PoolQuotaEditorControl);\n\nfunction PoolSourceSuggest(props: {\n value?: string;\n onChange: (value: string) => void;\n disabled?: boolean;\n skipParent?: boolean;\n}) {\n const {value, onChange, disabled, skipParent} = props;\n const sources = useSelector(getSchedulingSourcesOfEditItem);\n const sourcesNoParent = useSelector(getSchedulingSourcesOfEditItemSkipParent);\n\n const items = React.useMemo(() => {\n const res = skipParent ? sourcesNoParent : sources;\n return map_(res, (value) => {\n return {\n value,\n text: value,\n };\n });\n }, [skipParent, sources, sourcesNoParent]);\n\n return (\n <Select\n value={value ? [value] : undefined}\n onUpdate={(vals) => onChange(vals[0])}\n items={items}\n disabled={!sources?.length || disabled}\n placeholder={'Select pool...'}\n />\n );\n}\n","import React, {useMemo} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Radio, Table, TableColumnConfig} from '@gravity-ui/uikit';\n\nimport {DialogControlProps} from '../../../../../../components/Dialog/Dialog.types';\nimport {BundleResourceGuarantee} from '../../../../../../store/reducers/tablet_cell_bundles';\n\nimport './BundleTableField.scss';\n\nconst block = cn('bundle-table-field');\n\nconst columns: TableColumnConfig<BundleData>[] = [\n {id: 'type', name: 'Type', width: '25%'},\n {id: 'memory', name: 'Memory', width: '25%'},\n {id: 'vcpu', name: 'vCPU', width: '25%'},\n {id: 'net', name: 'Network', width: '25%'},\n];\n\ninterface BundleData {\n type: string;\n memory: string;\n vcpu: string;\n net: string;\n disabled?: boolean;\n initialData: BundleResourceGuarantee;\n [k: string]: any;\n}\n\ntype RadioClickType = (value: BundleResourceGuarantee) => void;\n\ntype BundleTableFieldProps = DialogControlProps<\n BundleResourceGuarantee | undefined,\n {data: BundleData[]; onRadioClick?: RadioClickType}\n>;\n\nexport function BundleTableField(props: BundleTableFieldProps) {\n const {value, onChange, onRadioClick, data} = props;\n\n const newColumns = useMemo(\n () => [\n {\n id: 'radio',\n name: '',\n template: (item: BundleData) => {\n const checked = value?.type === item.id;\n return (\n <Radio\n value={item.id}\n checked={checked}\n onUpdate={(isChecked) => {\n if (isChecked) {\n onChange(item.initialData);\n\n if (typeof onRadioClick === 'function') {\n onRadioClick(item.initialData);\n }\n }\n }}\n disabled={item.disabled}\n />\n );\n },\n },\n ...columns,\n ],\n [data, value],\n );\n\n return <Table className={block('table')} columns={newColumns} data={data} edgePadding />;\n}\n\nBundleTableField.isEmpty = (value: string) => {\n return !value;\n};\n\nBundleTableField.getDefaultValue = () => {\n return '';\n};\n","const SvgResetIcon = props => <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 14 14\" {...props}><path fillOpacity={0.3} d=\"M1.21 1.361a.293.293 0 0 0-.507.203v3.631c0 .178.127.305.305.305h3.63a.293.293 0 0 0 .204-.508L3.47 3.622A4.88 4.88 0 0 1 7 2.147a4.985 4.985 0 0 1 4.977 4.977A4.97 4.97 0 0 1 7 12.102a4.94 4.94 0 0 1-3.326-1.245c-.127-.101-.305-.101-.406 0l-.508.508a.32.32 0 0 0 0 .457 6.4 6.4 0 0 0 4.24 1.6c3.453 0 6.272-2.793 6.297-6.272 0-3.478-2.844-6.322-6.322-6.322-1.727 0-3.301.711-4.444 1.854z\" /></svg>;\nexport default SvgResetIcon;","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Button, Icon} from '@gravity-ui/uikit';\n\nimport {BundleParam, BundleParamsList} from '../BundleParamsList/BundleParamsList';\nimport resetIcon from '../../../../../../assets/img/svg/reset-icon.svg';\n\nimport {DialogControlProps} from '../../../../../../components/Dialog/Dialog.types';\n\nimport './BundleTitle.scss';\n\nconst block = cn('bundle-title');\n\ntype BundleTitleProps = DialogControlProps<\n boolean,\n {\n params: BundleParam[];\n className?: string;\n onReset: () => void;\n }\n>;\n\nexport function BundleTitle({className, params, onReset}: BundleTitleProps) {\n return (\n <div className={block(null, className)}>\n <BundleParamsList\n className={block('params')}\n params={params}\n size=\"m\"\n ></BundleParamsList>\n <Button className={block('btn')} onClick={onReset}>\n <Icon className={block('icon')} data={resetIcon} />\n Reset to default\n </Button>\n </div>\n );\n}\n\nBundleTitle.isEmpty = (value: string) => {\n return !value;\n};\n\nBundleTitle.getDefaultValue = () => {\n return '';\n};\n","import React, {useEffect, useState} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport {Progress, TextInput} from '@gravity-ui/uikit';\n\nimport {DialogControlProps} from '../../../../../../components/Dialog/Dialog.types';\nimport {formatValue, parseValue} from '../../../../../../components/NumberInput/NumberInput';\nimport {Tooltip} from '../../../../../../components/Tooltip/Tooltip';\n\nimport {calcProgressProps} from '../../../../../../utils/utils';\nimport {ThemeThreshold} from '../../../../../../utils/progress';\n\nimport './BundleInput.scss';\n\nconst block = cn('yt-bundle-input');\n\nfunction toRawValue(value?: string | number) {\n return value === undefined ? '' : String(value);\n}\n\nfunction errorFromValue(value: BundleInputProps['value']) {\n if (Number.isNaN(value)) {\n return 'wrong format';\n }\n return undefined;\n}\n\ntype BundleInputProps = DialogControlProps<\n number | undefined,\n {\n postfix?: string;\n hint?: string;\n className?: string;\n readonly?: boolean;\n hasClear?: boolean;\n tooltip?: React.ReactNode;\n withoutDetailedBar?: boolean;\n format?: 'Bytes' | 'Number';\n disabled?: boolean;\n decimalPlaces?: number;\n preciseInitialRawValue?: boolean;\n progress?: {\n usage?: number;\n limit?: number;\n themeThresholds?: ThemeThreshold[];\n };\n error?: string;\n }\n>;\n\nexport function BundleInput(props: BundleInputProps) {\n const {\n value,\n onChange,\n postfix,\n hint,\n readonly,\n format,\n progress,\n withoutDetailedBar = false,\n hasClear = false,\n decimalPlaces,\n preciseInitialRawValue,\n error,\n disabled,\n } = props;\n const [parsedValue, setParsedValue] = useState<number | undefined>();\n const [parsedError, setParsedError] = useState<string | undefined>();\n const [rawValue, setRawValue] = useState<string | undefined>();\n const [formattedValue, setFormattedValue] = useState<string | undefined>();\n const [focused, setFocused] = useState<boolean>(false);\n\n useEffect(() => {\n if (parsedError !== error) {\n setParsedError(error);\n }\n }, [error]);\n\n useEffect(() => {\n if (parsedValue === value) {\n return;\n }\n\n const formatted = formatValue(value, format, {\n digits: decimalPlaces,\n });\n setParsedValue(value);\n setFormattedValue(formatted);\n\n if (rawValue === undefined) {\n setRawValue(preciseInitialRawValue ? toRawValue(value) : formatted);\n }\n }, [value]);\n\n const handleChange = (rawValue: string) => {\n const value = parseValue(rawValue, format);\n const error = errorFromValue(value);\n setParsedValue(value);\n setRawValue(rawValue);\n setFormattedValue(formatValue(value, format, {digits: decimalPlaces}));\n setParsedError(error);\n\n if (error) {\n return;\n }\n\n onChange(value);\n };\n\n const text = focused ? rawValue : formattedValue;\n const calcProgress =\n progress && calcProgressProps(progress?.usage || 0, Number(value) || 0, format);\n return (\n <div className={block(null)}>\n <div className={block('row')}>\n <div className={block('right')}>\n <div className={block('control-block')}>\n {readonly ? (\n <span className={block('text')}>{value}</span>\n ) : (\n <TextInput\n className={block('input')}\n autoComplete={false}\n value={text}\n onUpdate={handleChange}\n hasClear={hasClear}\n error={Boolean(parsedError)}\n onFocus={() => setFocused(true)}\n onBlur={() => setFocused(false)}\n disabled={disabled}\n />\n )}\n {!withoutDetailedBar && (\n <BundleInputDetailedBar data={postfix || formattedValue} />\n )}\n </div>\n </div>\n </div>\n {calcProgress && (\n <div className={block('row')}>\n <Tooltip content=\"Usage\">\n <div className={block('left')}>\n <Progress className={block('progress')} {...calcProgress} />\n </div>\n </Tooltip>\n </div>\n )}\n {!parsedError && hint && (\n <div className={block('row')}>\n <span className={block('hint', block('right'))}>{hint}</span>\n </div>\n )}\n {parsedError && (\n <div className={block('row')}>\n <span className={block('error', block('right'))}>{parsedError}</span>\n </div>\n )}\n </div>\n );\n}\n\nfunction BundleInputDetailedBar({data}: {data?: string}) {\n return !data ? null : <span className={block('meta')}>{data}</span>;\n}\n\nBundleInput.isEmpty = (value: string) => {\n return !value;\n};\n\nBundleInput.getDefaultValue = () => {\n return '';\n};\n\nBundleInput.hasErrorRenderer = true;\n","import React from 'react';\nimport UIFactory from '../../../../UIFactory';\n\ninterface Props {\n value: {slug: string; id: number} | undefined;\n onChange: (v?: Props['value']) => void;\n placeholder?: string;\n disabled?: boolean;\n}\n\nexport function AbcControl(props: Props) {\n const control = UIFactory.renderControlAbcService(props);\n return <>{control || '-'}</>;\n}\n\nAbcControl.getDefaultValue = () => {\n return undefined;\n};\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport PropTypes from 'prop-types';\n\nimport {FocusBlurContainer} from '@gravity-ui/dialog-fields';\nimport {RadioButton, TextInput, TextInputSize} from '@gravity-ui/uikit';\nimport {Datepicker, DatepickerOutputDates} from '../../../../components/common/Datepicker';\n\nimport './BeforeDatePicker.scss';\n\nconst block = cn('before-date-picker');\n\nconst UNLIMITED = 'unlimited';\nconst PERIOD = 'period';\nconst DATE = 'date';\n\ntype AllowedType = 'unlimited' | 'period' | 'date';\n\nconst ALLOWED_VIEW_TYPE: Array<AllowedType> = [UNLIMITED, PERIOD, DATE];\nconst TEXT: Record<AllowedType, string> = {\n [UNLIMITED]: 'Forever',\n [PERIOD]: 'Period',\n [DATE]: 'To Date',\n};\n\nconst DAY_MS = 1000 * 60 * 60 * 24;\n\nfunction dateToPeriod(date: IdmDatePickerProps['value']) {\n if (!(date instanceof Date)) {\n return undefined;\n }\n const diff = date.getTime() - new Date().getTime();\n return Math.ceil(diff / DAY_MS);\n}\n\nfunction periodToDate(daysCount: number) {\n const ms = new Date().getTime();\n return new Date(ms + daysCount * DAY_MS);\n}\n\nexport type IdmDatePickerProps = {\n className?: string;\n\n value: Date | null | undefined;\n onChange: (value: IdmDatePickerProps['value'] | null) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n\n size?: TextInputSize;\n};\n\ninterface State {\n viewType: null | AllowedType; // see ALLOWED_VIEW_TYPE\n\n period: null | string;\n periodError: null | string;\n}\n\n/**\n * The component provides ability to specify value\n * as a period of days or as a specific date,\n * also it supports special value 'Forever' (value === undefined || value === null)\n */\nclass BeforeDatePicker extends React.Component<IdmDatePickerProps, State> {\n static UNLIMITED = UNLIMITED;\n static PERIOD = PERIOD;\n static DATE = DATE;\n\n static propTypes = {\n className: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n };\n\n static defaultProps = {\n value: null,\n };\n\n static getDefaultValue() {\n return undefined;\n }\n\n static isEmpty() {\n return false;\n }\n\n static getDerivedStateFromProps({value}: IdmDatePickerProps, state: State) {\n const res: Partial<State> = {};\n const viewType = 'unlimited';\n if (!state.viewType && state.viewType !== viewType) {\n res.viewType = !value ? 'unlimited' : 'date';\n }\n\n return Object.keys(res).length > 0 ? res : null;\n }\n\n state = {\n viewType: null, // see ALLOWED_VIEW_TYPE\n\n period: null,\n periodError: null,\n };\n\n renderRadioButton() {\n const {viewType} = this.state;\n const {size} = this.props;\n\n return (\n <div>\n <RadioButton\n size={size as any}\n value={viewType || undefined}\n onChange={this.onChangeViewType}\n className={block('view-type')}\n >\n {ALLOWED_VIEW_TYPE.map((item) => (\n <RadioButton.Option key={item} value={item}>\n {TEXT[item]}\n </RadioButton.Option>\n ))}\n </RadioButton>\n </div>\n );\n }\n\n onChangeViewType = (event: React.ChangeEvent<HTMLInputElement>) => {\n const viewType = event.target.value as State['viewType'];\n this.setState({viewType, periodError: null, period: null});\n\n const {value} = this.props;\n if (viewType === BeforeDatePicker.UNLIMITED && value !== null) {\n this.onNewDate(null);\n }\n };\n\n renderDateInput() {\n const {viewType, periodError, period} = this.state;\n const {value, size} = this.props;\n\n let control = null;\n\n if (viewType === BeforeDatePicker.PERIOD) {\n const dayCount = period === null ? dateToPeriod(value) : period;\n control = (\n <TextInput\n error={periodError || undefined}\n onUpdate={this.onChangePeriod}\n value={String(dayCount || '')}\n size={size}\n placeholder=\"Enter days\"\n />\n );\n }\n\n if (viewType === BeforeDatePicker.DATE) {\n control = (\n <Datepicker\n controlSize={size}\n from={value && value.getTime()}\n range={false}\n onUpdate={this.onDate}\n controlWidth=\"unset\"\n />\n );\n }\n return <div className={block('input-container')}>{control}</div>;\n }\n\n onChangePeriod = (valueStr: string) => {\n this.setState({period: valueStr});\n const daysCount = Number.parseInt(valueStr);\n if (String(daysCount) !== valueStr) {\n if (valueStr !== '') {\n this.setState({periodError: 'Please enter a valid number'});\n }\n return;\n }\n\n this.onNewDate(periodToDate(daysCount));\n };\n\n onDate = (value: DatepickerOutputDates) => {\n this.onNewDate(new Date(value.from as string | number));\n };\n\n onNewDate(date: Date | null) {\n const {onChange} = this.props;\n this.setState({periodError: null, period: null});\n onChange(date);\n }\n\n render() {\n const {className, onFocus, onBlur} = this.props;\n return (\n <FocusBlurContainer\n className={block(null, className)}\n onBlur={onBlur}\n onFocus={onFocus}\n >\n {this.renderRadioButton()}\n {this.renderDateInput()}\n </FocusBlurContainer>\n );\n }\n}\n\nexport default BeforeDatePicker;\n","import React from 'react';\n\nimport {Datepicker, DatepickerProps} from '../../../../components/common/Datepicker';\n\ntype DatePickerControlProps = Omit<\n DatepickerProps,\n 'from' | 'to' | 'onUpdate' | 'allowNullableValues'\n> & {\n value?: Pick<DatepickerProps, 'from' | 'to'>;\n onChange: (v?: DatePickerControlProps['value']) => void;\n};\n\nexport function DatePickerControl({value = {}, onChange, ...rest}: DatePickerControlProps) {\n return (\n <Datepicker\n {...rest}\n allowNullableValues\n {...value}\n onUpdate={(v) => {\n onChange(v);\n }}\n />\n );\n}\n\nDatePickerControl.getDefaultValue = () => {\n return undefined;\n};\n","import React from 'react';\n\nimport {\n RangeInputPicker,\n RangeInputPickerProps,\n} from '../../../common/RangeInputPicker/RangeInputPicker';\n\nimport './RangeInputPickerControl.scss';\n\nexport type RangeInputPickerControlProps = Omit<RangeInputPickerProps, 'onUpdate'> & {\n onChange: (value: number) => void;\n};\n\nexport function RangeInputPickerControl(props: RangeInputPickerControlProps) {\n const {onChange, ...rest} = props;\n return <RangeInputPicker {...rest} onUpdate={onChange} />;\n}\n\nRangeInputPickerControl.getDefaultValue = () => {\n return NaN;\n};\n\nRangeInputPickerControl.isEmpty = (v: number) => {\n return v === undefined;\n};\n","import React from 'react';\n\nimport {TextArea} from '@gravity-ui/uikit';\n\nexport type Props = {\n value?: Array<string>;\n onChange: (value?: Props['value']) => void;\n disabled?: boolean;\n rows?: number;\n};\n\nfunction stopPropagation(e: React.KeyboardEvent) {\n e.stopPropagation();\n}\n\nfunction valueToString(value?: Array<string>) {\n return value?.join('\\n') ?? '';\n}\n\nfunction valueFromString(text?: string) {\n return text?.split('\\n') ?? [];\n}\n\nexport function AclColumnsControl({value, onChange, disabled}: Props) {\n const [editText, setEditText] = React.useState<string | undefined>();\n const textValue = React.useMemo(() => {\n return valueToString(value);\n }, [value]);\n\n return (\n <TextArea\n placeholder=\"Enter one column name per line\"\n value={editText ?? textValue}\n disabled={disabled}\n onUpdate={(val) => {\n setEditText(val);\n }}\n onFocus={() => {\n setEditText(valueToString(value));\n }}\n onBlur={() => {\n onChange(valueFromString(editText));\n setEditText(undefined);\n }}\n minRows={5}\n maxRows={10}\n onKeyDown={stopPropagation}\n onKeyUp={stopPropagation}\n onKeyPress={stopPropagation}\n />\n );\n}\n\nAclColumnsControl.isEmpty = (value?: Props['value']) => {\n return !value?.length;\n};\n\nAclColumnsControl.getDefaultValue = () => {\n return undefined;\n};\n","import React, {ComponentProps} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport SubjectsControl from '../../containers/ACL/SubjectsControl/SubjectsControl';\nimport PermissionsControl from '../../containers/ACL/RequestPermissions/PermissionsControl/PermissionsControl';\nimport {AclColumnGroupControl} from '../../containers/ACL/RequestPermissions/AclColumnGroupControl/AclColumnGroupControl';\nimport AccountsSuggest, {AccountsSuggestWithLoading} from '../../pages/accounts/AccountsSuggest';\nimport GroupSuggest from '../../pages/components/GroupSuggest/GroupSuggest';\n\nimport ClusterSelectControl from './controls/ClusterSelectControl/ClusterSelectControl';\n\nimport SortableListControl from '../../components/Dialog/controls/SortableListControl/SortableListControl';\nimport BytesControl, {NumberControl} from '../../components/Dialog/controls/BytesControl';\nimport RoleListControl from './controls/RoleListControl/RoleListControl';\nimport CreateTableTabField from '../../navigation/Navigation/PathEditorModal/CreateTableModal/CreateTableTabField/CreateTableTabField';\nimport {\n GroupSuggestControl,\n LockSuggestControl,\n} from '../../navigation/Navigation/PathEditorModal/CreateTableModal/CreateTableSuggests/CreateTableSuggests';\nimport SelectWithSubItems from './controls/SelectWithSubItems/SelectWithSubItems';\nimport CreatePoolParentSuggest from '../../pages/scheduling/Instruments/CreatePoolDialog/CreatePoolParentSuggest';\nimport TabletCellBundlesSuggest from '../../pages/components/TabletCellBundlesSuggest/TabletCellBundlesSuggest';\nimport EditablePathList from './controls/EditablePathList/EditablePathList';\nimport {PathEditorControl} from './controls/PathEditorControl/PathEditorControl';\nimport {OutputPathControl} from './controls/OutputPathControl';\n\nimport './Dialog.scss';\nimport {PoolSuggestControl} from './controls/PoolSuggestControl/PoolSuggestControl';\nimport {PoolTreeSuggestControl} from './controls/PoolTreeSuggestControl/PoolTreeSuggestControl';\nimport {TableSortByControl} from '../../pages/navigation/modals/TableMergeSortModal/TableSortByControl';\nimport {TableChunkSize} from '../../pages/navigation/modals/TableMergeSortModal/TableChunkSize';\nimport {UsableAccountSuggest} from '../../pages/accounts/UsableAccountSuggest';\nimport {EditAnnotationWithPreview} from '../EditAnnotationWithPreview/EditAnnotationWithPreview';\nimport {EditJsonWithPreview} from '../EditJsonWithPreview/EditJsonWithPreview';\nimport {\n DFDialog,\n DFDialogField,\n DFDialogProps,\n DFDialogTabField,\n RegisteredDialogField,\n RegisteredDialogTabField,\n registerDialogControl,\n registerDialogTabControl,\n} from '@gravity-ui/dialog-fields';\nimport PoolQuotaEditor from '../../pages/scheduling/PoolQoutaEditor/PoolQuotaEditor';\nimport {BundleTableField} from '../../pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTableField/BundleTableField';\nimport {BundleTitle} from '../../pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle';\nimport {BundleInput} from '../../pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput';\nimport {AbcControl} from './controls/AbcControl/AbcControl';\nimport Select, {SelectSingle} from '../../components/Select/Select';\nimport BeforeDatePicker from './controls/BeforeDatePicker/BeforeDatePicker';\nimport {TimeDuration} from '../../components/TimeDuration/TimeDuration';\nimport {DatePickerControl} from './controls/DatePickerControl/DatePickerControl';\nimport {RangeInputPickerControl} from './controls/RangeInputPickerControl/RangeInputPickerControl';\nimport {AclColumnsControl} from '../../containers/ACL/RequestPermissions/AclColumnsControl/AclColumnsControl';\n\nconst block = cn('yt-dialog');\n\nregisterDialogControl('abc-control', AbcControl);\nregisterDialogControl('accountsSuggest', AccountsSuggest);\nregisterDialogControl('usable-account', UsableAccountSuggest);\nregisterDialogControl('accounts-suggest-with-loading', AccountsSuggestWithLoading);\n\nregisterDialogControl('cluster', ClusterSelectControl);\n\nregisterDialogControl('acl-subjects', SubjectsControl);\nregisterDialogControl('acl-roles', RoleListControl);\nregisterDialogControl('acl-column-group', AclColumnGroupControl);\nregisterDialogControl('acl-columns', AclColumnsControl);\nregisterDialogControl('permissions', PermissionsControl);\n\nregisterDialogControl('yt-group', GroupSuggest);\n\nregisterDialogControl('sortable-list', SortableListControl);\nregisterDialogControl('bytes', BytesControl);\nregisterDialogControl('number', NumberControl);\nregisterDialogControl('time-duration', TimeDuration);\nregisterDialogControl('datepicker', DatePickerControl);\n\nregisterDialogControl('select-with-subitems', SelectWithSubItems);\nregisterDialogControl('yt-select', Select);\nregisterDialogControl('yt-select-single', SelectSingle);\n\nregisterDialogControl('create-table-lock-suggest', LockSuggestControl);\nregisterDialogControl('create-table-group-suggest', GroupSuggestControl);\n\nregisterDialogControl('create-pool-parent', CreatePoolParentSuggest);\n\nregisterDialogControl('tablet-cell-bundle', TabletCellBundlesSuggest);\n\nregisterDialogControl('path', PathEditorControl);\nregisterDialogControl('output-path', OutputPathControl);\nregisterDialogControl('editable-path-list', EditablePathList);\n\nregisterDialogControl('pool', PoolSuggestControl);\nregisterDialogControl('pool-tree', PoolTreeSuggestControl);\n\nregisterDialogControl('table-sort-by', TableSortByControl);\nregisterDialogControl('table-chunk-size', TableChunkSize);\n\nregisterDialogControl('annotation', EditAnnotationWithPreview);\n\nregisterDialogControl('json', EditJsonWithPreview);\n\nregisterDialogControl('pool-quota-editor', PoolQuotaEditor);\n\nregisterDialogControl('bundle-table-field', BundleTableField);\nregisterDialogControl('bundle-title', BundleTitle);\nregisterDialogControl('bundle-input', BundleInput);\n\nregisterDialogControl('range-input-picker', RangeInputPickerControl);\n\nregisterDialogControl('before-date', BeforeDatePicker);\n\nexport type DialogField<FormValues = unknown> =\n | DFDialogField\n | RegisteredDialogField<'abc-control', ComponentProps<typeof AbcControl>, FormValues>\n | RegisteredDialogField<'accountsSuggest', ComponentProps<typeof AccountsSuggest>, FormValues>\n | RegisteredDialogField<\n 'usable-account',\n ComponentProps<typeof UsableAccountSuggest>,\n FormValues\n >\n | RegisteredDialogField<\n 'accounts-suggest-with-loading',\n ComponentProps<typeof AccountsSuggestWithLoading>,\n FormValues\n >\n | RegisteredDialogField<'cluster', ComponentProps<typeof ClusterSelectControl>, FormValues>\n | RegisteredDialogField<'acl-subjects', ComponentProps<typeof SubjectsControl>, FormValues>\n | RegisteredDialogField<'acl-roles', ComponentProps<typeof RoleListControl>, FormValues>\n | RegisteredDialogField<\n 'acl-column-group',\n ComponentProps<typeof AclColumnGroupControl>,\n FormValues\n >\n | RegisteredDialogField<'acl-columns', ComponentProps<typeof AclColumnsControl>, FormValues>\n | RegisteredDialogField<'permissions', ComponentProps<typeof PermissionsControl>, FormValues>\n | RegisteredDialogField<'yt-group', ComponentProps<typeof GroupSuggest>, FormValues>\n | RegisteredDialogField<'sortable-list', ComponentProps<typeof SortableListControl>, FormValues>\n | RegisteredDialogField<'bytes', ComponentProps<typeof BytesControl>, FormValues>\n | RegisteredDialogField<'number', ComponentProps<typeof NumberControl>, FormValues>\n | RegisteredDialogField<'time-duration', ComponentProps<typeof TimeDuration>, FormValues>\n | RegisteredDialogField<'datepicker', ComponentProps<typeof DatePickerControl>, FormValues>\n | RegisteredDialogField<\n 'select-with-subitems',\n ComponentProps<typeof SelectWithSubItems>,\n FormValues\n >\n | RegisteredDialogField<'yt-select', ComponentProps<typeof Select>, FormValues>\n | RegisteredDialogField<'yt-select-single', ComponentProps<typeof SelectSingle>, FormValues>\n | RegisteredDialogField<\n 'create-table-lock-suggest',\n ComponentProps<typeof LockSuggestControl>,\n FormValues\n >\n | RegisteredDialogField<\n 'create-table-group-suggest',\n ComponentProps<typeof GroupSuggestControl>,\n FormValues\n >\n | RegisteredDialogField<\n 'create-pool-parent',\n ComponentProps<typeof CreatePoolParentSuggest>,\n FormValues\n >\n | RegisteredDialogField<\n 'tablet-cell-bundle',\n ComponentProps<typeof TabletCellBundlesSuggest>,\n FormValues\n >\n | RegisteredDialogField<'path', ComponentProps<typeof PathEditorControl>, FormValues>\n | RegisteredDialogField<'output-path', ComponentProps<typeof OutputPathControl>, FormValues>\n | RegisteredDialogField<\n 'editable-path-list',\n ComponentProps<typeof EditablePathList>,\n FormValues\n >\n | RegisteredDialogField<'pool', ComponentProps<typeof PoolSuggestControl>, FormValues>\n | RegisteredDialogField<'pool-tree', ComponentProps<typeof PoolTreeSuggestControl>, FormValues>\n | RegisteredDialogField<'table-sort-by', ComponentProps<typeof TableSortByControl>, FormValues>\n | RegisteredDialogField<'table-chunk-size', ComponentProps<typeof TableChunkSize>, FormValues>\n | RegisteredDialogField<\n 'annotation',\n ComponentProps<typeof EditAnnotationWithPreview>,\n FormValues\n >\n | RegisteredDialogField<'json', ComponentProps<typeof EditJsonWithPreview>, FormValues>\n | RegisteredDialogField<'pool-quota-editor', ComponentProps<typeof PoolQuotaEditor>, FormValues>\n | RegisteredDialogField<\n 'bundle-table-field',\n ComponentProps<typeof BundleTableField>,\n FormValues\n >\n | RegisteredDialogField<'bundle-title', ComponentProps<typeof BundleTitle>, FormValues>\n | RegisteredDialogField<'bundle-input', ComponentProps<typeof BundleInput>, FormValues>\n | RegisteredDialogField<'before-date', ComponentProps<typeof BeforeDatePicker>, FormValues>\n | RegisteredDialogField<\n 'range-input-picker',\n ComponentProps<typeof RangeInputPickerControl>,\n FormValues\n >;\n\nregisterDialogTabControl('yt-create-table-tab', CreateTableTabField);\n\nexport type DialogTabField<FieldT> =\n | DFDialogTabField<FieldT>\n | RegisteredDialogTabField<'yt-create-table-tab', any, FieldT>;\n\nexport type YTDialogType = typeof YTDialog;\nexport function YTDialog<Values, InitialValues = Partial<Values>>(\n props: DFDialogProps<\n Values,\n InitialValues,\n DialogTabField<DialogField<Values>>,\n DialogField<Values>\n > & {asLeftTopBlock?: boolean},\n) {\n const {modal, asLeftTopBlock, headerProps} = props;\n const dialog = <DFDialog {...(props as any)} modal={asLeftTopBlock ? false : modal} />;\n return asLeftTopBlock ? (\n <div className={block('as-block', {['has-header']: Boolean(headerProps)})}>{dialog}</div>\n ) : (\n dialog\n );\n}\n\nexport {registerDialogControl, registerDialogTabControl, RoleListControl};\n\nexport type * from '@gravity-ui/dialog-fields';\nexport {EditableList, TabFieldVertical} from '@gravity-ui/dialog-fields';\nexport type {ControlStaticApi} from '@gravity-ui/dialog-fields/build/cjs/dialog/types';\n","import React from 'react';\nimport cn from 'bem-cn-lite';\nimport map_ from 'lodash/map';\nimport filter_ from 'lodash/filter';\n\nimport Select, {YTSelectProps} from '../../../../components/Select/Select';\n\nimport './ClusterSelectControl.scss';\nimport {ClusterConfig} from '../../../../../shared/yt-types';\nimport YT from '../../../../config/yt-config';\n\nconst block = cn('cluster-select-control');\n\ninterface Props {\n className?: string;\n\n value: string;\n onChange: (value: Props['value']) => void;\n\n isLanding?: boolean;\n\n placeholder?: string;\n\n disabled?: boolean;\n\n excludeClusters?: Array<string>;\n\n filterPredicate?: (cluster: ClusterConfig) => boolean;\n\n width?: YTSelectProps['width'];\n}\n\nfunction ClusterSelectControl({\n className,\n excludeClusters,\n onChange,\n value,\n placeholder,\n disabled,\n filterPredicate = () => true,\n width,\n}: Props) {\n const clusters = React.useMemo(() => {\n const res = map_(filter_(YT.clusters, filterPredicate), ({name, id}) => ({\n value: id,\n text: name,\n }));\n\n return res;\n }, [filterPredicate]);\n\n const items = React.useMemo(() => {\n if (!excludeClusters?.length) {\n return clusters;\n }\n\n const toSkip = new Set(excludeClusters);\n return filter_(clusters, ({value}) => {\n return !toSkip.has(value);\n });\n }, [clusters, excludeClusters]);\n\n const handleChange = React.useCallback(\n (value: Array<string>) => {\n onChange(value[0]);\n },\n [onChange],\n );\n\n return (\n <React.Fragment>\n <Select\n value={[value]}\n className={block({empty: !value}, className)}\n onUpdate={handleChange}\n items={items}\n placeholder={placeholder ?? 'Cluster...'}\n disabled={disabled}\n width={width}\n />\n </React.Fragment>\n );\n}\n\nClusterSelectControl.getDefaultValue = () => {\n return '';\n};\n\nClusterSelectControl.isEmpty = (value: string) => {\n return !value;\n};\n\nexport default ClusterSelectControl;\n","import React from 'react';\n\nimport withLazyLoading from '../../hocs/withLazyLoading';\nimport Loader from '../../components/Loader/Loader';\nexport type {MonacoEditorConfig} from './MonacoEditor';\n\nconst MonacoEditor = React.lazy(\n () => import(/* webpackChunkName: \"yt-monaco-editor\" */ './MonacoEditor'),\n);\n\nexport default withLazyLoading(MonacoEditor, <Loader visible />);\n","import React from 'react';\nimport cn from 'bem-cn-lite';\n\nimport hammer from '../../common/hammer';\nimport NumberInput, {\n NumberInputProps,\n NumberInputWithError,\n NumberInputWithErrorProps,\n} from '../../components/NumberInput/NumberInput';\n\nimport './QuotaEditor.scss';\n\nconst block = cn('yt-quota-editor');\n\nexport interface QuotaEditorProps {\n className?: string;\n limit: number | undefined;\n\n min?: number;\n max?: number;\n\n error?: string;\n prevLimit?: number;\n format: NumberInputProps['format'];\n decimalPlaces?: number;\n currentAccount: string;\n sourceAccount?: string;\n\n showHint?: boolean;\n\n onChange: (value: {limit?: number; source?: string; error?: string}) => void;\n onEnterKeyDown?: () => void;\n\n getInfoByName: (account: string) => {\n limit?: number;\n total?: number;\n totalChildrenLimit?: number;\n allowChildrenOverCommit?: number;\n };\n\n limitInputTitle?: React.ReactNode;\n sourceSuggestTitle?: React.ReactNode;\n renderSourceSuggest?: (props: SuggestProps) => React.ReactNode;\n sourceSuggestDisabled?: boolean;\n}\n\ninterface SuggestProps {\n value: string;\n onChange: (value?: string) => void;\n disabled?: boolean;\n}\n\nexport default class QuotaEditor extends React.Component<QuotaEditorProps> {\n render() {\n const {\n className,\n format,\n sourceSuggestTitle,\n renderSourceSuggest,\n sourceAccount,\n limitInputTitle,\n showHint,\n error,\n decimalPlaces,\n sourceSuggestDisabled,\n } = this.props;\n\n return (\n <div className={block(null, className)}>\n {renderSourceSuggest && (\n <div className={block('item')}>\n <div className={block('item-title')}>\n {sourceSuggestTitle || 'Account to distribution'}\n </div>\n {renderSourceSuggest({\n value: sourceAccount || '',\n onChange: this.onAccountChange,\n disabled: sourceSuggestDisabled,\n })}\n <div className={block('free')}>\n <React.Fragment>\n Free to distribute\n <span className={block('free-value')}>\n {' '}\n {this.getFreeFormatted()}\n </span>\n </React.Fragment>\n </div>\n </div>\n )}\n <div className={block('item')}>\n <div className={block('item-title')}>\n {limitInputTitle || 'New quota limit'}\n </div>\n <NumberInputWithError\n onChange={this.onBytesChange}\n value={{value: this.getLimit(), error}}\n format={format}\n showHint={showHint}\n min={this.getMinLimit()}\n max={this.getMaxLimit()}\n onEnterKeyDown={this.onEnterKeyDown}\n decimalPlaces={decimalPlaces}\n qa=\"quota-editor-new-limit\"\n />\n </div>\n </div>\n );\n }\n\n private onEnterKeyDown = () => {\n const {onEnterKeyDown = () => {}} = this.props;\n onEnterKeyDown();\n };\n\n private onBytesChange: NumberInputWithErrorProps['onChange'] = (value) => {\n const {onChange, sourceAccount} = this.props;\n onChange({\n limit: value?.value,\n source: sourceAccount,\n error: value?.error || this.checkForError(value?.value, sourceAccount),\n });\n };\n\n private onAccountChange = (source?: string) => {\n const {onChange, limit, error} = this.props;\n onChange({\n limit,\n source,\n error: error || this.checkForError(limit, source),\n });\n };\n\n private getLimit() {\n const {limit, prevLimit} = this.props;\n return limit !== undefined ? limit : prevLimit;\n }\n\n private getFreeImpl() {\n const {sourceAccount} = this.props;\n const info = this.calcLimitTotal(sourceAccount);\n const {limit, total, allowChildrenOverCommit, totalChildrenLimit = 0} = info;\n if (limit === undefined || total === undefined) {\n return {};\n }\n\n if (allowChildrenOverCommit) {\n const free = Math.max(0, limit);\n return {\n free,\n maxValue: free,\n };\n } else {\n const {prevLimit: itemLimit = 0} = this.props;\n const {limit: itemNewLimit = itemLimit} = this.props;\n const free = Math.max(0, limit - totalChildrenLimit);\n return {\n free: free + itemLimit - itemNewLimit,\n maxValue: free + itemLimit,\n };\n }\n }\n\n private getFree() {\n return this.getFreeImpl().free!;\n }\n\n private calcLimitTotal(account = '') {\n return this.props.getInfoByName(account);\n }\n\n private getMinLimit() {\n const {min} = this.props;\n if (min !== undefined) {\n return min;\n }\n\n const {currentAccount, getInfoByName} = this.props;\n const {totalChildrenLimit, total} = getInfoByName(currentAccount);\n const res = (total || 0) + (totalChildrenLimit || 0);\n\n return res;\n }\n\n private getMaxLimit() {\n const {max} = this.props;\n if (max !== undefined) {\n return max;\n }\n return this.getFreeImpl().maxValue!;\n }\n\n private getFreeFormatted() {\n const {sourceAccount} = this.props;\n if (!sourceAccount) {\n return hammer.format.NO_VALUE;\n }\n return NumberInput.format(Number(this.getFree()), this.props.format);\n }\n\n private checkForError(newLimit?: number, srcAccount?: string) {\n if (newLimit === undefined) {\n return undefined;\n }\n\n if (isNaN(newLimit!)) {\n return 'wrong format!';\n }\n\n const {currentAccount} = this.props;\n if (currentAccount === srcAccount) {\n return 'The same source account';\n }\n\n if (newLimit <= this.props.prevLimit!) {\n return undefined;\n }\n\n const maxLimit = this.getMaxLimit();\n\n if (srcAccount && (maxLimit === undefined || newLimit > maxLimit)) {\n return 'New value is too big';\n }\n\n return undefined;\n }\n}\n","import {SubjectGroupType} from '../../utils/acl';\nimport UIFactory from '../../UIFactory';\n\nexport type SubjectCardProps = {\n className?: string;\n noLink?: boolean;\n showIcon?: boolean;\n\n internal?: boolean;\n url?: string;\n\n name: string | number;\n type?: 'user' | 'group' | 'tvm';\n groupType?: SubjectGroupType;\n};\n\nexport function SubjectCard(props: SubjectCardProps) {\n return UIFactory.renderSubjectCard(props);\n}\n","import { addComponentKeysets } from '@gravity-ui/uikit/i18n';\nimport { NAMESPACE } from '../../utils/cn';\nimport en from './en.json';\nimport ru from './ru.json';\nexport const i18n = addComponentKeysets({ en, ru }, `${NAMESPACE}item-selector`);\n","import React from 'react';\nimport { Xmark } from '@gravity-ui/icons';\nimport { Button, Icon, List } from '@gravity-ui/uikit';\nimport { block } from '../utils/cn';\nimport { i18n } from './i18n';\nimport './ItemSelector.css';\nconst b = block('item-selector');\nfunction getItemIdDefault(item) {\n return `${item}`;\n}\nexport class ItemSelector extends React.Component {\n constructor() {\n super(...arguments);\n this.renderItemTitle = (item) => {\n const { renderItemValue, getItemId } = this.props;\n if (renderItemValue) {\n return renderItemValue(item);\n }\n return getItemId(item);\n };\n this.renderItem = (item, active) => (React.createElement(\"div\", { className: b('item', { active }) },\n React.createElement(\"span\", { className: b('item-text') }, this.renderItemTitle(item)),\n React.createElement(Button, { view: \"flat-secondary\", size: \"s\", className: b('item-select'), onClick: this.onAddItem.bind(this, item) }, i18n('button_select'))));\n this.filterItem = (filter) => (item) => {\n const { getItemId } = this.props;\n return getItemId(item).includes(filter);\n };\n this.renderValueItem = (item, active) => (React.createElement(\"div\", { className: b('value-item', { active }) },\n React.createElement(\"span\", { className: b('value-item-text') }, this.renderItemTitle(item)),\n React.createElement(Button, { view: \"flat-secondary\", size: \"s\", className: b('value-item-remove'), onClick: () => this.onRemoveItem(item) },\n React.createElement(Icon, { data: Xmark, size: 16 }))));\n this.onAddItem = (item) => {\n const { getItemId, value } = this.props;\n const itemId = getItemId(item);\n const usedItems = new Set(value);\n const newValue = usedItems.has(itemId) ? value : [...value, itemId];\n setTimeout(() => {\n this.onUpdate(newValue);\n }, 0);\n };\n this.onRemoveItem = (item) => {\n const { value, getItemId } = this.props;\n const itemId = getItemId(item);\n const newValue = value.filter((id) => id !== itemId);\n setTimeout(() => {\n this.onUpdate(newValue);\n }, 0);\n };\n this.onErase = () => {\n this.onUpdate([]);\n };\n this.onSelectAll = () => {\n const { items, getItemId } = this.props;\n const value = items.map(getItemId);\n this.onUpdate(value);\n };\n this.onMoveItem = ({ oldIndex, newIndex }) => {\n if (oldIndex !== newIndex) {\n const value = this.props.value.slice();\n this.onUpdate(List.moveListElement(value, oldIndex, newIndex));\n }\n };\n this.onUpdate = (value) => {\n this.props.onUpdate(value);\n };\n }\n getActualItems() {\n const { items, value, hideSelected, getItemId } = this.props;\n const actualItems = [];\n const selectedItems = new Array(value.length);\n const usedItems = new Map(value.map((id, index) => [id, index]));\n for (const item of items) {\n const selected = usedItems.get(getItemId(item));\n if (selected !== undefined) {\n selectedItems[selected] = item;\n }\n if (!hideSelected || selected === undefined) {\n actualItems.push(item);\n }\n }\n return [actualItems, selectedItems];\n }\n render() {\n const { value, selectorTitle, renderItem = this.renderItem, filterItem = this.filterItem, hideSelectAllButton, } = this.props;\n const [items, selected] = this.getActualItems();\n return (React.createElement(\"div\", { className: b() },\n React.createElement(\"div\", { className: b('list') },\n React.createElement(\"div\", { className: b('list-header') },\n React.createElement(\"span\", { className: b('list-title') }, selectorTitle),\n !hideSelectAllButton && (React.createElement(Button, { view: \"flat\", size: \"s\", disabled: items.length === 0, onClick: this.onSelectAll }, i18n('button_select-all')))),\n React.createElement(List, { items: items, renderItem: renderItem, filterItem: filterItem, filterPlaceholder: i18n('placeholder_search'), itemsHeight: 196 })),\n React.createElement(\"div\", { className: b('list') },\n React.createElement(\"div\", { className: b('list-header') },\n React.createElement(\"span\", { className: b('list-title') }, `${i18n('label_selected')}: ${value.length}`),\n React.createElement(Button, { view: \"flat\", size: \"s\", disabled: value.length === 0, onClick: this.onErase }, i18n('button_deselect-all'))),\n React.createElement(List, { items: selected, renderItem: this.renderValueItem, filterItem: filterItem, filterPlaceholder: i18n('placeholder_search'), sortable: true, onSortEnd: this.onMoveItem, itemsHeight: 196 }))));\n }\n}\nItemSelector.defaultProps = {\n hideSelected: true,\n selectorTitle: '',\n getItemId: getItemIdDefault,\n};\n","const SvgChevron = props => <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\" {...props}><path fill=\"none\" stroke=\"currentColor\" d=\"m3 6 5 5 5-5\" /></svg>;\nexport default SvgChevron;","import React from 'react';\nimport block from 'bem-cn-lite';\n\nimport {Icon} from '@gravity-ui/uikit';\n\nimport arrowIcon from '../../../assets/img/svg/chevron.svg';\n\nimport './SelectControl.scss';\n\nconst b = block('yc-selector-control');\n\ninterface SelectControlProps {\n disabled?: boolean;\n focused?: boolean;\n badgeFocused?: boolean;\n displayArrow?: boolean;\n size?: string;\n value?: string[];\n\n label?: string;\n placeholder?: string;\n icon?: React.ReactNode;\n\n width?: string;\n onClick?: () => void;\n\n badgeRef?: React.Ref<HTMLDivElement>;\n onBadgeClick?: (e: React.MouseEvent) => void;\n}\n\nfunction renderValue({value, placeholder}: {value: string[]; placeholder?: string}) {\n if (value.length > 0) {\n return <span className={b('value')}>{value.join(', ')}</span>;\n } else {\n return <span className={b('placeholder')}>{placeholder}</span>;\n }\n}\n\nexport function SelectControl({\n size = 's',\n width,\n label,\n focused,\n disabled,\n displayArrow,\n value,\n icon,\n badgeFocused,\n badgeRef,\n onBadgeClick,\n onClick,\n placeholder,\n}: SelectControlProps) {\n const controlStyles: React.CSSProperties = {};\n\n if (width) {\n controlStyles.width = width;\n }\n\n const controlRef = React.useRef<HTMLDivElement>(null);\n\n if (!value) {\n return null;\n }\n return (\n <div\n ref={controlRef}\n className={b({size, focused, disabled})}\n style={controlStyles}\n onClick={onClick}\n >\n {Boolean(label) && <span className={b('label')}>{label}</span>}\n {Boolean(icon) && <div className={b('selected-item-icon')}>{icon}</div>}\n\n {renderValue({value, placeholder})}\n\n {Boolean(value.length > 0) && (\n <div\n ref={badgeRef}\n className={b('badge', {focused: badgeFocused})}\n onClick={onBadgeClick}\n >\n {value.length}\n </div>\n )}\n {displayArrow && (\n <div className={b('arrow')}>\n <Icon data={arrowIcon} />\n </div>\n )}\n </div>\n );\n}\n","import {I18N} from '@gravity-ui/i18n';\nimport en from './en.json';\n\nconst i18n = new I18N();\n\ni18n.setLang('en');\n\nconst COMPONENT = 'yc-column-selector';\n\ni18n.registerKeyset('en', COMPONENT, en);\n\nexport default i18n.keyset(COMPONENT);\n","import React from 'react';\nimport block from 'bem-cn-lite';\nimport {Button, Popup, PopupPlacement} from '@gravity-ui/uikit';\nimport {ItemSelector, ItemSelectorProps} from '@gravity-ui/components';\n\nimport {SelectControl} from '../SelectControl/SelectControl';\n\nimport i18n from './i18n';\n\nimport './ColumnSelector.scss';\n\nconst b = block('yc-column-selector');\n\nexport interface ColumnSelectorProps<ItemType> {\n items: ItemType[];\n value: string[];\n onUpdate: (value: string[]) => void;\n\n renderItemValue?: ItemSelectorProps<ItemType>['renderItemValue'];\n renderItem?: ItemSelectorProps<ItemType>['renderItem'];\n filterItem?: ItemSelectorProps<ItemType>['filterItem'];\n getItemId?: ItemSelectorProps<ItemType>['getItemId'];\n className?: string;\n\n switcher?: React.ReactNode;\n controlWidth?: string;\n disabled?: boolean;\n popupPlacement?: PopupPlacement;\n}\n\nconst defaultPlacement: PopupPlacement = ['bottom-start', 'bottom-end', 'top-start', 'top-end'];\n\nexport function ColumnSelector<T>({\n className,\n switcher,\n disabled,\n controlWidth,\n items,\n value,\n onUpdate,\n renderItem,\n renderItemValue,\n getItemId,\n filterItem,\n popupPlacement = defaultPlacement,\n}: ColumnSelectorProps<T>) {\n const refControl = React.useRef<HTMLDivElement>(null);\n const [focused, setFocused] = React.useState(false);\n const [renderPopup, setRenderPopup] = React.useState(false);\n const [currentValue, setCurrentValue] = React.useState<string[]>();\n\n React.useEffect(() => {\n setCurrentValue(undefined);\n }, [items, value]);\n\n React.useEffect(() => {\n if (disabled) {\n setFocused(false);\n setCurrentValue(undefined);\n }\n }, [disabled]);\n\n const handleControlClick = () => {\n if (!disabled) {\n setFocused((f) => !f);\n setCurrentValue(undefined);\n if (!renderPopup) {\n setRenderPopup(true);\n }\n }\n };\n\n const handleUpdate = React.useCallback((v: string[]) => {\n setCurrentValue(v);\n }, []);\n\n const handleClosePopup = React.useCallback(() => {\n setFocused(false);\n }, []);\n\n const handleCancelClick = React.useCallback(() => {\n setFocused(false);\n setCurrentValue(undefined);\n }, []);\n\n const handleApplyClick = React.useCallback(() => {\n setFocused(false);\n setCurrentValue(undefined);\n\n if (currentValue && value !== currentValue) {\n onUpdate(currentValue);\n }\n }, [currentValue, onUpdate, value]);\n\n return (\n <div className={b(null, className)}>\n <div className={b('control')} ref={refControl} onClick={handleControlClick}>\n {switcher || (\n <SelectControl\n displayArrow\n disabled={disabled}\n placeholder={i18n('label_placeholder')}\n value={value}\n focused={focused}\n width={controlWidth}\n />\n )}\n </div>\n {renderPopup && (\n <Popup\n anchorRef={refControl}\n placement={popupPlacement}\n open={focused}\n onClose={handleClosePopup}\n >\n <ItemSelector\n selectorTitle={i18n('label_columns')}\n items={items}\n value={currentValue ?? value}\n onUpdate={handleUpdate}\n getItemId={getItemId}\n filterItem={filterItem}\n renderItem={renderItem}\n renderItemValue={renderItemValue}\n />\n <div className={b('controls')}>\n <Button view=\"flat\" className={b('control')} onClick={handleCancelClick}>\n {i18n('button_cancel')}\n </Button>\n <Button view=\"action\" className={b('control')} onClick={handleApplyClick}>\n {i18n('button_apply')}\n </Button>\n </div>\n </Popup>\n )}\n </div>\n );\n}\n","import React, {FC} from 'react';\nimport {Datepicker, DatepickerProps, datepickerDefaultProps} from './Datepicker';\n\nexport * from './Datepicker';\n\nexport const DatePickerWrapper: FC<DatepickerProps> = (props) => <Datepicker {...props} />;\nDatePickerWrapper.defaultProps = datepickerDefaultProps;\n","import React from 'react';\nimport {connect} from 'react-redux';\n\nimport map_ from 'lodash/map';\n\nimport cn from 'bem-cn-lite';\n\nimport ErrorBlock from '../../components/Error/Error';\n\nimport {ROOT_ACCOUNT_NAME} from '../../constants/accounts/accounts';\nimport {getEditableAccountParentSuggests} from '../../store/selectors/accounts/accounts';\nimport {getAccountNames} from '../../store/selectors/accounts/accounts-ts';\n\nimport './AccountsSuggest.scss';\nimport {fetchFullList1M} from '../../utils/users-groups';\nimport {USE_CACHE} from '../../../shared/constants/yt-api';\nimport {RootState} from '../../store/reducers';\nimport {YTApiId} from '../../rum/rum-wrap-api';\nimport {SelectSingle} from '../../components/Select/Select';\n\nconst block = cn('accounts-suggest');\n\nconst ROOT_ACCOUNT_TITLE = '<Root>';\n\ninterface Props {\n value?: string;\n\n onChange: (value?: Props['value']) => void;\n placeholder?: string;\n validate?: (value: Props['value']) => string | undefined;\n touched?: boolean;\n items: Array<string>;\n disabled?: boolean;\n allowRootAccount?: boolean;\n}\n\nexport function AccountSuggestImpl(props: Props) {\n const {\n items,\n onChange,\n placeholder,\n allowRootAccount,\n disabled,\n validate = () => undefined,\n touched,\n } = props;\n const value = props.value;\n\n const options = map_(items, (item) => ({\n value: item,\n text: item,\n }));\n if (allowRootAccount) {\n options.splice(0, 0, {\n value: ROOT_ACCOUNT_NAME,\n text: ROOT_ACCOUNT_TITLE,\n });\n }\n\n const error = touched && validate(value);\n\n return (\n <div className={block({empty: !value, error: Boolean(error)})}>\n <SelectSingle\n disabled={disabled}\n items={options}\n onChange={onChange}\n placeholder={placeholder}\n value={value}\n width=\"max\"\n hideClear\n />\n {error && <div className={block('error')}>{error}</div>}\n </div>\n );\n}\n\nAccountSuggestImpl.isEmpty = (value: string) => {\n return !value;\n};\n\nAccountSuggestImpl.getDefaultValue = () => {\n return '';\n};\n\nAccountSuggestImpl.hasErrorRenderer = true;\n\nconst mapStateToProps = (state: RootState) => {\n return {\n items: getAccountNames(state),\n };\n};\n\nconst ASConnector = connect(mapStateToProps);\n\nconst AccountSuggestConnected = ASConnector(AccountSuggestImpl);\n\nexport default AccountSuggestConnected;\n\nconst mapStateToPropsForParents = (state: RootState) => {\n return {\n items: getEditableAccountParentSuggests(state),\n };\n};\n\nexport const SuggestParentsForEditableAccount =\n connect(mapStateToPropsForParents)(AccountSuggestImpl);\n\nexport function AccountsSuggestWithLoading(\n props: Omit<React.ComponentProps<typeof AccountSuggestImpl>, 'items'>,\n) {\n const [{items, error}, setState] = React.useState<{\n items?: Array<string>;\n error?: string;\n }>({items: []});\n React.useMemo(() => {\n fetchFullList1M(YTApiId.listAccounts, {path: '//sys/accounts', ...USE_CACHE})\n .then((items: Array<string>) => {\n setState({items});\n })\n .catch((error: any) => {\n setState({error});\n });\n }, []);\n\n return (\n <React.Fragment>\n <AccountSuggestImpl {...props} items={items || []} />\n {error && <ErrorBlock error={error} />}\n </React.Fragment>\n );\n}\n\nAccountsSuggestWithLoading.isEmpty = (value: string) => {\n return !value;\n};\n\nAccountsSuggestWithLoading.getDefaultValue = () => {\n return ROOT_ACCOUNT_NAME;\n};\n","import React from 'react';\nimport {connect} from 'react-redux';\n\nimport concat_ from 'lodash/concat';\nimport filter_ from 'lodash/filter';\nimport map_ from 'lodash/map';\n\nimport cn from 'bem-cn-lite';\n\nimport {SelectProps} from '@gravity-ui/uikit';\n\nimport {EditableList, EditableListItemType} from '../../../components/Dialog';\n\nimport {getAllGroupNamesSorted, getAllIdmGroupNamesSorted} from '../../../store/selectors/global';\nimport {RootState} from '../../../store/reducers';\nimport Select from '../../../components/Select/Select';\n\nimport './GroupSuggest.scss';\n\nconst block = cn('group-suggest');\n\ninterface Props {\n placeholder?: string;\n items?: Array<string>;\n className?: string;\n showTags?: boolean;\n idmOnly?: boolean;\n multiple?: boolean;\n value: Array<string>;\n onChange: (value: Props['value']) => void;\n disabled?: boolean;\n width?: SelectProps['width'];\n maxVisibleValues?: number;\n}\n\nfunction GroupSuggest(props: Props) {\n const {items, width, multiple, onChange, placeholder, className, showTags, value, ...rest} =\n props;\n\n const ycItems = map_(items, (item) => ({\n value: item,\n text: item,\n }));\n\n const empty = !value?.length;\n\n const listValue = React.useMemo(() => map_(concat_([], value), (title) => ({title})), [value]);\n\n const onListChange = React.useCallback(\n (newList: Array<EditableListItemType<any>>) => {\n const res = filter_(newList, ({removed}) => !removed).map(({title}) => title);\n onChange(res);\n },\n [value, onChange],\n );\n\n return (\n <div className={block({empty}, className)}>\n <Select\n {...rest}\n items={ycItems}\n onUpdate={onChange}\n placeholder={placeholder}\n value={props.value}\n multiple={multiple}\n width={width ?? 'max'}\n filterable\n disablePortal\n />\n {multiple && showTags && <EditableList onChange={onListChange} value={listValue} />}\n </div>\n );\n}\n\nGroupSuggest.isEmpty = (value: Array<string>) => {\n return !value?.length;\n};\n\nGroupSuggest.getDefaultValue = () => {\n return [];\n};\n\nconst mapStateToProps = (state: RootState, ownProps: Props) => {\n const {idmOnly} = ownProps;\n const items: Array<string> = idmOnly\n ? (getAllIdmGroupNamesSorted(state) as Array<string>)\n : getAllGroupNamesSorted(state);\n return {items};\n};\n\nexport default connect(mapStateToProps)(GroupSuggest);\n","import React, {FC} from 'react';\nimport cn from 'bem-cn-lite';\n\nimport './BundleParamsList.scss';\n\nconst block = cn('bundle-params-list');\n\nexport interface BundleParam {\n title: string;\n value: string | number;\n type?: 'positive' | 'negative';\n postfix?: string;\n}\n\ninterface BundleParamsListProps {\n className?: string;\n params: BundleParam[];\n size?: 's' | 'm';\n}\n\nexport const BundleParamsList: FC<BundleParamsListProps> = ({className, params, size = 's'}) => {\n return (\n <div className={block({size}, className)}>\n {params.map((param) => (\n <span key={param.title}>\n {param.title}{' '}\n <span className={block('value', {type: param.type})}>\n {param.value} {param.postfix}\n </span>\n </span>\n ))}\n </div>\n );\n};\n","export const RumMeasureTypes = {\n CLUSTER_PARAMS: 'CLUSTER_PARAMS',\n\n ACCOUNTS: 'ACCOUNTS_',\n\n NAVIGATION_PRELOAD: 'NAVIGATION_PRELOAD',\n\n NAVIGATION_CONTENT_DOCUMENT: 'NAVIGATION_CONTENT_DOCUMENT',\n NAVIGATION_CONTENT_FILE: 'NAVIGATION_CONTENT_FILE',\n NAVIGATION_CONTENT_LINK: 'NAVIGATION_CONTENT_LINK',\n NAVIGATION_CONTENT_MAP_NODE: 'NAVIGATION_CONTENT_MAP_NODE_',\n NAVIGATION_CONTENT_REPLICATED_TABLE: 'NAVIGATION_CONTENT_REPLICATED_TABLE',\n NAVIGATION_CONTENT_TABLE_STATIC: 'NAVIGATION_CONTENT_TABLE_STATIC',\n NAVIGATION_CONTENT_TABLE_DYNAMIC: 'NAVIGATION_CONTENT_TABLE_DYNAMIC',\n NAVIGATION_CONTENT_TRANSACTION: 'NAVIGATION_CONTENT_TRANSACTION',\n NAVIGATION_CONTENT_TRANSACTION_MAP: 'NAVIGATION_CONTENT_TRANSACTION_MAP',\n\n NAVIGATION_TAB_ACL: 'NAVIGATION_TAB_ACL',\n NAVIGATION_TAB_ACL_ACCESS: 'NAVIGATION_TAB_ACL_ACCESS',\n NAVIGATION_TAB_ANNOTATION: 'NAVIGATION_TAB_ANNOTATION',\n NAVIGATION_TAB_ATTRIBUTES: 'NAVIGATION_TAB_ATTRIBUTES',\n NAVIGATION_TAB_USER_ATTRIBUTES: 'NAVIGATION_TAB_USER_ATTRIBUTES',\n NAVIGATION_TAB_LOCKS: 'NAVIGATION_TAB_LOCKS',\n NAVIGATION_TAB_SCHEMA: 'NAVIGATION_TAB_SCHEMA',\n NAVIGATION_TAB_TABLETS: 'NAVIGATION_TAB_TABLETS',\n NAVIGATION_TAB_TABLET_ERRORS: 'NAVIGATION_TAB_TABLET_ERRORS',\n\n OPERATIONS_LIST: 'OPERATIONS_LIST_',\n\n OPERATION: 'OPERATION',\n OPERATION_TAB_DETAILS: 'OPERATION_TAB_DETAILS',\n OPERATION_TAB_ATTRIBUTES: 'OPERATION_TAB_ATTRIBUTES',\n OPERATION_TAB_SPECIFICATION: 'OPERATION_TAB_SPECIFICATION',\n OPERATION_TAB_STATISTICS: 'OPERATION_TAB_STATISTICS',\n OPERATION_TAB_MONITOR: 'OPERATION_TAB_MONITOR',\n OPERATION_TAB_PARTITION_SIZES: 'OPERATION_TAB_PARTITION_SIZES',\n OPERATION_TAB_JOB_SIZES: 'OPERATION_TAB_JOB_SIZES',\n OPERATION_TAB_JOBS: 'OPERATION_TAB_JOBS',\n\n SCHEDULING: 'SCHEDULING_',\n SCHEDULING_OVERVIEW: 'SCHEDULING_OVERVIEW',\n SCHEDULING_DETAILS: 'SCHEDULING_DETAILS',\n SCHEDULING_MONITOR: 'SCHEDULING_MONITOR',\n SCHEDULING_ACL: 'SCHEDULING_ACL',\n\n YQL_KIT_WIDGET: 'YQL_KIT_WIDGET',\n} as const;\n","import {createSelector} from 'reselect';\n\nimport find_ from 'lodash/find';\nimport forEach_ from 'lodash/forEach';\nimport map_ from 'lodash/map';\nimport sortBy_ from 'lodash/sortBy';\n\nimport {RootState} from '../../../store/reducers';\nimport {getCluster} from './index';\nimport {SelectWithSubItemsProps} from '../../../components/Dialog/controls/SelectWithSubItems/SelectWithSubItems';\nimport {OperationStatisticInfo} from '../../../store/reducers/global/supported-features';\n\nconst getSupportedFeaturesRaw = (state: RootState) => state.supportedFeatures.features;\nconst getSupportedFeaturesCluster = (state: RootState) => state.supportedFeatures.featuresCluster;\n\n// Record<codec, level>\nconst RECOMMENDED_COMPRESSION_CODECS: Record<string, string> = {\n lz4: '',\n zstd_: '5',\n zlib_: '9',\n brotli_: '8',\n lzma_: '6',\n};\n\nconst RECOMMENDED = ' (recommended)';\n\nconst getSupportedFeatures = createSelector(\n [getCluster, getSupportedFeaturesCluster, getSupportedFeaturesRaw],\n (cluster, featuresCluster, features) => {\n return cluster === featuresCluster ? features : {};\n },\n);\n\nexport const getErasureCodecs = createSelector([getSupportedFeatures], (features) => {\n return map_(features.erasure_codecs, (value) => {\n return {value, text: value};\n }).sort(compareItems);\n});\n\nexport const getPrimitiveTypes = createSelector([getSupportedFeatures], (features) => {\n return sortBy_(features.primitive_types).map((value) => {\n return {value, text: value};\n });\n});\n\nexport const getPrimitiveTypesMap = createSelector([getPrimitiveTypes], (types) => {\n return new Set(types.map(({value}) => value));\n});\n\nexport const getCompressionCodecs = createSelector([getSupportedFeatures], (features) => {\n return prepareItemsSubitems(features.compression_codecs);\n});\n\nexport const makeCompressionCodecFinder = createSelector([getCompressionCodecs], ({items}) => {\n return (codec: string) => {\n if (!codec) {\n return undefined;\n }\n\n const item = find_(items, (x) => {\n return x.value === codec;\n });\n if (item) {\n return [item.value as string];\n }\n\n const [first, ...rest] = codec.split('_');\n const subCodec = rest.join('_');\n\n return [first + '_', subCodec];\n };\n});\n\nexport type CompressionCodecs = Required<\n Pick<SelectWithSubItemsProps, 'items' | 'subItemsMap' | 'labels'>\n>;\n\nfunction prepareItemsSubitems(arr: Array<string> = []): CompressionCodecs {\n const res: CompressionCodecs = {\n items: [],\n subItemsMap: {},\n labels: ['Codec:', 'level:'],\n };\n\n const {items, subItemsMap} = res;\n\n for (const item of arr) {\n const parts = item.split('_');\n const [first, ...rest] = parts;\n\n if (rest.length) {\n const value = first + '_';\n\n if (!subItemsMap[value]) {\n items.push({value, content: value});\n }\n\n const dst = (subItemsMap[value] = subItemsMap[value] || new Array<string>());\n const subValue = rest.join('_');\n dst.push({value: subValue, content: subValue});\n } else {\n items.push({value: item, content: item});\n }\n }\n\n forEach_(subItemsMap, (subItems, key) => {\n const index = items.findIndex(({value}) => value === key);\n if (index === -1) {\n return;\n }\n subItems.sort(compareItems);\n if (subItems.length === 1) {\n const value = items[index].value + subItems[0].value;\n items[index] = {value, content: value};\n delete subItemsMap[key];\n } else {\n const item = items[index];\n item.content = `${item.value}[${subItems[0].value}-${\n subItems[subItems.length - 1].value\n }]`;\n }\n\n const recommended = RECOMMENDED_COMPRESSION_CODECS[key];\n if (recommended) {\n const subItems2 = subItemsMap[key];\n if (subItems2) {\n const first = subItems2[0];\n const last = subItems2[subItems2.length - 1];\n first.content = first.value + ' (faster)';\n last.content = last.value + ' (slower & smaller)';\n\n const item = subItems2.find(({value}) => value === recommended);\n if (item) {\n item.content = item.value + RECOMMENDED;\n }\n } else {\n items[index].content += RECOMMENDED;\n }\n }\n });\n\n items.sort(compareItems);\n return res;\n}\n\nfunction compareItems(l: {value: string}, r: {value: string}) {\n if (l.value === r.value) {\n return 0;\n }\n\n if (l.value === 'none') {\n return -1;\n }\n\n if (r.value === 'none') {\n return 1;\n }\n\n const lValue = String(Number(l.value)) === l.value ? Number(l.value) : l.value;\n const rValue = String(Number(r.value)) === r.value ? Number(r.value) : r.value;\n\n return lValue < rValue ? -1 : 1;\n}\n\nexport const getOperationStatisticsDescription = createSelector(\n [getSupportedFeaturesRaw],\n ({operation_statistics_descriptions}) => {\n const byName: Record<string, OperationStatisticInfo> = {};\n const byRegexp: Array<OperationStatisticInfo & {regexp: RegExp}> = [];\n forEach_(operation_statistics_descriptions, (item, key) => {\n const idx = key.indexOf('*');\n if (idx !== -1) {\n const tmp = key.replace(/\\//g, '\\\\/').replace(/\\*/g, '[^/]*');\n byRegexp.push({\n ...item,\n regexp: new RegExp(tmp),\n });\n } else {\n byName[key] = item;\n }\n });\n\n return {\n byName,\n byRegexp,\n };\n },\n);\n","const SvgCircleQuestion = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M8 13.5a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11M8 15A7 7 0 1 0 8 1a7 7 0 0 0 0 14M6.44 4.54c.43-.354.994-.565 1.56-.565 1.217 0 2.34.82 2.34 2.14 0 .377-.079.745-.298 1.1-.208.339-.513.614-.875.867-.217.153-.326.257-.379.328-.038.052-.038.07-.038.089a.75.75 0 0 1-1.5 0c0-.794.544-1.286 1.057-1.645.28-.196.4-.332.458-.426a.54.54 0 0 0 .074-.312c0-.3-.243-.641-.839-.641a1 1 0 0 0-.608.223c-.167.138-.231.287-.231.418a.75.75 0 1 1-1.5 0c0-.674.345-1.22.78-1.577ZM8 12a1 1 0 1 0 0-2 1 1 0 0 0 0 2\" clipRule=\"evenodd\" /></svg>;\nexport default SvgCircleQuestion;","const SvgPlus = props => <svg xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 16 16\" {...props}><path fill=\"currentColor\" fillRule=\"evenodd\" d=\"M8 1.75a.75.75 0 0 1 .75.75v4.75h4.75a.75.75 0 0 1 0 1.5H8.75v4.75a.75.75 0 0 1-1.5 0V8.75H2.5a.75.75 0 0 1 0-1.5h4.75V2.5A.75.75 0 0 1 8 1.75\" clipRule=\"evenodd\" /></svg>;\nexport default SvgPlus;","import { withNaming } from '@bem-react/classname';\nexport const NAMESPACE = 'gc-';\nexport const cn = withNaming({ e: '__', m: '_', v: '_' });\nexport const block = withNaming({ n: NAMESPACE, e: '__', m: '_', v: '_' });\n","import { block } from '../utils/cn';\nexport const progressBlock = block('progress');\n","import React from 'react';\nimport { progressBlock } from './constants';\nexport function ProgressInnerText(props) {\n const { text, offset = 0 } = props;\n if (!text) {\n return null;\n }\n return (React.createElement(\"div\", { className: progressBlock('text-inner'), style: { transform: `translateX(calc(var(--g-flow-direction) * ${-offset}%))` } }, text));\n}\n","import React from 'react';\nimport { progressBlock } from './constants';\nexport function ProgressStackItem({ item }) {\n const { value, color, className, theme, title, content, loading } = item;\n const modifiers = {\n loading,\n };\n if (typeof color === 'undefined') {\n modifiers.theme = theme || 'default';\n }\n if (Number.isFinite(value)) {\n return (React.createElement(\"div\", { className: progressBlock('item', modifiers, className), style: { width: `${value}%`, backgroundColor: color }, title: title }, content));\n }\n return null;\n}\n","export function getOffset(value) {\n return value < 100 ? value - 100 : 0;\n}\nexport function getValueFromStack(stack) {\n return stack.reduce((sum, { value }) => sum + value, 0);\n}\nexport function getTheme(props) {\n const { theme, colorStops, colorStopsValue, value } = props;\n if (colorStops) {\n const matchingColorStopItem = colorStops.find((item, index) => {\n const currentValue = typeof colorStopsValue === 'number' ? colorStopsValue : value;\n const minValue = index > 1 ? colorStops[index - 1].stop : 0;\n const maxValue = index < colorStops.length - 1 ? item.stop : 100;\n return currentValue >= minValue && currentValue <= maxValue;\n });\n return matchingColorStopItem ? matchingColorStopItem.theme : theme;\n }\n return theme;\n}\n","import React from 'react';\nimport { ProgressInnerText } from './ProgressInnerText';\nimport { ProgressStackItem } from './ProgressStackItem';\nimport { progressBlock } from './constants';\nimport { getOffset, getValueFromStack } from './utils';\nexport function ProgressWithStack(props) {\n const { stack, stackClassName, value, text } = props;\n const offset = getOffset(value || getValueFromStack(stack));\n return (React.createElement(\"div\", { className: progressBlock('stack', stackClassName), style: { transform: `translateX(calc(var(--g-flow-direction) * ${offset}%))` } },\n React.createElement(\"div\", { className: progressBlock('item'), style: { width: `${-offset}%` } }),\n stack.map((item, index) => (React.createElement(ProgressStackItem, { key: index, item: item }))),\n React.createElement(ProgressInnerText, { offset: offset, text: text })));\n}\n","import React from 'react';\nimport { ProgressInnerText } from './ProgressInnerText';\nimport { progressBlock } from './constants';\nimport { getOffset, getTheme } from './utils';\nexport function ProgressWithValue(props) {\n const { value, loading, text } = props;\n const offset = getOffset(value);\n if (!Number.isFinite(value)) {\n return null;\n }\n return (React.createElement(\"div\", { className: progressBlock('item', { theme: getTheme(props), loading }), style: { transform: `translateX(calc(var(--g-flow-direction) * ${offset}%))` } },\n React.createElement(ProgressInnerText, { offset: offset, text: text })));\n}\n","import React from 'react';\nimport { ProgressWithStack } from './ProgressWithStack';\nimport { ProgressWithValue } from './ProgressWithValue';\nimport { progressBlock } from './constants';\nimport { isProgressWithStack } from './types';\nimport './Progress.css';\nexport const Progress = React.forwardRef(function Progress(props, ref) {\n const { text = '', theme = 'default', size = 'm', loading = false, className, qa } = props;\n const resolvedProps = Object.assign(Object.assign({}, props), { text, theme, size, loading });\n return (React.createElement(\"div\", { ref: ref, className: progressBlock({ size }, className), \"data-qa\": qa },\n React.createElement(\"div\", { className: progressBlock('text') }, text),\n isProgressWithStack(resolvedProps) ? (React.createElement(ProgressWithStack, Object.assign({}, resolvedProps))) : (React.createElement(ProgressWithValue, Object.assign({}, resolvedProps)))));\n});\n","export function isProgressWithStack(props) {\n return props.stack !== undefined;\n}\n","import { addComponentKeysets } from '../../utils/addComponentKeysets';\nimport en from './en.json';\nimport ru from './ru.json';\nconst COMPONENT = 'Table';\nexport default addComponentKeysets({ en, ru }, COMPONENT);\n","'use client';\nimport React from 'react';\nimport _get from 'lodash/get';\nimport _has from 'lodash/has';\nimport _isNumber from 'lodash/isNumber';\nimport { block } from '../utils/cn';\nimport { warnOnce } from '../utils/warn';\nimport i18n from './i18n';\nimport './Table.css';\nconst DASH = '\\u2014';\nfunction warnAboutPhysicalValues(propName) {\n warnOnce(`[Table] Physical values (left, right) of \"${propName}\" property are deprecated. Use logical values (start, end) instead.`);\n}\nfunction normalizeSides(side, propName) {\n if (side === 'left') {\n warnAboutPhysicalValues(propName);\n return 'start';\n }\n if (side === 'right') {\n warnAboutPhysicalValues(propName);\n return 'end';\n }\n return side;\n}\nconst b = block('table');\nexport class Table extends React.Component {\n constructor() {\n super(...arguments);\n this.state = {\n activeScrollElement: 'scrollContainer',\n columnsStyles: Array.from(this.props.columns, () => ({})),\n columnHeaderRefs: Array.from(this.props.columns, () => React.createRef()),\n };\n this.tableRef = React.createRef();\n this.scrollContainerRef = React.createRef();\n this.horizontalScrollBarRef = React.createRef();\n this.horizontalScrollBarInnerRef = React.createRef();\n this.renderRow = (item, rowIndex) => {\n const { columns, isRowDisabled, onRowClick, onRowMouseEnter, onRowMouseLeave, onRowMouseDown, getRowClassNames, verticalAlign, edgePadding, wordWrap, getRowDescriptor, } = this.props;\n const { columnsStyles } = this.state;\n const descriptor = getRowDescriptor === null || getRowDescriptor === void 0 ? void 0 : getRowDescriptor(item, rowIndex);\n const disabled = (descriptor === null || descriptor === void 0 ? void 0 : descriptor.disabled) || (isRowDisabled === null || isRowDisabled === void 0 ? void 0 : isRowDisabled(item, rowIndex)) || false;\n const additionalClassNames = (descriptor === null || descriptor === void 0 ? void 0 : descriptor.classNames) || (getRowClassNames === null || getRowClassNames === void 0 ? void 0 : getRowClassNames(item, rowIndex)) || [];\n const interactive = Boolean(!disabled && onRowClick);\n return (React.createElement(\"tr\", { key: Table.getRowId(this.props, item, rowIndex), onClick: !disabled && onRowClick ? onRowClick.bind(null, item, rowIndex) : undefined, onMouseEnter: !disabled && onRowMouseEnter\n ? onRowMouseEnter.bind(null, item, rowIndex)\n : undefined, onMouseLeave: !disabled && onRowMouseLeave\n ? onRowMouseLeave.bind(null, item, rowIndex)\n : undefined, onMouseDown: !disabled && onRowMouseDown\n ? onRowMouseDown.bind(null, item, rowIndex)\n : undefined, className: b('row', { disabled, interactive, 'vertical-align': verticalAlign }, additionalClassNames.join(' ')) }, columns.map((column, colIndex) => {\n const { id, align: rawAlign, primary, className, sticky: rawSticky } = column;\n const content = Table.getBodyCellContent(column, item, rowIndex);\n const align = normalizeSides(rawAlign, 'column.align');\n const sticky = normalizeSides(rawSticky, 'column.sticky');\n return (React.createElement(\"td\", { key: id, style: columnsStyles[colIndex], className: b('cell', {\n align,\n primary,\n sticky,\n ['edge-padding']: edgePadding,\n ['word-wrap']: wordWrap,\n }, className) }, content));\n })));\n };\n this.handleScrollContainerMouseenter = () => {\n this.setState({ activeScrollElement: 'scrollContainer' });\n };\n this.handleScrollContainerScroll = () => {\n if (this.state.activeScrollElement === 'scrollContainer' &&\n this.horizontalScrollBarRef.current &&\n this.scrollContainerRef.current) {\n this.horizontalScrollBarRef.current.scrollLeft =\n this.scrollContainerRef.current.scrollLeft;\n }\n };\n this.handleHorizontalScrollBarMouseenter = () => {\n this.setState({ activeScrollElement: 'scrollBar' });\n };\n this.handleHorizontalScrollBarScroll = () => {\n if (this.state.activeScrollElement === 'scrollBar' &&\n this.horizontalScrollBarRef.current &&\n this.scrollContainerRef.current) {\n this.scrollContainerRef.current.scrollLeft =\n this.horizontalScrollBarRef.current.scrollLeft;\n }\n };\n }\n // Static methods may be used by HOCs\n static getRowId(props, item, rowIndex) {\n const { data, getRowId, getRowDescriptor } = props;\n const index = rowIndex !== null && rowIndex !== void 0 ? rowIndex : data.indexOf(item);\n const descriptor = getRowDescriptor === null || getRowDescriptor === void 0 ? void 0 : getRowDescriptor(item, index);\n if ((descriptor === null || descriptor === void 0 ? void 0 : descriptor.id) !== undefined) {\n return descriptor.id;\n }\n if (typeof getRowId === 'function') {\n return getRowId(item, index);\n }\n if (getRowId && getRowId in item) {\n return String(item[getRowId]);\n }\n return String(index);\n }\n static getHeadCellContent(column) {\n const { id, name } = column;\n let content;\n if (typeof name === 'function') {\n content = name();\n }\n else if (typeof name === 'string') {\n content = name;\n }\n else {\n content = id;\n }\n return content;\n }\n static getBodyCellContent(column, item, rowIndex) {\n const { id, template, placeholder } = column;\n let placeholderValue;\n if (typeof placeholder === 'function') {\n placeholderValue = placeholder(item, rowIndex);\n }\n else {\n placeholderValue = placeholder !== null && placeholder !== void 0 ? placeholder : DASH;\n }\n let value;\n if (typeof template === 'function') {\n value = template(item, rowIndex);\n }\n else if (typeof template === 'string') {\n value = _get(item, template);\n }\n else if (_has(item, id)) {\n value = _get(item, id);\n }\n if ([undefined, null, ''].includes(value) && placeholderValue) {\n return placeholderValue;\n }\n return value;\n }\n static getDerivedStateFromProps(props, state) {\n if (props.columns.length === state.columnHeaderRefs.length) {\n return null;\n }\n return {\n columnHeaderRefs: Array.from(props.columns, () => React.createRef()),\n };\n }\n componentDidMount() {\n if (this.props.stickyHorizontalScroll) {\n this.tableResizeObserver = new ResizeObserver((entries) => {\n var _a;\n const { contentRect } = entries[0];\n // Sync scrollbar width with table width\n (_a = this.horizontalScrollBarInnerRef.current) === null || _a === void 0 ? void 0 : _a.style.setProperty('width', `${contentRect.width}px`);\n });\n if (this.tableRef.current) {\n this.tableResizeObserver.observe(this.tableRef.current);\n }\n if (this.scrollContainerRef.current) {\n this.scrollContainerRef.current.addEventListener('scroll', this.handleScrollContainerScroll);\n this.scrollContainerRef.current.addEventListener('mouseenter', this.handleScrollContainerMouseenter);\n }\n if (this.horizontalScrollBarRef.current) {\n this.horizontalScrollBarRef.current.addEventListener('scroll', this.handleHorizontalScrollBarScroll);\n this.horizontalScrollBarRef.current.addEventListener('mouseenter', this.handleHorizontalScrollBarMouseenter);\n }\n }\n this.columnsResizeObserver = new ResizeObserver((entries) => {\n // fix ResizeObserver loop error\n window.requestAnimationFrame(() => {\n if (!Array.isArray(entries) || !entries.length) {\n return;\n }\n this.updateColumnStyles();\n });\n });\n if (this.tableRef.current) {\n this.columnsResizeObserver.observe(this.tableRef.current);\n }\n this.updateColumnStyles();\n }\n componentDidUpdate(prevProps) {\n if (this.props.columns !== prevProps.columns) {\n this.updateColumnStyles();\n }\n }\n componentWillUnmount() {\n if (this.props.stickyHorizontalScroll) {\n if (this.tableResizeObserver) {\n this.tableResizeObserver.disconnect();\n }\n if (this.scrollContainerRef.current) {\n this.scrollContainerRef.current.removeEventListener('scroll', this.handleScrollContainerScroll);\n this.scrollContainerRef.current.removeEventListener('mouseenter', this.handleScrollContainerMouseenter);\n }\n if (this.horizontalScrollBarRef.current) {\n this.horizontalScrollBarRef.current.removeEventListener('scroll', this.handleHorizontalScrollBarScroll);\n this.horizontalScrollBarRef.current.removeEventListener('mouseenter', this.handleHorizontalScrollBarMouseenter);\n }\n }\n if (this.columnsResizeObserver) {\n this.columnsResizeObserver.disconnect();\n }\n }\n render() {\n const { columns, stickyHorizontalScroll, className, qa } = this.props;\n const withPrimary = columns.some(({ primary }) => primary);\n return (React.createElement(\"div\", { className: b({\n 'with-primary': withPrimary,\n 'with-sticky-scroll': stickyHorizontalScroll,\n }, className), \"data-qa\": qa }, stickyHorizontalScroll ? (React.createElement(React.Fragment, null,\n React.createElement(\"div\", { ref: this.scrollContainerRef, className: b('scroll-container') }, this.renderTable()),\n this.renderHorizontalScrollBar())) : (this.renderTable())));\n }\n renderHead() {\n const { columns, edgePadding, wordWrap } = this.props;\n const { columnsStyles } = this.state;\n return (React.createElement(\"thead\", { className: b('head') },\n React.createElement(\"tr\", { className: b('row') }, columns.map((column, index) => {\n const { id, align: rawAlign, primary, sticky: rawSticky, className } = column;\n const align = normalizeSides(rawAlign, 'column.align');\n const sticky = normalizeSides(rawSticky, 'column.sticky');\n const content = Table.getHeadCellContent(column);\n return (React.createElement(\"th\", { key: id, ref: this.state.columnHeaderRefs[index], style: columnsStyles[index], className: b('cell', {\n align,\n primary,\n sticky,\n ['edge-padding']: edgePadding,\n ['word-wrap']: wordWrap,\n }, className) }, content));\n }))));\n }\n renderBody() {\n const { data } = this.props;\n return (React.createElement(\"tbody\", { className: b('body') }, data.length > 0 ? data.map(this.renderRow) : this.renderEmptyRow()));\n }\n renderTable() {\n return (React.createElement(\"table\", { ref: this.tableRef, className: b('table') },\n this.renderHead(),\n this.renderBody()));\n }\n renderEmptyRow() {\n const { columns, emptyMessage } = this.props;\n return (React.createElement(\"tr\", { className: b('row', { empty: true }) },\n React.createElement(\"td\", { className: b('cell'), colSpan: columns.length }, emptyMessage ? emptyMessage : i18n('label_empty'))));\n }\n renderHorizontalScrollBar() {\n const { stickyHorizontalScroll, stickyHorizontalScrollBreakpoint = 0 } = this.props;\n return (React.createElement(\"div\", { ref: this.horizontalScrollBarRef, className: b('horizontal-scroll-bar', {\n 'sticky-horizontal-scroll': stickyHorizontalScroll,\n }), style: { bottom: `${stickyHorizontalScrollBreakpoint}px` }, \"data-qa\": \"sticky-horizontal-scroll-breakpoint-qa\" },\n React.createElement(\"div\", { ref: this.horizontalScrollBarInnerRef, className: b('horizontal-scroll-bar-inner') })));\n }\n updateColumnStyles() {\n this.setState((prevState) => {\n const columnsWidth = prevState.columnHeaderRefs.map((ref) => ref.current === null ? undefined : ref.current.getBoundingClientRect().width);\n const columnsStyles = this.props.columns.map((_, index) => this.getColumnStyles(index, columnsWidth));\n return { columnsStyles };\n });\n }\n getColumnStyles(index, columnsWidth) {\n const { columns } = this.props;\n const column = columns[index];\n const style = {};\n if (typeof column.width === 'string') {\n return { maxWidth: 0, width: column.width };\n }\n if (typeof column.width !== 'undefined') {\n style.width = column.width;\n }\n if (!column.sticky) {\n return style;\n }\n const filteredColumns = column.sticky === 'left' || column.sticky === 'start'\n ? columnsWidth.slice(0, index)\n : columnsWidth.slice(index + 1);\n const styleName = column.sticky === 'left' || column.sticky === 'start'\n ? 'insetInlineStart'\n : 'insetInlineEnd';\n style[styleName] = filteredColumns.reduce((start, width) => {\n return _isNumber(width) ? start + width : start;\n }, 0);\n return style;\n }\n}\nTable.defaultProps = {\n edgePadding: true,\n};\n","'use client';\nimport React from 'react';\nimport { useForkRef } from '../../hooks';\nimport { useTooltipVisible } from '../../hooks/private';\nimport { Popup } from '../Popup';\nimport { Text } from '../Text';\nimport { block } from '../utils/cn';\nimport './Tooltip.css';\nconst b = block('tooltip');\nconst DEFAULT_PLACEMENT = ['bottom', 'top'];\nexport const Tooltip = (props) => {\n const { children, content, disabled, placement = DEFAULT_PLACEMENT, qa, id, className, style, disablePortal, contentClassName, openDelay = 1000, closeDelay, } = props;\n const [anchorElement, setAnchorElement] = React.useState(null);\n const tooltipVisible = useTooltipVisible(anchorElement, {\n openDelay,\n closeDelay,\n preventTriggerOnFocus: true,\n });\n const renderPopup = () => {\n return (React.createElement(Popup, { id: id, role: \"tooltip\", className: b(null, className), style: style, open: tooltipVisible && !disabled, placement: placement, anchorRef: { current: anchorElement }, disablePortal: disablePortal, disableEscapeKeyDown: true, disableOutsideClick: true, disableLayer: true, qa: qa },\n React.createElement(\"div\", { className: b('content', contentClassName) },\n React.createElement(Text, { variant: \"body-short\", color: \"complementary\" }, content))));\n };\n const child = React.Children.only(children);\n const childRef = child.ref;\n const ref = useForkRef(setAnchorElement, childRef);\n return (React.createElement(React.Fragment, null,\n React.cloneElement(child, { ref }),\n anchorElement ? renderPopup() : null));\n};\n","import React from 'react';\nimport { KeyCode } from '../../../constants';\nimport { useBoolean } from '../useBoolean';\nexport const useTooltipVisible = (anchor, { openDelay = 250, closeDelay, preventTriggerOnFocus = false, }) => {\n const [tooltipVisible, showTooltip, hideTooltip] = useBoolean(false);\n const timeoutRef = React.useRef();\n const isFocusWithinRef = React.useRef(false);\n React.useEffect(() => {\n if (!anchor) {\n return undefined;\n }\n function handleMouseEnter() {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(showTooltip, openDelay);\n }\n function handleMouseLeave() {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(hideTooltip, closeDelay);\n }\n function handleFocusWithin(e) {\n if (!isFocusWithinRef.current && document.activeElement === e.target) {\n isFocusWithinRef.current = true;\n clearTimeout(timeoutRef.current);\n showTooltip();\n }\n }\n function handleBlurWithin(e) {\n if (isFocusWithinRef.current &&\n !e.currentTarget.contains(e.relatedTarget)) {\n isFocusWithinRef.current = false;\n clearTimeout(timeoutRef.current);\n hideTooltip();\n }\n }\n function handleKeyDown(e) {\n if (e.key === KeyCode.ESCAPE) {\n clearTimeout(timeoutRef.current);\n hideTooltip();\n }\n }\n anchor.addEventListener('mouseenter', handleMouseEnter);\n anchor.addEventListener('mouseleave', handleMouseLeave);\n anchor.addEventListener('keydown', handleKeyDown);\n if (!preventTriggerOnFocus) {\n anchor.addEventListener('focus', handleFocusWithin);\n anchor.addEventListener('blur', handleBlurWithin);\n }\n return () => {\n anchor.removeEventListener('mouseenter', handleMouseEnter);\n anchor.removeEventListener('mouseleave', handleMouseLeave);\n anchor.removeEventListener('focus', handleFocusWithin);\n anchor.removeEventListener('blur', handleBlurWithin);\n anchor.removeEventListener('keydown', handleKeyDown);\n };\n }, [anchor, showTooltip, hideTooltip, openDelay, closeDelay, preventTriggerOnFocus]);\n return tooltipVisible;\n};\n","import React from 'react';\nexport function useBoolean(initialState) {\n const [value, setValue] = React.useState(initialState);\n return [\n value,\n React.useCallback(() => setValue(true), []),\n React.useCallback(() => setValue(false), []),\n React.useCallback(() => setValue((val) => !val), []),\n ];\n}\n","import { useReducer } from 'react';\nvar toggleReducer = function (state, nextValue) {\n return typeof nextValue === 'boolean' ? nextValue : !state;\n};\nvar useToggle = function (initialValue) {\n return useReducer(toggleReducer, initialValue);\n};\nexport default useToggle;\n"],"names":["SubjectsControl","_React$Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","_createClass","key","value","UIFactory","renderAclSubjectsSuggestControl","this","props","length","React","AclColumnGroupControl","_ref","onChange","columnGroups","disabled","options","reduce","acc","data","removed","push","id","content","name","_jsx","Select","placeholder","onUpdate","values","width","isEmpty","getDefaultValue","block","cn","DragHandle","SortableHandle","children","_jsxs","className","Icon","face","awesome","SortableItem","SortableElement","_ref2","SortableList","SortableContainer","_ref3","items","map","index","concat","SortableListControl","_Component","_this","_len","args","Array","_key","call","state","onSortEnd","_ref4","oldIndex","newIndex","setState","_ref5","prevItems","_toConsumableArray","_items$splice","splice","_slicedToArray","_this$props","rest","error","_objectWithoutProperties","_excluded","_objectSpread","useDragHandle","isArray","Component","defaultProps","extras","BytesControl","NumberInput","undefined","format","hasErrorRenderer","NumberControl","_Component2","_super2","NumberInputWithError","l","r","v","charCodeOfDot","charCodeAt","reEscapeChar","rePropName","RegExp","keysCache","keysRegex","toPath","Error","string","result","endsWith","split","filter","Boolean","replace","match","expression","quote","subString","trim","getIn","complexKey","path","current","i","isNaN","_toPropertyKey","arg","input","hint","prim","Symbol","toPrimitive","res","TypeError","String","_toPrimitive","setInRecursor","destroyArrays","_extends2","_result","_result2","numKeys","Object","keys","numericKey","Number","_result3","_array","array","setIn","FORM_ERROR","ARRAY_ERROR","publishFieldState","formState","field","errors","initialValues","lastSubmittedValues","submitErrors","submitFailed","submitSucceeded","submitting","active","blur","change","focus","modified","modifiedSinceLastSubmit","touched","validating","visited","submitError","initial","pristine","isEqual","valid","dirty","dirtySinceLastSubmit","invalid","fieldSubscriptionItems","shallowEqual","a","b","keysA","keysB","bHasOwnProperty","prototype","hasOwnProperty","bind","idx","subscriptionFilter","dest","src","previous","subscription","shallowEqualKeys","different","forEach","indexOf","shallowEqualKeys$1","filterFieldState","previousState","force","formSubscriptionItems","filterFormState","memoize","fn","lastArgs","lastResult","some","isPromise","obj","then","version","tripleEquals","hasAnyError","notifySubscriber","subscriber","lastState","notification","notify","entries","entry","notified","useStableEventHandler","func","ref","_ref$current","config","Proxy","lang","set","CheckBoxControl","onCheckBoxChange","useCallback","_excluded2","Checkbox","size","checked","dfCN","withNaming","n","e","m","_excluded$3","renderComponent","lazyProps","render","component","assign","useWhenValueChanges","callback","isSyntheticEvent","candidate","stopPropagation","ReactFinalFormContext","useLatest","addLazyState","defineProperty","get","enumerable","addLazyFormState","_excluded$2","versions","all$1","ReactFinalForm","init","debug","_ref$decorators","decorators","destroyOnUnregister","alternateFormApi","form","initialValuesEqual","keepDirtyOnReinitialize","mutators","onSubmit","_ref$subscription","validate","validateOnBlur","f","subscribers","fieldSubscribers","fields","asyncErrors","resetWhileSubmitting","lastFormState","inBatch","validationPaused","validationBlocked","preventNotificationWhileValidationPaused","nextAsyncValidationKey","asyncValidationPromises","changeValue","mutate","after","renameField","from","to","_extends3","api","lastFieldState","getMutatorApi","mutatableState","returnValue","resetFieldState","runValidation","notifyFieldListeners","notifyFormListeners","mutatorsApi","getValidators","validators","validator","fieldChanged","safeFields","fieldKeys","limitedFieldLevelValidation","changedField","validateFields","recordLevelErrors","asyncRecordLevelErrors","fieldLevelErrors","promises","setErrors","errorsOrPromise","runRecordLevelValidation","wasAsync","setError","errorOrPromise","promise","runFieldLevelValidation","hasAsyncValidations","asyncValidationPromiseKey","Promise","all","processErrors","afterAsync","merged","forEachError","recordLevelError","errorFromParent","hasFieldLevelValidation","fieldLevelError","existing","copy","afterPromise","notifyField","fieldState","fieldSubscriber","markAllFieldsTouched","calculateNextFormState","safeFieldKeys","foundDirty","dirtyFields","dirtyFieldsSinceLastSubmit","nonNullLastSubmittedValues","nextFormState","hasSubmitErrors","hasValidationErrors","convertToExternalFormState","_safeFieldKeys$reduce","notifying","scheduleNotification","resetModifiedAfterSubmit","batch","getFieldState","getRegisteredFields","getState","initialize","savedDirtyValues","isValidationPaused","pauseValidation","preventNotification","registerField","fieldConfig","afterSubmit","beforeSubmit","haveValidator","silent","getValidator","noValueInFormState","initialValue","defaultValue","validatorRemoved","hasFieldSubscribers","lastOne","reset","restart","resumeValidation","setConfig","submit","asyncValidationPromisesKeys","console","resolvePromise","completeCalled","complete","resolve","subscribe","memoized","createForm","_React$useState","initialState","stateRef","unsubscriptions","s","decorator","reverse","unsubscribe","renderProps","eventOrValues","handleSubmit","event","preventDefault","Provider","__versions","useForm","componentName","_excluded$1","FormSpy","reactFinalForm","_temp","firstRender","onChangeRef","newState","lazyState","useFormState","isReactNative","window","navigator","product","useConstantCallback","defaultFormat","defaultParse","defaultIsEqual","useField","_config","allowNull","_config$format","formatOnBlur","multiple","_config$parse","parse","_config$subscription","type","_value","configRef","register","_configRef$current","_configRef$current$fo","formatted","meta","addLazyFieldMetaState","onBlur","target","currentValue","valueProp","nativeEvent","text","_detypedEvent$target","slice","option","selected","getSelectedValues","getValue","onFocus","_extends","source","copyField","oldFields","oldKey","newFields","newKey","escapeRegexTokens","insert","pattern","tokens","exec","fieldIndex","incrementedKey","remove","decrementedKey","move","lowest","highest","increment","_newKey","pop","tools","removeBatch","indexes","sortedIndexes","sort","_i","indexOfFieldIndex","list","first","last","middle","Math","floor","binarySearch","shift","swap","indexA","indexB","aPrefix","bPrefix","substring","suffix","_suffix","unshift","update","aArray","bArray","FieldArray","_useFieldArray","_ref$isEqual","validateProp","formMutators","useMemo","allValues","arrayError","_useField","_useField$meta","iterator","len","results","useFieldArray","calculations","previousValues","runUpdates","updates","next","resolved","destField","matches","findIndex","test","fieldName","OnChangeState","subClass","superClass","create","constructor","__proto__","_proto","componentDidUpdate","OnChange","createElement","CloseIcon","height","viewBox","fill","xmlns","opacity","d","stroke","strokeWidth","strokeLinecap","RepeatIcon","fillRule","clipRule","DangerIcon","fillOpacity","InfoIcon","WarningIcon","TooltipIcon","strokeOpacity","TextControl","empty","TextInput","hasClear","autoComplete","TextAreaControl","_a","tabIndex","controlRef","controlProps","rows","minRows","maxRows","autoFocus","onKeyDown","onKeyUp","onKeyPress","innerControlRef","handleRef","useForkRef","textareaRows","innerValue","resizeHeight","control","controlStyles","getComputedStyle","lineHeight","parseInt","getPropertyValue","paddingTop","paddingBottom","linesWithCarriageReturn","linesByScrollHeight","calculateLinesByScrollHeight","scrollHeight","style","max","TextArea","view","pin","errorMessage","errorMessageProp","validationState","validationStateProp","originalId","qa","note","inputValue","setInputValue","useControlledState","fieldRef","useFormResetHandler","onReset","hasVerticalScrollbar","setHasVerticalScrollbar","innerId","useUniqId","u","isErrorMsgVisible","isClearControlVisible","errorMessageId","noteId","ariaDescribedBy","join","commonProps","currHasVerticalScrollbar","clientHeight","ClearButton","onClick","syntheticEvent","currentTarget","OuterAdditionalContent","SelectControl","TumblerControl","onTumblerChange","labelLeft","labelRight","_extras$size","Switch","PlainText","Condition","when","isActive","Field","CustomBlock","renderLabel","RadioButtonControl","onRadioChange","evt","_props$options","_props$size","RadioButton","map_","label","Option","EditableListItem","item","frozen","toggleRemove","itemRenderer","icon","hasActions","title","EditableList","showAll","renderItem","itemClassName","_this$props2","onShowAll","_this$props3","maxVisibleCount","itemsToRender","showAllVisible","renderShowAll","_WithCollapsible","EditableManyLists","newRowData","newValue","_this2","titleClassName","LabelsGroup","LabelsGroupComponent","handleLabelClick","handleRemoveClick","onRemove","isDefault","Label","onCloseClick","_this3","renderToggler","onRemoveAll","Button","WithCollapsible","collapsed","handleToggle","prevState","visibleCount","hasToggler","resCount","initialExpanded","warn","getItems","getVisibleItemsCount","displayName","getDisplayName","getTabId","tabValues","applyFunctions","fns","_len2","_key2","noop","FocusBlurContainer","_ref$onBlur","_React$useState2","focused","setFocused","handleBlur","handleFocus","onFocusOutside","enable","capturedRef","setTimeout","addEventListener","capture","removeEventListener","useOnFocusOutside","handleClick","onClickOutside","useOnClickOutside","MultiTextControl","currentLabel","updateLabel","confirmText","labels","find_","handleAdd","keyCode","ENTER","handleClear","handleRemove","theItem","findIndex_","anItem","TabField","tabItems","activeTab","setActiveTab","onRemoveTab","onCreateTab","Tabs","onSelectTab","wrapTo","wrapTabItem","tabSpec","isTabControl","isTabControlVertical","_onCreateTab","tabNode","wrapperMods","hasError","some_","removable","ITEM_HEIGHT","TabFieldVertical","onItemClick","node","vertical","sortable","onOrderChanged","List","itemHeight","selectedItemIndex","filterable","sub","i18n","I18N","setLang","ru","en","registerKeyset","keyset","CollapsibleSection","alwaysExpanded","initialCollapsed","caption","captionClassName","setCollapsed","collapsible","ChevronDown","ChevronUp","bDialog","bPage","composeValidators","_asyncToGenerator","_regeneratorRuntime","_callee","_validators","_context","prev","sent","abrupt","t0","stop","_x","_x2","_x3","tabControlTypes","isSectionField","section","isTabbedField","isArrayOfTabs","Dialog","hasTabs","controls","Map","getControl","has","tabsCount","activeTabId","verticalTabs","onClose","_event","reason","_this$props$onClose","disableFormReset","onApply","onAdd","response","validationErrors","isActiveTab","onActiveTabChange","tab","renderTabs","_tabbedFields$","_this$state","_this$prepareTabs","prepareTabs","removeTab","createTab","TabComponent","renderDialogContent","waitingMessage","headerProps","footerProps","formId","insertAfter","insertBefore","_Dialog$defaultProps$","textApplyDefault","textApply","textCancelDefault","textCancel","_ref6","_ref6$textApply","_ref6$textCancel","_ref6$propsButtonCanc","propsButtonCancel","_ref6$propsButtonAppl","propsButtonApply","hidden","isApplyDisabled","Fragment","CommonDialog","Header","Body","with_vertical_tabs","renderTabbedFields","renderFields","renderFormError","Footer","preset","loading","textButtonCancel","textButtonApply","onClickButtonCancel","onClickButtonApply","renderPageDialog","_ref7","_this$props4","modal","renderModalDialog","_ref8","_this$props5","visible","open","hasCloseButton","getFieldsCalculator","calculator","collectSubscribers","_ref9","createDecorator","topLevelTabs","preamble","DFDialog","checkFieldsSpec","_prevProps","_document$querySelect","document","querySelector","scrollTo","pristineSubmittable","_isApplyDisabled","fieldPrefix","warning","fullWidth","required","_field$validateFields","makeRequiredValidator","_getControl","customValidate","_ref10","isEmptyField","renderField","oldValue","_field$wrapTo","sectionNode","renderSection","separator","isSeparatorField","renderSeparator","visibilityCondition","renderFieldGroup","formError","_this4","virtualized","renderControls","_ref12","tabs","tabAttributes","get_","_tabItems$","_this5","_form$mutators","propFields","stateValues","firstMultiTabIndex","seenMultiTab","updateActiveTab","operateOnTabs","isRemovable","isVisibleTab","fieldSpec","userOptions","_values$fieldName","srcTabData","newTabData","ids","Set","_ref14","_find","checkTabId","tabItemToDelete","tabIndexToDelete","tabIdToSwitch","_this6","tabbedFields","renderMultiTabContent","renderSingleTabContent","_this$props6","formExtras","defaultValues","renderDialog","Form","isEqual_","FINAL_FORM_SUBSCRIPTIONS","arrayMutators","controlId","controlComponent","suppressDuplicateWarning","tabComponent","opts","registerControl","reduce_","getDefaultValues","tabData","_e","isControlField","getTabsOrientation","getFirstTabId","isEmpty_","_fields$","_ref17","extrasValues","FieldWithExtras","_field","tooltip","htmlFor","Popover","delayOpening","delayClosing","placement","_ref18","_field$title","getTitle","fieldValues","fieldErrors","prefix","dst","fullName","registerTabControl","registerDialogControl","registerDialogTabControl","_ref19","_ref19$extras","onFocusExternal","onBlurExternal","onFocusField","onBlurField","Control","RoleListControl","onSubejctsControlChange","newItems","onManyListsChange","arr","SubjectCard","allowedTypes","manyListsData","prepareManyListData","toAdd","toRemove","unrecognized","LockSuggest","suggestions","Suggest","LockSuggestControl","connect","getColumnLockSuggestions","GroupSuggestControl","getColumnGroupSuggestions","SelectWithSubItems","_this$props$subItemsM","subItemsMap","second","subItems","find","onSubValueChange","newSubValue","_this$props3$subItems","subLabel","subValue","renderSelect","labelClassName","vals","disablePortal","CreatePoolParentSuggest","sortedFlatTree","useSelector","getCreatePoolDialogFlatTreeItems","ycItems","getTabletCellBundlesSuggests","suggests","tabletCellBundles","TabletCellBundlesSuggest","dispatch","useDispatch","username","getCurrentUserName","ytApiV3Id","YTApiId","getUsableBundles","EditablePathList","_args","onListChange","onPathEditorChange","_this$props$value","defaultPath","listItems","sortBy_","PathEditor","PathEditorControl","handleApply","FormOptionItem","Tooltip","CircleQuestionIcon","TOOLTIP_MAP","_TOOLTIP_MAP","_defineProperty","PathAttribute","COMPRESSION_CODEC","ERASURE_CODEC","OPTIMIZE_FOR","getTooltipByType","popup","AddOptionForm","attributes","btnRef","useRef","_useToggle","useToggle","_useToggle2","isOpen","toggleOpen","_Fragment","PlusIcon","Popup","anchorRef","contentClassName","OptimizeForAttribute","attribute","CompressionCodecAttribute","codecs","ErasureCodecAttribute","SelectSingle","OutputPathControl","outputPathAttributes","getNavigationTableOutputPathAttributes","compressionCodecs","getCompressionCodecs","erasureCodecs","getErasureCodecs","useEffect","loadStorageAttributes","resetAttributes","handleAttributeActiveChange","setAttributeActive","handleAttributeChange","changeAttribute","PoolSuggestControl","allowEmpty","allowEphemeral","poolTrees","cluster","calculateValueOnPoolsLoaded","poolNames","setPoolNames","names","_React$useState3","_React$useState4","defaultPoolTree","useDefaultPoolTree","localPoolTrees","poolTree","axios","_step","namesMap","_iterator","_createForOfIteratorHelper","done","_step2","_iterator2","err","fetchPoolNamesByCluster","listPoolNames","USE_MAX_SIZE","_step3","_iterator3","_step4","_iterator4","ypath","fetchPoolNamesByPoolTrees","wrapApiPromiseByToaster","skipSuccessToast","toasterName","errorTitle","useLoadedPools","noRoot","filter_","valueIndex","indexOf_","loadedPoolNames","_items","sortedIndexBy_","sortedLastIndexBy_","slice_","popupClassName","onTextUpdate","PoolTreeSuggestControl","treeNames","getAllPoolTreeNames","usePoolTreesLoaded","TableSortByControl","suggestColumns","allowDescending","columns","descendingMap","setDescendingMap","handleChange","newColumns","descending","ColumnSelector","renderItemValue","desc","newMap","asPrettyNumber","asNumber","parseBytes","TableChunkSize","_props$value","popupPlacement","UsableAccountSuggest","setItems","login","listUsableAccounts","accounts","Toaster","add","theme","message","actions","showErrorPopup","autoHiding","AccountSuggestImpl","YsonPreviewMemo","YsonPreview","EditJsonWithPreview","unipikaSettings","nullPreview","folding","onTextChange","JSON","onError","EditTextWithPreview","initialShowPreview","editorTitle","editorLang","renderPreview","ErrorBoundary","maxCompactMessageLength","disableRum","settings","_ref3$value","Text","color","Yson","PoolQuotaEditorControl","limit","getInfoByName","poolName","poolsByName","resourceType","Infinity","total","_getPoolResourceInfo","getPoolResourceInfo","totalChildrenLimit","childrenSum","pool","_this$props2$value","_this$props2$value2","initialLimit","decimalPlaces","min","sourcesSkipParent","limitInputTitle","QuotaEditor","currentAccount","sourceAccount","prevLimit","renderSourceSuggest","PoolSourceSuggest","skipParent","sourceSuggestTitle","left","right","getSchedulingPoolsMapByName","sources","getSchedulingSourcesOfEditItem","sourcesNoParent","getSchedulingSourcesOfEditItemSkipParent","BundleTableField","onRadioClick","template","Radio","isChecked","initialData","Table","edgePadding","BundleTitle","params","BundleParamsList","resetIcon","BundleInput","postfix","readonly","progress","_props$withoutDetaile","withoutDetailedBar","_props$hasClear","preciseInitialRawValue","_useState","useState","_useState2","parsedValue","setParsedValue","_useState3","_useState4","parsedError","setParsedError","_useState5","_useState6","rawValue","setRawValue","_useState7","_useState8","formattedValue","setFormattedValue","_useState9","_useState10","formatValue","digits","toRawValue","calcProgress","calcProgressProps","usage","parseValue","errorFromValue","BundleInputDetailedBar","Progress","AbcControl","renderControlAbcService","UNLIMITED","PERIOD","DATE","ALLOWED_VIEW_TYPE","TEXT","_TEXT","DAY_MS","BeforeDatePicker","viewType","period","periodError","onChangeViewType","onNewDate","onChangePeriod","valueStr","daysCount","ms","Date","getTime","periodToDate","onDate","dayCount","date","diff","ceil","dateToPeriod","Datepicker","controlSize","range","controlWidth","renderRadioButton","renderDateInput","DatePickerControl","_ref$value","allowNullableValues","RangeInputPickerControl","RangeInputPicker","valueToString","_value$join","AclColumnsControl","editText","setEditText","textValue","val","_text$split","NaN","YTDialog","asLeftTopBlock","dialog","AccountsSuggest","AccountsSuggestWithLoading","ClusterSelectControl","PermissionsControl","GroupSuggest","TimeDuration","EditAnnotationWithPreview","PoolQuotaEditor","CreateTableTabField","excludeClusters","_ref$filterPredicate","filterPredicate","clusters","YT","toSkip","MonacoEditor","withLazyLoading","Loader","onEnterKeyDown","_this$props$onEnterKe","onBytesChange","checkForError","onAccountChange","showHint","sourceSuggestDisabled","getFreeFormatted","getLimit","getMinLimit","getMaxLimit","info","calcLimitTotal","allowChildrenOverCommit","_info$totalChildrenLi","free","maxValue","_this$props$prevLimit","itemLimit","_this$props$limit","itemNewLimit","getFreeImpl","account","_getInfoByName","getFree","hammer","NO_VALUE","newLimit","srcAccount","maxLimit","renderSubjectCard","addComponentKeysets","ItemSelector","super","renderItemTitle","getItemId","onAddItem","filterItem","includes","renderValueItem","onRemoveItem","I","Xmark","itemId","onErase","onSelectAll","onMoveItem","moveListElement","getActualItems","hideSelected","actualItems","selectedItems","usedItems","selectorTitle","hideSelectAllButton","filterPlaceholder","itemsHeight","renderValue","_ref2$size","displayArrow","badgeFocused","badgeRef","onBadgeClick","arrowIcon","COMPONENT","defaultPlacement","switcher","_ref$popupPlacement","refControl","renderPopup","setRenderPopup","_React$useState5","_React$useState6","setCurrentValue","handleUpdate","handleClosePopup","handleCancelClick","handleApplyClick","datepickerDefaultProps","ROOT_ACCOUNT_TITLE","allowRootAccount","_props$validate","ROOT_ACCOUNT_NAME","hideClear","getAccountNames","ASConnector","SuggestParentsForEditableAccount","getEditableAccountParentSuggests","_React$useState2$","fetchFullList1M","listAccounts","USE_CACHE","ErrorBlock","showTags","listValue","concat_","newList","ownProps","idmOnly","getAllIdmGroupNamesSorted","getAllGroupNamesSorted","_ref$size","param","RumMeasureTypes","CLUSTER_PARAMS","ACCOUNTS","NAVIGATION_PRELOAD","NAVIGATION_CONTENT_DOCUMENT","NAVIGATION_CONTENT_FILE","NAVIGATION_CONTENT_LINK","NAVIGATION_CONTENT_MAP_NODE","NAVIGATION_CONTENT_REPLICATED_TABLE","NAVIGATION_CONTENT_TABLE_STATIC","NAVIGATION_CONTENT_TABLE_DYNAMIC","NAVIGATION_CONTENT_TRANSACTION","NAVIGATION_CONTENT_TRANSACTION_MAP","NAVIGATION_TAB_ACL","NAVIGATION_TAB_ACL_ACCESS","NAVIGATION_TAB_ANNOTATION","NAVIGATION_TAB_ATTRIBUTES","NAVIGATION_TAB_USER_ATTRIBUTES","NAVIGATION_TAB_LOCKS","NAVIGATION_TAB_SCHEMA","NAVIGATION_TAB_TABLETS","NAVIGATION_TAB_TABLET_ERRORS","OPERATIONS_LIST","OPERATION","OPERATION_TAB_DETAILS","OPERATION_TAB_ATTRIBUTES","OPERATION_TAB_SPECIFICATION","OPERATION_TAB_STATISTICS","OPERATION_TAB_MONITOR","OPERATION_TAB_PARTITION_SIZES","OPERATION_TAB_JOB_SIZES","OPERATION_TAB_JOBS","SCHEDULING","SCHEDULING_OVERVIEW","SCHEDULING_DETAILS","SCHEDULING_MONITOR","SCHEDULING_ACL","YQL_KIT_WIDGET","getSupportedFeaturesRaw","supportedFeatures","features","RECOMMENDED_COMPRESSION_CODECS","lz4","zstd_","zlib_","brotli_","lzma_","RECOMMENDED","getSupportedFeatures","createSelector","getCluster","featuresCluster","erasure_codecs","compareItems","getPrimitiveTypes","primitive_types","getPrimitiveTypesMap","types","parts","_parts","_toArray","forEach_","recommended","subItems2","prepareItemsSubitems","compression_codecs","makeCompressionCodecFinder","codec","x","_codec$split","_codec$split2","getOperationStatisticsDescription","operation_statistics_descriptions","byName","byRegexp","tmp","regexp","NAMESPACE","progressBlock","ProgressInnerText","offset","transform","ProgressStackItem","modifiers","isFinite","backgroundColor","getOffset","getTheme","colorStops","colorStopsValue","matchingColorStopItem","minValue","ProgressWithStack","stack","stackClassName","sum","getValueFromStack","ProgressWithValue","resolvedProps","isProgressWithStack","warnAboutPhysicalValues","propName","normalizeSides","side","activeScrollElement","columnsStyles","columnHeaderRefs","tableRef","scrollContainerRef","horizontalScrollBarRef","horizontalScrollBarInnerRef","renderRow","rowIndex","isRowDisabled","onRowClick","onRowMouseEnter","onRowMouseLeave","onRowMouseDown","getRowClassNames","verticalAlign","wordWrap","getRowDescriptor","descriptor","additionalClassNames","classNames","interactive","getRowId","onMouseEnter","onMouseLeave","onMouseDown","column","colIndex","align","rawAlign","primary","sticky","rawSticky","getBodyCellContent","handleScrollContainerMouseenter","handleScrollContainerScroll","scrollLeft","handleHorizontalScrollBarMouseenter","handleHorizontalScrollBarScroll","getHeadCellContent","placeholderValue","getDerivedStateFromProps","componentDidMount","stickyHorizontalScroll","tableResizeObserver","ResizeObserver","contentRect","setProperty","observe","columnsResizeObserver","requestAnimationFrame","updateColumnStyles","prevProps","componentWillUnmount","disconnect","withPrimary","renderTable","renderHorizontalScrollBar","renderHead","renderBody","renderEmptyRow","emptyMessage","colSpan","stickyHorizontalScrollBreakpoint","bottom","columnsWidth","getBoundingClientRect","_","getColumnStyles","maxWidth","filteredColumns","start","DEFAULT_PLACEMENT","openDelay","closeDelay","anchorElement","setAnchorElement","tooltipVisible","useTooltipVisible","preventTriggerOnFocus","child","only","childRef","role","disableEscapeKeyDown","disableOutsideClick","disableLayer","variant","anchor","showTooltip","hideTooltip","setValue","useBoolean","timeoutRef","isFocusWithinRef","handleMouseEnter","handleMouseLeave","handleKeyDown","handleFocusWithin","handleBlurWithin","clearTimeout","activeElement","contains","relatedTarget","ESCAPE","toggleReducer","nextValue","useReducer"],"sourceRoot":""}