powr-sdk-web 4.1.7 → 4.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/dist/tasks/index.js +138 -7
  2. package/package.json +1 -1
@@ -218,7 +218,11 @@ var PowrBaseTasks = function PowrBaseTasks(_ref) {
218
218
  _useState10 = _slicedToArray(_useState1, 2),
219
219
  editingTask = _useState10[0],
220
220
  setEditingTask = _useState10[1];
221
- var _useState11 = (0, _react.useState)({
221
+ var _useState11 = (0, _react.useState)(new Set()),
222
+ _useState12 = _slicedToArray(_useState11, 2),
223
+ expandedWorkflows = _useState12[0],
224
+ setExpandedWorkflows = _useState12[1];
225
+ var _useState13 = (0, _react.useState)({
222
226
  name: '',
223
227
  description: '',
224
228
  cronExpression: '',
@@ -227,9 +231,9 @@ var PowrBaseTasks = function PowrBaseTasks(_ref) {
227
231
  params: {},
228
232
  isActive: true
229
233
  }),
230
- _useState12 = _slicedToArray(_useState11, 2),
231
- formData = _useState12[0],
232
- setFormData = _useState12[1];
234
+ _useState14 = _slicedToArray(_useState13, 2),
235
+ formData = _useState14[0],
236
+ setFormData = _useState14[1];
233
237
  (0, _react.useEffect)(function () {
234
238
  fetchTasks();
235
239
  fetchTools();
@@ -517,6 +521,93 @@ var PowrBaseTasks = function PowrBaseTasks(_ref) {
517
521
  });
518
522
  return (action === null || action === void 0 ? void 0 : action.name) || actionId;
519
523
  };
524
+ var toggleWorkflowExpansion = function toggleWorkflowExpansion(taskId) {
525
+ setExpandedWorkflows(function (prev) {
526
+ var newSet = new Set(prev);
527
+ if (newSet.has(taskId)) {
528
+ newSet["delete"](taskId);
529
+ } else {
530
+ newSet.add(taskId);
531
+ }
532
+ return newSet;
533
+ });
534
+ };
535
+ var renderWorkflowSteps = function renderWorkflowSteps(task) {
536
+ if (!task.steps || task.steps.length === 0) {
537
+ return /*#__PURE__*/_react["default"].createElement("div", {
538
+ style: {
539
+ color: '#6b7280',
540
+ fontSize: '0.8rem'
541
+ }
542
+ }, "No steps defined");
543
+ }
544
+ return /*#__PURE__*/_react["default"].createElement("div", {
545
+ style: {
546
+ marginTop: '8px',
547
+ padding: '12px',
548
+ background: '#f8fafc',
549
+ borderRadius: '8px',
550
+ border: '1px solid #e2e8f0'
551
+ }
552
+ }, /*#__PURE__*/_react["default"].createElement("div", {
553
+ style: {
554
+ fontSize: '0.75rem',
555
+ fontWeight: '600',
556
+ color: '#374151',
557
+ marginBottom: '8px',
558
+ textTransform: 'uppercase',
559
+ letterSpacing: '0.05em'
560
+ }
561
+ }, "Workflow Steps"), task.steps.map(function (step, index) {
562
+ return /*#__PURE__*/_react["default"].createElement("div", {
563
+ key: step.id || index,
564
+ style: {
565
+ padding: '8px 12px',
566
+ margin: '4px 0',
567
+ background: 'white',
568
+ borderRadius: '6px',
569
+ border: '1px solid #e2e8f0',
570
+ fontSize: '0.8rem'
571
+ }
572
+ }, /*#__PURE__*/_react["default"].createElement("div", {
573
+ style: {
574
+ display: 'flex',
575
+ alignItems: 'center',
576
+ gap: '8px',
577
+ marginBottom: '4px'
578
+ }
579
+ }, /*#__PURE__*/_react["default"].createElement("span", {
580
+ style: {
581
+ padding: '2px 6px',
582
+ borderRadius: '4px',
583
+ fontSize: '0.7rem',
584
+ fontWeight: '600',
585
+ background: step.type === 'condition' ? '#dbeafe' : '#dcfce7',
586
+ color: step.type === 'condition' ? '#1d4ed8' : '#166534'
587
+ }
588
+ }, step.type === 'condition' ? '🔍' : '⚡', " ", step.type), /*#__PURE__*/_react["default"].createElement("span", {
589
+ style: {
590
+ fontWeight: '500',
591
+ color: '#374151'
592
+ }
593
+ }, "Step ", index + 1)), /*#__PURE__*/_react["default"].createElement("div", {
594
+ style: {
595
+ color: '#6b7280',
596
+ marginBottom: '4px'
597
+ }
598
+ }, step.description || "".concat(getToolName(step.toolId), " \u2192 ").concat(getActionName(step.toolId, step.actionId))), step.condition && /*#__PURE__*/_react["default"].createElement("div", {
599
+ style: {
600
+ fontSize: '0.7rem',
601
+ color: '#3b82f6',
602
+ fontStyle: 'italic',
603
+ background: '#eff6ff',
604
+ padding: '2px 6px',
605
+ borderRadius: '3px',
606
+ display: 'inline-block'
607
+ }
608
+ }, "Condition: ", step.condition));
609
+ }));
610
+ };
520
611
  var formatCronExpression = function formatCronExpression(cron) {
521
612
  if (!cron) return 'Manual';
522
613
  var parts = cron.split(' ');
@@ -531,6 +622,27 @@ var PowrBaseTasks = function PowrBaseTasks(_ref) {
531
622
  }
532
623
  return cron;
533
624
  };
625
+ var formatSchedule = function formatSchedule(schedule) {
626
+ if (!schedule) return 'Manual';
627
+
628
+ // Check if it's a cron expression (contains spaces and asterisks)
629
+ if (schedule.includes(' ') && schedule.includes('*')) {
630
+ return formatCronExpression(schedule);
631
+ }
632
+
633
+ // Check if it's an ISO timestamp
634
+ try {
635
+ var date = new Date(schedule);
636
+ if (!isNaN(date.getTime())) {
637
+ return date.toLocaleString();
638
+ }
639
+ } catch (e) {
640
+ // Not a valid date
641
+ }
642
+
643
+ // Fallback to showing the raw schedule
644
+ return schedule;
645
+ };
534
646
  var formatDate = function formatDate(dateString) {
535
647
  if (!dateString) return 'Never';
536
648
  return new Date(dateString).toLocaleString();
@@ -609,7 +721,26 @@ var PowrBaseTasks = function PowrBaseTasks(_ref) {
609
721
  fontSize: '0.8rem',
610
722
  fontWeight: '500'
611
723
  }
612
- }, task.type === 'workflow' ? /*#__PURE__*/_react["default"].createElement("span", null, "\uD83D\uDD04 Workflow (", ((_task$steps = task.steps) === null || _task$steps === void 0 ? void 0 : _task$steps.length) || 0, " steps)") : /*#__PURE__*/_react["default"].createElement("span", null, getToolName(task.toolId || 'Unknown'), " \u2192 ", getActionName(task.toolId || 'unknown', task.actionId || 'unknown'))))), /*#__PURE__*/_react["default"].createElement("td", {
724
+ }, task.type === 'workflow' ? /*#__PURE__*/_react["default"].createElement("div", {
725
+ style: {
726
+ display: 'flex',
727
+ alignItems: 'center',
728
+ gap: '8px'
729
+ }
730
+ }, /*#__PURE__*/_react["default"].createElement("span", null, "\uD83D\uDD04 Workflow (", ((_task$steps = task.steps) === null || _task$steps === void 0 ? void 0 : _task$steps.length) || 0, " steps)"), /*#__PURE__*/_react["default"].createElement("button", {
731
+ onClick: function onClick() {
732
+ return toggleWorkflowExpansion(task._id);
733
+ },
734
+ style: {
735
+ background: 'none',
736
+ border: 'none',
737
+ cursor: 'pointer',
738
+ padding: '2px',
739
+ color: '#3b82f6',
740
+ fontSize: '0.7rem'
741
+ },
742
+ title: expandedWorkflows.has(task._id) ? 'Hide steps' : 'Show steps'
743
+ }, expandedWorkflows.has(task._id) ? '▼' : '▶')) : /*#__PURE__*/_react["default"].createElement("span", null, getToolName(task.toolId || 'Unknown'), " \u2192 ", getActionName(task.toolId || 'unknown', task.actionId || 'unknown'))), task.type === 'workflow' && expandedWorkflows.has(task._id) && renderWorkflowSteps(task))), /*#__PURE__*/_react["default"].createElement("td", {
613
744
  style: styles.tableCell
614
745
  }, /*#__PURE__*/_react["default"].createElement("div", {
615
746
  style: {
@@ -620,14 +751,14 @@ var PowrBaseTasks = function PowrBaseTasks(_ref) {
620
751
  padding: '4px 8px',
621
752
  borderRadius: '4px'
622
753
  }
623
- }, task.type === 'workflow' ? /*#__PURE__*/_react["default"].createElement("span", null, "\uD83D\uDD50 ", task.schedule || 'Manual') : /*#__PURE__*/_react["default"].createElement("span", null, formatCronExpression(task.cronExpression)))), /*#__PURE__*/_react["default"].createElement("td", {
754
+ }, task.type === 'workflow' ? /*#__PURE__*/_react["default"].createElement("span", null, "\uD83D\uDD50 ", formatSchedule(task.scheduledFor || task.schedule)) : /*#__PURE__*/_react["default"].createElement("span", null, formatCronExpression(task.cronExpression)))), /*#__PURE__*/_react["default"].createElement("td", {
624
755
  style: styles.tableCell
625
756
  }, /*#__PURE__*/_react["default"].createElement("span", {
626
757
  style: {
627
758
  color: '#6b7280',
628
759
  fontSize: '0.85rem'
629
760
  }
630
- }, formatDate(task.lastRun || task.updatedAt))), /*#__PURE__*/_react["default"].createElement("td", {
761
+ }, task.lastRun ? formatDate(task.lastRun) : 'Never')), /*#__PURE__*/_react["default"].createElement("td", {
631
762
  style: styles.tableCell
632
763
  }, /*#__PURE__*/_react["default"].createElement("span", {
633
764
  style: _objectSpread(_objectSpread({}, styles.statusBadge), task.isActive !== false ? styles.statusActive : styles.statusInactive)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "powr-sdk-web",
3
- "version": "4.1.7",
3
+ "version": "4.1.8",
4
4
  "main": "dist/index.js",
5
5
  "scripts": {
6
6
  "build": "babel src -d dist --copy-files",