pollination-react-io 1.16.3 → 1.16.5

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.
@@ -5,7 +5,8 @@ export interface StudyCardProps {
5
5
  projectOwner: string;
6
6
  projectName: string;
7
7
  study: CloudJob;
8
+ runList?: boolean;
8
9
  style?: CSSProperties;
9
10
  authUser?: UserPrivate;
10
- client: APIClient;
11
+ client?: APIClient;
11
12
  }
@@ -1,8 +1,8 @@
1
- import type { CloudJob } from '@pollination-solutions/pollination-sdk';
1
+ import type { CloudJob, CloudJobList, JobStatusEnum } from '@pollination-solutions/pollination-sdk';
2
2
  import { APIClient } from './useAPIClient';
3
3
  export declare const useJobs: (client: APIClient) => {
4
- listJobs: (projectOwner: string, projectName: string) => Promise<any>;
5
- fetchJob: (owner: string, name: string, jobId: string) => Promise<CloudJob>;
4
+ listJobs: (projectOwner: string, projectName: string, jobIds?: string[], page?: number, perPage?: number, status?: JobStatusEnum) => Promise<CloudJobList>;
5
+ fetchJob: (projectOwner: string, projectName: string, jobId: string) => Promise<CloudJob>;
6
6
  deleteJob: (projectOwner: string, projectName: string, jobId: string) => Promise<any>;
7
7
  cancelJob: (projectOwner: string, projectName: string, jobId: string) => Promise<any>;
8
8
  };
@@ -24020,26 +24020,30 @@ var useHbjsontoVTK = function () {
24020
24020
  };
24021
24021
 
