@prorobotech/openapi-k8s-toolkit 0.0.1-alpha.55 → 0.0.1-alpha.57

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.
@@ -8393,7 +8393,8 @@ const ContentContainer = st.div`
8393
8393
  border-radius: 6px;
8394
8394
  background-color: ${({ $bgColor }) => $bgColor};
8395
8395
  width: 100%;
8396
- height: 100%;
8396
+ height: ${({ $maxHeight }) => $maxHeight || "100%"};
8397
+ overflow-y: auto;
8397
8398
  padding: 24px;
8398
8399
  flex-grow: ${({ $flexGrow }) => $flexGrow};
8399
8400
  display: ${({ $displayFlex }) => $displayFlex ? "flex" : "block"};
@@ -8403,7 +8404,7 @@ const Styled$e = {
8403
8404
  ContentContainer
8404
8405
  };
8405
8406
 
8406
- const ContentCard$1 = ({ children, flexGrow, displayFlex, flexFlow }) => {
8407
+ const ContentCard$1 = ({ children, flexGrow, displayFlex, flexFlow, maxHeight }) => {
8407
8408
  const { token } = theme.useToken();
8408
8409
  return /* @__PURE__ */ jsxRuntimeExports.jsx(
8409
8410
  Styled$e.ContentContainer,
@@ -8413,6 +8414,7 @@ const ContentCard$1 = ({ children, flexGrow, displayFlex, flexFlow }) => {
8413
8414
  $borderColor: token.colorBorder,
8414
8415
  $displayFlex: displayFlex,
8415
8416
  $flexFlow: flexFlow,
8417
+ $maxHeight: maxHeight,
8416
8418
  children
8417
8419
  }
8418
8420
  );
@@ -26341,7 +26343,7 @@ const getEnrichedColumnsWithControls = ({
26341
26343
  );
26342
26344
  },
26343
26345
  icon: editIcon || /* @__PURE__ */ jsxRuntimeExports.jsx(EditOutlined, { size: 14 }),
26344
- disabled: value.permissions && value.permissions.canUpdate ? value.permissions?.canUpdate : false
26346
+ disabled: value.permissions && value.permissions.canUpdate ? !value.permissions?.canUpdate : false
26345
26347
  }
26346
26348
  ),
26347
26349
  /* @__PURE__ */ jsxRuntimeExports.jsx(
@@ -26357,7 +26359,7 @@ const getEnrichedColumnsWithControls = ({
26357
26359
  );
26358
26360
  },
26359
26361
  icon: deleteIcon || /* @__PURE__ */ jsxRuntimeExports.jsx(DeleteOutlined, { size: 14 }),
26360
- disabled: value.permissions && value.permissions.canDelete ? value.permissions?.canDelete : false
26362
+ disabled: value.permissions && value.permissions.canDelete ? !value.permissions?.canDelete : false
26361
26363
  }
26362
26364
  )
26363
26365
  ] });
@@ -26373,6 +26375,7 @@ const EnrichedTable$1 = ({
26373
26375
  columns,
26374
26376
  pathToNavigate,
26375
26377
  recordKeysForNavigation,
26378
+ recordKeysForNavigationSecond,
26376
26379
  additionalPrinterColumnsUndefinedValues,
26377
26380
  additionalPrinterColumnsTrimLengths,
26378
26381
  additionalPrinterColumnsColWidths,
@@ -26446,8 +26449,10 @@ const EnrichedTable$1 = ({
26446
26449
  onClick: () => {
26447
26450
  if (pathToNavigate && recordKeysForNavigation) {
26448
26451
  const recordValueRaw = lodashExports.get(record, recordKeysForNavigation);
26452
+ const recordValueRawSecond = recordKeysForNavigationSecond ? lodashExports.get(record, recordKeysForNavigationSecond) : "no-second-record-keys";
26449
26453
  const recordValue = typeof recordValueRaw === "string" ? recordValueRaw : JSON.stringify(recordValueRaw);
26450
- const newPath = pathToNavigate.replaceAll("~recordValue~", recordValue);
26454
+ const recordValueSecond = typeof recordValueRawSecond === "string" ? recordValueRawSecond : JSON.stringify(recordValueRawSecond);
26455
+ const newPath = pathToNavigate.replaceAll("~recordValue~", recordValue).replaceAll("~recordValueSecond~", recordValueSecond);
26451
26456
  navigate(newPath);
26452
26457
  }
26453
26458
  }
@@ -33429,6 +33434,7 @@ const EnrichedTableProvider = ({
33429
33434
  columns,
33430
33435
  pathToNavigate: preparedProps.pathToNavigate,
33431
33436
  recordKeysForNavigation: preparedProps.recordKeysForNavigation,
33437
+ recordKeysForNavigationSecond: preparedProps.recordKeysForNavigationSecond,
33432
33438
  additionalPrinterColumnsUndefinedValues: preparedProps.additionalPrinterColumnsUndefinedValues,
33433
33439
  additionalPrinterColumnsTrimLengths: preparedProps.additionalPrinterColumnsTrimLengths,
33434
33440
  additionalPrinterColumnsColWidths: preparedProps.additionalPrinterColumnsColWidths,
@@ -45250,12 +45256,39 @@ const useTheme = () => {
45250
45256
  return useContext(ThemeContext);
45251
45257
  };
45252
45258
 
45259
+ const parseMutliqueryText = ({ text, multiQueryData }) => {
45260
+ if (!text) return "";
45261
+ return text.replace(/\{reqs\[(\d+)\]\[((?:\s*['"][^'"]+['"]\s*,?)+)\]\}/g, (match, reqIndexStr, rawPath) => {
45262
+ try {
45263
+ const reqIndex = parseInt(reqIndexStr, 10);
45264
+ const path = Array.from(rawPath.matchAll(/['"]([^'"]+)['"]/g)).map(
45265
+ (m) => m[1]
45266
+ );
45267
+ const value = _$1.get(multiQueryData[`req${reqIndex}`], path);
45268
+ return value != null ? String(value) : "";
45269
+ } catch {
45270
+ return match;
45271
+ }
45272
+ });
45273
+ };
45274
+ const serializeLabels = (input) => {
45275
+ if (typeof input !== "object" || input === null || Array.isArray(input) || Object.getPrototypeOf(input) !== Object.prototype) {
45276
+ return "Expected a plain object";
45277
+ }
45278
+ const entries = Object.entries(input);
45279
+ if (!entries.map(([, v]) => v).every((v) => typeof v === "string" || typeof v === "number")) {
45280
+ return "All values must be string or number";
45281
+ }
45282
+ return encodeURIComponent(entries.map(([k, v]) => `${k}=${v}`).join(","));
45283
+ };
45284
+
45253
45285
  const EnrichedTable = ({
45254
45286
  data,
45255
45287
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
45256
45288
  children
45257
45289
  }) => {
45258
- const { id, fetchUrl, clusterNamePartOfUrl, ...props } = data;
45290
+ const { data: multiQueryData, isLoading: isMultiqueryLoading } = useMultiQuery();
45291
+ const { id, fetchUrl, pathToItems, clusterNamePartOfUrl, labelsSelector, fieldSelector, ...props } = data;
45259
45292
  const theme = useTheme();
45260
45293
  const partsOfUrl = usePartsOfUrl();
45261
45294
  const replaceValues = partsOfUrl.partsOfUrl.reduce((acc, value, index) => {
@@ -45270,14 +45303,41 @@ const EnrichedTable = ({
45270
45303
  template: fetchUrl,
45271
45304
  replaceValues
45272
45305
  });
45306
+ let labelsSuffix;
45307
+ if (labelsSelector) {
45308
+ const parsedObject = Object.fromEntries(
45309
+ Object.entries(labelsSelector).map(
45310
+ ([key, value]) => [key, prepareTemplate({ template: parseMutliqueryText({ text: value, multiQueryData }), replaceValues })]
45311
+ )
45312
+ );
45313
+ const serializedLabels = serializeLabels(parsedObject);
45314
+ labelsSuffix = serializeLabels.length > 0 ? `?labelSelector=${serializedLabels}` : void 0;
45315
+ }
45316
+ let fieldSelectorSuffix;
45317
+ if (fieldSelector) {
45318
+ const preparedFieldSelectorValueText = parseMutliqueryText({ text: fieldSelector?.parsedText, multiQueryData });
45319
+ const preparedFieldSelectorValueTextWithPartsOfUrl = prepareTemplate({
45320
+ template: preparedFieldSelectorValueText,
45321
+ replaceValues
45322
+ });
45323
+ const preparedSelector = encodeURIComponent(
45324
+ `${fieldSelector.fieldName}=${preparedFieldSelectorValueTextWithPartsOfUrl}`
45325
+ );
45326
+ const prefix = labelsSelector ? "&fieldSelector=" : "?fieldSelector=";
45327
+ fieldSelectorSuffix = `${prefix}${preparedSelector}`;
45328
+ }
45273
45329
  const {
45274
45330
  data: fetchedData,
45275
45331
  isLoading: isFetchedDataLoading,
45276
45332
  error: fetchedDataError
45277
45333
  } = useDirectUnknownResource({
45278
- uri: fetchUrlPrepared,
45279
- queryKey: [fetchUrlPrepared]
45334
+ uri: `${fetchUrlPrepared}${labelsSuffix || ""}${fieldSelectorSuffix || ""}`,
45335
+ queryKey: [fetchUrlPrepared],
45336
+ isEnabled: !isMultiqueryLoading
45280
45337
  });
45338
+ if (isMultiqueryLoading) {
45339
+ return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "Loading multiquery" });
45340
+ }
45281
45341
  if (!fetchedData) {
45282
45342
  return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { children: "No data has been fetched" });
45283
45343
  }
@@ -45290,6 +45350,13 @@ const EnrichedTable = ({
45290
45350
  JSON.stringify(fetchedDataError)
45291
45351
  ] });
45292
45352
  }
45353
+ const items = _$1.get(fetchedData, pathToItems);
45354
+ if (!items) {
45355
+ return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { children: [
45356
+ "No data on this path ",
45357
+ JSON.stringify(pathToItems)
45358
+ ] });
45359
+ }
45293
45360
  return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
45294
45361
  /* @__PURE__ */ jsxRuntimeExports.jsx(
45295
45362
  EnrichedTableProvider,
@@ -45297,7 +45364,7 @@ const EnrichedTable = ({
45297
45364
  tableMappingsReplaceValues: replaceValues,
45298
45365
  cluster: clusterName,
45299
45366
  theme,
45300
- dataItems: fetchedData.items,
45367
+ dataItems: items,
45301
45368
  tableProps: {
45302
45369
  borderless: true,
45303
45370
  paginationPosition: ["bottomRight"],
@@ -45306,7 +45373,8 @@ const EnrichedTable = ({
45306
45373
  deleteIcon: /* @__PURE__ */ jsxRuntimeExports.jsx(DeleteIcon, {}),
45307
45374
  disablePagination: true
45308
45375
  },
45309
- ...props
45376
+ ...props,
45377
+ withoutControls: true
45310
45378
  }
45311
45379
  ),
45312
45380
  children