@ytsaurus/ui 0.0.4 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/server/ServerFactory.js +2 -1
- package/build/cjs/server/ServerFactory.js.map +1 -1
- package/build/cjs/server/config.localcluster.js +1 -1
- package/build/cjs/server/config.localcluster.js.map +1 -1
- package/build/cjs/server/configs/local.d.ts +3 -0
- package/build/cjs/server/configs/local.js +33 -0
- package/build/cjs/server/configs/local.js.map +1 -0
- package/build/cjs/server/utils/default-settings.js +1 -1
- package/build/cjs/server/utils/default-settings.js.map +1 -1
- package/build/cjs/shared/ui-settings.d.ts +1 -0
- package/build/cjs/shared/ui-settings.js.map +1 -1
- package/build/cjs/ui/common/utils/url-encoder.js +1 -0
- package/build/cjs/ui/common/utils/url-encoder.js.map +1 -1
- package/build/cjs/ui/common/yt-api-init.js +7 -12
- package/build/cjs/ui/common/yt-api-init.js.map +1 -1
- package/build/cjs/ui/components/EditableAsText/EditableAsText.js +8 -6
- package/build/cjs/ui/components/EditableAsText/EditableAsText.js.map +1 -1
- package/build/cjs/ui/components/SchemaDataType/SchemaDataType.js +3 -59
- package/build/cjs/ui/components/SchemaDataType/SchemaDataType.js.map +1 -1
- package/build/cjs/ui/components/SchemaDataType/dateTypesV3.d.ts +48 -0
- package/build/cjs/ui/components/SchemaDataType/dateTypesV3.js +65 -0
- package/build/cjs/ui/components/SchemaDataType/dateTypesV3.js.map +1 -0
- package/build/cjs/ui/config/index.d.ts +1 -0
- package/build/cjs/ui/config/index.js +4 -0
- package/build/cjs/ui/config/index.js.map +1 -1
- package/build/cjs/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
- package/build/cjs/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.d.ts +7 -0
- package/build/cjs/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.js +78 -0
- package/build/cjs/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.js.map +1 -0
- package/build/cjs/ui/pages/navigation/content/Table/TableOverview/TableOverview.d.ts +3 -1
- package/build/cjs/ui/pages/navigation/content/Table/TableOverview/TableOverview.js +10 -2
- package/build/cjs/ui/pages/navigation/content/Table/TableOverview/TableOverview.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueriesHistoryList/index.js +3 -3
- package/build/cjs/ui/pages/query-tracker/QueriesHistoryList/index.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryDuration/index.js +13 -2
- package/build/cjs/ui/pages/query-tracker/QueryDuration/index.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryEditor/QueryEditor.d.ts +3 -1
- package/build/cjs/ui/pages/query-tracker/QueryEditor/QueryEditor.js +19 -10
- package/build/cjs/ui/pages/query-tracker/QueryEditor/QueryEditor.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryResults/index.d.ts +2 -0
- package/build/cjs/ui/pages/query-tracker/QueryResults/index.js +2 -3
- package/build/cjs/ui/pages/query-tracker/QueryResults/index.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryResultsView/index.js +4 -9
- package/build/cjs/ui/pages/query-tracker/QueryResultsView/index.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryStatus/index.js +2 -1
- package/build/cjs/ui/pages/query-tracker/QueryStatus/index.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryTracker/QueryTracker.js +14 -2
- package/build/cjs/ui/pages/query-tracker/QueryTracker/QueryTracker.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryTrackerNewButton/index.d.ts +18 -0
- package/build/cjs/ui/pages/query-tracker/QueryTrackerNewButton/index.js +89 -0
- package/build/cjs/ui/pages/query-tracker/QueryTrackerNewButton/index.js.map +1 -0
- package/build/cjs/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.d.ts +4 -0
- package/build/cjs/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.js +88 -0
- package/build/cjs/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.js.map +1 -0
- package/build/cjs/ui/pages/query-tracker/QueryTrackerTopRow/index.d.ts +1 -0
- package/build/cjs/ui/pages/query-tracker/QueryTrackerTopRow/index.js +18 -131
- package/build/cjs/ui/pages/query-tracker/QueryTrackerTopRow/index.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/QueryWidget/index.d.ts +5 -0
- package/build/cjs/ui/pages/query-tracker/QueryWidget/index.js +78 -0
- package/build/cjs/ui/pages/query-tracker/QueryWidget/index.js.map +1 -0
- package/build/cjs/ui/pages/query-tracker/module/api.d.ts +15 -13
- package/build/cjs/ui/pages/query-tracker/module/api.js +175 -63
- package/build/cjs/ui/pages/query-tracker/module/api.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/module/query/actions.d.ts +3 -2
- package/build/cjs/ui/pages/query-tracker/module/query/actions.js +83 -23
- package/build/cjs/ui/pages/query-tracker/module/query/actions.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/module/query/reducer.d.ts +2 -1
- package/build/cjs/ui/pages/query-tracker/module/query/reducer.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/module/query/selectors.d.ts +2 -1
- package/build/cjs/ui/pages/query-tracker/module/query/url_mapping.js +7 -3
- package/build/cjs/ui/pages/query-tracker/module/query/url_mapping.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/module/query_result/actions.js +48 -41
- package/build/cjs/ui/pages/query-tracker/module/query_result/actions.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/utils/navigation.d.ts +4 -1
- package/build/cjs/ui/pages/query-tracker/utils/navigation.js +8 -3
- package/build/cjs/ui/pages/query-tracker/utils/navigation.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/utils/query.d.ts +1 -0
- package/build/cjs/ui/pages/query-tracker/utils/query.js +4 -0
- package/build/cjs/ui/pages/query-tracker/utils/query.js.map +1 -1
- package/build/cjs/ui/pages/query-tracker/utils/query_generate.d.ts +13 -0
- package/build/cjs/ui/pages/query-tracker/utils/query_generate.js +84 -0
- package/build/cjs/ui/pages/query-tracker/utils/query_generate.js.map +1 -0
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js +19 -36
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js.map +1 -1
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.d.ts +0 -1
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.js +15 -41
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.js.map +1 -1
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.d.ts +1 -2
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.js +1 -5
- package/build/cjs/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.js.map +1 -1
- package/build/cjs/ui/store/selectors/global/index.d.ts +3 -0
- package/build/cjs/ui/store/selectors/global/index.js +20 -1
- package/build/cjs/ui/store/selectors/global/index.js.map +1 -1
- package/build/esm/server/ServerFactory.js +2 -1
- package/build/esm/server/ServerFactory.js.map +1 -1
- package/build/esm/server/config.localcluster.js +1 -1
- package/build/esm/server/config.localcluster.js.map +1 -1
- package/build/esm/server/configs/local.d.ts +3 -0
- package/build/esm/server/configs/local.js +28 -0
- package/build/esm/server/configs/local.js.map +1 -0
- package/build/esm/server/utils/default-settings.js +1 -1
- package/build/esm/server/utils/default-settings.js.map +1 -1
- package/build/esm/shared/ui-settings.d.ts +1 -0
- package/build/esm/shared/ui-settings.js.map +1 -1
- package/build/esm/ui/common/utils/url-encoder.js +1 -0
- package/build/esm/ui/common/utils/url-encoder.js.map +1 -1
- package/build/esm/ui/common/yt-api-init.js +4 -9
- package/build/esm/ui/common/yt-api-init.js.map +1 -1
- package/build/esm/ui/components/Dialog/Dialog.css +1 -1
- package/build/esm/ui/components/Dialog/Dialog.css.map +1 -1
- package/build/esm/ui/components/Dialog/Dialog.scss +1 -1
- package/build/esm/ui/components/EditableAsText/EditableAsText.js +8 -6
- package/build/esm/ui/components/EditableAsText/EditableAsText.js.map +1 -1
- package/build/esm/ui/components/SchemaDataType/SchemaDataType.js +2 -57
- package/build/esm/ui/components/SchemaDataType/SchemaDataType.js.map +1 -1
- package/build/esm/ui/components/SchemaDataType/dateTypesV3.d.ts +48 -0
- package/build/esm/ui/components/SchemaDataType/dateTypesV3.js +57 -0
- package/build/esm/ui/components/SchemaDataType/dateTypesV3.js.map +1 -0
- package/build/esm/ui/config/index.d.ts +1 -0
- package/build/esm/ui/config/index.js +3 -0
- package/build/esm/ui/config/index.js.map +1 -1
- package/build/esm/ui/containers/ClusterPage/ClusterPage.js.map +1 -1
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.css +8 -0
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.css.map +1 -0
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.d.ts +7 -0
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.js +72 -0
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.js.map +1 -0
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/CreateQueryFromTable.scss +7 -0
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/TableOverview.css +3 -0
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/TableOverview.css.map +1 -1
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/TableOverview.d.ts +3 -1
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/TableOverview.js +11 -3
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/TableOverview.js.map +1 -1
- package/build/esm/ui/pages/navigation/content/Table/TableOverview/TableOverview.scss +4 -0
- package/build/esm/ui/pages/query-tracker/QueriesHistoryList/index.js +4 -4
- package/build/esm/ui/pages/query-tracker/QueriesHistoryList/index.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryDuration/index.js +13 -2
- package/build/esm/ui/pages/query-tracker/QueryDuration/index.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryEditor/QueryEditor.d.ts +3 -1
- package/build/esm/ui/pages/query-tracker/QueryEditor/QueryEditor.js +19 -10
- package/build/esm/ui/pages/query-tracker/QueryEditor/QueryEditor.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryResults/index.d.ts +2 -0
- package/build/esm/ui/pages/query-tracker/QueryResults/index.js +2 -3
- package/build/esm/ui/pages/query-tracker/QueryResults/index.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryResultsView/index.css +3 -10
- package/build/esm/ui/pages/query-tracker/QueryResultsView/index.css.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryResultsView/index.js +4 -9
- package/build/esm/ui/pages/query-tracker/QueryResultsView/index.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryResultsView/index.scss +3 -11
- package/build/esm/ui/pages/query-tracker/QueryStatus/index.css +4 -0
- package/build/esm/ui/pages/query-tracker/QueryStatus/index.css.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryStatus/index.js +2 -1
- package/build/esm/ui/pages/query-tracker/QueryStatus/index.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryStatus/index.scss +4 -0
- package/build/esm/ui/pages/query-tracker/QueryTracker/QueryTracker.js +16 -4
- package/build/esm/ui/pages/query-tracker/QueryTracker/QueryTracker.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryTrackerNewButton/index.css +19 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerNewButton/index.css.map +1 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerNewButton/index.d.ts +18 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerNewButton/index.js +82 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerNewButton/index.js.map +1 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerNewButton/index.scss +20 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.css +13 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.css.map +1 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.d.ts +4 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.js +82 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.js.map +1 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/QueryMetaForm/index.scss +13 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/index.css +6 -16
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/index.css.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/index.d.ts +1 -0
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/index.js +19 -133
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/index.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/QueryTrackerTopRow/index.scss +4 -20
- package/build/esm/ui/pages/query-tracker/QueryWidget/index.css +28 -0
- package/build/esm/ui/pages/query-tracker/QueryWidget/index.css.map +1 -0
- package/build/esm/ui/pages/query-tracker/QueryWidget/index.d.ts +5 -0
- package/build/esm/ui/pages/query-tracker/QueryWidget/index.js +73 -0
- package/build/esm/ui/pages/query-tracker/QueryWidget/index.js.map +1 -0
- package/build/esm/ui/pages/query-tracker/QueryWidget/index.scss +31 -0
- package/build/esm/ui/pages/query-tracker/module/api.d.ts +15 -13
- package/build/esm/ui/pages/query-tracker/module/api.js +175 -63
- package/build/esm/ui/pages/query-tracker/module/api.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/module/query/actions.d.ts +3 -2
- package/build/esm/ui/pages/query-tracker/module/query/actions.js +83 -24
- package/build/esm/ui/pages/query-tracker/module/query/actions.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/module/query/reducer.d.ts +2 -1
- package/build/esm/ui/pages/query-tracker/module/query/reducer.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/module/query/selectors.d.ts +2 -1
- package/build/esm/ui/pages/query-tracker/module/query/url_mapping.js +7 -3
- package/build/esm/ui/pages/query-tracker/module/query/url_mapping.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/module/query_result/actions.js +48 -41
- package/build/esm/ui/pages/query-tracker/module/query_result/actions.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/utils/navigation.d.ts +4 -1
- package/build/esm/ui/pages/query-tracker/utils/navigation.js +8 -3
- package/build/esm/ui/pages/query-tracker/utils/navigation.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/utils/query.d.ts +1 -0
- package/build/esm/ui/pages/query-tracker/utils/query.js +4 -1
- package/build/esm/ui/pages/query-tracker/utils/query.js.map +1 -1
- package/build/esm/ui/pages/query-tracker/utils/query_generate.d.ts +13 -0
- package/build/esm/ui/pages/query-tracker/utils/query_generate.js +73 -0
- package/build/esm/ui/pages/query-tracker/utils/query_generate.js.map +1 -0
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.css +3 -15
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.css.map +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js +19 -36
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.js.map +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/BundleEditorDialog.scss +5 -21
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.css +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.css.map +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.d.ts +0 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.js +16 -42
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.js.map +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleInput/BundleInput.scss +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.css +0 -9
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.css.map +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.d.ts +1 -2
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.js +1 -5
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.js.map +1 -1
- package/build/esm/ui/pages/tablet_cell_bundles/bundles/BundleEditorDialog/components/BundleTitle/BundleTitle.scss +0 -11
- package/build/esm/ui/store/selectors/global/index.d.ts +3 -0
- package/build/esm/ui/store/selectors/global/index.js +16 -1
- package/build/esm/ui/store/selectors/global/index.js.map +1 -1
- package/build/img/svg/page-query-tracker.svg +3 -3
- package/package.json +3 -3
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../styles/fonts.scss","TableOverview.scss","TableOverview.css","../../../../../styles/mixins.scss"],"names":[],"mappings":"AAAA,kCAAA;ACIA;EACI,aAAA;EACA,mBAAA;EACA,eAAA;EACA,YANc;EAQd,wCAAA;ACHJ;ADKI;EE4CA,eAAA;EACA,6BAAA;EACA,iCAAA;EACA,QAAA;EAEA,kBAAA;EAEA,gDAAA;EACA,yCAAA;EACA,4CAAA;EACA,qCAAA;EFpDI,kBAAA;ACKR;ADFI;EEuCA,eAAA;EACA,6BAAA;EACA,iCAAA;EACA,QAAA;EAEA,kBAAA;EAEA,gDAAA;EACA,yCAAA;EACA,4CAAA;EACA,qCAAA;EF/CI,SAAA;EACA,aAAA;ACYR;ADTI;EACI,kBAAA;ACWR;ADRI;EACI,aAAA;EACA,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;ACUR;ADRQ;EACI,gBAAA;ACUZ;ADPQ;EACI,QAAA;ACSZ;ADNQ;EACI,MAAA;ACQZ;ADNY;EACI,WAAA;ACQhB;ADJQ;EACI,QAAA;ACMZ;ADHQ;EACI,WAAA;ACKZ;ADFgB;EACI,aAAA;ACIpB;ADEI;EACI,WAAA;EACA,cAAA;EACA,qCAAA;EACA,wCAAA;EACA,kBAAA;EACA,iBAAA;EACA,eAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;ACAR;ADEQ;EACI,iBAAA;ACAZ;ADII;EACI,mCAAA;EACA,kBAAA;EACA,YAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;ACFR;ADKI;EACI,iBAAA;EACA,kBAAA;ACHR;ADMI;EACI,kBAAA;ACJR;ADOI;EACI,iBAAA;EACA,kBAAA;EAEA,aAAA;
|
1
|
+
{"version":3,"sources":["../../../../../styles/fonts.scss","TableOverview.scss","TableOverview.css","../../../../../styles/mixins.scss"],"names":[],"mappings":"AAAA,kCAAA;ACIA;EACI,aAAA;EACA,mBAAA;EACA,eAAA;EACA,YANc;EAQd,wCAAA;ACHJ;ADKI;EE4CA,eAAA;EACA,6BAAA;EACA,iCAAA;EACA,QAAA;EAEA,kBAAA;EAEA,gDAAA;EACA,yCAAA;EACA,4CAAA;EACA,qCAAA;EFpDI,kBAAA;ACKR;ADFI;EEuCA,eAAA;EACA,6BAAA;EACA,iCAAA;EACA,QAAA;EAEA,kBAAA;EAEA,gDAAA;EACA,yCAAA;EACA,4CAAA;EACA,qCAAA;EF/CI,SAAA;EACA,aAAA;ACYR;ADTI;EACI,kBAAA;ACWR;ADRI;EACI,aAAA;EACA,aAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;ACUR;ADRQ;EACI,gBAAA;ACUZ;ADPQ;EACI,QAAA;ACSZ;ADNQ;EACI,MAAA;ACQZ;ADNY;EACI,WAAA;ACQhB;ADJQ;EACI,QAAA;ACMZ;ADHQ;EACI,WAAA;ACKZ;ADFgB;EACI,aAAA;ACIpB;ADEI;EACI,WAAA;EACA,cAAA;EACA,qCAAA;EACA,wCAAA;EACA,kBAAA;EACA,iBAAA;EACA,eAAA;EACA,mBAAA;EACA,uBAAA;EACA,eAAA;ACAR;ADEQ;EACI,iBAAA;ACAZ;ADII;EACI,mCAAA;EACA,kBAAA;EACA,YAAA;EACA,UAAA;EACA,WAAA;EACA,UAAA;ACFR;ADKI;EACI,iBAAA;EACA,kBAAA;ACHR;ADMI;EACI,kBAAA;ACJR;ADOI;EACI,kBAAA;ACLR;ADQI;EACI,iBAAA;EACA,kBAAA;EAEA,aAAA;ACPR;ADSQ;EACI,YAAA;ACPZ;ADWI;EACI,YAAA;EACA,kBAAA;ACTR;ADYI;EACI,kBAAA;ACVR;ADaI;EACI,aAAA;EACA,mBAAA;ACXR;ADcI;EACI,kBAAA;EACA,UAAA;ACZR;ADeI;EACI,aAAA;EACA,mBAAA;EACA,iBAAA;EACA,kBAAA;ACbR;ADeQ;EACI,kBAAA;ACbZ;ADeY;EACI,eAAA;ACbhB;ADmBQ;EACI,iBAAA;ACjBZ","file":"TableOverview.css","sourcesContent":["/* Reset fonts for lego-controls */\n\n$yt-font: 'Manrope', 'Helvetica Neue', helvetica, arial, sans-serif;\n$font-size: 14px;\n$line-height: 1.428571429;\n$font-weight-bold: 700;\n\n@mixin yt-fonts-variables {\n --yc-font-family-sans: 'Manrope', 'Helvetica Neue', helvetica, arial, sans-serif;\n --yc-font-family-monospace: 'RobotoMono', monospace;\n --yc-font-weight-bold: 700;\n}\n\n@mixin font-body2 {\n font-size: var(--yc-text-body-2-font-size);\n line-height: var(--yc-text-body-2-line-height);\n}\n\n@mixin font-body3 {\n font-size: var(--yc-text-body-3-font-size);\n line-height: var(--yc-text-body-3-line-height);\n}\n","@import '../../../../../styles/mixins';\n\n$overview-height: 50px;\n\n.navigation-table-overview {\n display: flex;\n align-items: center;\n padding: 10px 0;\n height: $overview-height;\n\n background-color: var(--main-background);\n\n &_sticky {\n @include sticky-style();\n padding: 10px 20px;\n }\n\n &_fullscreen {\n @include sticky-style();\n height: 0;\n padding: 10px;\n }\n\n &__pagination {\n margin-right: 20px;\n }\n\n &__input {\n flex: 0 1 50%;\n display: flex;\n min-width: 200px;\n margin-right: 20px;\n position: relative;\n\n .yc-button:before {\n transition: none;\n }\n\n &_edit {\n top: 7px;\n }\n\n &_dynamic {\n top: 0;\n\n .elements-filter {\n width: 100%;\n }\n }\n\n .textinput__icon_side_left {\n top: 4px;\n }\n\n .yc-range-input-picker {\n width: 100%;\n\n &_size_s {\n .rc-slider-handle {\n bottom: 3.5px;\n }\n }\n }\n }\n\n &__query-current {\n width: 100%;\n padding: 0 5px;\n border: 2px solid var(--dark-divider);\n background-color: var(--main-background);\n position: relative;\n line-height: 24px;\n font-size: 13px;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n\n .icon {\n margin-right: 5px;\n }\n }\n\n &__query-progress {\n background-color: var(--blue-color);\n position: absolute;\n bottom: -2px;\n left: -2px;\n height: 2px;\n z-index: 1;\n }\n\n &__settings {\n margin-left: 10px;\n margin-right: 10px;\n }\n\n &__settings-modal {\n padding: 10px 15px;\n }\n\n &__query {\n margin-right: 10px;\n }\n\n &__yql {\n margin-left: 10px;\n margin-right: 10px;\n\n display: flex;\n\n .yc-button:first-child {\n width: 100px;\n }\n }\n\n &__jupyter {\n height: 28px;\n margin-right: 10px;\n }\n\n &__datalens {\n margin-right: 10px;\n }\n\n &__jupyter-content {\n display: flex;\n align-items: center;\n }\n\n &__jupyter-logo {\n position: relative;\n left: -6px;\n }\n\n &__actions {\n display: flex;\n align-items: center;\n margin-left: 10px;\n margin-right: 10px;\n\n > * {\n margin-right: 10px;\n\n &:last-child {\n margin-right: 0;\n }\n }\n }\n\n &__fs-button {\n &_fullscreen {\n margin-left: auto;\n }\n }\n}\n","/* Reset fonts for lego-controls */\n.navigation-table-overview {\n display: flex;\n align-items: center;\n padding: 10px 0;\n height: 50px;\n background-color: var(--main-background);\n}\n.navigation-table-overview_sticky {\n position: fixed;\n top: var(--app-header-height);\n left: var(--nv-aside-header-size);\n right: 0;\n padding: 10px 20px;\n box-shadow: 0 1px 10px var(--opacity-background);\n background-color: var(--light-background);\n border-bottom: 1px solid var(--dark-divider);\n z-index: var(--fixed-toolbar-z-index);\n padding: 10px 20px;\n}\n.navigation-table-overview_fullscreen {\n position: fixed;\n top: var(--app-header-height);\n left: var(--nv-aside-header-size);\n right: 0;\n padding: 10px 20px;\n box-shadow: 0 1px 10px var(--opacity-background);\n background-color: var(--light-background);\n border-bottom: 1px solid var(--dark-divider);\n z-index: var(--fixed-toolbar-z-index);\n height: 0;\n padding: 10px;\n}\n.navigation-table-overview__pagination {\n margin-right: 20px;\n}\n.navigation-table-overview__input {\n flex: 0 1 50%;\n display: flex;\n min-width: 200px;\n margin-right: 20px;\n position: relative;\n}\n.navigation-table-overview__input .yc-button:before {\n transition: none;\n}\n.navigation-table-overview__input_edit {\n top: 7px;\n}\n.navigation-table-overview__input_dynamic {\n top: 0;\n}\n.navigation-table-overview__input_dynamic .elements-filter {\n width: 100%;\n}\n.navigation-table-overview__input .textinput__icon_side_left {\n top: 4px;\n}\n.navigation-table-overview__input .yc-range-input-picker {\n width: 100%;\n}\n.navigation-table-overview__input .yc-range-input-picker_size_s .rc-slider-handle {\n bottom: 3.5px;\n}\n.navigation-table-overview__query-current {\n width: 100%;\n padding: 0 5px;\n border: 2px solid var(--dark-divider);\n background-color: var(--main-background);\n position: relative;\n line-height: 24px;\n font-size: 13px;\n white-space: nowrap;\n text-overflow: ellipsis;\n cursor: pointer;\n}\n.navigation-table-overview__query-current .icon {\n margin-right: 5px;\n}\n.navigation-table-overview__query-progress {\n background-color: var(--blue-color);\n position: absolute;\n bottom: -2px;\n left: -2px;\n height: 2px;\n z-index: 1;\n}\n.navigation-table-overview__settings {\n margin-left: 10px;\n margin-right: 10px;\n}\n.navigation-table-overview__settings-modal {\n padding: 10px 15px;\n}\n.navigation-table-overview__query {\n margin-right: 10px;\n}\n.navigation-table-overview__yql {\n margin-left: 10px;\n margin-right: 10px;\n display: flex;\n}\n.navigation-table-overview__yql .yc-button:first-child {\n width: 100px;\n}\n.navigation-table-overview__jupyter {\n height: 28px;\n margin-right: 10px;\n}\n.navigation-table-overview__datalens {\n margin-right: 10px;\n}\n.navigation-table-overview__jupyter-content {\n display: flex;\n align-items: center;\n}\n.navigation-table-overview__jupyter-logo {\n position: relative;\n left: -6px;\n}\n.navigation-table-overview__actions {\n display: flex;\n align-items: center;\n margin-left: 10px;\n margin-right: 10px;\n}\n.navigation-table-overview__actions > * {\n margin-right: 10px;\n}\n.navigation-table-overview__actions > *:last-child {\n margin-right: 0;\n}\n.navigation-table-overview__fs-button_fullscreen {\n margin-left: auto;\n}\n\n/*# sourceMappingURL=TableOverview.css.map */","@import './fonts';\n@import './common';\n\n@mixin ellipsis() {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n@mixin text-label() {\n font-size: 0.9em;\n text-transform: uppercase;\n letter-spacing: 1px;\n}\n\n// reset\n\n@mixin reset-ul () {\n margin: 0;\n padding: 0;\n}\n\n@mixin reset-li () {\n list-style-type: none;\n}\n\n// font\n\n@mixin yt-fonts() {\n font-family: $yt-font;\n font-size: $font-size;\n line-height: $line-height;\n}\n\n\n// heading\n\n@mixin heading-size($key) {\n $sizes: (\n s: (16px 20px $offset-heading-small),\n xs: (18px 20px $offset-heading-small-x),\n m: (20px 24px $offset-heading-medium),\n l: (24px 28px $offset-heading-large),\n xl: (24px 28px $offset-heading-large),\n );\n $size: map-get($sizes, $key);\n\n font-size: nth($size, 1);\n line-height: nth($size, 2);\n margin: 0;\n margin-bottom: nth($size, 3);\n}\n\n$stickyVerticalPadding: 10px;\n\n@mixin sticky-style() {\n position: fixed;\n top: var(--app-header-height);\n left: var(--nv-aside-header-size);\n right: 0;\n\n padding: $stickyVerticalPadding 20px;\n\n box-shadow: 0 1px 10px var(--opacity-background);\n background-color: var(--light-background);\n border-bottom: 1px solid var(--dark-divider);\n z-index: var(--fixed-toolbar-z-index);\n}\n"]}
|
@@ -1,13 +1,15 @@
|
|
1
1
|
declare const _default: import("react-redux").ConnectedComponent<typeof TableOverview, import("react-redux").Omit<PropTypes.InferProps<{
|
2
2
|
isFullScreen: PropTypes.Validator<boolean>;
|
3
3
|
isSplit: PropTypes.Validator<boolean>;
|
4
|
-
|
4
|
+
queriesAllowed: PropTypes.Requireable<boolean>;
|
5
|
+
}>, "isSplit" | "isFullScreen" | "queriesAllowed">>;
|
5
6
|
export default _default;
|
6
7
|
declare function TableOverview(props: any): JSX.Element;
|
7
8
|
declare namespace TableOverview {
|
8
9
|
namespace propTypes {
|
9
10
|
const isFullScreen: PropTypes.Validator<boolean>;
|
10
11
|
const isSplit: PropTypes.Validator<boolean>;
|
12
|
+
const queriesAllowed: PropTypes.Requireable<boolean>;
|
11
13
|
}
|
12
14
|
}
|
13
15
|
import PropTypes from "prop-types";
|
@@ -11,16 +11,19 @@ import OffsetInput from '../../../../../pages/navigation/content/Table/TableOver
|
|
11
11
|
import Paginator from '../../../../../pages/navigation/content/Table/TableOverview/Paginator';
|
12
12
|
import ErrorBoundary from '../../../../../components/ErrorBoundary/ErrorBoundary';
|
13
13
|
import UIFactory from '../../../../../UIFactory';
|
14
|
-
import {
|
14
|
+
import { CreateQueryFromTable } from './CreateQueryFromTable';
|
15
|
+
import { HEADER_HEIGHT, Page } from '../../../../../constants/index';
|
15
16
|
import './TableOverview.css';
|
16
17
|
import EditTableActions from './EditTableActions';
|
17
18
|
import DataLensButton from './DatalensButton';
|
19
|
+
import { getAdminPages, isDeveloper } from '../../../../../store/selectors/global';
|
18
20
|
import { jsx as _jsx } from "react/jsx-runtime";
|
19
21
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
20
22
|
var block = cn('navigation-table-overview');
|
21
23
|
function TableOverview(props) {
|
22
24
|
var isFullScreen = props.isFullScreen,
|
23
|
-
isSplit = props.isSplit
|
25
|
+
isSplit = props.isSplit,
|
26
|
+
queriesAllowed = props.queriesAllowed;
|
24
27
|
|
25
28
|
// TODO: add sticky for the Overview in the split mode https://github.com/captivationsoftware/react-sticky/issues/282
|
26
29
|
return /*#__PURE__*/_jsx(ErrorBoundary, {
|
@@ -43,6 +46,8 @@ function TableOverview(props) {
|
|
43
46
|
block: block
|
44
47
|
}), !isFullScreen && /*#__PURE__*/_jsx(SettingsButton, {
|
45
48
|
block: block
|
49
|
+
}), !isFullScreen && queriesAllowed && /*#__PURE__*/_jsx(CreateQueryFromTable, {
|
50
|
+
className: block('query')
|
46
51
|
}), !isFullScreen && ((_UIFactory$yqlWidgetS = UIFactory.yqlWidgetSetup) === null || _UIFactory$yqlWidgetS === void 0 ? void 0 : _UIFactory$yqlWidgetS.renderButton({
|
47
52
|
isSplit: isSplit,
|
48
53
|
className: block('yql')
|
@@ -63,9 +68,12 @@ function TableOverview(props) {
|
|
63
68
|
var mapStateToProps = function mapStateToProps(state) {
|
64
69
|
var isFullScreen = state.navigation.content.table.isFullScreen;
|
65
70
|
var isSplit = state.global.splitScreen.isSplit;
|
71
|
+
var adminPages = getAdminPages(state);
|
72
|
+
var isAdmin = isDeveloper(state);
|
66
73
|
return {
|
67
74
|
isFullScreen: isFullScreen,
|
68
|
-
isSplit: isSplit
|
75
|
+
isSplit: isSplit,
|
76
|
+
queriesAllowed: !(adminPages !== null && adminPages !== void 0 && adminPages.includes(Page.QUERIES)) || isAdmin
|
69
77
|
};
|
70
78
|
};
|
71
79
|
export default connect(mapStateToProps)(TableOverview);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","cn","Sticky","connect","ColumnSelectorButton","FullScreenButton","SettingsButton","JupyterButton","TableActions","OffsetInput","Paginator","ErrorBoundary","UIFactory","HEADER_HEIGHT","EditTableActions","DataLensButton","jsx","_jsx","jsxs","_jsxs","block","TableOverview","props","isFullScreen","isSplit","children","topOffset","_ref","_UIFactory$yqlWidgetS","isSticky","className","sticky","fullscreen","split","yqlWidgetSetup","renderButton","mapStateToProps","state","navigation","content","table","global","splitScreen"],"sources":["TableOverview.js"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport PropTypes from 'prop-types';\nimport {Sticky} from 'react-sticky';\nimport {connect} from 'react-redux';\n\nimport ColumnSelectorButton from '../../../../../pages/navigation/content/Table/TableOverview/ColumnSelectorButton';\nimport FullScreenButton from '../../../../../pages/navigation/content/Table/TableOverview/FullScreenButton';\nimport SettingsButton from '../../../../../pages/navigation/content/Table/TableOverview/SettingsButton';\nimport JupyterButton from '../../../../../pages/navigation/content/Table/TableOverview/JupyterButton';\nimport TableActions from '../../../../../pages/navigation/content/Table/TableOverview/TableActions';\nimport OffsetInput from '../../../../../pages/navigation/content/Table/TableOverview/OffsetInput';\nimport Paginator from '../../../../../pages/navigation/content/Table/TableOverview/Paginator';\nimport ErrorBoundary from '../../../../../components/ErrorBoundary/ErrorBoundary';\nimport UIFactory from '../../../../../UIFactory';\n\nimport {HEADER_HEIGHT} from '../../../../../constants/index';\n\nimport './TableOverview.scss';\nimport EditTableActions from './EditTableActions';\nimport DataLensButton from './DatalensButton';\n\nconst block = cn('navigation-table-overview');\n\nTableOverview.propTypes = {\n // from connect\n isFullScreen: PropTypes.bool.isRequired,\n isSplit: PropTypes.bool.isRequired,\n};\n\nfunction TableOverview(props) {\n const {isFullScreen, isSplit} = props;\n\n // TODO: add sticky for the Overview in the split mode https://github.com/captivationsoftware/react-sticky/issues/282\n return (\n <ErrorBoundary>\n <Sticky topOffset={isFullScreen ? HEADER_HEIGHT : -HEADER_HEIGHT}>\n {({isSticky}) => (\n <div\n className={block({\n sticky: isSticky && !isSplit,\n fullscreen: isFullScreen,\n split: isSplit,\n })}\n >\n <Paginator block={block} />\n <OffsetInput block={block} />\n {!isFullScreen && <ColumnSelectorButton block={block} />}\n {!isFullScreen && <SettingsButton block={block} />}\n {!isFullScreen &&\n UIFactory.yqlWidgetSetup?.renderButton({\n isSplit,\n className: block('yql'),\n })}\n {!isFullScreen && <JupyterButton block={block} />}\n {!isFullScreen && <DataLensButton className={block('datalens')} />}\n {!isFullScreen && <TableActions block={block} />}\n <FullScreenButton block={block} />\n {!isFullScreen && <EditTableActions />}\n </div>\n )}\n </Sticky>\n </ErrorBoundary>\n );\n}\n\nconst mapStateToProps = (state) => {\n const {isFullScreen} = state.navigation.content.table;\n const {isSplit} = state.global.splitScreen;\n\n return {isFullScreen
|
1
|
+
{"version":3,"names":["React","cn","Sticky","connect","ColumnSelectorButton","FullScreenButton","SettingsButton","JupyterButton","TableActions","OffsetInput","Paginator","ErrorBoundary","UIFactory","CreateQueryFromTable","HEADER_HEIGHT","Page","EditTableActions","DataLensButton","getAdminPages","isDeveloper","jsx","_jsx","jsxs","_jsxs","block","TableOverview","props","isFullScreen","isSplit","queriesAllowed","children","topOffset","_ref","_UIFactory$yqlWidgetS","isSticky","className","sticky","fullscreen","split","yqlWidgetSetup","renderButton","mapStateToProps","state","navigation","content","table","global","splitScreen","adminPages","isAdmin","includes","QUERIES"],"sources":["TableOverview.js"],"sourcesContent":["import React from 'react';\nimport cn from 'bem-cn-lite';\nimport PropTypes from 'prop-types';\nimport {Sticky} from 'react-sticky';\nimport {connect} from 'react-redux';\n\nimport ColumnSelectorButton from '../../../../../pages/navigation/content/Table/TableOverview/ColumnSelectorButton';\nimport FullScreenButton from '../../../../../pages/navigation/content/Table/TableOverview/FullScreenButton';\nimport SettingsButton from '../../../../../pages/navigation/content/Table/TableOverview/SettingsButton';\nimport JupyterButton from '../../../../../pages/navigation/content/Table/TableOverview/JupyterButton';\nimport TableActions from '../../../../../pages/navigation/content/Table/TableOverview/TableActions';\nimport OffsetInput from '../../../../../pages/navigation/content/Table/TableOverview/OffsetInput';\nimport Paginator from '../../../../../pages/navigation/content/Table/TableOverview/Paginator';\nimport ErrorBoundary from '../../../../../components/ErrorBoundary/ErrorBoundary';\nimport UIFactory from '../../../../../UIFactory';\nimport {CreateQueryFromTable} from './CreateQueryFromTable';\n\nimport {HEADER_HEIGHT, Page} from '../../../../../constants/index';\n\nimport './TableOverview.scss';\nimport EditTableActions from './EditTableActions';\nimport DataLensButton from './DatalensButton';\nimport {getAdminPages, isDeveloper} from '../../../../../store/selectors/global';\n\nconst block = cn('navigation-table-overview');\n\nTableOverview.propTypes = {\n // from connect\n isFullScreen: PropTypes.bool.isRequired,\n isSplit: PropTypes.bool.isRequired,\n queriesAllowed: PropTypes.bool,\n};\n\nfunction TableOverview(props) {\n const {isFullScreen, isSplit, queriesAllowed} = props;\n\n // TODO: add sticky for the Overview in the split mode https://github.com/captivationsoftware/react-sticky/issues/282\n return (\n <ErrorBoundary>\n <Sticky topOffset={isFullScreen ? HEADER_HEIGHT : -HEADER_HEIGHT}>\n {({isSticky}) => (\n <div\n className={block({\n sticky: isSticky && !isSplit,\n fullscreen: isFullScreen,\n split: isSplit,\n })}\n >\n <Paginator block={block} />\n <OffsetInput block={block} />\n {!isFullScreen && <ColumnSelectorButton block={block} />}\n {!isFullScreen && <SettingsButton block={block} />}\n {!isFullScreen && queriesAllowed && (\n <CreateQueryFromTable className={block('query')} />\n )}\n {!isFullScreen &&\n UIFactory.yqlWidgetSetup?.renderButton({\n isSplit,\n className: block('yql'),\n })}\n {!isFullScreen && <JupyterButton block={block} />}\n {!isFullScreen && <DataLensButton className={block('datalens')} />}\n {!isFullScreen && <TableActions block={block} />}\n <FullScreenButton block={block} />\n {!isFullScreen && <EditTableActions />}\n </div>\n )}\n </Sticky>\n </ErrorBoundary>\n );\n}\n\nconst mapStateToProps = (state) => {\n const {isFullScreen} = state.navigation.content.table;\n const {isSplit} = state.global.splitScreen;\n const adminPages = getAdminPages(state);\n const isAdmin = isDeveloper(state);\n\n return {\n isFullScreen,\n isSplit,\n queriesAllowed: !adminPages?.includes(Page.QUERIES) || isAdmin,\n };\n};\n\nexport default connect(mapStateToProps)(TableOverview);\n"],"mappings":"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"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
2
2
|
import _noop from "lodash/noop";
|
3
3
|
import hammer from '../../../common/hammer';
|
4
|
-
import {
|
4
|
+
import { Text } from '@gravity-ui/uikit';
|
5
5
|
import block from 'bem-cn-lite';
|
6
6
|
import { useHistory } from 'react-router';
|
7
7
|
import React, { useCallback, useContext, useEffect, useState } from 'react';
|
@@ -10,7 +10,6 @@ import { QueriesHistoryCursorDirection, QueryStatus } from '../module/api';
|
|
10
10
|
import { refreshQueryHistoryListIfNeeded, loadNextQueriesList, requestQueriesList, resetCursor, UPDATE_QUERIES_LIST } from '../module/queries_list/actions';
|
11
11
|
import { isQueriesListLoading, getQueriesList, getQueriesHistoryCursor, hasQueriesListMore, getUncompletedItems } from '../module/queries_list/selectors';
|
12
12
|
import { QueryStatusIcon } from '../QueryStatus';
|
13
|
-
import { queryDuration } from '../utils/date';
|
14
13
|
import './index.css';
|
15
14
|
import { getQuery } from '../module/query/selectors';
|
16
15
|
import { QuriesHistoryListFilter } from './QueriesHistoryFilter';
|
@@ -24,6 +23,7 @@ import DataTableYT from '../../../components/DataTableYT/DataTableYT';
|
|
24
23
|
import DataTable from '@yandex-cloud/react-data-table';
|
25
24
|
import { useQuriesHistoryFilter } from '../hooks/QueryListFilter';
|
26
25
|
import { QueriesHistoryAuthor } from '../module/queries_list/types';
|
26
|
+
import { QueryDuration } from '../QueryDuration';
|
27
27
|
import { jsx as _jsx } from "react/jsx-runtime";
|
28
28
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
29
29
|
var b = block('queries-history-list');
|
@@ -149,8 +149,8 @@ var DurationColumns = {
|
|
149
149
|
if (row.state === QueryStatus.RUNNING) {
|
150
150
|
return hammer.format.NO_VALUE;
|
151
151
|
}
|
152
|
-
return /*#__PURE__*/_jsx(
|
153
|
-
|
152
|
+
return /*#__PURE__*/_jsx(QueryDuration, {
|
153
|
+
query: row
|
154
154
|
});
|
155
155
|
}
|
156
156
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["hammer","Label","Text","block","useHistory","React","useCallback","useContext","useEffect","useState","useDispatch","useSelector","QueriesHistoryCursorDirection","QueryStatus","refreshQueryHistoryListIfNeeded","loadNextQueriesList","requestQueriesList","resetCursor","UPDATE_QUERIES_LIST","isQueriesListLoading","getQueriesList","getQueriesHistoryCursor","hasQueriesListMore","getUncompletedItems","QueryStatusIcon","queryDuration","getQuery","QuriesHistoryListFilter","Pagination","QueriesPoolingContext","getCluster","formatDateCompact","createQueryUrl","QueryEnginesNames","DataTableYT","DataTable","useQuriesHistoryFilter","QueriesHistoryAuthor","jsx","_jsx","jsxs","_jsxs","b","itemBlock","useQueriesHistoryCursor","dispatch","cursor","hasNext","goNext","PAST","goBack","FUTURE","reset","first","cursorTime","last","goFirst","useQueriesHistoryUpdate","pollingContext","uncompletedItems","pollingEffect","length","watch","items","type","data","useRefreshHistoryList","timeout","arguments","undefined","timer","start","setTimeout","clearTimeout","useQueryHistoryList","isLoading","useQueryNavigation","selectedItem","cluster","history","goToQuery","item","push","id","NameColumns","name","align","className","render","_ref","_row$annotations","row","annotations","title","children","status","state","color","ellipsis","TypeColumns","width","_ref2","variant","engine","DurationColumns","_ref3","RUNNING","format","NO_VALUE","StartedColumns","_ref4","start_time","AuthorColumns","_ref5","user","MyColumns","AllColumns","tableSettings","displayIndices","sortable","stickyHead","MOVING","syncHeadOnResize","QueriesHistoryList","_useQueryHistoryList","_useQueryHistoryList2","_slicedToArray","_useQuriesHistoryFilt","_useQuriesHistoryFilt2","filter","setFilter","_useQueriesHistoryCur","_useQueryNavigation","_useQueryNavigation2","selectedId","_useState","_useState2","columns","setColumns","My","setClassName","selected","onChange","loading","useThemeYT","rowKey","onRowClick","disableRightGap","settings","rowClassName","size","handler","disabled","previous","next","_noop"],"sources":["index.tsx"],"sourcesContent":["import hammer from '../../../common/hammer';\nimport {Label, Text} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\nimport {useHistory} from 'react-router';\nimport React, {useCallback, useContext, useEffect, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {QueriesHistoryCursorDirection, QueryItem, QueryStatus} from '../module/api';\nimport {\n refreshQueryHistoryListIfNeeded,\n loadNextQueriesList,\n requestQueriesList,\n resetCursor,\n UPDATE_QUERIES_LIST,\n} from '../module/queries_list/actions';\nimport {\n isQueriesListLoading,\n getQueriesList,\n getQueriesHistoryCursor,\n hasQueriesListMore,\n getUncompletedItems,\n} from '../module/queries_list/selectors';\nimport {QueryStatusIcon} from '../QueryStatus';\nimport {queryDuration} from '../utils/date';\n\nimport './index.scss';\nimport {getQuery} from '../module/query/selectors';\nimport {QuriesHistoryListFilter} from './QueriesHistoryFilter';\nimport Pagination from '../../../components/Pagination/Pagination';\nimport {noop} from 'lodash';\nimport {QueriesPoolingContext} from '../hooks/QueriesPooling/context';\nimport {getCluster} from '../../../store/selectors/global';\nimport {formatDateCompact} from '../../../components/common/Timeline/util';\nimport {createQueryUrl} from '../utils/navigation';\nimport {QueryEnginesNames} from '../utils/query';\nimport DataTableYT from '../../../components/DataTableYT/DataTableYT';\nimport DataTable, {Column, Settings} from '@yandex-cloud/react-data-table';\nimport {useQuriesHistoryFilter} from '../hooks/QueryListFilter';\nimport {QueriesHistoryAuthor} from '../module/queries_list/types';\n\nconst b = block('queries-history-list');\n\nconst itemBlock = block('query-history-item');\n\nconst useQueriesHistoryCursor = () => {\n const dispatch = useDispatch();\n const cursor = useSelector(getQueriesHistoryCursor);\n const hasNext = useSelector(hasQueriesListMore);\n\n const goNext = useCallback(() => {\n dispatch(loadNextQueriesList(QueriesHistoryCursorDirection.PAST));\n }, [dispatch]);\n\n const goBack = useCallback(() => {\n dispatch(loadNextQueriesList(QueriesHistoryCursorDirection.FUTURE));\n }, [dispatch]);\n\n const reset = useCallback(() => {\n dispatch(resetCursor());\n }, [dispatch]);\n\n return {\n first: !cursor?.cursorTime,\n last: !hasNext,\n goNext,\n goBack,\n goFirst: reset,\n };\n};\n\nfunction useQueriesHistoryUpdate() {\n const pollingContext = useContext(QueriesPoolingContext);\n const uncompletedItems = useSelector(getUncompletedItems);\n const dispatch = useDispatch();\n\n useEffect(\n function pollingEffect() {\n if (!uncompletedItems?.length) {\n return;\n }\n return pollingContext.watch(uncompletedItems, (items) => {\n dispatch({\n type: UPDATE_QUERIES_LIST,\n data: items,\n });\n });\n },\n [uncompletedItems],\n );\n}\n\nfunction useRefreshHistoryList(timeout = 5000) {\n // Naive history list's polling impl\n const dispatch = useDispatch();\n useEffect(() => {\n let timer: ReturnType<typeof setTimeout>;\n function start() {\n timer = setTimeout(() => {\n dispatch(refreshQueryHistoryListIfNeeded(start));\n }, timeout);\n }\n\n start();\n\n return () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n }, [timeout, dispatch]);\n}\n\nfunction useQueryHistoryList(): [QueryItem[], boolean] {\n const dispatch = useDispatch();\n const isLoading = useSelector(isQueriesListLoading);\n const items = useSelector(getQueriesList);\n useEffect(() => {\n dispatch(requestQueriesList());\n }, []);\n useQueriesHistoryUpdate();\n useRefreshHistoryList(5000);\n return [items, isLoading];\n}\n\nconst useQueryNavigation = (): [QueryItem['id'] | undefined, (id: QueryItem) => void] => {\n const selectedItem = useSelector(getQuery);\n const cluster = useSelector(getCluster);\n const history = useHistory();\n\n const goToQuery = useCallback(\n (item: QueryItem) => {\n history.push(createQueryUrl(cluster, item.id));\n },\n [history],\n );\n\n return [selectedItem?.id, goToQuery];\n};\n\nconst NameColumns: Column<QueryItem> = {\n name: 'Name',\n align: 'left',\n className: itemBlock('name_row'),\n render: ({row}) => {\n const name = row.annotations?.title;\n return (\n <div className={itemBlock('name')} title={name}>\n <QueryStatusIcon className={itemBlock('status-icon')} status={row.state} />\n <Text\n className={itemBlock('name-container')}\n color={name ? 'primary' : 'secondary'}\n ellipsis\n >\n {name || 'No name'}\n </Text>\n </div>\n );\n },\n};\n\nconst TypeColumns: Column<QueryItem> = {\n name: 'Type',\n align: 'center',\n width: 60,\n render: ({row}) => {\n return (\n <Text variant=\"body-1\" color=\"secondary\">\n {row.engine in QueryEnginesNames ? QueryEnginesNames[row.engine] : row.engine}\n </Text>\n );\n },\n};\n\nconst DurationColumns: Column<QueryItem> = {\n name: 'Duration',\n align: 'left',\n width: 100,\n render: ({row}) => {\n if (row.state === QueryStatus.RUNNING) {\n return hammer.format.NO_VALUE;\n }\n return <Label>{queryDuration(row)}</Label>;\n },\n};\n\nconst StartedColumns: Column<QueryItem> = {\n name: 'Started',\n align: 'left',\n width: 120,\n render: ({row}) => {\n return (\n <Text variant=\"body-1\" color=\"secondary\">\n {formatDateCompact(row.start_time)}\n </Text>\n );\n },\n};\n\nconst AuthorColumns: Column<QueryItem> = {\n name: 'Author',\n align: 'left',\n width: 120,\n className: itemBlock('author_row'),\n render: ({row}) => {\n return (\n <Text variant=\"body-1\" ellipsis title={row.user}>\n {row.user}\n </Text>\n );\n },\n};\n\nconst MyColumns: Column<QueryItem>[] = [NameColumns, TypeColumns, DurationColumns, StartedColumns];\nconst AllColumns: Column<QueryItem>[] = [\n NameColumns,\n TypeColumns,\n DurationColumns,\n AuthorColumns,\n StartedColumns,\n];\n\nconst tableSettings: Settings = {\n displayIndices: false,\n sortable: false,\n stickyHead: DataTable.MOVING,\n syncHeadOnResize: true,\n};\n\nexport function QueriesHistoryList() {\n // const mainLocation = useParams();\n const [items, isLoading] = useQueryHistoryList();\n\n const [filter, setFilter] = useQuriesHistoryFilter();\n\n const {first, last, goBack, goNext, goFirst} = useQueriesHistoryCursor();\n\n const [selectedId, goToQuery] = useQueryNavigation();\n\n const [columns, setColumns] = useState<Column<QueryItem>[]>([]);\n\n useEffect(() => {\n if (!isLoading || !items?.length) {\n setColumns(filter.user === QueriesHistoryAuthor.My ? MyColumns : AllColumns);\n }\n }, [items, setColumns, filter.user, isLoading]);\n\n const setClassName = useCallback(\n (item: QueryItem) => {\n return itemBlock({\n selected: item.id === selectedId,\n });\n },\n [selectedId],\n );\n\n return (\n <div className={b()}>\n <QuriesHistoryListFilter className={b('filter')} filter={filter} onChange={setFilter} />\n <div className={b('list-wrapper')}>\n <DataTableYT\n className={b('list')}\n loading={isLoading}\n columns={columns}\n data={items}\n useThemeYT={true}\n rowKey={(row) => row.id}\n onRowClick={goToQuery}\n disableRightGap={true}\n settings={tableSettings}\n rowClassName={setClassName}\n />\n <div className={b('pagination')}>\n {(!first || !last) && (\n <Pagination\n size=\"m\"\n first={{\n handler: goFirst,\n disabled: first,\n }}\n previous={{\n handler: goBack,\n disabled: first,\n }}\n next={{\n handler: goNext,\n disabled: last,\n }}\n last={{\n handler: noop,\n disabled: true,\n }}\n />\n )}\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["hammer","Text","block","useHistory","React","useCallback","useContext","useEffect","useState","useDispatch","useSelector","QueriesHistoryCursorDirection","QueryStatus","refreshQueryHistoryListIfNeeded","loadNextQueriesList","requestQueriesList","resetCursor","UPDATE_QUERIES_LIST","isQueriesListLoading","getQueriesList","getQueriesHistoryCursor","hasQueriesListMore","getUncompletedItems","QueryStatusIcon","getQuery","QuriesHistoryListFilter","Pagination","QueriesPoolingContext","getCluster","formatDateCompact","createQueryUrl","QueryEnginesNames","DataTableYT","DataTable","useQuriesHistoryFilter","QueriesHistoryAuthor","QueryDuration","jsx","_jsx","jsxs","_jsxs","b","itemBlock","useQueriesHistoryCursor","dispatch","cursor","hasNext","goNext","PAST","goBack","FUTURE","reset","first","cursorTime","last","goFirst","useQueriesHistoryUpdate","pollingContext","uncompletedItems","pollingEffect","length","watch","items","type","data","useRefreshHistoryList","timeout","arguments","undefined","timer","start","setTimeout","clearTimeout","useQueryHistoryList","isLoading","useQueryNavigation","selectedItem","cluster","history","goToQuery","item","push","id","NameColumns","name","align","className","render","_ref","_row$annotations","row","annotations","title","children","status","state","color","ellipsis","TypeColumns","width","_ref2","variant","engine","DurationColumns","_ref3","RUNNING","format","NO_VALUE","query","StartedColumns","_ref4","start_time","AuthorColumns","_ref5","user","MyColumns","AllColumns","tableSettings","displayIndices","sortable","stickyHead","MOVING","syncHeadOnResize","QueriesHistoryList","_useQueryHistoryList","_useQueryHistoryList2","_slicedToArray","_useQuriesHistoryFilt","_useQuriesHistoryFilt2","filter","setFilter","_useQueriesHistoryCur","_useQueryNavigation","_useQueryNavigation2","selectedId","_useState","_useState2","columns","setColumns","My","setClassName","selected","onChange","loading","useThemeYT","rowKey","onRowClick","disableRightGap","settings","rowClassName","size","handler","disabled","previous","next","_noop"],"sources":["index.tsx"],"sourcesContent":["import hammer from '../../../common/hammer';\nimport {Text} from '@gravity-ui/uikit';\nimport block from 'bem-cn-lite';\nimport {useHistory} from 'react-router';\nimport React, {useCallback, useContext, useEffect, useState} from 'react';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {QueriesHistoryCursorDirection, QueryItem, QueryStatus} from '../module/api';\nimport {\n refreshQueryHistoryListIfNeeded,\n loadNextQueriesList,\n requestQueriesList,\n resetCursor,\n UPDATE_QUERIES_LIST,\n} from '../module/queries_list/actions';\nimport {\n isQueriesListLoading,\n getQueriesList,\n getQueriesHistoryCursor,\n hasQueriesListMore,\n getUncompletedItems,\n} from '../module/queries_list/selectors';\nimport {QueryStatusIcon} from '../QueryStatus';\n\nimport './index.scss';\nimport {getQuery} from '../module/query/selectors';\nimport {QuriesHistoryListFilter} from './QueriesHistoryFilter';\nimport Pagination from '../../../components/Pagination/Pagination';\nimport {noop} from 'lodash';\nimport {QueriesPoolingContext} from '../hooks/QueriesPooling/context';\nimport {getCluster} from '../../../store/selectors/global';\nimport {formatDateCompact} from '../../../components/common/Timeline/util';\nimport {createQueryUrl} from '../utils/navigation';\nimport {QueryEnginesNames} from '../utils/query';\nimport DataTableYT from '../../../components/DataTableYT/DataTableYT';\nimport DataTable, {Column, Settings} from '@yandex-cloud/react-data-table';\nimport {useQuriesHistoryFilter} from '../hooks/QueryListFilter';\nimport {QueriesHistoryAuthor} from '../module/queries_list/types';\nimport {QueryDuration} from '../QueryDuration';\n\nconst b = block('queries-history-list');\n\nconst itemBlock = block('query-history-item');\n\nconst useQueriesHistoryCursor = () => {\n const dispatch = useDispatch();\n const cursor = useSelector(getQueriesHistoryCursor);\n const hasNext = useSelector(hasQueriesListMore);\n\n const goNext = useCallback(() => {\n dispatch(loadNextQueriesList(QueriesHistoryCursorDirection.PAST));\n }, [dispatch]);\n\n const goBack = useCallback(() => {\n dispatch(loadNextQueriesList(QueriesHistoryCursorDirection.FUTURE));\n }, [dispatch]);\n\n const reset = useCallback(() => {\n dispatch(resetCursor());\n }, [dispatch]);\n\n return {\n first: !cursor?.cursorTime,\n last: !hasNext,\n goNext,\n goBack,\n goFirst: reset,\n };\n};\n\nfunction useQueriesHistoryUpdate() {\n const pollingContext = useContext(QueriesPoolingContext);\n const uncompletedItems = useSelector(getUncompletedItems);\n const dispatch = useDispatch();\n\n useEffect(\n function pollingEffect() {\n if (!uncompletedItems?.length) {\n return;\n }\n return pollingContext.watch(uncompletedItems, (items) => {\n dispatch({\n type: UPDATE_QUERIES_LIST,\n data: items,\n });\n });\n },\n [uncompletedItems],\n );\n}\n\nfunction useRefreshHistoryList(timeout = 5000) {\n // Naive history list's polling impl\n const dispatch = useDispatch();\n useEffect(() => {\n let timer: ReturnType<typeof setTimeout>;\n function start() {\n timer = setTimeout(() => {\n dispatch(refreshQueryHistoryListIfNeeded(start));\n }, timeout);\n }\n\n start();\n\n return () => {\n if (timer) {\n clearTimeout(timer);\n }\n };\n }, [timeout, dispatch]);\n}\n\nfunction useQueryHistoryList(): [QueryItem[], boolean] {\n const dispatch = useDispatch();\n const isLoading = useSelector(isQueriesListLoading);\n const items = useSelector(getQueriesList);\n useEffect(() => {\n dispatch(requestQueriesList());\n }, []);\n useQueriesHistoryUpdate();\n useRefreshHistoryList(5000);\n return [items, isLoading];\n}\n\nconst useQueryNavigation = (): [QueryItem['id'] | undefined, (id: QueryItem) => void] => {\n const selectedItem = useSelector(getQuery);\n const cluster = useSelector(getCluster);\n const history = useHistory();\n\n const goToQuery = useCallback(\n (item: QueryItem) => {\n history.push(createQueryUrl(cluster, item.id));\n },\n [history],\n );\n\n return [selectedItem?.id, goToQuery];\n};\n\nconst NameColumns: Column<QueryItem> = {\n name: 'Name',\n align: 'left',\n className: itemBlock('name_row'),\n render: ({row}) => {\n const name = row.annotations?.title;\n return (\n <div className={itemBlock('name')} title={name}>\n <QueryStatusIcon className={itemBlock('status-icon')} status={row.state} />\n <Text\n className={itemBlock('name-container')}\n color={name ? 'primary' : 'secondary'}\n ellipsis\n >\n {name || 'No name'}\n </Text>\n </div>\n );\n },\n};\n\nconst TypeColumns: Column<QueryItem> = {\n name: 'Type',\n align: 'center',\n width: 60,\n render: ({row}) => {\n return (\n <Text variant=\"body-1\" color=\"secondary\">\n {row.engine in QueryEnginesNames ? QueryEnginesNames[row.engine] : row.engine}\n </Text>\n );\n },\n};\n\nconst DurationColumns: Column<QueryItem> = {\n name: 'Duration',\n align: 'left',\n width: 100,\n render: ({row}) => {\n if (row.state === QueryStatus.RUNNING) {\n return hammer.format.NO_VALUE;\n }\n return <QueryDuration query={row} />;\n },\n};\n\nconst StartedColumns: Column<QueryItem> = {\n name: 'Started',\n align: 'left',\n width: 120,\n render: ({row}) => {\n return (\n <Text variant=\"body-1\" color=\"secondary\">\n {formatDateCompact(row.start_time)}\n </Text>\n );\n },\n};\n\nconst AuthorColumns: Column<QueryItem> = {\n name: 'Author',\n align: 'left',\n width: 120,\n className: itemBlock('author_row'),\n render: ({row}) => {\n return (\n <Text variant=\"body-1\" ellipsis title={row.user}>\n {row.user}\n </Text>\n );\n },\n};\n\nconst MyColumns: Column<QueryItem>[] = [NameColumns, TypeColumns, DurationColumns, StartedColumns];\nconst AllColumns: Column<QueryItem>[] = [\n NameColumns,\n TypeColumns,\n DurationColumns,\n AuthorColumns,\n StartedColumns,\n];\n\nconst tableSettings: Settings = {\n displayIndices: false,\n sortable: false,\n stickyHead: DataTable.MOVING,\n syncHeadOnResize: true,\n};\n\nexport function QueriesHistoryList() {\n // const mainLocation = useParams();\n const [items, isLoading] = useQueryHistoryList();\n\n const [filter, setFilter] = useQuriesHistoryFilter();\n\n const {first, last, goBack, goNext, goFirst} = useQueriesHistoryCursor();\n\n const [selectedId, goToQuery] = useQueryNavigation();\n\n const [columns, setColumns] = useState<Column<QueryItem>[]>([]);\n\n useEffect(() => {\n if (!isLoading || !items?.length) {\n setColumns(filter.user === QueriesHistoryAuthor.My ? MyColumns : AllColumns);\n }\n }, [items, setColumns, filter.user, isLoading]);\n\n const setClassName = useCallback(\n (item: QueryItem) => {\n return itemBlock({\n selected: item.id === selectedId,\n });\n },\n [selectedId],\n );\n\n return (\n <div className={b()}>\n <QuriesHistoryListFilter className={b('filter')} filter={filter} onChange={setFilter} />\n <div className={b('list-wrapper')}>\n <DataTableYT\n className={b('list')}\n loading={isLoading}\n columns={columns}\n data={items}\n useThemeYT={true}\n rowKey={(row) => row.id}\n onRowClick={goToQuery}\n disableRightGap={true}\n settings={tableSettings}\n rowClassName={setClassName}\n />\n <div className={b('pagination')}>\n {(!first || !last) && (\n <Pagination\n size=\"m\"\n first={{\n handler: goFirst,\n disabled: first,\n }}\n previous={{\n handler: goBack,\n disabled: first,\n }}\n next={{\n handler: goNext,\n disabled: last,\n }}\n last={{\n handler: noop,\n disabled: true,\n }}\n />\n )}\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
@@ -1,7 +1,9 @@
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
2
2
|
import { Label } from '@gravity-ui/uikit';
|
3
3
|
import React, { useEffect, useState } from 'react';
|
4
|
+
import { QueryStatus } from '../module/api';
|
4
5
|
import { queryDuration } from '../utils/date';
|
6
|
+
import { isQueryCompleted } from '../utils/query';
|
5
7
|
import { jsx as _jsx } from "react/jsx-runtime";
|
6
8
|
var useQueryDuration = function useQueryDuration(query) {
|
7
9
|
var _useState = useState(queryDuration(query)),
|
@@ -9,6 +11,14 @@ var useQueryDuration = function useQueryDuration(query) {
|
|
9
11
|
duration = _useState2[0],
|
10
12
|
setDuration = _useState2[1];
|
11
13
|
useEffect(function () {
|
14
|
+
if (query.state === QueryStatus.DRAFT) {
|
15
|
+
setDuration(null);
|
16
|
+
return;
|
17
|
+
}
|
18
|
+
if (isQueryCompleted(query)) {
|
19
|
+
setDuration(query.finish_time ? queryDuration(query) : '-');
|
20
|
+
return;
|
21
|
+
}
|
12
22
|
setDuration(queryDuration(query));
|
13
23
|
if (query.finish_time) {
|
14
24
|
return;
|
@@ -25,9 +35,10 @@ var useQueryDuration = function useQueryDuration(query) {
|
|
25
35
|
export var QueryDuration = /*#__PURE__*/React.memo(function QueryDuration(_ref) {
|
26
36
|
var query = _ref.query,
|
27
37
|
className = _ref.className;
|
28
|
-
|
38
|
+
var duration = useQueryDuration(query);
|
39
|
+
return duration && /*#__PURE__*/_jsx(Label, {
|
29
40
|
className: className,
|
30
|
-
children:
|
41
|
+
children: duration
|
31
42
|
});
|
32
43
|
});
|
33
44
|
// #sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["Label","React","useEffect","useState","queryDuration","jsx","_jsx","useQueryDuration","query","_useState","_useState2","_slicedToArray","duration","setDuration","finish_time","timer","setInterval","clearInterval","id","
|
1
|
+
{"version":3,"names":["Label","React","useEffect","useState","QueryStatus","queryDuration","isQueryCompleted","jsx","_jsx","useQueryDuration","query","_useState","_useState2","_slicedToArray","duration","setDuration","state","DRAFT","finish_time","timer","setInterval","clearInterval","id","start_time","QueryDuration","memo","_ref","className","children"],"sources":["index.tsx"],"sourcesContent":["import {Label} from '@gravity-ui/uikit';\nimport React, {useEffect, useState} from 'react';\nimport {QueryItem, QueryStatus} from '../module/api';\nimport {queryDuration} from '../utils/date';\nimport {isQueryCompleted} from '../utils/query';\n\nexport type QueryDurationProps = {\n query: QueryItem;\n className?: string;\n};\n\nconst useQueryDuration = (query: QueryItem) => {\n const [duration, setDuration] = useState(queryDuration(query));\n useEffect(() => {\n if (query.state === QueryStatus.DRAFT) {\n setDuration(null);\n return;\n }\n if (isQueryCompleted(query)) {\n setDuration(query.finish_time ? queryDuration(query) : '-');\n return;\n }\n setDuration(queryDuration(query));\n if (query.finish_time) {\n return;\n }\n const timer = setInterval(() => setDuration(queryDuration(query)), 1000);\n return () => {\n clearInterval(timer);\n };\n }, [query.id, query.state, query.start_time]);\n\n return duration;\n};\n\nexport const QueryDuration = React.memo(function QueryDuration({\n query,\n className,\n}: QueryDurationProps) {\n const duration = useQueryDuration(query);\n return duration && <Label className={className}>{duration}</Label>;\n});\n"],"mappings":";AAAA,SAAQA,KAAK,QAAO,mBAAmB;AACvC,OAAOC,KAAK,IAAGC,SAAS,EAAEC,QAAQ,QAAO,OAAO;AAChD,SAAmBC,WAAW,QAAO,eAAe;AACpD,SAAQC,aAAa,QAAO,eAAe;AAC3C,SAAQC,gBAAgB,QAAO,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOhD,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAgBA,CAAIC,KAAgB,EAAK;EAC3C,IAAAC,SAAA,GAAgCR,QAAQ,CAACE,aAAa,CAACK,KAAK,CAAC,CAAC;IAAAE,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAAvDG,QAAQ,GAAAF,UAAA;IAAEG,WAAW,GAAAH,UAAA;EAC5BV,SAAS,CAAC,YAAM;IACZ,IAAIQ,KAAK,CAACM,KAAK,KAAKZ,WAAW,CAACa,KAAK,EAAE;MACnCF,WAAW,CAAC,IAAI,CAAC;MACjB;IACJ;IACA,IAAIT,gBAAgB,CAACI,KAAK,CAAC,EAAE;MACzBK,WAAW,CAACL,KAAK,CAACQ,WAAW,GAAGb,aAAa,CAACK,KAAK,CAAC,GAAG,GAAG,CAAC;MAC3D;IACJ;IACAK,WAAW,CAACV,aAAa,CAACK,KAAK,CAAC,CAAC;IACjC,IAAIA,KAAK,CAACQ,WAAW,EAAE;MACnB;IACJ;IACA,IAAMC,KAAK,GAAGC,WAAW,CAAC;MAAA,OAAML,WAAW,CAACV,aAAa,CAACK,KAAK,CAAC,CAAC;IAAA,GAAE,IAAI,CAAC;IACxE,OAAO,YAAM;MACTW,aAAa,CAACF,KAAK,CAAC;IACxB,CAAC;EACL,CAAC,EAAE,CAACT,KAAK,CAACY,EAAE,EAAEZ,KAAK,CAACM,KAAK,EAAEN,KAAK,CAACa,UAAU,CAAC,CAAC;EAE7C,OAAOT,QAAQ;AACnB,CAAC;AAED,OAAO,IAAMU,aAAa,gBAAGvB,KAAK,CAACwB,IAAI,CAAC,SAASD,aAAaA,CAAAE,IAAA,EAGvC;EAAA,IAFnBhB,KAAK,GAAAgB,IAAA,CAALhB,KAAK;IACLiB,SAAS,GAAAD,IAAA,CAATC,SAAS;EAET,IAAMb,QAAQ,GAAGL,gBAAgB,CAACC,KAAK,CAAC;EACxC,OAAOI,QAAQ,iBAAIN,IAAA,CAACR,KAAK;IAAC2B,SAAS,EAAEA,SAAU;IAAAC,QAAA,EAAEd;EAAQ,EAAS;AACtE,CAAC,CAAC"}
|
@@ -14,18 +14,21 @@ import maximizeBlockIcon from '../../../../../img/svg/icons/square.svg';
|
|
14
14
|
import minimazeBlockIcon from '../../../../../img/svg/icons/square-semifill.svg';
|
15
15
|
import closeIcon from '../../../../../img/svg/close-icon.svg';
|
16
16
|
import './QueryEditor.css';
|
17
|
+
import { useCurrentQuery } from '../QueryResults/hooks/useCurrentQuery';
|
17
18
|
import { jsx as _jsx } from "react/jsx-runtime";
|
18
19
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
19
20
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
20
21
|
var b = block('query-container');
|
21
|
-
var QueryEditorView = /*#__PURE__*/React.memo(function QueryEditorView() {
|
22
|
+
var QueryEditorView = /*#__PURE__*/React.memo(function QueryEditorView(_ref) {
|
23
|
+
var onStartQuery = _ref.onStartQuery;
|
22
24
|
var editorRef = useRef();
|
23
25
|
var activeQuery = useSelector(getQuery);
|
24
26
|
var text = useSelector(getQueryText);
|
25
27
|
var engine = useSelector(getQueryEngine);
|
26
28
|
useEffect(function () {
|
27
|
-
var _editorRef$current;
|
29
|
+
var _editorRef$current, _editorRef$current2;
|
28
30
|
(_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 ? void 0 : _editorRef$current.focus();
|
31
|
+
(_editorRef$current2 = editorRef.current) === null || _editorRef$current2 === void 0 ? void 0 : _editorRef$current2.setScrollTop(0);
|
29
32
|
}, [editorRef.current, activeQuery === null || activeQuery === void 0 ? void 0 : activeQuery.id]);
|
30
33
|
var monacoConfig = useMemo(function () {
|
31
34
|
return {
|
@@ -47,8 +50,8 @@ var QueryEditorView = /*#__PURE__*/React.memo(function QueryEditorView() {
|
|
47
50
|
});
|
48
51
|
}, [dispatch]);
|
49
52
|
var runQueryCallback = useCallback(function () {
|
50
|
-
dispatch(runQuery());
|
51
|
-
}, [dispatch]);
|
53
|
+
dispatch(runQuery(onStartQuery));
|
54
|
+
}, [dispatch, onStartQuery]);
|
52
55
|
return /*#__PURE__*/_jsxs("div", {
|
53
56
|
className: b('query'),
|
54
57
|
children: [/*#__PURE__*/_jsx(MonacoEditor, {
|
@@ -74,10 +77,12 @@ var QueryEditorView = /*#__PURE__*/React.memo(function QueryEditorView() {
|
|
74
77
|
})]
|
75
78
|
});
|
76
79
|
});
|
77
|
-
var ResultView = /*#__PURE__*/React.memo(function ResultView(
|
78
|
-
var
|
79
|
-
|
80
|
+
var ResultView = /*#__PURE__*/React.memo(function ResultView(_ref2) {
|
81
|
+
var query = _ref2.query,
|
82
|
+
resultViewMode = _ref2.resultViewMode,
|
83
|
+
setResultViewMode = _ref2.setResultViewMode;
|
80
84
|
return /*#__PURE__*/_jsx(QueryResults, {
|
85
|
+
query: query,
|
81
86
|
className: b('results'),
|
82
87
|
minimized: resultViewMode === 'minimized',
|
83
88
|
toolbar: /*#__PURE__*/_jsxs(_Fragment, {
|
@@ -112,8 +117,9 @@ var ResultView = /*#__PURE__*/React.memo(function ResultView(_ref) {
|
|
112
117
|
})
|
113
118
|
});
|
114
119
|
});
|
115
|
-
export function QueryEditor() {
|
116
|
-
var
|
120
|
+
export function QueryEditor(_ref3) {
|
121
|
+
var onStartQuery = _ref3.onStartQuery;
|
122
|
+
var query = useCurrentQuery();
|
117
123
|
var _useState = useState('minimized'),
|
118
124
|
_useState2 = _slicedToArray(_useState, 2),
|
119
125
|
resultViewMode = _useState2[0],
|
@@ -138,7 +144,10 @@ export function QueryEditor() {
|
|
138
144
|
getInitialSizes: function getInitialSizes() {
|
139
145
|
return partSizes;
|
140
146
|
},
|
141
|
-
children: [resultViewMode !== 'full' && /*#__PURE__*/_jsx(QueryEditorView, {
|
147
|
+
children: [resultViewMode !== 'full' && /*#__PURE__*/_jsx(QueryEditorView, {
|
148
|
+
onStartQuery: onStartQuery
|
149
|
+
}), (query === null || query === void 0 ? void 0 : query.id) && isExecuted && /*#__PURE__*/_jsx(ResultView, {
|
150
|
+
query: query,
|
142
151
|
setResultViewMode: setResultViewMode,
|
143
152
|
resultViewMode: resultViewMode
|
144
153
|
})]
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","MonacoEditor","block","Button","Icon","Loader","playIcon","useDispatch","useSelector","getQuery","getQueryEngine","getQueryText","isQueryExecuted","isQueryLoading","runQuery","SET_QUERY_PATCH","FlexSplitPane","QueryResults","maximizeBlockIcon","minimazeBlockIcon","closeIcon","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","b","QueryEditorView","memo","editorRef","activeQuery","text","engine","_editorRef$current","current","focus","id","monacoConfig","fontSize","language","renderWhitespace","minimap","enabled","dispatch","upadteQueryText","type","data","query","runQueryCallback","className","children","value","onChange","view","onClick","ResultView","_ref","resultViewMode","setResultViewMode","minimized","toolbar","QueryEditor","_useState","_useState2","_slicedToArray","_useState3","_useState4","partSizes","setSize","isExecuted","isLoading","_defineProperty","direction","VERTICAL","onResizeEnd","getInitialSizes"],"sources":["QueryEditor.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport MonacoEditor, {MonacoEditorConfig} from '../../../components/MonacoEditor/MonacoEditor';\nimport block from 'bem-cn-lite';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\nimport {Button, Icon, Loader} from '@gravity-ui/uikit';\n\nimport playIcon from '../../../../../img/svg/play.svg';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {\n getQuery,\n getQueryEngine,\n getQueryText,\n isQueryExecuted,\n isQueryLoading,\n} from '../module/query/selectors';\nimport {runQuery, SET_QUERY_PATCH} from '../module/query/actions';\nimport FlexSplitPane from '../../../components/FlexSplitPane/FlexSplitPane';\nimport {QueryResults} from '../QueryResults';\nimport maximizeBlockIcon from '../../../../../img/svg/icons/square.svg';\nimport minimazeBlockIcon from '../../../../../img/svg/icons/square-semifill.svg';\nimport closeIcon from '../../../../../img/svg/close-icon.svg';\n\nimport './QueryEditor.scss';\n\nconst b = block('query-container');\n\nconst QueryEditorView = React.memo(function QueryEditorView() {\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n const activeQuery = useSelector(getQuery);\n const text = useSelector(getQueryText);\n const engine = useSelector(getQueryEngine);\n\n useEffect(() => {\n editorRef.current?.focus();\n }, [editorRef.current, activeQuery?.id]);\n\n const monacoConfig = useMemo<MonacoEditorConfig>(() => {\n return {\n fontSize: 14,\n language: engine,\n renderWhitespace: 'boundary',\n minimap: {\n enabled: true,\n },\n };\n }, [engine]);\n const dispatch = useDispatch();\n const upadteQueryText = useCallback(\n function (text: string) {\n dispatch({type: SET_QUERY_PATCH, data: {query: text}});\n },\n [dispatch],\n );\n\n const runQueryCallback = useCallback(\n function () {\n dispatch(runQuery());\n },\n [dispatch],\n );\n return (\n <div className={b('query')}>\n <MonacoEditor\n editorRef={editorRef}\n value={text || ''}\n language={'yql'}\n className={b('editor')}\n onChange={upadteQueryText}\n monacoConfig={monacoConfig}\n />\n <div className={b('actions')}>\n <div className=\"query-run-action\">\n <Button\n className=\"query-run-action-button\"\n view=\"action\"\n onClick={runQueryCallback}\n >\n <Icon data={playIcon} />\n Run\n </Button>\n </div>\n </div>\n </div>\n );\n});\n\nconst ResultView = React.memo(function ResultView({\n resultViewMode,\n setResultViewMode,\n}: {\n resultViewMode: ResultMode;\n setResultViewMode: (v: ResultMode) => void;\n}) {\n return (\n <QueryResults\n className={b('results')}\n minimized={resultViewMode === 'minimized'}\n toolbar={\n <>\n {resultViewMode === 'split' ? (\n <Button\n className={b('meta-action')}\n view=\"flat\"\n onClick={() => setResultViewMode('full')}\n >\n <Icon data={maximizeBlockIcon} />\n </Button>\n ) : (\n <Button\n className={b('meta-action')}\n view=\"flat\"\n onClick={() => setResultViewMode('split')}\n >\n <Icon data={minimazeBlockIcon} />\n </Button>\n )}\n {resultViewMode !== 'minimized' && (\n <Button\n className={b('meta-action')}\n view=\"flat\"\n onClick={() => setResultViewMode('minimized')}\n >\n <Icon data={closeIcon} />\n </Button>\n )}\n </>\n }\n />\n );\n});\n\ntype ResultMode = 'full' | 'minimized' | 'split';\nexport function QueryEditor() {\n const query = useSelector(getQuery);\n\n const [resultViewMode, setResultViewMode] = useState<ResultMode>('minimized');\n\n const [partSizes, setSize] = useState([50, 50]);\n\n useEffect(() => {\n setResultViewMode('split');\n }, [query?.id]);\n\n const isExecuted = useSelector(isQueryExecuted);\n const isLoading = useSelector(isQueryLoading);\n\n return (\n <>\n {isLoading && (\n <div className={b('loading')}>\n <Loader />\n </div>\n )}\n <FlexSplitPane\n className={b({[resultViewMode]: true})}\n direction={FlexSplitPane.VERTICAL}\n onResizeEnd={setSize}\n getInitialSizes={() => partSizes}\n >\n {resultViewMode !== 'full' && <QueryEditorView />}\n\n {isExecuted && (\n <ResultView\n setResultViewMode={setResultViewMode}\n resultViewMode={resultViewMode}\n />\n )}\n </FlexSplitPane>\n </>\n );\n}\n"],"mappings":"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"}
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","MonacoEditor","block","Button","Icon","Loader","playIcon","useDispatch","useSelector","getQuery","getQueryEngine","getQueryText","isQueryExecuted","isQueryLoading","runQuery","SET_QUERY_PATCH","FlexSplitPane","QueryResults","maximizeBlockIcon","minimazeBlockIcon","closeIcon","useCurrentQuery","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","b","QueryEditorView","memo","_ref","onStartQuery","editorRef","activeQuery","text","engine","_editorRef$current","_editorRef$current2","current","focus","setScrollTop","id","monacoConfig","fontSize","language","renderWhitespace","minimap","enabled","dispatch","upadteQueryText","type","data","query","runQueryCallback","className","children","value","onChange","view","onClick","ResultView","_ref2","resultViewMode","setResultViewMode","minimized","toolbar","QueryEditor","_ref3","_useState","_useState2","_slicedToArray","_useState3","_useState4","partSizes","setSize","isExecuted","isLoading","_defineProperty","direction","VERTICAL","onResizeEnd","getInitialSizes"],"sources":["QueryEditor.tsx"],"sourcesContent":["import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport MonacoEditor, {MonacoEditorConfig} from '../../../components/MonacoEditor/MonacoEditor';\nimport block from 'bem-cn-lite';\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\nimport {Button, Icon, Loader} from '@gravity-ui/uikit';\n\nimport playIcon from '../../../../../img/svg/play.svg';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {\n getQuery,\n getQueryEngine,\n getQueryText,\n isQueryExecuted,\n isQueryLoading,\n} from '../module/query/selectors';\nimport {runQuery, SET_QUERY_PATCH} from '../module/query/actions';\nimport FlexSplitPane from '../../../components/FlexSplitPane/FlexSplitPane';\nimport {QueryResults} from '../QueryResults';\nimport maximizeBlockIcon from '../../../../../img/svg/icons/square.svg';\nimport minimazeBlockIcon from '../../../../../img/svg/icons/square-semifill.svg';\nimport closeIcon from '../../../../../img/svg/close-icon.svg';\n\nimport './QueryEditor.scss';\nimport {QueryItem} from '../module/api';\nimport {useCurrentQuery} from '../QueryResults/hooks/useCurrentQuery';\n\nconst b = block('query-container');\n\nconst QueryEditorView = React.memo(function QueryEditorView({\n onStartQuery,\n}: {\n onStartQuery?: (queryId: string) => boolean | void;\n}) {\n const editorRef = useRef<monaco.editor.IStandaloneCodeEditor>();\n const activeQuery = useSelector(getQuery);\n const text = useSelector(getQueryText);\n const engine = useSelector(getQueryEngine);\n\n useEffect(() => {\n editorRef.current?.focus();\n editorRef.current?.setScrollTop(0);\n }, [editorRef.current, activeQuery?.id]);\n\n const monacoConfig = useMemo<MonacoEditorConfig>(() => {\n return {\n fontSize: 14,\n language: engine,\n renderWhitespace: 'boundary',\n minimap: {\n enabled: true,\n },\n };\n }, [engine]);\n const dispatch = useDispatch();\n const upadteQueryText = useCallback(\n function (text: string) {\n dispatch({type: SET_QUERY_PATCH, data: {query: text}});\n },\n [dispatch],\n );\n\n const runQueryCallback = useCallback(\n function () {\n dispatch(runQuery(onStartQuery));\n },\n [dispatch, onStartQuery],\n );\n return (\n <div className={b('query')}>\n <MonacoEditor\n editorRef={editorRef}\n value={text || ''}\n language={'yql'}\n className={b('editor')}\n onChange={upadteQueryText}\n monacoConfig={monacoConfig}\n />\n <div className={b('actions')}>\n <div className=\"query-run-action\">\n <Button\n className=\"query-run-action-button\"\n view=\"action\"\n onClick={runQueryCallback}\n >\n <Icon data={playIcon} />\n Run\n </Button>\n </div>\n </div>\n </div>\n );\n});\n\nconst ResultView = React.memo(function ResultView({\n query,\n resultViewMode,\n setResultViewMode,\n}: {\n query: QueryItem;\n resultViewMode: ResultMode;\n setResultViewMode: (v: ResultMode) => void;\n}) {\n return (\n <QueryResults\n query={query}\n className={b('results')}\n minimized={resultViewMode === 'minimized'}\n toolbar={\n <>\n {resultViewMode === 'split' ? (\n <Button\n className={b('meta-action')}\n view=\"flat\"\n onClick={() => setResultViewMode('full')}\n >\n <Icon data={maximizeBlockIcon} />\n </Button>\n ) : (\n <Button\n className={b('meta-action')}\n view=\"flat\"\n onClick={() => setResultViewMode('split')}\n >\n <Icon data={minimazeBlockIcon} />\n </Button>\n )}\n {resultViewMode !== 'minimized' && (\n <Button\n className={b('meta-action')}\n view=\"flat\"\n onClick={() => setResultViewMode('minimized')}\n >\n <Icon data={closeIcon} />\n </Button>\n )}\n </>\n }\n />\n );\n});\n\ntype ResultMode = 'full' | 'minimized' | 'split';\nexport function QueryEditor({onStartQuery}: {onStartQuery?: (queryId: string) => boolean | void}) {\n const query = useCurrentQuery();\n\n const [resultViewMode, setResultViewMode] = useState<ResultMode>('minimized');\n\n const [partSizes, setSize] = useState([50, 50]);\n\n useEffect(() => {\n setResultViewMode('split');\n }, [query?.id]);\n\n const isExecuted = useSelector(isQueryExecuted);\n const isLoading = useSelector(isQueryLoading);\n\n return (\n <>\n {isLoading && (\n <div className={b('loading')}>\n <Loader />\n </div>\n )}\n <FlexSplitPane\n className={b({[resultViewMode]: true})}\n direction={FlexSplitPane.VERTICAL}\n onResizeEnd={setSize}\n getInitialSizes={() => partSizes}\n >\n {resultViewMode !== 'full' && <QueryEditorView onStartQuery={onStartQuery} />}\n\n {query?.id && isExecuted && (\n <ResultView\n query={query}\n setResultViewMode={setResultViewMode}\n resultViewMode={resultViewMode}\n />\n )}\n </FlexSplitPane>\n </>\n );\n}\n"],"mappings":"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"}
|
@@ -11,7 +11,6 @@ import QueryMetaTable from '../QueryMetaTable';
|
|
11
11
|
import { loadQueryResult } from '../module/query_result/actions';
|
12
12
|
import { QueryResultActions } from './QueryResultActions';
|
13
13
|
import { QueryResultTab, useQueryResultTabs } from './hooks/useQueryResultTabs';
|
14
|
-
import { useCurrentQuery } from './hooks/useCurrentQuery';
|
15
14
|
import { YQLStatisticsTable } from '../QueryResultsView/YQLStatistics';
|
16
15
|
import NotRenderUntilFirstVisible from '../NotRenderUntilFirstVisible/NotRenderUntilFirstVisible';
|
17
16
|
import { jsx as _jsx } from "react/jsx-runtime";
|
@@ -32,11 +31,11 @@ function QueryResultContainer(_ref) {
|
|
32
31
|
});
|
33
32
|
}
|
34
33
|
export var QueryResults = /*#__PURE__*/React.memo(function QueryResults(_ref2) {
|
35
|
-
var
|
34
|
+
var query = _ref2.query,
|
35
|
+
className = _ref2.className,
|
36
36
|
toolbar = _ref2.toolbar,
|
37
37
|
_ref2$minimized = _ref2.minimized,
|
38
38
|
minimized = _ref2$minimized === void 0 ? false : _ref2$minimized;
|
39
|
-
var query = useCurrentQuery();
|
40
39
|
var _useQueryResultTabs = useQueryResultTabs(query),
|
41
40
|
_useQueryResultTabs2 = _slicedToArray(_useQueryResultTabs, 3),
|
42
41
|
tabs = _useQueryResultTabs2[0],
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","useEffect","block","Tabs","useDispatch","QueryResultsView","Error","QueryMetaInfo","QueryMetaTable","loadQueryResult","QueryResultActions","QueryResultTab","useQueryResultTabs","
|
1
|
+
{"version":3,"names":["React","useEffect","block","Tabs","useDispatch","QueryResultsView","Error","QueryMetaInfo","QueryMetaTable","loadQueryResult","QueryResultActions","QueryResultTab","useQueryResultTabs","YQLStatisticsTable","NotRenderUntilFirstVisible","jsx","_jsx","jsxs","_jsxs","b","QueryResultContainer","_ref","resultIndex","query","dispatch","result_count","id","index","QueryResults","memo","_ref2","className","toolbar","_ref2$minimized","minimized","_useQueryResultTabs","_useQueryResultTabs2","_slicedToArray","tabs","setTab","_useQueryResultTabs2$","activeTabId","category","children","hide","items","activeTab","onSelectTab","RESULT","Number","isInteger","ERROR","error","META","STATISTIC"],"sources":["index.tsx"],"sourcesContent":["import React, {useEffect} from 'react';\nimport block from 'bem-cn-lite';\nimport {QueryItem} from '../module/api';\nimport {Tabs} from '@gravity-ui/uikit';\nimport {useDispatch} from 'react-redux';\nimport {QueryResultsView} from '../QueryResultsView';\nimport Error from '../../../components/Error/Error';\n\nimport './index.scss';\nimport {QueryMetaInfo} from './QueryMetaRow';\nimport QueryMetaTable from '../QueryMetaTable';\nimport {loadQueryResult} from '../module/query_result/actions';\nimport {QueryResultActions} from './QueryResultActions';\nimport {QueryResultTab, useQueryResultTabs} from './hooks/useQueryResultTabs';\nimport {YQLStatisticsTable} from '../QueryResultsView/YQLStatistics';\nimport NotRenderUntilFirstVisible from '../NotRenderUntilFirstVisible/NotRenderUntilFirstVisible';\n\nconst b = block('query-results');\n\nfunction QueryResultContainer({resultIndex, query}: {resultIndex: number; query: QueryItem}) {\n const dispatch = useDispatch();\n useEffect(() => {\n if (query.result_count) {\n dispatch(loadQueryResult(query.id, resultIndex));\n }\n }, [query, resultIndex, dispatch]);\n return <QueryResultsView query={query} index={resultIndex} />;\n}\n\nexport const QueryResults = React.memo(function QueryResults({\n query,\n className,\n toolbar,\n minimized = false,\n}: {\n query: QueryItem;\n className: string;\n toolbar: React.ReactChild;\n minimized: boolean;\n}) {\n const [tabs, setTab, {activeTabId, category, resultIndex}] = useQueryResultTabs(query);\n\n return query ? (\n <div className={b(null, className)}>\n <div className={b('meta')}>\n <QueryMetaInfo className={b('meta-info')} query={query} />\n <div className={b('toolbar')}>{toolbar}</div>\n </div>\n <NotRenderUntilFirstVisible className={b('result', {minimized})} hide={minimized}>\n <div className={b('header')}>\n <Tabs\n className={b('tabs')}\n items={tabs}\n activeTab={activeTabId}\n onSelectTab={setTab}\n />\n {category === QueryResultTab.RESULT && Number.isInteger(resultIndex) && (\n <div className={b('tab_actions')}>\n <QueryResultActions query={query} resultIndex={resultIndex ?? 0} />\n </div>\n )}\n </div>\n <div className={b('content')}>\n <NotRenderUntilFirstVisible\n hide={category !== QueryResultTab.RESULT && !Number.isInteger(resultIndex)}\n className={b('result-wrap')}\n >\n <QueryResultContainer query={query} resultIndex={resultIndex ?? 0} />\n </NotRenderUntilFirstVisible>\n {category === QueryResultTab.ERROR && <Error error={query.error} />}\n {category === QueryResultTab.META && <QueryMetaTable query={query} />}\n\n <NotRenderUntilFirstVisible hide={category !== QueryResultTab.STATISTIC}>\n <YQLStatisticsTable query={query} />\n </NotRenderUntilFirstVisible>\n </div>\n </NotRenderUntilFirstVisible>\n <div></div>\n </div>\n ) : null;\n});\n"],"mappings":"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"}
|