@aglyn/plugins-workflows 1.0.0-beta.143
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/LICENSE +201 -0
- package/README.md +52 -0
- package/package.json +53 -0
- package/src/index.d.ts +18 -0
- package/src/index.js +19 -0
- package/src/index.js.map +1 -0
- package/src/lib/components/automation-step-fields.component.d.ts +74 -0
- package/src/lib/components/automation-step-fields.component.js +1210 -0
- package/src/lib/components/automation-step-fields.component.js.map +1 -0
- package/src/lib/components/host-actions-card.component.d.ts +15 -0
- package/src/lib/components/host-actions-card.component.js +1229 -0
- package/src/lib/components/host-actions-card.component.js.map +1 -0
- package/src/lib/components/host-activity-card.component.d.ts +84 -0
- package/src/lib/components/host-activity-card.component.js +280 -0
- package/src/lib/components/host-activity-card.component.js.map +1 -0
- package/src/lib/components/host-run-history-card.component.d.ts +40 -0
- package/src/lib/components/host-run-history-card.component.js +284 -0
- package/src/lib/components/host-run-history-card.component.js.map +1 -0
- package/src/lib/components/host-webhooks-card.component.d.ts +15 -0
- package/src/lib/components/host-webhooks-card.component.js +421 -0
- package/src/lib/components/host-webhooks-card.component.js.map +1 -0
- package/src/lib/components/host-workflows-card.component.d.ts +18 -0
- package/src/lib/components/host-workflows-card.component.js +952 -0
- package/src/lib/components/host-workflows-card.component.js.map +1 -0
- package/src/lib/components/run-quota-line.component.d.ts +27 -0
- package/src/lib/components/run-quota-line.component.js +72 -0
- package/src/lib/components/run-quota-line.component.js.map +1 -0
- package/src/lib/components/use-automation-step-pickers.d.ts +27 -0
- package/src/lib/components/use-automation-step-pickers.js +205 -0
- package/src/lib/components/use-automation-step-pickers.js.map +1 -0
- package/src/lib/components/workflow-zones.d.ts +36 -0
- package/src/lib/components/workflow-zones.js +19 -0
- package/src/lib/components/workflow-zones.js.map +1 -0
- package/src/lib/components/workflows-console-page.d.ts +25 -0
- package/src/lib/components/workflows-console-page.js +112 -0
- package/src/lib/components/workflows-console-page.js.map +1 -0
- package/src/lib/components/workflows-console-sections.d.ts +34 -0
- package/src/lib/components/workflows-console-sections.js +50 -0
- package/src/lib/components/workflows-console-sections.js.map +1 -0
- package/src/lib/constants/bundle-common.d.ts +8 -0
- package/src/lib/constants/bundle-common.js +9 -0
- package/src/lib/constants/bundle-common.js.map +1 -0
- package/src/lib/declarations.server.d.ts +41 -0
- package/src/lib/declarations.server.js +54 -0
- package/src/lib/declarations.server.js.map +1 -0
- package/src/lib/engine/crm-action-steps.d.ts +129 -0
- package/src/lib/engine/crm-action-steps.js +432 -0
- package/src/lib/engine/crm-action-steps.js.map +1 -0
- package/src/lib/engine/flow-enrollments.d.ts +264 -0
- package/src/lib/engine/flow-enrollments.js +386 -0
- package/src/lib/engine/flow-enrollments.js.map +1 -0
- package/src/lib/engine/run-event-actions.d.ts +232 -0
- package/src/lib/engine/run-event-actions.js +1392 -0
- package/src/lib/engine/run-event-actions.js.map +1 -0
- package/src/lib/engine/run-event-automations.d.ts +28 -0
- package/src/lib/engine/run-event-automations.js +37 -0
- package/src/lib/engine/run-event-automations.js.map +1 -0
- package/src/lib/engine/run-event-workflows.d.ts +75 -0
- package/src/lib/engine/run-event-workflows.js +311 -0
- package/src/lib/engine/run-event-workflows.js.map +1 -0
- package/src/lib/engine/workflow-steps.d.ts +107 -0
- package/src/lib/engine/workflow-steps.js +124 -0
- package/src/lib/engine/workflow-steps.js.map +1 -0
- package/src/lib/plugin.d.ts +33 -0
- package/src/lib/plugin.js +94 -0
- package/src/lib/plugin.js.map +1 -0
- package/src/lib/server-automation-drafts.d.ts +90 -0
- package/src/lib/server-automation-drafts.js +429 -0
- package/src/lib/server-automation-drafts.js.map +1 -0
- package/src/lib/server-console.d.ts +27 -0
- package/src/lib/server-console.js +35 -0
- package/src/lib/server-console.js.map +1 -0
- package/src/lib/server.d.ts +29 -0
- package/src/lib/server.js +298 -0
- package/src/lib/server.js.map +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../libs/plugins/workflows/src/lib/components/automation-step-fields.component.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n'use client'\n\n/**\n * ONE STEP EDITOR FOR BOTH AUTOMATION BUILDERS (AGL-3105).\n *\n * A step's fields belong to the step, not to the card the step is edited on.\n * The Actions builder and the Workflows builder both hold an ordered list of\n * steps, and a workflow step may be any server-side Actions step, so the\n * fields it takes — which dataset, which campaign, how long to wait, what to\n * say — are asked here and in one place. A second copy would be two editors\n * of one vocabulary, drifting a field at a time.\n *\n * What the card keeps is the list: what \"Add step\" builds, how many are\n * allowed, and what a kind the Actions vocabulary does not hold looks like —\n * a workflow's function call, handed in as `fields`.\n */\n\nimport {\n CONTACT_LIFECYCLE_STAGE_LABELS,\n CONTACT_LIFECYCLE_STAGES,\n CONTACT_TAG_MAX_LENGTH,\n type ContactLifecycleStage,\n CRM_ACTIVITY_KIND_LABELS,\n CRM_ACTIVITY_KINDS,\n CRM_TASK_KIND_LABELS,\n CRM_TASK_KINDS,\n CRM_TASK_MAX_DUE_DAYS,\n type CrmActivityKind,\n type CrmTaskKind,\n HOST_EVENT_TYPES,\n type HostActionStep,\n type HostActionStepType,\n hostEventLabel,\n isInteractionAttributeAllowed,\n type TriggerConditionOp,\n} from '@aglyn/aglyn'\nimport { automationPlaceholderIn } from '@aglyn/aglyn/app-utils/automation-placeholders'\nimport {\n IconButton,\n MenuItem,\n Stack,\n TextField,\n Typography,\n} from '@mui/material'\nimport type { ReactNode } from 'react'\n\n/**\n * The durations a wait may be set to, from the picker.\n *\n * A select rather than a number field, because minutes are the wrong unit for\n * the thing being chosen: a welcome series is authored in days and nobody\n * wants to compute that three days is 4,320. Every value is inside the\n * validated band, so the picker cannot produce a step the validator refuses —\n * which is the property a free-text duration field would not have.\n */\nconst FLOW_WAIT_PRESETS: ReadonlyArray<{ minutes: number; label: string }> = [\n { minutes: 5, label: '5 minutes' },\n { minutes: 30, label: '30 minutes' },\n { minutes: 60, label: '1 hour' },\n { minutes: 60 * 4, label: '4 hours' },\n { minutes: 60 * 24, label: '1 day' },\n { minutes: 60 * 24 * 2, label: '2 days' },\n { minutes: 60 * 24 * 3, label: '3 days' },\n { minutes: 60 * 24 * 7, label: '1 week' },\n { minutes: 60 * 24 * 14, label: '2 weeks' },\n { minutes: 60 * 24 * 30, label: '30 days' },\n { minutes: 60 * 24 * 60, label: '60 days' },\n { minutes: 60 * 24 * 90, label: '90 days' },\n]\n\n/**\n * The two stored fields a typed teammate reference becomes.\n *\n * `ownerEmail`/`assigneeEmail` hold an address and nothing else — the\n * validator refuses one without an `@`, and the executor matches it on the\n * roster's `email`. A value with no `@` is a member id, stored in the uid\n * field the executor verifies against the roster document. Clearing the\n * text clears both, so a step never carries a stale address beside a uid.\n */\nfunction memberRefFields(\n role: 'owner' | 'assignee',\n value: string,\n): Record<string, string | undefined> {\n const text = value.trim()\n const emailKey = `${role}Email`\n const uidKey = `${role}Uid`\n if (!text) return { [emailKey]: undefined, [uidKey]: undefined }\n return text.includes('@')\n ? { [emailKey]: value, [uidKey]: undefined }\n : { [emailKey]: undefined, [uidKey]: text }\n}\n\n/**\n * What a field holding a placeholder shows: an error state and what to do\n * about it. A placeholder is a value a person still has to supply, written in\n * square brackets where it belongs — an automation drafted for review carries\n * one wherever it could not name a real record or did not know a fact.\n */\nexport function placeholderState(\n value: unknown,\n help: string,\n): { error?: boolean; helperText?: string } {\n return automationPlaceholderIn(value) ? { error: true, helperText: help } : {}\n}\n\n/**\n * A picker whose stored reference is a placeholder name and no id: the record\n * the draft asked for, which the site did not have when it was written.\n */\nfunction placeholderReference(\n name: unknown,\n id: unknown,\n noun: string,\n): { error?: boolean; helperText?: string } {\n const words = String(id ?? '').trim() ? null : automationPlaceholderIn(name)\n return words\n ? {\n error: true,\n helperText: `Pick the ${noun} — the draft asked for “${words}”`,\n }\n : {}\n}\n\nexport function defaultStep(type: HostActionStepType): HostActionStep {\n switch (type) {\n case 'runWorkflow':\n return { type, workflowName: '' }\n case 'siteAlert':\n return { type, message: '', severity: 'info' }\n case 'customEvent':\n return { type, eventName: '' }\n case 'webhookPost':\n return { type, webhookName: '' }\n case 'showOverlay':\n return { type, overlayId: '' }\n case 'stickyNav':\n return { type, selector: '' }\n case 'addClass':\n case 'removeClass':\n case 'toggleClass':\n return { type, selector: '', className: '' }\n // Element show/hide + drawer commands (AGL-562).\n case 'showElement':\n case 'hideElement':\n case 'toggleElement':\n return { type, selector: '' }\n // Every step the menu offers needs a case here: the `default` below is a\n // dataset write, so a step without one turns into that (AGL-2876).\n case 'setAttribute':\n return { type, selector: '', name: '', value: '' }\n case 'removeAttribute':\n return { type, selector: '', name: '' }\n // One-target steps (AGL-2867); absent options are the defaults.\n case 'scrollTo':\n case 'playVideo':\n return { type, selector: '' }\n case 'openDrawer':\n case 'closeDrawer':\n case 'toggleDrawer':\n return { type }\n // Menu commands (AGL-568) mirror the drawer's optional target.\n case 'openMenu':\n case 'closeMenu':\n case 'toggleMenu':\n return { type }\n case 'showHtml':\n return { type, html: '' }\n case 'runJs':\n return { type, code: '' }\n case 'redirect':\n return { type, url: '' }\n case 'trackGaEvent':\n return { type, eventName: '' }\n case 'sendEmail':\n return { type, subject: '', body: '' }\n case 'notifyAdmins':\n return { type, title: '' }\n case 'enrollList':\n return { type, listId: '' }\n case 'updateDataset':\n return { type, datasetId: '' }\n case 'assignCampaign':\n return { type, campaignId: '' }\n // The CRM steps (AGL-2605). A stage and a kind start on a real entry of\n // their vocabulary rather than blank, so the select never shows a value\n // the validator would refuse; the free-text fields start empty because\n // there is nothing sensible to guess for them.\n case 'setContactStage':\n return { type, lifecycleStage: 'lead' }\n case 'addContactTag':\n return { type, tag: '' }\n case 'assignContactOwner':\n return { type, ownerEmail: '' }\n case 'createCrmTask':\n return { type, title: '', kind: 'call', dueInDays: 1 }\n case 'logCrmActivity':\n return { type, kind: 'note', body: '' }\n // A day, because a new wait is almost always part of a series measured in\n // days and a default of one minute reads as a placeholder rather than a\n // choice. Both are inside the validated band, so neither can be saved\n // wrong; this is only which one the author starts from.\n case 'wait':\n return { type, delayMinutes: 60 * 24 }\n case 'waitForEvent':\n return { type, eventName: '', timeoutMinutes: 60 * 24 * 3 }\n case 'exitFlow':\n return { type }\n default:\n return { type: 'datasetAppend', datasetName: '' }\n }\n}\n\n/** A record a step's picker chooses from: what is stored, and what is read. */\nexport interface AutomationStepPickerOption {\n id: string\n name: string\n}\n\n/** Everything on the site a step can be pointed at. */\nexport interface AutomationStepPickers {\n workflowOptions: readonly AutomationStepPickerOption[]\n datasetOptions: readonly AutomationStepPickerOption[]\n overlayOptions: readonly AutomationStepPickerOption[]\n listOptions: readonly AutomationStepPickerOption[]\n campaignOptions: readonly AutomationStepPickerOption[]\n webhookOptions: readonly AutomationStepPickerOption[]\n}\n\n/** One entry of the \"Do\" picker: what is stored, and what the author reads. */\nexport interface AutomationStepKind {\n value: string\n label: string\n}\n\nexport interface AutomationStepFieldsProps {\n /** The step being edited, as it is stored. */\n step: HostActionStep\n /** Its place in the list: the number beside it, and what an edit replaces. */\n index: number\n /** What the \"Do\" picker shows for this step. */\n kind: string\n /** What the \"Do\" picker offers, in the order it offers it. */\n kinds: readonly AutomationStepKind[]\n /** The step a kind the author just picked becomes. */\n stepForKind: (kind: string) => HostActionStep\n /** The records this site offers the step's pickers. */\n pickers: AutomationStepPickers\n /** Replaces the list this step belongs to. */\n onSteps: (update: (previous: HostActionStep[]) => HostActionStep[]) => void\n /**\n * The fields for a kind the Actions vocabulary does not hold — a workflow's\n * function call. Given, they replace the Actions fields, and the step takes\n * no `Only if` row: the engine evaluates a step condition on an Actions\n * step and a function call is not one.\n */\n fields?: ReactNode\n}\n\n/**\n * One step's row: its number, what it does, the fields that kind takes, and\n * the condition that gates it.\n */\nexport function AutomationStepFields({\n step,\n index,\n kind,\n kinds,\n stepForKind,\n pickers,\n onSteps,\n fields,\n}: AutomationStepFieldsProps) {\n const {\n workflowOptions,\n datasetOptions,\n overlayOptions,\n listOptions,\n campaignOptions,\n webhookOptions,\n } = pickers\n /*\n * The list, edited as a draft holding it — the shape both cards' own\n * `patch` takes, so a field below reads the same here as it did beside the\n * card it came from, and an edit that spreads `previous` still spreads only\n * what it may change.\n */\n const patch = (\n update: (previous: { steps: HostActionStep[] }) => {\n steps: HostActionStep[]\n },\n ) => onSteps((previous) => update({ steps: previous }).steps)\n return (\n <Stack spacing={0.5}>\n <Stack direction=\"row\" spacing={1} sx={{ alignItems: 'center' }}>\n <Typography variant=\"caption\" color=\"text.secondary\">\n {`${index + 1}`}\n </Typography>\n <TextField\n select\n label=\"Do\"\n value={kind}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index ? stepForKind(event.target.value) : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ minWidth: 170 }}\n >\n {kinds.map((option) => (\n <MenuItem key={option.value} value={option.value}>\n {option.label}\n </MenuItem>\n ))}\n </TextField>\n {fields ??\n (step.type === 'runWorkflow' ? (\n <TextField\n select\n label=\"Workflow\"\n {...placeholderReference(\n step.workflowName,\n (step as any).workflowId,\n 'workflow',\n )}\n value={\n (step as any).workflowId ??\n workflowOptions.find(\n (option) => option.name === step.workflowName,\n )?.id ??\n ''\n }\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? {\n ...s,\n workflowId: event.target.value,\n workflowName:\n workflowOptions.find(\n (option) => option.id === event.target.value,\n )?.name ?? (s as any).workflowName,\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n >\n {workflowOptions.map((option) => (\n <MenuItem key={option.id} value={option.id}>\n {option.name}\n </MenuItem>\n ))}\n </TextField>\n ) : step.type === 'siteAlert' ? (\n <>\n <TextField\n label=\"Message\"\n {...placeholderState(step.message, 'Fill in the placeholder')}\n value={step.message}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? { ...s, message: event.target.value }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n <TextField\n select\n label=\"Style\"\n value={step.severity ?? 'info'}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? { ...s, severity: event.target.value as any }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ width: 110 }}\n >\n {['info', 'success', 'warning', 'error'].map((value) => (\n <MenuItem key={value} value={value}>\n {value}\n </MenuItem>\n ))}\n </TextField>\n </>\n ) : step.type === 'customEvent' ? (\n <TextField\n label=\"Event name\"\n value={step.eventName}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? { ...s, eventName: event.target.value }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n ) : step.type === 'webhookPost' ? (\n <TextField\n select\n label=\"Webhook\"\n {...placeholderReference(\n step.webhookName,\n (step as any).webhookId,\n 'webhook',\n )}\n value={\n (step as any).webhookId ??\n webhookOptions.find(\n (option) => option.name === step.webhookName,\n )?.id ??\n ''\n }\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? {\n ...s,\n webhookId: event.target.value,\n webhookName:\n webhookOptions.find(\n (option) => option.id === event.target.value,\n )?.name ?? (s as any).webhookName,\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n >\n {webhookOptions.map((option) => (\n <MenuItem key={option.id} value={option.id}>\n {option.name}\n </MenuItem>\n ))}\n </TextField>\n ) : step.type === 'datasetAppend' || step.type === 'updateDataset' ? (\n <TextField\n select\n label=\"Dataset\"\n {...placeholderReference(\n step.datasetName,\n (step as any).datasetId,\n 'dataset',\n )}\n value={\n (step as any).datasetId ??\n datasetOptions.find(\n (option) => option.name === step.datasetName,\n )?.id ??\n ''\n }\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? {\n ...s,\n datasetId: event.target.value,\n datasetName:\n datasetOptions.find(\n (option) => option.id === event.target.value,\n )?.name ?? (s as any).datasetName,\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n >\n {datasetOptions.map((option) => (\n <MenuItem key={option.id} value={option.id}>\n {option.name}\n </MenuItem>\n ))}\n </TextField>\n ) : step.type === 'showOverlay' ? (\n <TextField\n select\n label=\"Overlay\"\n value={(step as any).overlayId ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? {\n ...s,\n overlayId: event.target.value,\n overlayName:\n overlayOptions.find(\n (option) => option.id === event.target.value,\n )?.name ?? '',\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n >\n {overlayOptions.map((option) => (\n <MenuItem key={option.id} value={option.id}>\n {option.name}\n </MenuItem>\n ))}\n </TextField>\n ) : step.type === 'stickyNav' ? (\n <TextField\n label=\"Selector (default: header/nav)\"\n value={(step as any).selector ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? { ...s, selector: event.target.value }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n ) : step.type === 'addClass' ||\n step.type === 'removeClass' ||\n step.type === 'toggleClass' ? (\n <>\n <TextField\n label=\"CSS selector\"\n value={(step as any).selector ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? { ...s, selector: event.target.value }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n <TextField\n label=\"Class name\"\n value={(step as any).className ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? { ...s, className: event.target.value }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ width: 150 }}\n />\n </>\n ) : step.type === 'showElement' ||\n step.type === 'hideElement' ||\n step.type === 'toggleElement' ||\n step.type === 'playVideo' ? (\n // Element choreography (AGL-562) and Play a video\n // (AGL-2867). The besigner's builder offers an element\n // picker; here the CSS selector is the escape hatch (node\n // targets use [data-aglyn=\"leaf:…\"]).\n <TextField\n label=\"CSS selector\"\n placeholder='[data-aglyn=\"leaf:…\"] or .my-class'\n value={(step as any).selector ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? { ...s, selector: event.target.value }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n ) : step.type === 'scrollTo' ? (\n // Scroll to element (AGL-2867): the target, how the page\n // moves, and the room left above it for a sticky header.\n <>\n <TextField\n label=\"CSS selector\"\n placeholder='[data-aglyn=\"leaf:…\"] or .my-class'\n value={step.selector ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? { ...s, selector: event.target.value }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n <TextField\n select\n label=\"Scroll\"\n value={step.behavior === 'instant' ? 'instant' : 'smooth'}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? {\n ...s,\n behavior:\n event.target.value === 'instant'\n ? 'instant'\n : undefined,\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ width: 130 }}\n >\n <MenuItem value=\"smooth\">{'Smoothly'}</MenuItem>\n <MenuItem value=\"instant\">{'Instantly'}</MenuItem>\n </TextField>\n <TextField\n label=\"Offset (px)\"\n type=\"number\"\n value={step.offsetPx ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? {\n ...s,\n offsetPx:\n event.target.value === ''\n ? undefined\n : Number(event.target.value),\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ width: 110 }}\n />\n </>\n ) : step.type === 'setAttribute' ||\n step.type === 'removeAttribute' ? (\n // The attribute steps (AGL-2546). The page applies only\n // `aria-*` and `data-*` names, so the field says so while\n // it holds any other, as the interaction builder's does.\n <>\n <TextField\n label=\"CSS selector\"\n placeholder='[data-aglyn=\"leaf:…\"] or .my-class'\n value={step.selector ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? { ...s, selector: event.target.value }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n <TextField\n label=\"Attribute\"\n placeholder=\"aria-expanded\"\n value={step.name ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index ? { ...s, name: event.target.value } : s,\n ),\n }))\n }\n error={\n Boolean(step.name) &&\n !isInteractionAttributeAllowed(step.name)\n }\n helperText={\n Boolean(step.name) &&\n !isInteractionAttributeAllowed(step.name)\n ? 'Must start with aria- or data-'\n : undefined\n }\n size=\"small\"\n sx={{ width: 150 }}\n />\n {step.type === 'setAttribute' ? (\n <TextField\n label=\"Value\"\n placeholder=\"true\"\n value={step.value ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? { ...s, value: event.target.value }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ width: 110 }}\n />\n ) : null}\n </>\n ) : step.type === 'openDrawer' ||\n step.type === 'closeDrawer' ||\n step.type === 'toggleDrawer' ? (\n <TextField\n label=\"Drawer node id (optional)\"\n placeholder=\"Empty = the page's first drawer\"\n value={(step as any).drawerNodeId ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? {\n ...s,\n drawerNodeId: event.target.value || undefined,\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n ) : step.type === 'openMenu' ||\n step.type === 'closeMenu' ||\n step.type === 'toggleMenu' ? (\n // Menu commands (AGL-568). The besigner's builder offers\n // a menu picker; here the raw node id is the escape\n // hatch, like the drawer field above.\n <TextField\n label=\"Menu node id (optional)\"\n placeholder=\"Empty = the page's first menu\"\n value={(step as any).menuNodeId ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? {\n ...s,\n menuNodeId: event.target.value || undefined,\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n ) : step.type === 'showHtml' || step.type === 'runJs' ? (\n <TextField\n label={step.type === 'showHtml' ? 'HTML' : 'JavaScript'}\n value={\n step.type === 'showHtml'\n ? ((step as any).html ?? '')\n : ((step as any).code ?? '')\n }\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? step.type === 'showHtml'\n ? { ...s, html: event.target.value }\n : { ...s, code: event.target.value }\n : s,\n ),\n }))\n }\n size=\"small\"\n multiline\n maxRows={4}\n sx={{ flex: 1 }}\n />\n ) : step.type === 'redirect' ? (\n <TextField\n label=\"Destination URL\"\n value={(step as any).url ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index ? { ...s, url: event.target.value } : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n ) : step.type === 'trackGaEvent' ? (\n <TextField\n label=\"Analytics event name\"\n value={(step as any).eventName ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? { ...s, eventName: event.target.value }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n ) : step.type === 'sendEmail' ? (\n <>\n <TextField\n label=\"Subject\"\n {...placeholderState(\n (step as any).subject,\n 'Fill in the placeholder',\n )}\n value={(step as any).subject ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? { ...s, subject: event.target.value }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ width: 180 }}\n />\n <TextField\n label=\"Body\"\n {...placeholderState(\n (step as any).body,\n 'Fill in the placeholders',\n )}\n value={(step as any).body ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index ? { ...s, body: event.target.value } : s,\n ),\n }))\n }\n size=\"small\"\n multiline\n maxRows={3}\n sx={{ flex: 1 }}\n />\n </>\n ) : step.type === 'notifyAdmins' ? (\n <TextField\n label=\"Notification title\"\n {...placeholderState(\n (step as any).title,\n 'Fill in the placeholder',\n )}\n value={(step as any).title ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index ? { ...s, title: event.target.value } : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n ) : step.type === 'enrollList' ? (\n <TextField\n select\n label=\"List\"\n {...placeholderReference(\n (step as any).listName,\n (step as any).listId,\n 'list',\n )}\n value={(step as any).listId ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? {\n ...s,\n listId: event.target.value,\n listName:\n listOptions.find(\n (option) => option.id === event.target.value,\n )?.name ?? '',\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n >\n {listOptions.length === 0 ? (\n <MenuItem value=\"\" disabled>\n {'No lists yet — create one under Campaigns'}\n </MenuItem>\n ) : null}\n {listOptions.map((option) => (\n <MenuItem key={option.id} value={option.id}>\n {option.name}\n </MenuItem>\n ))}\n </TextField>\n ) : step.type === 'assignCampaign' ? (\n <TextField\n select\n label=\"Campaign\"\n {...placeholderReference(\n (step as any).campaignName,\n (step as any).campaignId,\n 'campaign',\n )}\n value={(step as any).campaignId ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? {\n ...s,\n campaignId: event.target.value,\n campaignName:\n campaignOptions.find(\n (option) => option.id === event.target.value,\n )?.name ?? '',\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n >\n {campaignOptions.length === 0 ? (\n <MenuItem value=\"\" disabled>\n {'No campaigns yet'}\n </MenuItem>\n ) : null}\n {campaignOptions.map((option) => (\n <MenuItem key={option.id} value={option.id}>\n {option.name}\n </MenuItem>\n ))}\n </TextField>\n ) : step.type === 'setContactStage' ? (\n // The CRM steps (AGL-2605). Each acts on the contact the\n // event names — by id when the door knew it, by the email\n // in the payload otherwise — so none of them asks who.\n <TextField\n select\n label=\"Stage\"\n value={(step as any).lifecycleStage ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index && s.type === 'setContactStage'\n ? {\n ...s,\n lifecycleStage: event.target\n .value as ContactLifecycleStage,\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ minWidth: 200 }}\n >\n {CONTACT_LIFECYCLE_STAGES.map((stage) => (\n <MenuItem key={stage} value={stage}>\n {CONTACT_LIFECYCLE_STAGE_LABELS[stage]}\n </MenuItem>\n ))}\n </TextField>\n ) : step.type === 'addContactTag' ? (\n <TextField\n label=\"Tag\"\n {...placeholderState(\n (step as any).tag,\n 'Fill in the placeholder',\n )}\n value={(step as any).tag ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? {\n ...s,\n tag: event.target.value.slice(\n 0,\n CONTACT_TAG_MAX_LENGTH,\n ),\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n ) : step.type === 'assignContactOwner' ? (\n // Two modes (AGL-2618): a member the author names, or the\n // next member of the round-robin pool the CRM's Settings\n // keep. Switching to the rotation drops the named member,\n // because the validator refuses a step that says both.\n <>\n <TextField\n select\n label=\"Assign to\"\n value={\n (step as any).roundRobin === true ? 'roundRobin' : 'member'\n }\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index && s.type === 'assignContactOwner'\n ? event.target.value === 'roundRobin'\n ? { type: s.type, roundRobin: true }\n : { type: s.type, ownerEmail: '' }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ minWidth: 200 }}\n >\n <MenuItem value=\"member\">{'A team member'}</MenuItem>\n <MenuItem value=\"roundRobin\">\n {'Round robin — the next member of the CRM’s pool'}\n </MenuItem>\n </TextField>\n {(step as any).roundRobin === true ? (\n <Typography variant=\"caption\" color=\"text.secondary\">\n {\n 'The pool is set under CRM → Settings; an empty pool is a failed step.'\n }\n </Typography>\n ) : (\n <>\n {/*\n One field for either way of naming a teammate. An\n address is stored as `ownerEmail` and matched on the\n roster when the automation runs; anything else is\n stored as `ownerUid`, which is how a member whose\n account carries no address — an SSO re-grant — is\n named at all. The split happens here so the stored\n step keeps the two fields the validator and the\n executor already read.\n */}\n <TextField\n label=\"Owner (email address or member id)\"\n value={\n (step as any).ownerEmail || (step as any).ownerUid || ''\n }\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? {\n ...s,\n ...memberRefFields('owner', event.target.value),\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n <Typography variant=\"caption\" color=\"text.secondary\">\n {\n 'Somebody on your team, matched against the roster when the automation runs.'\n }\n </Typography>\n </>\n )}\n </>\n ) : step.type === 'createCrmTask' ? (\n <>\n <TextField\n label=\"Title\"\n {...placeholderState(\n (step as any).title,\n 'Fill in the placeholder',\n )}\n value={(step as any).title ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? { ...s, title: event.target.value }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n <TextField\n select\n label=\"Kind\"\n value={(step as any).kind ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index && s.type === 'createCrmTask'\n ? { ...s, kind: event.target.value as CrmTaskKind }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ minWidth: 120 }}\n >\n {CRM_TASK_KINDS.map((kind) => (\n <MenuItem key={kind} value={kind}>\n {CRM_TASK_KIND_LABELS[kind]}\n </MenuItem>\n ))}\n </TextField>\n <TextField\n type=\"number\"\n label=\"Due in (days)\"\n value={(step as any).dueInDays ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? {\n ...s,\n dueInDays: Math.min(\n CRM_TASK_MAX_DUE_DAYS,\n Math.max(0, Number(event.target.value)),\n ),\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ width: 130 }}\n />\n <TextField\n label=\"Assignee (email address or member id, optional)\"\n value={\n (step as any).assigneeEmail || (step as any).assigneeUid || ''\n }\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? {\n ...s,\n ...memberRefFields('assignee', event.target.value),\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n helperText=\"Blank gives it to the contact’s owner.\"\n />\n </>\n ) : step.type === 'logCrmActivity' ? (\n <>\n <TextField\n select\n label=\"Kind\"\n value={(step as any).kind ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index && s.type === 'logCrmActivity'\n ? {\n ...s,\n kind: event.target.value as CrmActivityKind,\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ minWidth: 120 }}\n >\n {CRM_ACTIVITY_KINDS.map((kind) => (\n <MenuItem key={kind} value={kind}>\n {CRM_ACTIVITY_KIND_LABELS[kind]}\n </MenuItem>\n ))}\n </TextField>\n <TextField\n label=\"What happened\"\n {...placeholderState(\n (step as any).body,\n 'Fill in the placeholders',\n )}\n value={(step as any).body ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index ? { ...s, body: event.target.value } : s,\n ),\n }))\n }\n size=\"small\"\n multiline\n maxRows={3}\n sx={{ flex: 1 }}\n />\n </>\n ) : step.type === 'wait' || step.type === 'waitForEvent' ? (\n <>\n {step.type === 'waitForEvent' ? (\n <TextField\n select\n label=\"Until\"\n value={(step as any).eventName ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? { ...s, eventName: event.target.value }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ minWidth: 170 }}\n >\n {HOST_EVENT_TYPES.map((option) => (\n <MenuItem key={option} value={option}>\n {hostEventLabel(option)}\n </MenuItem>\n ))}\n </TextField>\n ) : null}\n <TextField\n select\n label={\n step.type === 'waitForEvent' ? 'Give up after' : 'Wait for'\n }\n value={String(\n step.type === 'waitForEvent'\n ? ((step as any).timeoutMinutes ?? '')\n : ((step as any).delayMinutes ?? ''),\n )}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? s.type === 'waitForEvent'\n ? {\n ...s,\n timeoutMinutes: Number(event.target.value),\n }\n : {\n ...s,\n delayMinutes: Number(event.target.value),\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ minWidth: 150 }}\n >\n {FLOW_WAIT_PRESETS.map((option) => (\n <MenuItem key={option.minutes} value={option.minutes}>\n {option.label}\n </MenuItem>\n ))}\n </TextField>\n <Typography variant=\"caption\" color=\"text.secondary\">\n {step.type === 'waitForEvent'\n ? 'Continues as soon as this happens, or when the time is up.'\n : 'The rest of this automation runs later, on its own.'}\n </Typography>\n </>\n ) : step.type === 'exitFlow' ? (\n <Typography variant=\"caption\" color=\"text.secondary\">\n {\n 'Nothing after this step runs. Add a condition to make it a branch.'\n }\n </Typography>\n ) : null)}\n <IconButton\n size=\"small\"\n aria-label=\"remove step\"\n onClick={() =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.filter((_, index2) => index2 !== index),\n }))\n }\n >\n {'×'}\n </IconButton>\n </Stack>\n {/*\n * BRANCHING, as a second row under the step it belongs to.\n *\n * One clause rather than the trigger's chain of five. The\n * trigger decides whether a run happens at all and earns a\n * condition builder; a step's guard answers \"does THIS one run\",\n * which in every sequence anybody writes is a single fact — did\n * they order, did they open, is the field still empty. A second\n * five-row builder per step would make a ten-step flow a page of\n * condition editors, and the model already accepts more if the\n * evidence ever says otherwise.\n */}\n {fields ? null : (\n <Stack direction=\"row\" spacing={1} sx={{ alignItems: 'center', pl: 3 }}>\n <TextField\n select\n label=\"Only if\"\n value={(step.when?.conditions?.[0]?.op as string) ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index\n ? {\n ...s,\n when: event.target.value\n ? {\n conditions: [\n {\n op: event.target.value as TriggerConditionOp,\n field: s.when?.conditions?.[0]?.field ?? '',\n value: s.when?.conditions?.[0]?.value ?? '',\n },\n ],\n }\n : null,\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ minWidth: 170 }}\n >\n <MenuItem value=\"\">{'Always run'}</MenuItem>\n <MenuItem value=\"notEmpty\">{'Field is not empty'}</MenuItem>\n <MenuItem value=\"equals\">{'Field equals'}</MenuItem>\n <MenuItem value=\"contains\">{'Field contains'}</MenuItem>\n </TextField>\n {step.when?.conditions?.[0]?.op ? (\n <TextField\n label=\"Field\"\n placeholder=\"orderId\"\n value={step.when.conditions[0].field ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index && s.when?.conditions?.[0]\n ? {\n ...s,\n when: {\n conditions: [\n {\n ...s.when.conditions[0],\n field: event.target.value,\n },\n ],\n },\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n ) : null}\n {step.when?.conditions?.[0]?.op === 'equals' ||\n step.when?.conditions?.[0]?.op === 'contains' ? (\n <TextField\n label=\"Value\"\n {...placeholderState(\n step.when.conditions[0].value,\n 'Replace the placeholder with the value to match',\n )}\n value={step.when.conditions[0].value ?? ''}\n onChange={(event) =>\n patch((previous) => ({\n ...previous,\n steps: previous.steps.map((s, index2) =>\n index2 === index && s.when?.conditions?.[0]\n ? {\n ...s,\n when: {\n conditions: [\n {\n ...s.when.conditions[0],\n value: event.target.value,\n },\n ],\n },\n }\n : s,\n ),\n }))\n }\n size=\"small\"\n sx={{ flex: 1 }}\n />\n ) : null}\n </Stack>\n )}\n </Stack>\n )\n}\n"],"names":["CONTACT_LIFECYCLE_STAGE_LABELS","CONTACT_LIFECYCLE_STAGES","CONTACT_TAG_MAX_LENGTH","CRM_ACTIVITY_KIND_LABELS","CRM_ACTIVITY_KINDS","CRM_TASK_KIND_LABELS","CRM_TASK_KINDS","CRM_TASK_MAX_DUE_DAYS","HOST_EVENT_TYPES","hostEventLabel","isInteractionAttributeAllowed","automationPlaceholderIn","IconButton","MenuItem","Stack","TextField","Typography","FLOW_WAIT_PRESETS","minutes","label","memberRefFields","role","value","text","trim","emailKey","uidKey","undefined","includes","placeholderState","help","error","helperText","placeholderReference","name","id","noun","words","String","defaultStep","type","workflowName","message","severity","eventName","webhookName","overlayId","selector","className","html","code","url","subject","body","title","listId","datasetId","campaignId","lifecycleStage","tag","ownerEmail","kind","dueInDays","delayMinutes","timeoutMinutes","datasetName","AutomationStepFields","step","index","kinds","stepForKind","pickers","onSteps","fields","workflowOptions","webhookOptions","datasetOptions","overlayOptions","listOptions","campaignOptions","patch","update","previous","steps","spacing","direction","sx","alignItems","variant","color","select","onChange","event","map","s","index2","target","size","minWidth","option","workflowId","find","flex","width","webhookId","overlayName","placeholder","behavior","offsetPx","Number","Boolean","drawerNodeId","menuNodeId","multiline","maxRows","listName","length","disabled","campaignName","stage","slice","roundRobin","ownerUid","Math","min","max","assigneeEmail","assigneeUid","aria-label","onClick","filter","_","pl","when","conditions","op","field"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type AglynOrgBilling } from '@aglyn/aglyn';
|
|
2
|
+
/**
|
|
3
|
+
* Actions builder (AGL-148): HubSpot-style enrollment — trigger event →
|
|
4
|
+
* optional filter → ordered steps (run workflow, site alert, custom
|
|
5
|
+
* event, dataset append). Runs server-side via runEventActions; paid
|
|
6
|
+
* feature (`actions` flag, Pro+, `actionRunsPerMonth` metered).
|
|
7
|
+
*/
|
|
8
|
+
export declare function HostActionsCard(props: {
|
|
9
|
+
hostId: string;
|
|
10
|
+
org?: Partial<AglynOrgBilling>;
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
export declare namespace HostActionsCard {
|
|
13
|
+
var displayName: string;
|
|
14
|
+
}
|
|
15
|
+
export default HostActionsCard;
|