@iann29/rastro 0.10.9 → 0.11.1
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/README.md +8 -0
- package/agent/integration.md +45 -0
- package/agent/manifest.json +4 -4
- package/dist/client/federation.d.ts +82 -9
- package/dist/client/federation.d.ts.map +1 -1
- package/dist/client/federation.js +40 -2
- package/dist/client/federation.js.map +1 -1
- package/dist/client/index.d.ts +465 -8
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +259 -7
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/api.d.ts +10 -0
- package/dist/component/_generated/api.d.ts.map +1 -1
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts +274 -21
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/_generated/server.d.ts +2 -0
- package/dist/component/_generated/server.d.ts.map +1 -1
- package/dist/component/_generated/server.js.map +1 -1
- package/dist/component/constants.d.ts +31 -0
- package/dist/component/constants.d.ts.map +1 -1
- package/dist/component/constants.js +31 -0
- package/dist/component/constants.js.map +1 -1
- package/dist/component/convex.config.d.ts +2 -0
- package/dist/component/convex.config.js +7 -0
- package/dist/component/convex.config.js.map +1 -1
- package/dist/component/errors.d.ts +1 -1
- package/dist/component/errors.d.ts.map +1 -1
- package/dist/component/errors.js.map +1 -1
- package/dist/component/http.d.ts.map +1 -1
- package/dist/component/http.js +64 -0
- package/dist/component/http.js.map +1 -1
- package/dist/component/leadAdsValidators.d.ts +1106 -0
- package/dist/component/leadAdsValidators.d.ts.map +1 -0
- package/dist/component/leadAdsValidators.js +311 -0
- package/dist/component/leadAdsValidators.js.map +1 -0
- package/dist/component/leadFormRules.d.ts +60 -0
- package/dist/component/leadFormRules.d.ts.map +1 -0
- package/dist/component/leadFormRules.js +140 -0
- package/dist/component/leadFormRules.js.map +1 -0
- package/dist/component/leadFormStore.d.ts +16 -0
- package/dist/component/leadFormStore.d.ts.map +1 -0
- package/dist/component/leadFormStore.js +92 -0
- package/dist/component/leadFormStore.js.map +1 -0
- package/dist/component/leadgenToken.d.ts +56 -0
- package/dist/component/leadgenToken.d.ts.map +1 -0
- package/dist/component/leadgenToken.js +262 -0
- package/dist/component/leadgenToken.js.map +1 -0
- package/dist/component/leads.d.ts +76 -7
- package/dist/component/leads.d.ts.map +1 -1
- package/dist/component/leads.js +112 -78
- package/dist/component/leads.js.map +1 -1
- package/dist/component/meta.d.ts.map +1 -1
- package/dist/component/meta.js +21 -1
- package/dist/component/meta.js.map +1 -1
- package/dist/component/metaFake.d.ts +44 -0
- package/dist/component/metaFake.d.ts.map +1 -1
- package/dist/component/metaFake.js +400 -1
- package/dist/component/metaFake.js.map +1 -1
- package/dist/component/metaGraph.d.ts +91 -0
- package/dist/component/metaGraph.d.ts.map +1 -1
- package/dist/component/metaGraph.js +217 -0
- package/dist/component/metaGraph.js.map +1 -1
- package/dist/component/metaLeads.d.ts +683 -0
- package/dist/component/metaLeads.d.ts.map +1 -0
- package/dist/component/metaLeads.js +2639 -0
- package/dist/component/metaLeads.js.map +1 -0
- package/dist/component/schema.d.ts +420 -5
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +176 -1
- package/dist/component/schema.js.map +1 -1
- package/dist/component/validators.d.ts +235 -11
- package/dist/component/validators.d.ts.map +1 -1
- package/dist/component/validators.js +14 -1
- package/dist/component/validators.js.map +1 -1
- package/dist/tracker/generated.d.ts +5 -5
- package/dist/tracker/generated.d.ts.map +1 -1
- package/dist/tracker/generated.js +5 -5
- package/dist/tracker/generated.js.map +1 -1
- package/dist/ui/campaigns/CampaignsView.d.ts +5 -1
- package/dist/ui/campaigns/CampaignsView.d.ts.map +1 -1
- package/dist/ui/campaigns/CampaignsView.js.map +1 -1
- package/dist/ui/campaigns/Drawer.d.ts.map +1 -1
- package/dist/ui/campaigns/Drawer.js +8 -26
- package/dist/ui/campaigns/Drawer.js.map +1 -1
- package/dist/ui/campaigns/labels.d.ts +29 -1
- package/dist/ui/campaigns/labels.d.ts.map +1 -1
- package/dist/ui/campaigns/labels.js +77 -2
- package/dist/ui/campaigns/labels.js.map +1 -1
- package/dist/ui/campaigns/model.js +2 -2
- package/dist/ui/campaigns/model.js.map +1 -1
- package/dist/ui/forms/FirstContact.d.ts +19 -0
- package/dist/ui/forms/FirstContact.d.ts.map +1 -0
- package/dist/ui/forms/FirstContact.js +81 -0
- package/dist/ui/forms/FirstContact.js.map +1 -0
- package/dist/ui/forms/FormLead.d.ts +28 -0
- package/dist/ui/forms/FormLead.d.ts.map +1 -0
- package/dist/ui/forms/FormLead.js +199 -0
- package/dist/ui/forms/FormLead.js.map +1 -0
- package/dist/ui/forms/FormRulesDrawer.d.ts +49 -0
- package/dist/ui/forms/FormRulesDrawer.d.ts.map +1 -0
- package/dist/ui/forms/FormRulesDrawer.js +149 -0
- package/dist/ui/forms/FormRulesDrawer.js.map +1 -0
- package/dist/ui/forms/FormsView.d.ts +10 -0
- package/dist/ui/forms/FormsView.d.ts.map +1 -0
- package/dist/ui/forms/FormsView.js +227 -0
- package/dist/ui/forms/FormsView.js.map +1 -0
- package/dist/ui/forms/Icons.d.ts +46 -0
- package/dist/ui/forms/Icons.d.ts.map +1 -0
- package/dist/ui/forms/Icons.js +45 -0
- package/dist/ui/forms/Icons.js.map +1 -0
- package/dist/ui/forms/RuleRow.d.ts +37 -0
- package/dist/ui/forms/RuleRow.d.ts.map +1 -0
- package/dist/ui/forms/RuleRow.js +80 -0
- package/dist/ui/forms/RuleRow.js.map +1 -0
- package/dist/ui/forms/WhatsAppButtonGuide.d.ts +33 -0
- package/dist/ui/forms/WhatsAppButtonGuide.d.ts.map +1 -0
- package/dist/ui/forms/WhatsAppButtonGuide.js +90 -0
- package/dist/ui/forms/WhatsAppButtonGuide.js.map +1 -0
- package/dist/ui/forms/index.d.ts +11 -0
- package/dist/ui/forms/index.d.ts.map +1 -0
- package/dist/ui/forms/index.js +7 -0
- package/dist/ui/forms/index.js.map +1 -0
- package/dist/ui/forms/journey.d.ts +19 -0
- package/dist/ui/forms/journey.d.ts.map +1 -0
- package/dist/ui/forms/journey.js +54 -0
- package/dist/ui/forms/journey.js.map +1 -0
- package/dist/ui/forms/model.d.ts +243 -0
- package/dist/ui/forms/model.d.ts.map +1 -0
- package/dist/ui/forms/model.js +564 -0
- package/dist/ui/forms/model.js.map +1 -0
- package/dist/ui/forms/sample.d.ts +36 -0
- package/dist/ui/forms/sample.d.ts.map +1 -0
- package/dist/ui/forms/sample.js +448 -0
- package/dist/ui/forms/sample.js.map +1 -0
- package/dist/ui/forms/types.d.ts +472 -0
- package/dist/ui/forms/types.d.ts.map +1 -0
- package/dist/ui/forms/types.js +2 -0
- package/dist/ui/forms/types.js.map +1 -0
- package/dist/ui/index.d.ts +2 -0
- package/dist/ui/index.d.ts.map +1 -1
- package/dist/ui/index.js +4 -0
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/integrations/Overlay.d.ts +3 -1
- package/dist/ui/integrations/Overlay.d.ts.map +1 -1
- package/dist/ui/integrations/Overlay.js +2 -2
- package/dist/ui/integrations/Overlay.js.map +1 -1
- package/dist/ui/portfolio/PortfolioView.d.ts +4 -1
- package/dist/ui/portfolio/PortfolioView.d.ts.map +1 -1
- package/dist/ui/portfolio/PortfolioView.js.map +1 -1
- package/dist/ui/sample.d.ts +3 -1
- package/dist/ui/sample.d.ts.map +1 -1
- package/dist/ui/sample.js +2 -0
- package/dist/ui/sample.js.map +1 -1
- package/dist/ui/seed.d.ts +1 -1
- package/dist/ui/ui.css +2305 -0
- package/docs/federation.md +19 -0
- package/docs/meta-ads.md +723 -7
- package/docs/upgrading.md +70 -0
- package/llms.txt +1 -0
- package/package.json +1 -1
- package/src/component/_generated/api.ts +10 -0
- package/src/component/_generated/component.ts +290 -20
- package/src/component/_generated/server.ts +2 -0
- package/src/component/constants.ts +33 -0
- package/src/component/convex.config.ts +7 -0
- package/src/component/errors.ts +3 -1
- package/src/component/http.ts +75 -0
- package/src/component/leadAdsValidators.ts +376 -0
- package/src/component/leadFormRules.ts +202 -0
- package/src/component/leadFormStore.ts +129 -0
- package/src/component/leadgenToken.ts +348 -0
- package/src/component/leads.ts +136 -84
- package/src/component/meta.ts +21 -1
- package/src/component/metaFake.ts +485 -1
- package/src/component/metaGraph.ts +327 -0
- package/src/component/metaLeads.ts +3111 -0
- package/src/component/schema.ts +197 -1
- package/src/component/validators.ts +17 -1
- package/src/tracker/generated.ts +5 -5
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ButtonState } from "./model.js";
|
|
2
|
+
import type { FirstContact as FirstContactValue } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* "Como o primeiro contato acontece": the lead writes first (recommended),
|
|
5
|
+
* one click by a person (always on), or the automatic send behind its risk
|
|
6
|
+
* checkbox and brakes. Off by default; nothing here sends a message itself.
|
|
7
|
+
*/
|
|
8
|
+
export declare function FirstContactSection({ value, button, editable, senderLabel, businessHoursLabel, onChange, onConfirmButton, onOpenGuide, }: {
|
|
9
|
+
value: FirstContactValue;
|
|
10
|
+
button: ButtonState;
|
|
11
|
+
editable: boolean;
|
|
12
|
+
senderLabel?: string;
|
|
13
|
+
businessHoursLabel?: string;
|
|
14
|
+
onChange: (value: FirstContactValue) => void;
|
|
15
|
+
/** "Já liguei" when Meta does not say whether the button is there. */
|
|
16
|
+
onConfirmButton: (confirmed: boolean) => void;
|
|
17
|
+
onOpenGuide?: () => void;
|
|
18
|
+
}): import("react").JSX.Element;
|
|
19
|
+
//# sourceMappingURL=FirstContact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FirstContact.d.ts","sourceRoot":"","sources":["../../../src/ui/forms/FirstContact.tsx"],"names":[],"mappings":"AAEA,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,YAAY,IAAI,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA8DpE;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,MAAM,EACN,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,WAAW,GACZ,EAAE;IACD,KAAK,EAAE,iBAAiB,CAAC;IACzB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC7C,sEAAsE;IACtE,eAAe,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAC9C,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;CAC1B,+BAsXA"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useId, useRef, useState } from "react";
|
|
3
|
+
import { Glyph, Icon } from "./Icons.js";
|
|
4
|
+
import { DEFAULT_BRAKES, FIRST_NAME_VARIABLE, MAX_FIRST_CONTACT_TEXT, PER_HOUR_CHOICES, RANDOM_INTERVAL_LABEL, templateParts, WAIT_CHOICES, } from "./model.js";
|
|
5
|
+
/** "Recepção · (11) 94567-1200" → "o número da Recepção". */
|
|
6
|
+
function numberPhrase(senderLabel) {
|
|
7
|
+
const name = senderLabel?.split(" · ")[0]?.trim();
|
|
8
|
+
return name ? `o número da ${name}` : "o número da empresa";
|
|
9
|
+
}
|
|
10
|
+
/** The suggested text with the first name drawn as a chip. */
|
|
11
|
+
function TemplatePreview({ text }) {
|
|
12
|
+
return (_jsx(_Fragment, { children: templateParts(text).map((part, index) => part.kind === "first_name" ? (_jsx("span", { className: "rastro-forms__var", children: part.text }, index)) : (_jsx("span", { children: part.text }, index))) }));
|
|
13
|
+
}
|
|
14
|
+
function ButtonPill({ state, editable, onConfirm, }) {
|
|
15
|
+
if (state === "on")
|
|
16
|
+
return (_jsxs("span", { className: "rastro-forms__pill", "data-tone": "ok", children: [_jsx(Icon, { name: "check", size: 12, stroke: 2.4 }), "Ligado"] }));
|
|
17
|
+
if (state === "off")
|
|
18
|
+
return (_jsxs("span", { className: "rastro-forms__pill", "data-tone": "warn", children: [_jsx("span", { "data-wide": "", children: "Falta ligar na Meta" }), _jsx("span", { "data-narrow": "", children: "Falta ligar" })] }));
|
|
19
|
+
// Meta does not say: the company says it (contract §12.2, "Já liguei").
|
|
20
|
+
return (_jsxs("label", { className: "rastro-forms__confirm", children: [_jsx("input", { type: "checkbox", checked: state === "confirmed", disabled: !editable, onChange: (event) => onConfirm(event.target.checked) }), "J\u00E1 liguei"] }));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* "Como o primeiro contato acontece": the lead writes first (recommended),
|
|
24
|
+
* one click by a person (always on), or the automatic send behind its risk
|
|
25
|
+
* checkbox and brakes. Off by default; nothing here sends a message itself.
|
|
26
|
+
*/
|
|
27
|
+
export function FirstContactSection({ value, button, editable, senderLabel, businessHoursLabel, onChange, onConfirmButton, onOpenGuide, }) {
|
|
28
|
+
const id = useId();
|
|
29
|
+
const automatic = value.mode === "automatic";
|
|
30
|
+
const [open, setOpen] = useState(automatic);
|
|
31
|
+
const [acknowledged, setAcknowledged] = useState(automatic);
|
|
32
|
+
const [editing, setEditing] = useState(false);
|
|
33
|
+
// With the automatic send open, the one-click card folds (D7).
|
|
34
|
+
const [oneClickOpen, setOneClickOpen] = useState(!automatic);
|
|
35
|
+
const textarea = useRef(null);
|
|
36
|
+
const text = value.text ?? "";
|
|
37
|
+
const brakes = { ...DEFAULT_BRAKES, ...value.brakes };
|
|
38
|
+
const buttonOn = button === "on" || button === "confirmed";
|
|
39
|
+
const fallbackMode = buttonOn ? "lead_starts" : "one_click";
|
|
40
|
+
const setBrakes = (next) => onChange({ ...value, brakes: { ...brakes, ...next } });
|
|
41
|
+
const insertVariable = () => {
|
|
42
|
+
const element = textarea.current;
|
|
43
|
+
const at = element?.selectionStart ?? text.length;
|
|
44
|
+
const end = element?.selectionEnd ?? at;
|
|
45
|
+
const next = `${text.slice(0, at)}${FIRST_NAME_VARIABLE}${text.slice(end)}`;
|
|
46
|
+
onChange({ ...value, text: next.slice(0, MAX_FIRST_CONTACT_TEXT) });
|
|
47
|
+
requestAnimationFrame(() => {
|
|
48
|
+
element?.focus();
|
|
49
|
+
const caret = at + FIRST_NAME_VARIABLE.length;
|
|
50
|
+
element?.setSelectionRange(caret, caret);
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
const collapseOneClick = open;
|
|
54
|
+
const phrase = numberPhrase(senderLabel);
|
|
55
|
+
return (_jsxs("div", { className: "rastro-forms__contact", children: [_jsxs("div", { className: "rastro-forms__fc", "data-tone": "rec", children: [_jsxs("div", { className: "rastro-forms__fc-h", children: [_jsx("span", { className: "rastro-forms__fc-ico", "aria-hidden": "true", children: _jsx(Icon, { name: "hand", size: 17 }) }), _jsxs("div", { className: "rastro-forms__grow", children: [_jsxs("p", { className: "rastro-forms__fc-title", children: [_jsx("span", { "data-wide": "", children: "O lead come\u00E7a a conversa" }), _jsx("span", { "data-narrow": "", children: "O lead come\u00E7a" }), _jsx("span", { className: "rastro-forms__badge", "data-tone": "rec", children: "Recomendado" })] }), _jsx("p", { className: "rastro-forms__fc-desc", "data-wide": "", children: "Bot\u00E3o \u201CFalar no WhatsApp\u201D na tela final do formul\u00E1rio. Sem risco." })] }), _jsx(ButtonPill, { state: button, editable: editable, onConfirm: onConfirmButton })] }), button !== "on" && (_jsxs("div", { className: "rastro-forms__fc-f", "data-wide": "", children: [onOpenGuide && (_jsxs("button", { type: "button", className: "rastro-forms__lnk", onClick: onOpenGuide, children: ["Ver como ligar ", _jsx(Icon, { name: "arrow", size: 13 })] })), _jsx("span", { children: "A conversa que chega se liga ao card pelo telefone." })] }))] }), _jsxs("div", { className: "rastro-forms__fc", "data-collapsed": collapseOneClick && !oneClickOpen ? "" : undefined, children: [_jsxs("div", { className: "rastro-forms__fc-h", children: [_jsx("span", { className: "rastro-forms__fc-ico", "aria-hidden": "true", children: _jsx(Glyph, { brand: "whatsapp", size: 16, color: "currentColor" }) }), _jsxs("div", { className: "rastro-forms__grow", children: [_jsxs("p", { className: "rastro-forms__fc-title", children: [_jsx("span", { "data-wide": "", children: "Chamar no WhatsApp com um clique" }), _jsx("span", { "data-narrow": "", children: "Chamar com um clique" }), _jsx("span", { className: "rastro-forms__badge", "data-tone": "on", children: "Sempre ativo" })] }), !(collapseOneClick && !oneClickOpen) && (_jsx("p", { className: "rastro-forms__fc-desc", "data-wide": "", children: "No card do lead. Uma pessoa envia, um lead por vez." }))] }), collapseOneClick && (_jsx("button", { type: "button", className: "rastro-forms__icon-btn", "aria-expanded": oneClickOpen, "aria-label": oneClickOpen
|
|
56
|
+
? "Recolher o texto sugerido"
|
|
57
|
+
: "Ver o texto sugerido", onClick: () => setOneClickOpen((current) => !current), children: _jsx(Icon, { name: oneClickOpen ? "chevU" : "chevD", size: 16 }) }))] }), !(collapseOneClick && !oneClickOpen) && (_jsx("div", { className: "rastro-forms__fc-text", "data-wide": "", children: editing ? (_jsxs(_Fragment, { children: [_jsx("textarea", { ref: textarea, id: `${id}-text`, className: "rastro-forms__ta", "aria-label": "Texto sugerido para o primeiro contato", value: text, rows: 3, maxLength: MAX_FIRST_CONTACT_TEXT, onChange: (event) => onChange({ ...value, text: event.target.value }) }), _jsxs("div", { className: "rastro-forms__ta-bar", children: [_jsxs("button", { type: "button", className: "rastro-forms__lnk", onClick: insertVariable, children: [_jsx(Icon, { name: "plus", size: 13 }), " primeiro nome"] }), _jsxs("span", { className: "rastro-forms__tip rastro-num", children: [text.length, "/", MAX_FIRST_CONTACT_TEXT] }), _jsx("button", { type: "button", className: "rastro-forms__btn", "data-variant": "outline", "data-size": "xs", onClick: () => setEditing(false), children: "Pronto" })] })] })) : (_jsx("button", { type: "button", className: "rastro-forms__ta", "data-preview": "", disabled: !editable, "aria-label": `Texto sugerido: ${text}. Editar`, onClick: () => setEditing(true), children: _jsx(TemplatePreview, { text: text }) })) }))] }), _jsxs("div", { className: "rastro-forms__fc", "data-tone": open ? "risk" : "off", "data-on": automatic ? "" : undefined, children: [_jsxs("div", { className: "rastro-forms__fc-h", children: [_jsx("span", { className: "rastro-forms__fc-ico", "aria-hidden": "true", children: _jsx(Icon, { name: "bolt", size: 16 }) }), _jsxs("div", { className: "rastro-forms__grow", children: [_jsxs("p", { className: "rastro-forms__fc-title", children: ["Envio autom\u00E1tico", _jsx("span", { className: "rastro-forms__badge", "data-tone": "adv", children: "Avan\u00E7ado" }), open && (_jsx("span", { className: "rastro-forms__badge", "data-tone": "risk", children: "Risco" }))] }), open ? (_jsx("p", { className: "rastro-forms__fc-desc", children: "Manda o texto sozinho para o lead que n\u00E3o escreveu." })) : (_jsxs("p", { className: "rastro-forms__fc-desc", "data-wide": "", children: ["Arrisca restringir o n\u00FAmero.", " ", _jsxs("button", { type: "button", className: "rastro-forms__lnk", "data-tone": "muted", "aria-expanded": false, onClick: () => {
|
|
58
|
+
setOpen(true);
|
|
59
|
+
setOneClickOpen(false);
|
|
60
|
+
}, children: ["Ver freios e riscos ", _jsx(Icon, { name: "chevD", size: 13 })] })] }))] }), _jsx("button", { type: "button", role: "switch", className: "rastro-forms__switch", "aria-checked": automatic, "aria-label": "Envio autom\u00E1tico", disabled: !editable, onClick: () => {
|
|
61
|
+
if (automatic) {
|
|
62
|
+
onChange({ ...value, mode: fallbackMode });
|
|
63
|
+
setAcknowledged(false);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
setOpen(true);
|
|
67
|
+
setOneClickOpen(false);
|
|
68
|
+
}
|
|
69
|
+
} })] }), open && (_jsxs("div", { className: "rastro-forms__auto", children: [_jsxs("div", { className: "rastro-forms__risk", role: "note", children: [_jsx(Icon, { name: "alert", size: 18 }), _jsxs("p", { children: [_jsx("b", { children: "O n\u00FAmero da empresa pode ser restringido ou banido." }), " O WhatsApp pune mensagem em s\u00E9rie para quem nunca escreveu, ainda mais fora da API oficial."] })] }), _jsx("p", { className: "rastro-forms__brakes-title", children: "Freios" }), _jsxs("div", { className: "rastro-forms__brakes", children: [_jsxs("label", { className: "rastro-forms__field", children: [_jsx("span", { className: "rastro-forms__lab", children: "Esperar o lead escrever" }), _jsxs("span", { className: "rastro-forms__field-box", children: [_jsx(Icon, { name: "clock", size: 14 }), _jsx("select", { value: brakes.waitMinutes, disabled: !editable, onChange: (event) => setBrakes({ waitMinutes: Number(event.target.value) }), children: WAIT_CHOICES.map((minutes) => (_jsx("option", { value: minutes, children: minutes < 60
|
|
70
|
+
? `${minutes} min antes de enviar`
|
|
71
|
+
: `${minutes / 60} h antes de enviar` }, minutes))) })] })] }), _jsxs("label", { className: "rastro-forms__field", children: [_jsx("span", { className: "rastro-forms__lab", children: "M\u00E1ximo por hora" }), _jsxs("span", { className: "rastro-forms__field-box", children: [_jsx(Icon, { name: "gauge", size: 14 }), _jsx("select", { value: brakes.maxPerHour, disabled: !editable, onChange: (event) => setBrakes({ maxPerHour: Number(event.target.value) }), children: PER_HOUR_CHOICES.map((count) => (_jsxs("option", { value: count, children: [count, " mensagens"] }, count))) })] })] }), _jsxs("label", { className: "rastro-forms__field", children: [_jsx("span", { className: "rastro-forms__lab", children: "S\u00F3 em hor\u00E1rio comercial" }), _jsxs("span", { className: "rastro-forms__field-box", children: [_jsx(Icon, { name: "cal", size: 14 }), _jsxs("select", { value: brakes.businessHoursOnly ? "yes" : "no", disabled: !editable, onChange: (event) => setBrakes({
|
|
72
|
+
businessHoursOnly: event.target.value === "yes",
|
|
73
|
+
}), children: [_jsx("option", { value: "yes", children: businessHoursLabel ?? "Horário comercial da empresa" }), _jsx("option", { value: "no", children: "Qualquer hor\u00E1rio" })] })] })] }), _jsxs("div", { className: "rastro-forms__field", children: [_jsx("span", { className: "rastro-forms__lab", children: "Intervalo aleat\u00F3rio" }), _jsxs("span", { className: "rastro-forms__field-box", "data-static": "", children: [_jsx(Icon, { name: "shuffle", size: 14 }), RANDOM_INTERVAL_LABEL] })] })] }), _jsxs("p", { className: "rastro-forms__tip", children: [_jsx(Icon, { name: "info", size: 13 }), "Descartados nunca recebem. Passou do limite, o lead espera o pr\u00F3ximo hor\u00E1rio."] }), !automatic && (_jsxs("label", { className: "rastro-forms__ack", children: [_jsx("input", { type: "checkbox", checked: acknowledged, disabled: !editable, onChange: (event) => setAcknowledged(event.target.checked) }), _jsxs("span", { children: ["Entendo que ", phrase, " pode ser restringido e quero ligar mesmo assim."] })] })), _jsx("div", { className: "rastro-forms__auto-actions", children: automatic ? (_jsx("button", { type: "button", className: "rastro-forms__btn", "data-variant": "outline", "data-size": "sm", disabled: !editable, onClick: () => {
|
|
74
|
+
onChange({ ...value, mode: fallbackMode });
|
|
75
|
+
setAcknowledged(false);
|
|
76
|
+
}, children: "Desligar envio autom\u00E1tico" })) : (_jsxs(_Fragment, { children: [_jsx("button", { type: "button", className: "rastro-forms__btn", "data-size": "sm", disabled: !editable || !acknowledged, onClick: () => onChange({ ...value, mode: "automatic", brakes }), children: "Ligar envio autom\u00E1tico" }), _jsx("button", { type: "button", className: "rastro-forms__btn", "data-variant": "outline", "data-size": "sm", onClick: () => {
|
|
77
|
+
setOpen(false);
|
|
78
|
+
setAcknowledged(false);
|
|
79
|
+
}, children: "Manter desligado" })] })) })] }))] })] }));
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=FirstContact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FirstContact.js","sourceRoot":"","sources":["../../../src/ui/forms/FirstContact.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { FormLead, FormLeadStep } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* The origin chip on a host's card: "Formulário · Avaliação gratuita" in Meta
|
|
4
|
+
* blue, or, with `variant="wrote"`, "veio do formulário" on the conversation
|
|
5
|
+
* the lead opened through the end screen's button.
|
|
6
|
+
*/
|
|
7
|
+
export declare function FormLeadBadge({ formName, variant, size, }: {
|
|
8
|
+
formName?: string;
|
|
9
|
+
variant?: "form" | "wrote";
|
|
10
|
+
size?: "sm" | "md";
|
|
11
|
+
}): import("react").JSX.Element;
|
|
12
|
+
/** The path a lead followed, from what the lead holds, when the host gave none. */
|
|
13
|
+
export declare function defaultFormLeadPath(lead: FormLead): FormLeadStep[];
|
|
14
|
+
/**
|
|
15
|
+
* A form lead's answers, origin and path, for the host's card and contact
|
|
16
|
+
* panel (D5, D6, D9):
|
|
17
|
+
* - `card` (default): "Respostas do formulário" with the origin under the
|
|
18
|
+
* answers, then "Caminho que o lead seguiu";
|
|
19
|
+
* - `panel`: one highlighted box whose subtitle carries the origin and whose
|
|
20
|
+
* foot names the rule that decided, then the path (the Chat's side panel);
|
|
21
|
+
* - `compact`: the phone's "Respostas" and "Caminho", short words.
|
|
22
|
+
*/
|
|
23
|
+
export declare function FormLeadAnswers({ lead, now, layout, }: {
|
|
24
|
+
lead: FormLead;
|
|
25
|
+
now: number;
|
|
26
|
+
layout?: "card" | "panel" | "compact";
|
|
27
|
+
}): import("react").JSX.Element;
|
|
28
|
+
//# sourceMappingURL=FormLead.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormLead.d.ts","sourceRoot":"","sources":["../../../src/ui/forms/FormLead.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EAGR,YAAY,EACb,MAAM,YAAY,CAAC;AA0CpB;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,OAAgB,EAChB,IAAW,GACZ,EAAE;IACD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAC3B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;CACpB,+BAwBA;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,EAAE,CAyClE;AAiND;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,GAAG,EACH,MAAe,GAChB,EAAE;IACD,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;CACvC,+BA4DA"}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { MetaMark } from "../integrations/Icons.js";
|
|
3
|
+
import { Glyph, Icon } from "./Icons.js";
|
|
4
|
+
import { clockLabel, dayLabel, waitLabel } from "./model.js";
|
|
5
|
+
/**
|
|
6
|
+
* Meta's leadgen `platform` comes short (`fb`, `ig`, `msg`, `an`); hosts may
|
|
7
|
+
* also hand the long names. Both read the same.
|
|
8
|
+
*/
|
|
9
|
+
const PLATFORM_KEYS = {
|
|
10
|
+
ig: "instagram",
|
|
11
|
+
fb: "facebook",
|
|
12
|
+
msg: "messenger",
|
|
13
|
+
an: "audience_network",
|
|
14
|
+
};
|
|
15
|
+
const PLATFORMS = {
|
|
16
|
+
instagram: "Instagram",
|
|
17
|
+
facebook: "Facebook",
|
|
18
|
+
messenger: "Messenger",
|
|
19
|
+
audience_network: "Audience Network",
|
|
20
|
+
};
|
|
21
|
+
/** `ig` → `instagram`; unknown keys stay as they came, lowercased. */
|
|
22
|
+
const platformKey = (platform) => {
|
|
23
|
+
if (!platform)
|
|
24
|
+
return null;
|
|
25
|
+
const key = platform.trim().toLowerCase();
|
|
26
|
+
return PLATFORM_KEYS[key] ?? key;
|
|
27
|
+
};
|
|
28
|
+
const platformName = (platform) => {
|
|
29
|
+
const key = platformKey(platform);
|
|
30
|
+
return key ? (PLATFORMS[key] ?? platform ?? null) : null;
|
|
31
|
+
};
|
|
32
|
+
function PlatformGlyph({ platform }) {
|
|
33
|
+
const key = platformKey(platform);
|
|
34
|
+
if (key === "instagram" || key === "facebook")
|
|
35
|
+
return _jsx(Glyph, { brand: key, size: 12 });
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
const ruleText = (rule) => `${rule.question} = ${rule.answers.join(" ou ")}`;
|
|
39
|
+
/**
|
|
40
|
+
* The origin chip on a host's card: "Formulário · Avaliação gratuita" in Meta
|
|
41
|
+
* blue, or, with `variant="wrote"`, "veio do formulário" on the conversation
|
|
42
|
+
* the lead opened through the end screen's button.
|
|
43
|
+
*/
|
|
44
|
+
export function FormLeadBadge({ formName, variant = "form", size = "sm", }) {
|
|
45
|
+
if (variant === "wrote")
|
|
46
|
+
return (_jsxs("span", { className: "rastro-ui rastro-forms__seal", "data-variant": "wrote", "data-size": size, children: [_jsx(Icon, { name: "chatin", size: size === "md" ? 13 : 12 }), _jsx("span", { className: "rastro-forms__seal-text", children: "veio do formul\u00E1rio" })] }));
|
|
47
|
+
return (_jsxs("span", { className: "rastro-ui rastro-forms__seal", "data-size": size, title: formName ? `Formulário · ${formName}` : "Formulário", children: [_jsx(MetaMark, { size: size === "md" ? 13 : 11 }), _jsxs("span", { className: "rastro-forms__seal-text", children: ["Formul\u00E1rio", formName ? ` · ${formName}` : ""] })] }));
|
|
48
|
+
}
|
|
49
|
+
/** The path a lead followed, from what the lead holds, when the host gave none. */
|
|
50
|
+
export function defaultFormLeadPath(lead) {
|
|
51
|
+
const steps = [];
|
|
52
|
+
if (lead.origin?.adName)
|
|
53
|
+
steps.push({
|
|
54
|
+
kind: "ad",
|
|
55
|
+
at: null,
|
|
56
|
+
adName: lead.origin.adName,
|
|
57
|
+
platform: lead.origin.platform ?? null,
|
|
58
|
+
});
|
|
59
|
+
steps.push({
|
|
60
|
+
kind: "form",
|
|
61
|
+
at: lead.receivedAt,
|
|
62
|
+
formName: lead.formName,
|
|
63
|
+
platform: lead.origin?.platform ?? null,
|
|
64
|
+
});
|
|
65
|
+
const decision = lead.decision;
|
|
66
|
+
if (decision?.kind === "discard")
|
|
67
|
+
steps.push({
|
|
68
|
+
kind: "discard",
|
|
69
|
+
at: lead.receivedAt,
|
|
70
|
+
reason: decision.reason,
|
|
71
|
+
rule: decision.rule ?? null,
|
|
72
|
+
});
|
|
73
|
+
else if (decision?.kind === "column" && decision.rule)
|
|
74
|
+
steps.push({
|
|
75
|
+
kind: "rule",
|
|
76
|
+
at: lead.receivedAt,
|
|
77
|
+
rule: decision.rule,
|
|
78
|
+
column: decision.column,
|
|
79
|
+
});
|
|
80
|
+
else if (decision?.kind === "column")
|
|
81
|
+
// A rule decided, but the lead does not say which (the journey keeps
|
|
82
|
+
// its index, not the rule): never "no rule matched".
|
|
83
|
+
steps.push({
|
|
84
|
+
kind: "note",
|
|
85
|
+
at: lead.receivedAt,
|
|
86
|
+
text: `Uma regra levou para ${decision.column}`,
|
|
87
|
+
});
|
|
88
|
+
else if (decision)
|
|
89
|
+
steps.push({ kind: "entry", at: lead.receivedAt, column: decision.column });
|
|
90
|
+
return steps;
|
|
91
|
+
}
|
|
92
|
+
function stepTone(step) {
|
|
93
|
+
switch (step.kind) {
|
|
94
|
+
case "ad":
|
|
95
|
+
case "form":
|
|
96
|
+
return "meta";
|
|
97
|
+
case "rule":
|
|
98
|
+
return "rule";
|
|
99
|
+
case "discard":
|
|
100
|
+
return "discard";
|
|
101
|
+
case "button":
|
|
102
|
+
return step.wrote ? "wrote" : undefined;
|
|
103
|
+
case "waiting":
|
|
104
|
+
return "waiting";
|
|
105
|
+
default:
|
|
106
|
+
return undefined;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
function StepText({ step, now, compact, }) {
|
|
110
|
+
switch (step.kind) {
|
|
111
|
+
case "ad": {
|
|
112
|
+
const app = platformName(step.platform);
|
|
113
|
+
return (_jsxs(_Fragment, { children: ["Viu o an\u00FAncio ", step.adName ? _jsx("b", { children: step.adName }) : null, app ? ` no ${app}` : ""] }));
|
|
114
|
+
}
|
|
115
|
+
case "form": {
|
|
116
|
+
if (compact) {
|
|
117
|
+
const app = platformName(step.platform);
|
|
118
|
+
return _jsxs(_Fragment, { children: ["Enviou o formul\u00E1rio", app ? ` pelo ${app}` : ""] });
|
|
119
|
+
}
|
|
120
|
+
return (_jsxs(_Fragment, { children: ["Enviou o formul\u00E1rio ", _jsx("b", { children: step.formName })] }));
|
|
121
|
+
}
|
|
122
|
+
case "rule":
|
|
123
|
+
return (_jsxs(_Fragment, { children: ["Regra ", _jsx("b", { children: ruleText(step.rule) }), " \u2192 ", step.column] }));
|
|
124
|
+
case "entry":
|
|
125
|
+
return compact ? (_jsxs(_Fragment, { children: ["Nenhuma regra: ", _jsx("b", { children: step.column })] })) : (_jsxs(_Fragment, { children: ["Nenhuma regra bateu: entrou em ", _jsx("b", { children: step.column })] }));
|
|
126
|
+
case "discard":
|
|
127
|
+
return (_jsxs(_Fragment, { children: [step.rule ? (_jsxs(_Fragment, { children: ["Regra ", _jsx("b", { children: ruleText(step.rule) }), " \u2192 descartado:", " "] })) : ("Descartado: "), step.reason] }));
|
|
128
|
+
case "button":
|
|
129
|
+
return step.wrote ? (_jsxs(_Fragment, { children: ["Tocou em ", _jsx("b", { children: "Falar no WhatsApp" }), " e escreveu primeiro"] })) : (_jsx(_Fragment, { children: "N\u00E3o tocou em Falar no WhatsApp" }));
|
|
130
|
+
case "waiting":
|
|
131
|
+
return (_jsxs("b", { children: [compact ? "Esperando" : "Esperando o primeiro contato", " ", waitLabel(step.since, now)] }));
|
|
132
|
+
case "note":
|
|
133
|
+
return _jsx(_Fragment, { children: step.text });
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
function stepTime(step) {
|
|
137
|
+
if (step.kind === "waiting")
|
|
138
|
+
return "agora";
|
|
139
|
+
return step.at === null ? "" : clockLabel(step.at);
|
|
140
|
+
}
|
|
141
|
+
/** "Caminho que o lead seguiu": the timeline, oldest first. */
|
|
142
|
+
function LeadPath({ steps, now, compact, }) {
|
|
143
|
+
return (_jsx("ol", { className: "rastro-forms__path", children: steps.map((step, index) => (_jsxs("li", { "data-tone": stepTone(step), children: [_jsx("i", { "aria-hidden": "true" }), _jsx("span", { className: "rastro-forms__path-time rastro-num", children: stepTime(step) }), _jsx(StepText, { step: step, now: now, compact: compact })] }, index))) }));
|
|
144
|
+
}
|
|
145
|
+
function DecisionLine({ decision }) {
|
|
146
|
+
if (decision.kind === "discard")
|
|
147
|
+
return (_jsxs("p", { className: "rastro-forms__ruleline", "data-tone": "discard", children: [_jsx(Icon, { name: "filter", size: 13 }), _jsxs("span", { children: [decision.rule ? `Regra: ${ruleText(decision.rule)} → ` : "", "Descartado \u00B7 ", _jsx("b", { children: decision.reason })] })] }));
|
|
148
|
+
return (_jsxs("p", { className: "rastro-forms__ruleline", children: [_jsx(Icon, { name: "filter", size: 13 }), _jsx("span", { children: decision.rule
|
|
149
|
+
? `Regra: ${ruleText(decision.rule)} →`
|
|
150
|
+
: decision.kind === "column"
|
|
151
|
+
? "Uma regra levou →"
|
|
152
|
+
: "Nenhuma regra bateu →" }), _jsx("i", { className: "rastro-forms__dot", style: decision.color ? { background: decision.color } : undefined, "aria-hidden": "true" }), _jsx("b", { children: decision.column })] }));
|
|
153
|
+
}
|
|
154
|
+
function Answers({ lead }) {
|
|
155
|
+
if (lead.answers.length === 0)
|
|
156
|
+
return (_jsx("p", { className: "rastro-forms__sub", children: "Sem respostas de escolha neste lead." }));
|
|
157
|
+
return (_jsx("ul", { className: "rastro-forms__qa", children: lead.answers.map((entry, index) => (_jsxs("li", { children: [_jsx("span", { children: entry.question }), _jsx("b", { children: entry.answer })] }, `${entry.question}:${index}`))) }));
|
|
158
|
+
}
|
|
159
|
+
function OriginList({ lead }) {
|
|
160
|
+
const origin = lead.origin;
|
|
161
|
+
if (!origin)
|
|
162
|
+
return null;
|
|
163
|
+
const app = platformName(origin.platform);
|
|
164
|
+
const rows = [];
|
|
165
|
+
if (app)
|
|
166
|
+
rows.push([
|
|
167
|
+
"Veio de",
|
|
168
|
+
_jsxs("span", { className: "rastro-forms__inline", children: [_jsx(PlatformGlyph, { platform: origin.platform }), [app, origin.placement].filter(Boolean).join(" · ")] }, "app"),
|
|
169
|
+
]);
|
|
170
|
+
if (origin.campaignName)
|
|
171
|
+
rows.push(["Campanha", origin.campaignName]);
|
|
172
|
+
if (origin.adsetName)
|
|
173
|
+
rows.push(["Conjunto", origin.adsetName]);
|
|
174
|
+
if (origin.adName)
|
|
175
|
+
rows.push(["Anúncio", origin.adName]);
|
|
176
|
+
if (rows.length === 0)
|
|
177
|
+
return null;
|
|
178
|
+
return (_jsxs(_Fragment, { children: [_jsx("hr", { className: "rastro-forms__divider" }), _jsx("dl", { className: "rastro-forms__kv", children: rows.map(([label, value]) => (_jsxs("div", { children: [_jsx("dt", { children: label }), _jsx("dd", { children: value })] }, label))) })] }));
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* A form lead's answers, origin and path, for the host's card and contact
|
|
182
|
+
* panel (D5, D6, D9):
|
|
183
|
+
* - `card` (default): "Respostas do formulário" with the origin under the
|
|
184
|
+
* answers, then "Caminho que o lead seguiu";
|
|
185
|
+
* - `panel`: one highlighted box whose subtitle carries the origin and whose
|
|
186
|
+
* foot names the rule that decided, then the path (the Chat's side panel);
|
|
187
|
+
* - `compact`: the phone's "Respostas" and "Caminho", short words.
|
|
188
|
+
*/
|
|
189
|
+
export function FormLeadAnswers({ lead, now, layout = "card", }) {
|
|
190
|
+
const steps = lead.path ?? defaultFormLeadPath(lead);
|
|
191
|
+
const compact = layout === "compact";
|
|
192
|
+
const app = platformName(lead.origin?.platform);
|
|
193
|
+
return (_jsxs("div", { className: "rastro-ui rastro-forms rastro-forms__lead", "data-layout": layout, children: [_jsxs("section", { className: "rastro-forms__box", "data-highlight": layout === "panel" ? "" : undefined, "aria-label": compact ? "Respostas" : "Respostas do formulário", children: [_jsxs("h3", { className: "rastro-forms__box-title", children: [_jsx(MetaMark, { size: compact ? 14 : 15 }), compact
|
|
194
|
+
? "Respostas"
|
|
195
|
+
: layout === "panel"
|
|
196
|
+
? `Formulário · ${lead.formName}`
|
|
197
|
+
: "Respostas do formulário"] }), layout === "card" && (_jsxs("p", { className: "rastro-forms__sub", children: [lead.formName, " \u00B7 ", dayLabel(lead.receivedAt, now)] })), layout === "panel" && (_jsxs("p", { className: "rastro-forms__sub rastro-forms__inline", children: [dayLabel(lead.receivedAt, now), app && (_jsxs(_Fragment, { children: [" · ", _jsx(PlatformGlyph, { platform: lead.origin?.platform }), app] })), lead.origin?.campaignName ? ` · ${lead.origin.campaignName}` : ""] })), _jsx(Answers, { lead: lead }), layout === "card" && _jsx(OriginList, { lead: lead }), layout === "panel" && lead.decision && (_jsx(DecisionLine, { decision: lead.decision }))] }), steps.length > 0 && (_jsxs("section", { className: "rastro-forms__box", "aria-label": compact ? "Caminho" : "Caminho que o lead seguiu", children: [_jsxs("h3", { className: "rastro-forms__box-title", children: [_jsx(Icon, { name: "route", size: compact ? 14 : 15 }), compact ? "Caminho" : "Caminho que o lead seguiu"] }), _jsx(LeadPath, { steps: steps, now: now, compact: compact })] }))] }));
|
|
198
|
+
}
|
|
199
|
+
//# sourceMappingURL=FormLead.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormLead.js","sourceRoot":"","sources":["../../../src/ui/forms/FormLead.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { FormBoard, FormReportRow, FormRules, FormRulesChoice, FormRulesDraft, FormRulesSimulation, IntegrationSite, MetaForm, MetaPage } from "./types.js";
|
|
2
|
+
export interface FormRulesDrawerProps {
|
|
3
|
+
site: IntegrationSite;
|
|
4
|
+
/** The Page the form is on: its name heads the drawer. */
|
|
5
|
+
page?: MetaPage | null;
|
|
6
|
+
form: MetaForm;
|
|
7
|
+
/**
|
|
8
|
+
* `formRules`: undefined while loading; null when the host could not
|
|
9
|
+
* answer, and then nothing can be saved (an empty draft would overwrite
|
|
10
|
+
* the stored rules).
|
|
11
|
+
*/
|
|
12
|
+
rules: FormRules | null | undefined;
|
|
13
|
+
board?: FormBoard | undefined;
|
|
14
|
+
/** The form's 30 days (`formsReport`), for "64 leads em 30 dias". */
|
|
15
|
+
report?: FormReportRow | null;
|
|
16
|
+
/** The draft simulated (`simulateFormRules`); undefined while it runs. */
|
|
17
|
+
simulation?: FormRulesSimulation | null | undefined;
|
|
18
|
+
/** Asks for the draft's simulation; without it the section shows none. */
|
|
19
|
+
onSimulate?: (draft: FormRulesDraft) => void;
|
|
20
|
+
/** False for a reader without configure: read only. */
|
|
21
|
+
permitted: boolean;
|
|
22
|
+
busy?: boolean;
|
|
23
|
+
/** The last write's refusal, in pt-BR: a refused save keeps the draft. */
|
|
24
|
+
error?: string | null;
|
|
25
|
+
/** Who set these rules, when another owner did ("uze.ai"): a lock. */
|
|
26
|
+
lockedBy?: string | null;
|
|
27
|
+
/** The reader edits as the company's partner (D10's note). */
|
|
28
|
+
editsAsPartner?: boolean;
|
|
29
|
+
senderLabel?: string;
|
|
30
|
+
businessHoursLabel?: string;
|
|
31
|
+
/** "Abrir na Meta"; the Page's forms library by default. */
|
|
32
|
+
formUrl?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Saves the draft. The drawer closes when this resolves to anything but
|
|
35
|
+
* false; on false (or a rejection) the draft stays open beside the error.
|
|
36
|
+
*/
|
|
37
|
+
onSave: (rules: FormRulesChoice) => Promise<boolean | void> | boolean | void;
|
|
38
|
+
/** "Ver como ligar": the WhatsApp button guide. */
|
|
39
|
+
onOpenGuide?: () => void;
|
|
40
|
+
onClose: () => void;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* D2/D8: one form's rules. Where the lead enters when no rule matches, the
|
|
44
|
+
* rules in order (first match wins) with the leads each decided this month,
|
|
45
|
+
* the last 30 days simulated under the draft, and how the first contact
|
|
46
|
+
* happens. Saving affects only the next leads.
|
|
47
|
+
*/
|
|
48
|
+
export declare function FormRulesDrawer(props: FormRulesDrawerProps): import("react").JSX.Element;
|
|
49
|
+
//# sourceMappingURL=FormRulesDrawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormRulesDrawer.d.ts","sourceRoot":"","sources":["../../../src/ui/forms/FormRulesDrawer.tsx"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EACV,SAAS,EACT,aAAa,EAEb,SAAS,EACT,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,QAAQ,EACR,QAAQ,EACT,MAAM,YAAY,CAAC;AAMpB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,eAAe,CAAC;IACtB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf;;;;OAIG;IACH,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAC9B,qEAAqE;IACrE,MAAM,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;IAC9B,0EAA0E;IAC1E,UAAU,CAAC,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,CAAC;IACpD,0EAA0E;IAC1E,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAC7C,uDAAuD;IACvD,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,MAAM,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC;IAC7E,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA0ED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,+BA+G1D"}
|