@prorobotech/openapi-k8s-toolkit 1.1.0-alpha.1 → 1.1.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/openapi-k8s-toolkit.es.js +246 -169
- package/dist/openapi-k8s-toolkit.es.js.map +1 -1
- package/dist/openapi-k8s-toolkit.umd.js +249 -170
- package/dist/openapi-k8s-toolkit.umd.js.map +1 -1
- package/dist/types/components/molecules/ManageableBreadcrumbs/ManageableBreadcrumbs.d.ts +1 -1
- package/dist/types/components/molecules/ManageableSidebar/ManageableSidebar.d.ts +1 -1
- package/dist/types/hooks/useK8sSmartResource.d.ts +29 -0
- package/dist/types/hooks/useK8sVerbs.d.ts +13 -0
- package/dist/types/index.d.ts +2 -0
- package/package.json +1 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import styled, { createGlobalStyle } from 'styled-components';
|
|
2
|
-
import K, { useState, useRef, useReducer, useEffect, useCallback, useLayoutEffect, Fragment, createContext, useContext,
|
|
2
|
+
import K, { useState, useRef, useReducer, useEffect, useCallback, useMemo, useLayoutEffect, Fragment, createContext, useContext, createElement, isValidElement, cloneElement, useInsertionEffect, useSyncExternalStore, memo, Suspense } from 'react';
|
|
3
3
|
import { Input, Tree, Modal, Alert, theme, Select, Tag, Breadcrumb, Spin, Menu, Tooltip, Space, Button, Flex, Typography, Card as Card$1, Row, Col, Tabs, Form, Popover, notification, Dropdown, Table, Slider, InputNumber, Switch, Result, Progress, Checkbox, Empty } from 'antd';
|
|
4
4
|
import { LoadingOutlined, ExclamationCircleFilled, CloseCircleFilled, CheckCircleFilled, PlusOutlined, ClearOutlined, MinusOutlined, CaretDownOutlined, CaretRightOutlined, InfoCircleOutlined, EyeOutlined, EyeInvisibleOutlined, SearchOutlined, MoreOutlined, CheckOutlined, CloseOutlined, BugOutlined, EllipsisOutlined } from '@ant-design/icons';
|
|
5
|
+
import { useQuery, useQueries, useQueryClient } from '@tanstack/react-query';
|
|
5
6
|
import { Link, useNavigate, useLocation, useParams, useSearchParams } from 'react-router-dom';
|
|
6
|
-
import { useQueries, useQuery, useQueryClient } from '@tanstack/react-query';
|
|
7
7
|
|
|
8
8
|
const Spacer$1 = styled.div`
|
|
9
9
|
height: ${({ $space, $spaceMob, $samespace }) => {
|
|
@@ -8316,6 +8316,63 @@ const PaddingContainer = styled.div`
|
|
|
8316
8316
|
padding: ${({ $padding }) => $padding};
|
|
8317
8317
|
`;
|
|
8318
8318
|
|
|
8319
|
+
const getDirectUnknownResource = async ({ uri }) => {
|
|
8320
|
+
return axios.get(uri);
|
|
8321
|
+
};
|
|
8322
|
+
|
|
8323
|
+
const useDirectUnknownResource = ({
|
|
8324
|
+
uri,
|
|
8325
|
+
queryKey,
|
|
8326
|
+
refetchInterval,
|
|
8327
|
+
isEnabled
|
|
8328
|
+
}) => {
|
|
8329
|
+
return useQuery({
|
|
8330
|
+
queryKey,
|
|
8331
|
+
queryFn: async () => {
|
|
8332
|
+
const response = await getDirectUnknownResource({
|
|
8333
|
+
uri
|
|
8334
|
+
});
|
|
8335
|
+
const data = JSON.parse(JSON.stringify(response.data));
|
|
8336
|
+
if (data.metadata?.resourceVersion) {
|
|
8337
|
+
delete data.metadata.resourceVersion;
|
|
8338
|
+
}
|
|
8339
|
+
return data;
|
|
8340
|
+
},
|
|
8341
|
+
refetchInterval: refetchInterval !== void 0 ? refetchInterval : 5e3,
|
|
8342
|
+
enabled: isEnabled
|
|
8343
|
+
});
|
|
8344
|
+
};
|
|
8345
|
+
|
|
8346
|
+
const useK8sVerbs = ({
|
|
8347
|
+
cluster,
|
|
8348
|
+
group,
|
|
8349
|
+
version,
|
|
8350
|
+
plural,
|
|
8351
|
+
isEnabled = true
|
|
8352
|
+
}) => {
|
|
8353
|
+
const uri = `/api/clusters/${cluster}/openapi-bff/verbs/getResourceVerbs?${new URLSearchParams({
|
|
8354
|
+
...group ? { group } : {},
|
|
8355
|
+
version,
|
|
8356
|
+
plural
|
|
8357
|
+
}).toString()}`;
|
|
8358
|
+
const { data, isError, isLoading, error } = useDirectUnknownResource({
|
|
8359
|
+
uri,
|
|
8360
|
+
queryKey: ["k8s-verbs", group || "", version, plural],
|
|
8361
|
+
refetchInterval: false,
|
|
8362
|
+
isEnabled
|
|
8363
|
+
});
|
|
8364
|
+
const verbs = data?.verbs || [];
|
|
8365
|
+
const canList = verbs.includes("list");
|
|
8366
|
+
const canWatch = verbs.includes("watch");
|
|
8367
|
+
return {
|
|
8368
|
+
canList,
|
|
8369
|
+
canWatch,
|
|
8370
|
+
isError,
|
|
8371
|
+
isLoading,
|
|
8372
|
+
error
|
|
8373
|
+
};
|
|
8374
|
+
};
|
|
8375
|
+
|
|
8319
8376
|
const eventKey$1 = (e) => {
|
|
8320
8377
|
const n = e.metadata?.name ?? "";
|
|
8321
8378
|
const ns = e.metadata?.namespace ?? "";
|
|
@@ -8811,17 +8868,122 @@ const useListWatch = ({
|
|
|
8811
8868
|
};
|
|
8812
8869
|
};
|
|
8813
8870
|
|
|
8814
|
-
const
|
|
8815
|
-
|
|
8816
|
-
|
|
8817
|
-
|
|
8818
|
-
|
|
8819
|
-
|
|
8820
|
-
|
|
8821
|
-
|
|
8822
|
-
|
|
8823
|
-
|
|
8824
|
-
|
|
8871
|
+
const buildApiPrefix = (group, version) => {
|
|
8872
|
+
const g = (group ?? "").trim();
|
|
8873
|
+
const v = (version ?? "").trim();
|
|
8874
|
+
const isCore = !g || g === "core" || g === "v1";
|
|
8875
|
+
return isCore ? `/api/${v}` : `/apis/${g}/${v}`;
|
|
8876
|
+
};
|
|
8877
|
+
const buildListUri = ({
|
|
8878
|
+
cluster,
|
|
8879
|
+
group,
|
|
8880
|
+
version,
|
|
8881
|
+
plural,
|
|
8882
|
+
namespace,
|
|
8883
|
+
fieldSelector,
|
|
8884
|
+
labelSelector,
|
|
8885
|
+
limit
|
|
8886
|
+
}) => {
|
|
8887
|
+
const prefix = buildApiPrefix(group, version);
|
|
8888
|
+
const ns = namespace ? `/namespaces/${namespace}` : "";
|
|
8889
|
+
const base = `/api/clusters/${cluster}/k8s${prefix}${ns}/${plural}/`;
|
|
8890
|
+
const params = new URLSearchParams();
|
|
8891
|
+
if (fieldSelector) params.append("fieldSelector", fieldSelector);
|
|
8892
|
+
if (labelSelector) params.append("labelSelector", labelSelector);
|
|
8893
|
+
if (limit) params.append("limit", String(limit));
|
|
8894
|
+
return params.toString() ? `${base}?${params.toString()}` : base;
|
|
8895
|
+
};
|
|
8896
|
+
const useK8sSmartResource = ({
|
|
8897
|
+
cluster,
|
|
8898
|
+
group,
|
|
8899
|
+
version,
|
|
8900
|
+
plural,
|
|
8901
|
+
namespace,
|
|
8902
|
+
fieldSelector,
|
|
8903
|
+
labelSelector,
|
|
8904
|
+
isEnabled = true,
|
|
8905
|
+
listRefetchInterval = 5e3,
|
|
8906
|
+
limit,
|
|
8907
|
+
mapListWatchState
|
|
8908
|
+
}) => {
|
|
8909
|
+
const {
|
|
8910
|
+
canList,
|
|
8911
|
+
canWatch,
|
|
8912
|
+
isLoading: verbsLoading,
|
|
8913
|
+
isError: verbsIsError,
|
|
8914
|
+
error: verbsErrorObj
|
|
8915
|
+
} = useK8sVerbs({
|
|
8916
|
+
cluster,
|
|
8917
|
+
group,
|
|
8918
|
+
version,
|
|
8919
|
+
plural,
|
|
8920
|
+
isEnabled
|
|
8921
|
+
});
|
|
8922
|
+
const listUri = buildListUri({
|
|
8923
|
+
cluster,
|
|
8924
|
+
group,
|
|
8925
|
+
version,
|
|
8926
|
+
plural,
|
|
8927
|
+
namespace,
|
|
8928
|
+
fieldSelector,
|
|
8929
|
+
labelSelector,
|
|
8930
|
+
limit
|
|
8931
|
+
});
|
|
8932
|
+
const restEnabled = Boolean(isEnabled && canList && !canWatch && !verbsLoading && !verbsIsError);
|
|
8933
|
+
const {
|
|
8934
|
+
data: restData,
|
|
8935
|
+
isLoading: restLoading,
|
|
8936
|
+
isError: restIsError,
|
|
8937
|
+
error: restError
|
|
8938
|
+
} = useDirectUnknownResource({
|
|
8939
|
+
uri: listUri,
|
|
8940
|
+
queryKey: [
|
|
8941
|
+
"k8s-list",
|
|
8942
|
+
cluster,
|
|
8943
|
+
group || "",
|
|
8944
|
+
version,
|
|
8945
|
+
namespace || "",
|
|
8946
|
+
plural,
|
|
8947
|
+
fieldSelector || "",
|
|
8948
|
+
labelSelector || ""
|
|
8949
|
+
],
|
|
8950
|
+
refetchInterval: listRefetchInterval,
|
|
8951
|
+
isEnabled: restEnabled
|
|
8952
|
+
});
|
|
8953
|
+
const watchEnabled = Boolean(isEnabled && canList && canWatch && !verbsLoading && !verbsIsError);
|
|
8954
|
+
const { state, status, lastError } = useListWatch({
|
|
8955
|
+
wsUrl: `/api/clusters/${cluster}/openapi-bff-ws/listThenWatch/listWatchWs`,
|
|
8956
|
+
paused: false,
|
|
8957
|
+
ignoreRemove: false,
|
|
8958
|
+
autoDrain: true,
|
|
8959
|
+
preserveStateOnUrlChange: true,
|
|
8960
|
+
isEnabled: watchEnabled,
|
|
8961
|
+
pageSize: limit,
|
|
8962
|
+
query: {
|
|
8963
|
+
apiGroup: group,
|
|
8964
|
+
apiVersion: version,
|
|
8965
|
+
plural,
|
|
8966
|
+
namespace,
|
|
8967
|
+
fieldSelector,
|
|
8968
|
+
labelSelector
|
|
8969
|
+
}
|
|
8970
|
+
});
|
|
8971
|
+
const defaultMap = (s) => ({ items: s.order.map((k) => s.byKey[k]) });
|
|
8972
|
+
const watchData = useMemo(
|
|
8973
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8974
|
+
() => watchEnabled ? (mapListWatchState ?? defaultMap)(state) : void 0,
|
|
8975
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
8976
|
+
[watchEnabled, state, mapListWatchState]
|
|
8977
|
+
);
|
|
8978
|
+
const used = !isEnabled ? "disabled" : verbsLoading ? "verbs-loading" : verbsIsError ? "verbs-error" : watchEnabled ? "watch" : restEnabled ? "list" : "disabled";
|
|
8979
|
+
const isLoading = isEnabled && verbsLoading || used === "watch" && status === "connecting" || used === "list" && restLoading;
|
|
8980
|
+
let error;
|
|
8981
|
+
if (verbsIsError) error = verbsErrorObj;
|
|
8982
|
+
else if (used === "watch" && status === "closed" && lastError) error = lastError;
|
|
8983
|
+
else if (used === "list" && restIsError) error = restError;
|
|
8984
|
+
const isError = Boolean(error);
|
|
8985
|
+
const data = used === "watch" ? watchData : used === "list" ? restData : void 0;
|
|
8986
|
+
return { data, isLoading, isError, error, _meta: { used } };
|
|
8825
8987
|
};
|
|
8826
8988
|
|
|
8827
8989
|
const prepareTemplate = ({
|
|
@@ -8961,7 +9123,7 @@ const ManageableBreadcrumbs = ({ data }) => {
|
|
|
8961
9123
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(Styled$v.HeightDiv, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(CollapsibleBreadcrumb, { items: data.breadcrumbItems }) });
|
|
8962
9124
|
};
|
|
8963
9125
|
const ManageableBreadcrumbsWithDataProvider = ({
|
|
8964
|
-
|
|
9126
|
+
cluster,
|
|
8965
9127
|
apiGroup,
|
|
8966
9128
|
apiVersion,
|
|
8967
9129
|
plural,
|
|
@@ -8970,28 +9132,17 @@ const ManageableBreadcrumbsWithDataProvider = ({
|
|
|
8970
9132
|
pathname,
|
|
8971
9133
|
idToCompare
|
|
8972
9134
|
}) => {
|
|
8973
|
-
const {
|
|
8974
|
-
|
|
8975
|
-
|
|
8976
|
-
|
|
8977
|
-
|
|
8978
|
-
|
|
8979
|
-
|
|
8980
|
-
|
|
8981
|
-
|
|
8982
|
-
plural
|
|
8983
|
-
},
|
|
9135
|
+
const {
|
|
9136
|
+
data: rawData,
|
|
9137
|
+
isError: rawDataError,
|
|
9138
|
+
isLoading: rawDataLoading
|
|
9139
|
+
} = useK8sSmartResource({
|
|
9140
|
+
cluster: cluster || "",
|
|
9141
|
+
group: apiGroup,
|
|
9142
|
+
version: apiVersion,
|
|
9143
|
+
plural,
|
|
8984
9144
|
isEnabled
|
|
8985
9145
|
});
|
|
8986
|
-
const rawDataLoading = status === "connecting";
|
|
8987
|
-
const rawDataError = status === "closed" && lastError ? lastError : void 0;
|
|
8988
|
-
const rawData = {
|
|
8989
|
-
items: state.order.map((key) => {
|
|
8990
|
-
const res = state.byKey[key];
|
|
8991
|
-
return res;
|
|
8992
|
-
})
|
|
8993
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
8994
|
-
};
|
|
8995
9146
|
if (rawDataError) {
|
|
8996
9147
|
return null;
|
|
8997
9148
|
}
|
|
@@ -9177,7 +9328,7 @@ const ManageableSidebar = ({ data, noMarginTop }) => {
|
|
|
9177
9328
|
);
|
|
9178
9329
|
};
|
|
9179
9330
|
const ManageableSidebarWithDataProvider = ({
|
|
9180
|
-
|
|
9331
|
+
cluster,
|
|
9181
9332
|
apiGroup,
|
|
9182
9333
|
apiVersion,
|
|
9183
9334
|
plural,
|
|
@@ -9189,28 +9340,17 @@ const ManageableSidebarWithDataProvider = ({
|
|
|
9189
9340
|
hidden,
|
|
9190
9341
|
noMarginTop
|
|
9191
9342
|
}) => {
|
|
9192
|
-
const {
|
|
9193
|
-
|
|
9194
|
-
|
|
9195
|
-
|
|
9196
|
-
|
|
9197
|
-
|
|
9198
|
-
|
|
9199
|
-
|
|
9200
|
-
|
|
9201
|
-
plural
|
|
9202
|
-
},
|
|
9343
|
+
const {
|
|
9344
|
+
data: rawData,
|
|
9345
|
+
isError: rawDataError,
|
|
9346
|
+
isLoading: rawDataLoading
|
|
9347
|
+
} = useK8sSmartResource({
|
|
9348
|
+
cluster,
|
|
9349
|
+
group: apiGroup,
|
|
9350
|
+
version: apiVersion,
|
|
9351
|
+
plural,
|
|
9203
9352
|
isEnabled
|
|
9204
9353
|
});
|
|
9205
|
-
const rawDataLoading = status === "connecting";
|
|
9206
|
-
const rawDataError = status === "closed" && lastError ? lastError : void 0;
|
|
9207
|
-
const rawData = {
|
|
9208
|
-
items: state.order.map((key) => {
|
|
9209
|
-
const res = state.byKey[key];
|
|
9210
|
-
return res;
|
|
9211
|
-
})
|
|
9212
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
9213
|
-
};
|
|
9214
9354
|
if (rawDataError) {
|
|
9215
9355
|
return null;
|
|
9216
9356
|
}
|
|
@@ -34009,33 +34149,6 @@ const usePermissions = ({
|
|
|
34009
34149
|
});
|
|
34010
34150
|
};
|
|
34011
34151
|
|
|
34012
|
-
const getDirectUnknownResource = async ({ uri }) => {
|
|
34013
|
-
return axios.get(uri);
|
|
34014
|
-
};
|
|
34015
|
-
|
|
34016
|
-
const useDirectUnknownResource = ({
|
|
34017
|
-
uri,
|
|
34018
|
-
queryKey,
|
|
34019
|
-
refetchInterval,
|
|
34020
|
-
isEnabled
|
|
34021
|
-
}) => {
|
|
34022
|
-
return useQuery({
|
|
34023
|
-
queryKey,
|
|
34024
|
-
queryFn: async () => {
|
|
34025
|
-
const response = await getDirectUnknownResource({
|
|
34026
|
-
uri
|
|
34027
|
-
});
|
|
34028
|
-
const data = JSON.parse(JSON.stringify(response.data));
|
|
34029
|
-
if (data.metadata?.resourceVersion) {
|
|
34030
|
-
delete data.metadata.resourceVersion;
|
|
34031
|
-
}
|
|
34032
|
-
return data;
|
|
34033
|
-
},
|
|
34034
|
-
refetchInterval: refetchInterval !== void 0 ? refetchInterval : 5e3,
|
|
34035
|
-
enabled: isEnabled
|
|
34036
|
-
});
|
|
34037
|
-
};
|
|
34038
|
-
|
|
34039
34152
|
const getBackLinkToTable = ({ fullPath }) => {
|
|
34040
34153
|
return encodeURIComponent(fullPath);
|
|
34041
34154
|
};
|
|
@@ -50309,28 +50422,14 @@ const MarketplaceCard = ({
|
|
|
50309
50422
|
apiVersion,
|
|
50310
50423
|
baseprefix
|
|
50311
50424
|
});
|
|
50312
|
-
const {
|
|
50313
|
-
|
|
50314
|
-
|
|
50315
|
-
|
|
50316
|
-
|
|
50317
|
-
|
|
50318
|
-
query: {
|
|
50319
|
-
namespace,
|
|
50320
|
-
apiVersion: apiVersion || "",
|
|
50321
|
-
apiGroup,
|
|
50322
|
-
plural: type
|
|
50323
|
-
},
|
|
50425
|
+
const { data: k8sList, error: k8sListError } = useK8sSmartResource({
|
|
50426
|
+
cluster: clusterName || "",
|
|
50427
|
+
namespace,
|
|
50428
|
+
group: apiGroup,
|
|
50429
|
+
version: apiVersion || "",
|
|
50430
|
+
plural: type,
|
|
50324
50431
|
isEnabled: Boolean(apiVersion && addedMode && type !== "direct")
|
|
50325
50432
|
});
|
|
50326
|
-
const k8sListError = status === "closed" && lastError ? lastError : void 0;
|
|
50327
|
-
const k8sList = {
|
|
50328
|
-
items: state.order.map((key) => {
|
|
50329
|
-
const res = state.byKey[key];
|
|
50330
|
-
return res;
|
|
50331
|
-
})
|
|
50332
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50333
|
-
};
|
|
50334
50433
|
if (addedMode && (k8sListError || type === "direct") && !showZeroResources) {
|
|
50335
50434
|
return null;
|
|
50336
50435
|
}
|
|
@@ -50459,30 +50558,17 @@ const MarketPlace = ({
|
|
|
50459
50558
|
const [filteredAndSortedData, setFilterAndSortedData] = useState([]);
|
|
50460
50559
|
const [uniqueTags, setUniqueTags] = useState([]);
|
|
50461
50560
|
const [selectedTags, setSelectedTags] = useState([]);
|
|
50462
|
-
const {
|
|
50463
|
-
|
|
50464
|
-
|
|
50465
|
-
|
|
50466
|
-
|
|
50467
|
-
|
|
50468
|
-
|
|
50469
|
-
|
|
50470
|
-
|
|
50471
|
-
|
|
50472
|
-
},
|
|
50473
|
-
isEnabled: clusterName !== void 0
|
|
50561
|
+
const {
|
|
50562
|
+
data: marketplacePanels,
|
|
50563
|
+
isLoading,
|
|
50564
|
+
error
|
|
50565
|
+
} = useK8sSmartResource({
|
|
50566
|
+
cluster: clusterName || "",
|
|
50567
|
+
group: baseApiGroup,
|
|
50568
|
+
version: baseApiVersion,
|
|
50569
|
+
plural: mpResourceName,
|
|
50570
|
+
isEnabled: Boolean(clusterName !== void 0)
|
|
50474
50571
|
});
|
|
50475
|
-
const isLoading = status === "connecting";
|
|
50476
|
-
const error = status === "closed" && lastError ? lastError : void 0;
|
|
50477
|
-
const marketplacePanels = useMemo(() => {
|
|
50478
|
-
return {
|
|
50479
|
-
items: state.order.map((key) => {
|
|
50480
|
-
const res = state.byKey[key];
|
|
50481
|
-
return res;
|
|
50482
|
-
})
|
|
50483
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50484
|
-
};
|
|
50485
|
-
}, [state]);
|
|
50486
50572
|
const createPermission = usePermissions({
|
|
50487
50573
|
group: baseApiGroup,
|
|
50488
50574
|
resource: mpResourceName,
|
|
@@ -50781,52 +50867,30 @@ const ProjectInfoCard = ({
|
|
|
50781
50867
|
children
|
|
50782
50868
|
}) => {
|
|
50783
50869
|
const navigate = useNavigate();
|
|
50784
|
-
const { state, status } = useListWatch({
|
|
50785
|
-
wsUrl: `/api/clusters/${clusterName}/openapi-bff-ws/listThenWatch/listWatchWs`,
|
|
50786
|
-
paused: false,
|
|
50787
|
-
ignoreRemove: false,
|
|
50788
|
-
autoDrain: true,
|
|
50789
|
-
preserveStateOnUrlChange: true,
|
|
50790
|
-
query: {
|
|
50791
|
-
apiVersion: baseApiVersion,
|
|
50792
|
-
apiGroup: baseApiGroup,
|
|
50793
|
-
plural: mpResourceName
|
|
50794
|
-
},
|
|
50795
|
-
isEnabled: clusterName !== void 0
|
|
50796
|
-
});
|
|
50797
|
-
const marketplaceIsLoading = status === "connecting";
|
|
50798
|
-
const marketplacePanels = {
|
|
50799
|
-
items: state.order.map((key) => {
|
|
50800
|
-
const res = state.byKey[key];
|
|
50801
|
-
return res;
|
|
50802
|
-
})
|
|
50803
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
50804
|
-
};
|
|
50805
50870
|
const {
|
|
50806
|
-
|
|
50807
|
-
|
|
50808
|
-
|
|
50809
|
-
} =
|
|
50810
|
-
|
|
50811
|
-
|
|
50812
|
-
|
|
50813
|
-
|
|
50814
|
-
|
|
50815
|
-
query: {
|
|
50816
|
-
apiVersion: baseProjectVersion,
|
|
50817
|
-
apiGroup: baseProjectApiGroup,
|
|
50818
|
-
plural: projectResourceName,
|
|
50819
|
-
fieldSelector: `metadata.name=${namespace}`
|
|
50820
|
-
},
|
|
50821
|
-
isEnabled: clusterName !== void 0
|
|
50871
|
+
data: marketplacePanels,
|
|
50872
|
+
isLoading: marketplaceIsLoading
|
|
50873
|
+
// error: marketplaceError,
|
|
50874
|
+
} = useK8sSmartResource({
|
|
50875
|
+
cluster: clusterName || "",
|
|
50876
|
+
group: baseApiGroup,
|
|
50877
|
+
version: baseApiVersion,
|
|
50878
|
+
plural: mpResourceName,
|
|
50879
|
+
isEnabled: Boolean(clusterName !== void 0)
|
|
50822
50880
|
});
|
|
50823
|
-
const
|
|
50824
|
-
|
|
50825
|
-
|
|
50826
|
-
|
|
50827
|
-
|
|
50881
|
+
const {
|
|
50882
|
+
data: projectArr,
|
|
50883
|
+
isLoading,
|
|
50884
|
+
error
|
|
50885
|
+
} = useK8sSmartResource({
|
|
50886
|
+
cluster: clusterName || "",
|
|
50887
|
+
group: baseProjectApiGroup,
|
|
50888
|
+
version: baseProjectVersion,
|
|
50889
|
+
plural: projectResourceName,
|
|
50890
|
+
fieldSelector: `metadata.name=${namespace}`,
|
|
50891
|
+
isEnabled: Boolean(clusterName !== void 0)
|
|
50828
50892
|
});
|
|
50829
|
-
const project = projectArr.length > 0 ? projectArr[0] : void 0;
|
|
50893
|
+
const project = projectArr && projectArr.length > 0 ? projectArr[0] : void 0;
|
|
50830
50894
|
const [isDeleteModalOpen, setIsDeleteModalOpen] = useState(false);
|
|
50831
50895
|
const updatePermission = usePermissions({
|
|
50832
50896
|
group: baseProjectApiGroup,
|
|
@@ -53468,5 +53532,18 @@ const useCrdData = ({
|
|
|
53468
53532
|
});
|
|
53469
53533
|
};
|
|
53470
53534
|
|
|
53471
|
-
|
|
53535
|
+
const useInfiniteSentinel = (sentinelRef, hasMore, onNeedMore) => {
|
|
53536
|
+
useEffect(() => {
|
|
53537
|
+
const el = sentinelRef.current;
|
|
53538
|
+
if (!el) return void 0;
|
|
53539
|
+
const io = new IntersectionObserver((entries) => {
|
|
53540
|
+
const visible = entries.some((e) => e.isIntersecting);
|
|
53541
|
+
if (visible && hasMore) onNeedMore();
|
|
53542
|
+
});
|
|
53543
|
+
io.observe(el);
|
|
53544
|
+
return () => io.disconnect();
|
|
53545
|
+
}, [sentinelRef, hasMore, onNeedMore]);
|
|
53546
|
+
};
|
|
53547
|
+
|
|
53548
|
+
export { BackToDefaultIcon, BlackholeForm, BlackholeFormDataProvider, ContentCard$1 as ContentCard, CursorDefaultDiv, CursorPointerTag, CursorPointerTagMinContent, CustomSelect$4 as CustomSelect, DeleteIcon, DeleteModal, DeleteModalMany, DownIcon, DynamicComponents, DynamicRenderer, DynamicRendererWithProviders, EarthIcon, EditIcon, EnrichedTable, EnrichedTableProvider, Events, FlexGrow, LockedIcon, LookingGlassIcon, ManageableBreadcrumbs, ManageableBreadcrumbsWithDataProvider, ManageableSidebar, ManageableSidebarWithDataProvider, MarketPlace, MarketplaceCard, MinusIcon, NodeTerminal, PaddingContainer, PauseCircleIcon, PlusIcon, PodLogs, PodLogsMonaco, PodTerminal, ProjectInfoCard, ResumeCircleIcon, Search, Spacer$1 as Spacer, SuccessIcon, TreeWithSearch, UncontrolledSelect, UnlockedIcon, UpIcon, YamlEditorSingleton, checkIfApiInstanceNamespaceScoped, checkIfBuiltInInstanceNamespaceScoped, checkPermission, createContextFactory, createNewEntry, deepMerge, deleteEntry, feedbackIcons, filterIfApiInstanceNamespaceScoped, filterIfBuiltInInstanceNamespaceScoped, filterSelectOptions, floorToDecimal, getAllPathsFromObj, getApiResourceSingle, getApiResourceTypes, getApiResourceTypesByApiGroup, getApiResources, getBackLinkToTable, getBuiltinResourceSingle, getBuiltinResourceTypes, getBuiltinResources, getBuiltinTreeData, getClusterList, getCrdData, getCrdResourceSingle, getCrdResources, getDirectUnknownResource, getEnrichedColumns, getEnrichedColumnsWithControls, getGroupsByCategory, getKinds, getLinkToApiForm, getLinkToBuiltinForm, getLinkToForm, getObjectFormItemsDraft, getPrefixSubarrays, getSortedKinds, getSortedKindsAll, getStringByName, getSwagger, getUppercase, groupsToTreeData, hslFromString, isFlatObject, isMultilineFromYaml, isMultilineString, kindByGvr, namespacedByGvr, normalizeValuesForQuotasToNumber, parseQuotaValue, parseQuotaValueCpu, parseQuotaValueMemoryAndStorage, pluralByKind, prepareDataForManageableBreadcrumbs, prepareDataForManageableSidebar, prepareTemplate, prepareUrlsToFetchForDynamicRenderer, updateEntry, useApiResourceSingle, useApiResourceTypesByGroup, useApiResources, useApisResourceTypes, useBuiltinResourceSingle, useBuiltinResourceTypes, useBuiltinResources, useClusterList, useCrdData, useCrdResourceSingle, useCrdResources, useDirectUnknownResource, useInfiniteSentinel, useK8sSmartResource, useK8sVerbs, useListWatch, usePermissions };
|
|
53472
53549
|
//# sourceMappingURL=openapi-k8s-toolkit.es.js.map
|