24022
24022
  var useJobs = function (client) {
24023
- var listJobs = useCallback(function (projectOwner, projectName) {
24023
+ var listJobs = useCallback(function (projectOwner, projectName, jobIds, page, perPage, status) {
24024
24024
  if (!client || !client.jobs)
24025
24025
  return;
24026
24026
  return client.jobs
24027
24027
  .listJobs({
24028
24028
  owner: projectOwner,
24029
- name: projectName
24029
+ name: projectName,
24030
+ ids: jobIds,
24031
+ status: status,
24032
+ page: page !== null && page !== void 0 ? page : 1,
24033
+ perPage: perPage !== null && perPage !== void 0 ? perPage : 10,
24030
24034
  })
24031
24035
  .then(function (_a) {
24032
24036
  var data = _a.data;
24033
24037
  return data;
24034
24038
  });
24035
24039
  }, [client]);
24036
- var fetchJob = useCallback(function (owner, name, jobId) {
24040
+ var fetchJob = useCallback(function (projectOwner, projectName, jobId) {
24037
24041
  if (!client || !client.jobs)
24038
24042
  return;
24039
24043
  return client.jobs
24040
24044
  .getJob({
24041
- owner: owner,
24042
- name: name,
24045
+ owner: projectOwner,
24046
+ name: projectName,
24043
24047
  jobId: jobId
24044
24048
  })
24045
24049
  .then(function (_a) {
@@ -24234,7 +24238,7 @@ var getSummaryColor = function (status) {
24234
24238
  };
24235
24239
  var getDuration = function (run) {
24236
24240
  if (!run)
24237
- return dayjs_min.duration({ seconds: 1 });
24241
+ return dayjs_min.duration({ seconds: 0 });
24238
24242
  var status = run.status;
24239
24243
  var end = status.finished_at ? dayjs_min(status.finished_at) : dayjs_min().utc();
24240
24244
  return status.finished_at ?
@@ -42084,7 +42088,8 @@ var RunCard = function (_a) {
42084
42088
  display: 'flex',
42085
42089
  justifyContent: 'end',
42086
42090
  } },
42087
- " ", "Run ".concat(run.status.status, "."))),
42091
+ " ",
42092
+ run.status.status)),
42088
42093
  React__default.createElement(Tag, { style: {
42089
42094
  color: statusMap[run.status.status].color,
42090
42095
  borderColor: statusMap[run.status.status].color,
@@ -42122,7 +42127,8 @@ var RunCard = function (_a) {
42122
42127
  display: 'inline-block'
42123
42128
  } }, run.id),
42124
42129
  React__default.createElement("div", { style: {
42125
- display: 'flex'
42130
+ display: 'flex',
42131
+ alignItems: 'center'
42126
42132
  } },
42127
42133
  React__default.createElement(Dropdown, { trigger: React__default.createElement("button", { type: 'button', style: {
42128
42134
  width: 32,
@@ -42139,7 +42145,7 @@ var RunCard = function (_a) {
42139
42145
  {
42140
42146
  options: [{
42141
42147
  type: 'button',
42142
- id: 'cancel-study',
42148
+ id: 'cancel-run',
42143
42149
  label: 'Cancel',
42144
42150
  icon: React__default.createElement(XOctagon$1, null),
42145
42151
  disabled: typeof run.status.finished_at === 'string',
@@ -42153,12 +42159,11 @@ var RunCard = function (_a) {
42153
42159
  React__default.createElement("div", { style: {
42154
42160
  display: 'flex',
42155
42161
  flexDirection: 'column',
42156
- gap: 4
42162
+ gap: 8
42157
42163
  } },
42158
42164
  React__default.createElement("div", { style: {
42159
42165
  display: 'flex',
42160
42166
  flexDirection: 'column',
42161
- gap: 8
42162
42167
  } },
42163
42168
  React__default.createElement("span", { style: {
42164
42169
  fontWeight: 600,
@@ -42178,7 +42183,6 @@ var RunCard = function (_a) {
42178
42183
  React__default.createElement("div", { style: {
42179
42184
  display: 'flex',
42180
42185
  flexDirection: 'column',
42181
- gap: 6
42182
42186
  } },
42183
42187
  React__default.createElement("span", { style: {
42184
42188
  fontWeight: 600,
@@ -42197,7 +42201,6 @@ var RunCard = function (_a) {
42197
42201
  React__default.createElement("div", { style: {
42198
42202
  display: 'flex',
42199
42203
  flexDirection: 'column',
42200
- gap: 6,
42201
42204
  } },
42202
42205
  React__default.createElement("span", { style: {
42203
42206
  fontWeight: 600,
@@ -42269,16 +42272,15 @@ var RunsList = function (_a) {
42269
42272
  cancelRun(projectOwner, projectName, item.id);
42270
42273
  } },
42271
42274
  React__default.createElement(XOctagon$1, null)),
42275
+ React__default.createElement(Link45deg$1, { size: 16, color: statusMap[item.status.status].color }),
42272
42276
  React__default.createElement("a", { href: "/".concat(projectOwner, "/projects/").concat(projectName, "/studies/").concat(jobId, "/runs/").concat(item.id), style: {
42273
42277
  color: statusMap[item.status.status].color
42274
- } },
42275
- React__default.createElement(Link45deg$1, { size: 16, color: statusMap[item.status.status].color }),
42276
- item.status.status),
42278
+ } }, item.status.status),
42277
42279
  React__default.createElement(Tag, { style: {
42278
42280
  color: statusMap[item.status.status].color,
42279
42281
  borderColor: statusMap[item.status.status].color,
42280
42282
  backgroundColor: 'white'
42281
- } }, "".concat(((item.meta.progress.completed / item.meta.progress.total) * 100).toFixed(2), "% Complete"))),
42283
+ } }, "".concat(item.meta.progress.completed, " of ").concat(item.meta.progress.total, " steps complete."))),
42282
42284
  React__default.createElement("div", { style: {
42283
42285
  display: 'grid',
42284
42286
  gridTemplateColumns: '1fr 1fr',
@@ -42313,14 +42315,21 @@ var RunsList = function (_a) {
42313
42315
  width: '100%',
42314
42316
  display: 'flex',
42315
42317
  justifyContent: 'center'
42316
- } }, !runs ? React__default.createElement(ThreeDots$1, null) :
42318
+ } }, !runs ?
42317
42319
  React__default.createElement("span", { style: {
42320
+ height: '22px',
42318
42321
  display: 'flex',
42319
- alignItems: 'center',
42320
- cursor: 'pointer',
42321
- gap: 8
42322
- } }, "".concat(runs.total_count, " Total Runs"),
42323
- runs.total_count > 0 && (isValidating ? React__default.createElement(LoadingIcon, { size: 16 }) : React__default.createElement(ChevronCompactDown$1, null))))),
42322
+ alignItems: 'center'
42323
+ } },
42324
+ React__default.createElement(ThreeDots$1, null))
42325
+ :
42326
+ React__default.createElement("span", { style: {
42327
+ display: 'flex',
42328
+ alignItems: 'center',
42329
+ cursor: 'pointer',
42330
+ gap: 8
42331
+ } }, "".concat(runs.total_count, " Total Runs"),
42332
+ runs.total_count > 0 && (isValidating ? React__default.createElement(LoadingIcon, { size: 16 }) : React__default.createElement(ChevronCompactDown$1, null))))),
42324
42333
  runs &&
42325
42334
  React__default.createElement($409067139f391064$export$7c6e2c02157bb7d2, { className: 'collapse-content' },
42326
42335
  React__default.createElement("div", { style: {
@@ -43174,14 +43183,14 @@ var getStudyDuration = function (study) {
43174
43183
  dayjs_min.duration(end.diff(dayjs_min(study.status.started_at).utc(true)));
43175
43184
  };
43176
43185
  var StudyCard = function (_a) {
43177
- var _b;
43178
- var projectName = _a.projectName, projectOwner = _a.projectOwner, _study = _a.study, style = _a.style, authUser = _a.authUser, client = _a.client;
43179
- var _c = useJobs(client), cancelJob = _c.cancelJob, deleteJob = _c.deleteJob, fetchJob = _c.fetchJob;
43180
- var _d = useSWR(authUser ? [projectOwner, projectName, _study.id] : undefined, fetchJob, {
43186
+ var _b, _c;
43187
+ var projectName = _a.projectName, projectOwner = _a.projectOwner, _study = _a.study, runList = _a.runList, style = _a.style, authUser = _a.authUser, client = _a.client;
43188
+ var _d = useJobs(client), cancelJob = _d.cancelJob, deleteJob = _d.deleteJob, fetchJob = _d.fetchJob;
43189
+ var _e = useSWR(authUser ? [projectOwner, projectName, _study.id] : undefined, fetchJob, {
43181
43190
  revalidateOnFocus: false,
43182
43191
  refreshInterval: _study.status.finished_at ? undefined : 5000,
43183
43192
  fallbackData: _study
43184
- }), study = _d.data; _d.error; var isValidating = _d.isValidating;
43193
+ }), study = _e.data; _e.error; var isValidating = _e.isValidating;
43185
43194
  var status = useMemo(function () {
43186
43195
  var _a, _b, _c, _d, _e;
43187
43196
  if (!study)
@@ -43194,7 +43203,7 @@ var StudyCard = function (_a) {
43194
43203
  canceled: (_e = study.status.runs_cancelled) !== null && _e !== void 0 ? _e : 0,
43195
43204
  });
43196
43205
  }, [study]);
43197
- var _e = useState(getStudyDuration(study)), duration = _e[0], setDuration = _e[1];
43206
+ var _f = useState(getStudyDuration(study)), duration = _f[0], setDuration = _f[1];
43198
43207
  useEffect(function () {
43199
43208
  if (study.status.finished_at) {
43200
43209
  setDuration(getStudyDuration(study));
@@ -43218,24 +43227,24 @@ var StudyCard = function (_a) {
43218
43227
  alignContent: 'center',
43219
43228
  alignItems: 'center',
43220
43229
  flexDirection: 'column',
43221
- gap: 6,
43230
+ gap: 18,
43222
43231
  } },
43223
43232
  React__default.createElement("div", { style: {
43224
43233
  display: 'flex',
43225
43234
  flexDirection: 'column',
43226
- gap: 4
43227
43235
  } }, Object.entries(status).map(function (_a, i) {
43228
43236
  var key = _a[0], val = _a[1];
43229
43237
  return val > 0 &&
43230
43238
  React__default.createElement("span", { key: "".concat(key, "-").concat(i), style: {
43231
- fontSize: '1.4rem',
43239
+ fontSize: '1.25rem',
43240
+ lineHeight: '1.5rem',
43232
43241
  fontWeight: '500',
43233
43242
  color: statusMap[key].color,
43234
43243
  borderRadius: 999,
43235
43244
  display: 'flex',
43236
43245
  justifyContent: 'end',
43237
43246
  } },
43238
- " ", "".concat(val, " run").concat(val === 1 ? '' : 's', " ").concat(key, "."));
43247
+ " ", "".concat(val, " ").concat(key, "."));
43239
43248
  })),
43240
43249
  React__default.createElement(Tag, { style: {
43241
43250
  color: getSummaryColor(status),
@@ -43250,6 +43259,7 @@ var StudyCard = function (_a) {
43250
43259
  flexDirection: 'column',
43251
43260
  justifyContent: 'space-between',
43252
43261
  padding: '10px 18px',
43262
+ gap: 12
43253
43263
  } },
43254
43264
  React__default.createElement("div", { style: {
43255
43265
  display: 'grid',
@@ -43273,9 +43283,10 @@ var StudyCard = function (_a) {
43273
43283
  overflow: 'hidden',
43274
43284
  textOverflow: 'ellipsis',
43275
43285
  display: 'inline-block'
43276
- } }, study.spec.name),
43286
+ } }, (_b = study.spec.name) !== null && _b !== void 0 ? _b : "Study: ".concat(study.id)),
43277
43287
  React__default.createElement("div", { style: {
43278
- display: 'flex'
43288
+ display: 'flex',
43289
+ alignItems: 'center'
43279
43290
  } },
43280
43291
  React__default.createElement(Dropdown, { trigger: React__default.createElement("button", { type: 'button', style: {
43281
43292
  width: 32,
@@ -43286,7 +43297,8 @@ var StudyCard = function (_a) {
43286
43297
  borderRadius: 9999,
43287
43298
  border: '1px solid #d0d7de',
43288
43299
  backgroundColor: 'white',
43289
- outlineColor: 'var(--primary)'
43300
+ outlineColor: 'var(--primary)',
43301
+ cursor: 'pointer'
43290
43302
  } }, isValidating ? React__default.createElement(LoadingIcon, null) : React__default.createElement(Gear$1, null)), optionGroups: [
43291
43303
  {
43292
43304
  options: [{
@@ -43313,7 +43325,10 @@ var StudyCard = function (_a) {
43313
43325
  flexDirection: 'column',
43314
43326
  gap: 8
43315
43327
  } },
43316
- React__default.createElement("div", null,
43328
+ React__default.createElement("div", { style: {
43329
+ display: 'flex',
43330
+ flexDirection: 'column',
43331
+ } },
43317
43332
  React__default.createElement("span", { style: {
43318
43333
  fontWeight: 600,
43319
43334
  } }, "Recipe"),
@@ -43332,7 +43347,6 @@ var StudyCard = function (_a) {
43332
43347
  React__default.createElement("div", { style: {
43333
43348
  display: 'flex',
43334
43349
  flexDirection: 'column',
43335
- gap: 6
43336
43350
  } },
43337
43351
  React__default.createElement("span", { style: {
43338
43352
  fontWeight: 600,
@@ -43347,14 +43361,15 @@ var StudyCard = function (_a) {
43347
43361
  React__default.createElement("a", { href: "/".concat(study.author.name), target: '_blank', rel: "noreferrer", style: {
43348
43362
  fontSize: '1.125rem',
43349
43363
  color: 'var(--primary)'
43350
- } }, (_b = study.author.display_name) !== null && _b !== void 0 ? _b : study.author.name))))),
43351
- React__default.createElement("div", { style: {
43352
- width: '100%',
43353
- gridArea: '2 / 1 / 2 / 3',
43354
- borderTop: '1px solid #d0d7de',
43355
- padding: '4px 8px'
43356
- } },
43357
- React__default.createElement(RunsList, { projectOwner: projectOwner, projectName: projectName, jobId: [study.id], subscribe: !study.status.finished_at, client: client, authUser: authUser }))));
43364
+ } }, (_c = study.author.display_name) !== null && _c !== void 0 ? _c : study.author.name))))),
43365
+ runList &&
43366
+ React__default.createElement("div", { style: {
43367
+ width: '100%',
43368
+ gridArea: '2 / 1 / 2 / 3',
43369
+ borderTop: '1px solid #d0d7de',
43370
+ padding: '4px 8px'
43371
+ } },
43372
+ React__default.createElement(RunsList, { projectOwner: projectOwner, projectName: projectName, jobId: [study.id], subscribe: !study.status.finished_at, client: client, authUser: authUser }))));
43358
43373
  };
43359
43374
 
43360
43375
  export { APIClient, AuthUser, ComboFileSelector, ConfigureLocalRun, CreateStudy, GetGeometry, GetModel, RecipeInputsForm, RunCard, SelectAccount, SelectCloudArtifacts, SelectLocalArtifacts, SelectProject, SelectRecipe, SelectRun, SelectStudy, SendGeometry, SendModel, SendResults, StudyCard, checkDotNet, checkRuby, formatBytes, getDuration, getHost, getSummaryColor, recipeLinkFromSource, sendMessageDotNet, sendMessageRuby, statusMap, useAPIClient, useArtifacts, useCreateStudy, useGetGeometry, useGetHbjson, useHbjsontoVTK, useJobs, useManageSettings, useRunCommand, useRuns, useSendHbjson, useSendMessage };