@bigbinary/neeto-rules-frontend 2.4.1 → 2.5.0
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 +2 -1
- package/app/javascript/src/translations/en.json +12 -6
- package/dist/CannedResponsesPane.js +23 -22
- package/dist/CannedResponsesPane.js.map +1 -1
- package/dist/NeetoRulesForm.js +185 -48
- package/dist/NeetoRulesForm.js.map +1 -1
- package/dist/cjs/CannedResponsesPane.js +21 -20
- package/dist/cjs/CannedResponsesPane.js.map +1 -1
- package/dist/cjs/NeetoRulesForm.js +186 -48
- package/dist/cjs/NeetoRulesForm.js.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/package.json +11 -11
package/README.md
CHANGED
|
@@ -64,7 +64,7 @@ The Engine is used to manage automation rules feature within neeto applications.
|
|
|
64
64
|
application:
|
|
65
65
|
|
|
66
66
|
```ruby
|
|
67
|
-
rails
|
|
67
|
+
bundle exec rails neeto_rules_engine:install:migrations
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
5. Add the migrations to the database:
|
|
@@ -539,6 +539,7 @@ const initialProps = {
|
|
|
539
539
|
6. `onSelectEvent`: `(name, selectedOption) => void`. This method will trigger
|
|
540
540
|
when we select an event option. The name is to refer the event in the formik
|
|
541
541
|
context.
|
|
542
|
+
7. `enableAddingDelay`: Adds option to add execution delay. (Boolean). Ref: [NeetoForm PR#11704](https://github.com/bigbinary/neeto-form-web/pull/11704/files)
|
|
542
543
|
|
|
543
544
|
Refer to the [EventCondition section](./docs/event-conditions.md) for more
|
|
544
545
|
information.
|
|
@@ -38,7 +38,8 @@
|
|
|
38
38
|
"data": "Data",
|
|
39
39
|
"reorder": "Reorder",
|
|
40
40
|
"at": "at",
|
|
41
|
-
"apply": "Apply"
|
|
41
|
+
"apply": "Apply",
|
|
42
|
+
"addDelay": "Add delay"
|
|
42
43
|
},
|
|
43
44
|
"cannedResponses": {
|
|
44
45
|
"title": "Canned responses"
|
|
@@ -59,7 +60,8 @@
|
|
|
59
60
|
"selectVerb": "select verb",
|
|
60
61
|
"selectField": "select field",
|
|
61
62
|
"addCondition": "Add condition",
|
|
62
|
-
"selectDate": "Select date"
|
|
63
|
+
"selectDate": "Select date",
|
|
64
|
+
"delayExecutionBy": "Delay execution by"
|
|
63
65
|
},
|
|
64
66
|
"labels": {
|
|
65
67
|
"active": "Active",
|
|
@@ -79,7 +81,7 @@
|
|
|
79
81
|
"updatedAt": "Updated at",
|
|
80
82
|
"ticket": "Ticket",
|
|
81
83
|
"requester": "Requester",
|
|
82
|
-
"organization": "
|
|
84
|
+
"organization": "Workspace",
|
|
83
85
|
"memberOrRequester": "Member or Requester",
|
|
84
86
|
"system": "System",
|
|
85
87
|
"ui": "UI",
|
|
@@ -172,7 +174,8 @@
|
|
|
172
174
|
"value": "Value",
|
|
173
175
|
"selectTemplate": "Select a template",
|
|
174
176
|
"phoneNumberField": "Type phone number and press enter",
|
|
175
|
-
"searchRules": "Search automation rules"
|
|
177
|
+
"searchRules": "Search automation rules",
|
|
178
|
+
"enterDelay": "Enter delay"
|
|
176
179
|
},
|
|
177
180
|
"buttons": {
|
|
178
181
|
"save": "Save",
|
|
@@ -219,7 +222,9 @@
|
|
|
219
222
|
},
|
|
220
223
|
"invalidPhoneNumber": "Phone number is invalid",
|
|
221
224
|
"invalidUrlEntity": "{{entity}} must be a valid URL",
|
|
222
|
-
"maximumEmails": "Only up to {{max}} email addresses are allowed"
|
|
225
|
+
"maximumEmails": "Only up to {{max}} email addresses are allowed",
|
|
226
|
+
"maxDelay": "Delay must be less than {{max}}",
|
|
227
|
+
"minDelay": "Delay must be greater than {{min}}"
|
|
223
228
|
},
|
|
224
229
|
"conditionVerbs": {
|
|
225
230
|
"is": "Is",
|
|
@@ -348,7 +353,8 @@
|
|
|
348
353
|
}
|
|
349
354
|
},
|
|
350
355
|
"helpText": {
|
|
351
|
-
"description": "Automation rules feature allows you to create rules to automate specific actions when certain events occur."
|
|
356
|
+
"description": "Automation rules feature allows you to create rules to automate specific actions when certain events occur.",
|
|
357
|
+
"addDelay": "Add a delay so the following actions execute after the specified time"
|
|
352
358
|
}
|
|
353
359
|
}
|
|
354
360
|
}
|
|
@@ -3,7 +3,7 @@ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
|
3
3
|
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
4
4
|
import { createElement, useState, useRef } from 'react';
|
|
5
5
|
import { Formik, Form } from 'formik';
|
|
6
|
-
import { findBy, toLabelAndValue } from '@bigbinary/neeto-cist';
|
|
6
|
+
import { findBy, toLabelAndValue, isPresent } from '@bigbinary/neeto-cist';
|
|
7
7
|
import { PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
|
|
8
8
|
import Pane from '@bigbinary/neetoui/Pane';
|
|
9
9
|
import Spinner from '@bigbinary/neetoui/Spinner';
|
|
@@ -18,7 +18,7 @@ import { t } from 'i18next';
|
|
|
18
18
|
import { sanitize } from 'dompurify';
|
|
19
19
|
import Input from '@bigbinary/neetoui/Input';
|
|
20
20
|
import Label from '@bigbinary/neetoui/Label';
|
|
21
|
-
import { jsxs, jsx
|
|
21
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
22
22
|
|
|
23
23
|
var Action = function Action(_ref) {
|
|
24
24
|
var id = _ref.id,
|
|
@@ -344,29 +344,30 @@ var CannedResponsesPane = function CannedResponsesPane(_ref) {
|
|
|
344
344
|
children: areDropdownListsLoading ? /*#__PURE__*/jsx("div", {
|
|
345
345
|
className: "flex h-full w-full items-center justify-center",
|
|
346
346
|
children: /*#__PURE__*/jsx(Spinner, {})
|
|
347
|
-
}) : /*#__PURE__*/jsxs(
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
347
|
+
}) : /*#__PURE__*/jsxs("div", {
|
|
348
|
+
className: "flex flex-col gap-y-4",
|
|
349
|
+
children: [/*#__PURE__*/jsx(Select, {
|
|
350
|
+
options: options,
|
|
351
|
+
isSearchable: true,
|
|
352
|
+
label: t("neetoRules.labels.selectCannedResponse"),
|
|
353
|
+
name: "cannedResponse",
|
|
354
|
+
ref: initialFocusRef,
|
|
355
|
+
onChange: function onChange(value) {
|
|
356
|
+
setFieldValue("cannedResponse", value);
|
|
357
|
+
handleSelect(value);
|
|
358
|
+
}
|
|
359
|
+
}), isPresent(cannedResponse) && /*#__PURE__*/jsxs("div", {
|
|
360
|
+
className: "flex flex-col",
|
|
361
|
+
children: [/*#__PURE__*/jsx(Typography, {
|
|
361
362
|
style: "body2",
|
|
362
363
|
children: t("neetoRules.common.preview")
|
|
364
|
+
}), /*#__PURE__*/jsx(Body, {
|
|
365
|
+
actionNameOptions: actionNameOptions,
|
|
366
|
+
cannedResponse: cannedResponse,
|
|
367
|
+
dropdownList: dropdownList,
|
|
368
|
+
variables: variables,
|
|
369
|
+
isLoading: isLoadingPreview
|
|
363
370
|
})]
|
|
364
|
-
}), /*#__PURE__*/jsx(Body, {
|
|
365
|
-
actionNameOptions: actionNameOptions,
|
|
366
|
-
cannedResponse: cannedResponse,
|
|
367
|
-
dropdownList: dropdownList,
|
|
368
|
-
variables: variables,
|
|
369
|
-
isLoading: isLoadingPreview
|
|
370
371
|
})]
|
|
371
372
|
})
|
|
372
373
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CannedResponsesPane.js","sources":["../app/javascript/src/components/CannedResponsesPane/Action.jsx","../app/javascript/src/components/CannedResponsesPane/constants.js","../app/javascript/src/components/CannedResponsesPane/utils.jsx","../app/javascript/src/components/CannedResponsesPane/Body.jsx","../app/javascript/src/components/CannedResponsesPane/index.jsx"],"sourcesContent":["import { sanitize } from \"dompurify\";\nimport { Input, Label } from \"neetoui\";\n\nconst Action = ({ id, label, value, richText = false }) => {\n if (richText) {\n return (\n <div className=\"mb-4 space-y-2\" key={id}>\n <Label>{label}</Label>\n <div\n className=\"border-radius trix-content neeto-ui-bg-gray-100 cursor-not-allowed whitespace-pre-wrap border p-3\"\n dangerouslySetInnerHTML={{\n __html: sanitize(value.replace(/\\n/g, \"\")),\n }}\n />\n </div>\n );\n }\n\n return (\n <Input\n {...{ label }}\n disabled\n className=\"mb-4\"\n key={id}\n value={value.replace(/_/g, \" \")}\n />\n );\n};\n\nexport default Action;\n","import { t } from \"i18next\";\n\nconst CANNED_RESPONSE_INPUT_ACTION_NAMES = [\n \"assign_agent\",\n \"assign_group\",\n \"remove_tags\",\n \"add_tags\",\n \"change_priority\",\n \"change_status\",\n];\n\nexport const CANNED_RESPONSE_RICH_TEXT_ACTION_NAME = [\"add_note\", \"add_reply\"];\n\nexport const CANNED_RESPONSE_ACTION_LABELS = [\n ...CANNED_RESPONSE_INPUT_ACTION_NAMES,\n ...CANNED_RESPONSE_RICH_TEXT_ACTION_NAME,\n].reduce(\n (labelObject, actionName) => ({\n ...labelObject,\n [actionName]: `neetoRules.labels.${actionName}`,\n }),\n {}\n);\n\nexport const ACTION_OPTIONS = {\n addNote: \"add_note\",\n addCommentOrReply: \"add_reply\",\n addTags: \"add_tags\",\n removeTags: \"remove_tags\",\n changePriority: \"change_priority\",\n changeStatus: \"change_status\",\n assignAgent: \"assign_agent\",\n assignGroup: \"assign_group\",\n assignTicketFieldValue: \"assign_field_value\",\n};\n\nexport const ACTION_TYPES_MAP = {\n single_option: \"dropdown\",\n multi_option: \"multiSelect\",\n checkbox: \"dropdown\",\n integer: \"number\",\n};\n\nexport const DEFAULT_CHECKBOX_OPTIONS = [\n { label: t(\"neetoRules.labels.checked\"), value: true },\n { label: t(\"neetoRules.labels.unchecked\"), value: false },\n];\n","import { t } from \"i18next\";\nimport { findBy } from \"neetocist\";\nimport { join } from \"ramda\";\n\nimport Action from \"./Action\";\nimport {\n ACTION_OPTIONS,\n ACTION_TYPES_MAP,\n CANNED_RESPONSE_ACTION_LABELS,\n CANNED_RESPONSE_RICH_TEXT_ACTION_NAME,\n DEFAULT_CHECKBOX_OPTIONS,\n} from \"./constants\";\n\nconst renderActionValue = ({ actionType, displayValue }) => {\n if (actionType === \"multiSelect\") {\n return join(\", \", displayValue);\n }\n\n return displayValue;\n};\n\nconst renderDefaultAction = ({ id, name, displayValue, trixBody }) => {\n const label = t(CANNED_RESPONSE_ACTION_LABELS[name]);\n\n if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(name)) {\n return <Action {...{ id, label }} richText value={trixBody} />;\n }\n\n return <Action {...{ id, label }} value={displayValue} />;\n};\n\nconst renderCustomAction = ({\n id,\n actionableId,\n displayValue,\n actionOptions,\n}) => {\n const actionName = `ticket_field_${actionableId}`;\n const actionOption = findBy({ value: actionName }, actionOptions);\n const label = actionOption?.label;\n const actionType = actionOption?.type;\n const actionValue = renderActionValue({ actionType, displayValue });\n const isRichText = actionType === \"textarea\";\n\n return (\n <Action {...{ id, label }} richText={isRichText} value={actionValue} />\n );\n};\n\nconst getActionDropdown = ({ status, teams, members, tags }) => ({\n change_status: status || [],\n assign_group: teams || [],\n assign_agent: members || [],\n add_tags: tags || [],\n remove_tags: tags || [],\n});\n\nconst getActionType = kind => ACTION_TYPES_MAP[kind] || kind;\n\nconst getDropdownOptions = (kind, optionsAttribute) => {\n if ([\"single_option\", \"multi_option\"].includes(kind)) {\n return optionsAttribute.map(({ id, label }) => ({\n label,\n value: id,\n }));\n } else if (kind === \"checkbox\") {\n return [...DEFAULT_CHECKBOX_OPTIONS];\n }\n\n return [];\n};\n\nexport const renderAction = ({\n name,\n id,\n actionableId,\n displayValue,\n actionOptions = [],\n trixBody = \"\",\n}) => {\n const isCustomAction = name === ACTION_OPTIONS.assignTicketFieldValue;\n\n return isCustomAction\n ? renderCustomAction({\n id,\n actionableId,\n displayValue,\n actionOptions,\n })\n : renderDefaultAction({ id, name, displayValue, trixBody });\n};\n\nexport const buildActionOptions = ({\n dropdownOptions,\n actionNameOptions,\n variables,\n}) => {\n const actionDropdown = getActionDropdown(dropdownOptions);\n const options = actionNameOptions.map(option => {\n const dropdownOptions = actionDropdown[option.value];\n\n return dropdownOptions ? { ...option, dropdownOptions } : option;\n });\n\n const fields =\n (dropdownOptions.fields || []).filter(\n field => !field.kind.startsWith(\"system_\")\n ) || [];\n\n const fieldOptions = fields.map(\n ({ id, name, kind, data: attributeOptions }) => ({\n label: t(\"neetoRules.common.assign\", { what: name }),\n value: `ticket_field_${id}`,\n type: getActionType(kind),\n variables,\n defaultData: { actionable_id: id, actionable_type: \"Field\" },\n dropdownOptions: getDropdownOptions(kind, attributeOptions),\n })\n );\n\n return [...options, ...fieldOptions];\n};\n","import { Spinner } from \"neetoui\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { buildActionOptions, renderAction } from \"./utils\";\n\nconst Body = ({\n actionNameOptions,\n cannedResponse,\n dropdownList,\n isLoading,\n variables,\n}) => {\n const { t } = useTranslation();\n\n const actionOptions = buildActionOptions({\n dropdownOptions: dropdownList,\n actionNameOptions,\n variables,\n });\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div className=\"overflow-y-auto p-4\">\n {not(cannedResponse)\n ? t(\"neetoRules.common.preview\")\n : cannedResponse.actions?.map(action =>\n renderAction({ ...action, actionOptions })\n )}\n </div>\n );\n};\nexport default Body;\n","import { useRef, useState } from \"react\";\n\nimport { Form, Formik } from \"formik\";\nimport { toLabelAndValue } from \"neetocist\";\nimport { PLURAL } from \"neetocommons/constants\";\nimport { Pane, Spinner, Typography } from \"neetoui\";\nimport { ActionBlock, Select } from \"neetoui/formik\";\nimport { values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Body from \"./Body\";\n\nconst CannedResponsesPane = ({\n actionNameOptions,\n areDropdownListsLoading,\n dropdownList,\n isCannedResponsePaneOpen,\n isLoadingPreview,\n macros,\n onApply,\n onCancel,\n previewCannedResponses,\n previewParams,\n variables = [],\n}) => {\n const [cannedResponse, setCannedResponse] = useState(null);\n\n const initialFocusRef = useRef();\n\n const { t } = useTranslation();\n\n const options = macros?.map(({ name, id }) => ({ label: name, value: id }));\n\n const handleSelect = async ({ value }) => {\n await previewCannedResponses(\n { id: value, payload: previewParams },\n { onSuccess: response => setCannedResponse(values(response || {})[0]) }\n );\n };\n\n const handleSubmit = () =>\n onApply({ cannedResponse, setCannedResponse, onSettled: onCancel });\n\n const handleCancel = () => {\n onCancel();\n setCannedResponse(null);\n };\n\n return (\n <Pane\n {...{ initialFocusRef }}\n isOpen={isCannedResponsePaneOpen}\n onClose={handleCancel}\n >\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoRules.cannedResponses.title\", PLURAL)}\n </Typography>\n </Pane.Header>\n <Formik\n initialValues={{ cannedResponse: toLabelAndValue(null) }}\n onSubmit={handleSubmit}\n >\n {({ setFieldValue, isSubmitting }) => (\n <Form>\n <Pane.Body>\n <div className=\"flex w-full flex-grow flex-col space-y-4\">\n {areDropdownListsLoading ? (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n ) : (\n <>\n <div className=\"space-y-4\">\n <Select\n {...{ options }}\n isSearchable\n label={t(\"neetoRules.labels.selectCannedResponse\")}\n name=\"cannedResponse\"\n ref={initialFocusRef}\n onChange={value => {\n setFieldValue(\"cannedResponse\", value);\n handleSelect(value);\n }}\n />\n <Typography style=\"body2\">\n {t(\"neetoRules.common.preview\")}\n </Typography>\n </div>\n <Body\n {...{\n actionNameOptions,\n cannedResponse,\n dropdownList,\n variables,\n }}\n isLoading={isLoadingPreview}\n />\n </>\n )}\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n isSubmitting={isSubmitting || isLoadingPreview}\n submitButtonProps={{ label: t(\"neetoRules.common.apply\") }}\n />\n </Pane.Footer>\n </Form>\n )}\n </Formik>\n </Pane>\n );\n};\n\nexport default CannedResponsesPane;\n"],"names":["Action","_ref","id","label","value","_ref$richText","richText","_jsxs","className","children","_jsx","Label","dangerouslySetInnerHTML","__html","sanitize","replace","_createElement","Input","disabled","key","CANNED_RESPONSE_INPUT_ACTION_NAMES","CANNED_RESPONSE_RICH_TEXT_ACTION_NAME","CANNED_RESPONSE_ACTION_LABELS","concat","reduce","labelObject","actionName","_objectSpread","_defineProperty","ACTION_OPTIONS","addNote","addCommentOrReply","addTags","removeTags","changePriority","changeStatus","assignAgent","assignGroup","assignTicketFieldValue","ACTION_TYPES_MAP","single_option","multi_option","checkbox","integer","DEFAULT_CHECKBOX_OPTIONS","t","renderActionValue","actionType","displayValue","join","renderDefaultAction","_ref2","name","trixBody","includes","renderCustomAction","_ref3","actionableId","actionOptions","actionOption","findBy","type","actionValue","isRichText","getActionDropdown","_ref4","status","teams","members","tags","change_status","assign_group","assign_agent","add_tags","remove_tags","getActionType","kind","getDropdownOptions","optionsAttribute","map","_ref5","_toConsumableArray","renderAction","_ref6","_ref6$actionOptions","_ref6$trixBody","isCustomAction","buildActionOptions","_ref7","dropdownOptions","actionNameOptions","variables","actionDropdown","options","option","fields","filter","field","startsWith","fieldOptions","_ref8","attributeOptions","data","what","defaultData","actionable_id","actionable_type","Body","_cannedResponse$actio","cannedResponse","dropdownList","isLoading","_useTranslation","useTranslation","Spinner","not","actions","action","CannedResponsesPane","areDropdownListsLoading","isCannedResponsePaneOpen","isLoadingPreview","macros","onApply","onCancel","previewCannedResponses","previewParams","_ref$variables","_useState","useState","_useState2","_slicedToArray","setCannedResponse","initialFocusRef","useRef","handleSelect","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","payload","onSuccess","response","values","stop","_x","apply","arguments","handleSubmit","onSettled","handleCancel","Pane","isOpen","onClose","Header","Typography","style","weight","PLURAL","Formik","initialValues","toLabelAndValue","onSubmit","setFieldValue","isSubmitting","Form","_Fragment","Select","isSearchable","ref","onChange","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CannedResponsesPane.js","sources":["../app/javascript/src/components/CannedResponsesPane/Action.jsx","../app/javascript/src/components/CannedResponsesPane/constants.js","../app/javascript/src/components/CannedResponsesPane/utils.jsx","../app/javascript/src/components/CannedResponsesPane/Body.jsx","../app/javascript/src/components/CannedResponsesPane/index.jsx"],"sourcesContent":["import { sanitize } from \"dompurify\";\nimport { Input, Label } from \"neetoui\";\n\nconst Action = ({ id, label, value, richText = false }) => {\n if (richText) {\n return (\n <div className=\"mb-4 space-y-2\" key={id}>\n <Label>{label}</Label>\n <div\n className=\"border-radius trix-content neeto-ui-bg-gray-100 cursor-not-allowed whitespace-pre-wrap border p-3\"\n dangerouslySetInnerHTML={{\n __html: sanitize(value.replace(/\\n/g, \"\")),\n }}\n />\n </div>\n );\n }\n\n return (\n <Input\n {...{ label }}\n disabled\n className=\"mb-4\"\n key={id}\n value={value.replace(/_/g, \" \")}\n />\n );\n};\n\nexport default Action;\n","import { t } from \"i18next\";\n\nconst CANNED_RESPONSE_INPUT_ACTION_NAMES = [\n \"assign_agent\",\n \"assign_group\",\n \"remove_tags\",\n \"add_tags\",\n \"change_priority\",\n \"change_status\",\n];\n\nexport const CANNED_RESPONSE_RICH_TEXT_ACTION_NAME = [\"add_note\", \"add_reply\"];\n\nexport const CANNED_RESPONSE_ACTION_LABELS = [\n ...CANNED_RESPONSE_INPUT_ACTION_NAMES,\n ...CANNED_RESPONSE_RICH_TEXT_ACTION_NAME,\n].reduce(\n (labelObject, actionName) => ({\n ...labelObject,\n [actionName]: `neetoRules.labels.${actionName}`,\n }),\n {}\n);\n\nexport const ACTION_OPTIONS = {\n addNote: \"add_note\",\n addCommentOrReply: \"add_reply\",\n addTags: \"add_tags\",\n removeTags: \"remove_tags\",\n changePriority: \"change_priority\",\n changeStatus: \"change_status\",\n assignAgent: \"assign_agent\",\n assignGroup: \"assign_group\",\n assignTicketFieldValue: \"assign_field_value\",\n};\n\nexport const ACTION_TYPES_MAP = {\n single_option: \"dropdown\",\n multi_option: \"multiSelect\",\n checkbox: \"dropdown\",\n integer: \"number\",\n};\n\nexport const DEFAULT_CHECKBOX_OPTIONS = [\n { label: t(\"neetoRules.labels.checked\"), value: true },\n { label: t(\"neetoRules.labels.unchecked\"), value: false },\n];\n","import { t } from \"i18next\";\nimport { findBy } from \"neetocist\";\nimport { join } from \"ramda\";\n\nimport Action from \"./Action\";\nimport {\n ACTION_OPTIONS,\n ACTION_TYPES_MAP,\n CANNED_RESPONSE_ACTION_LABELS,\n CANNED_RESPONSE_RICH_TEXT_ACTION_NAME,\n DEFAULT_CHECKBOX_OPTIONS,\n} from \"./constants\";\n\nconst renderActionValue = ({ actionType, displayValue }) => {\n if (actionType === \"multiSelect\") {\n return join(\", \", displayValue);\n }\n\n return displayValue;\n};\n\nconst renderDefaultAction = ({ id, name, displayValue, trixBody }) => {\n const label = t(CANNED_RESPONSE_ACTION_LABELS[name]);\n\n if (CANNED_RESPONSE_RICH_TEXT_ACTION_NAME.includes(name)) {\n return <Action {...{ id, label }} richText value={trixBody} />;\n }\n\n return <Action {...{ id, label }} value={displayValue} />;\n};\n\nconst renderCustomAction = ({\n id,\n actionableId,\n displayValue,\n actionOptions,\n}) => {\n const actionName = `ticket_field_${actionableId}`;\n const actionOption = findBy({ value: actionName }, actionOptions);\n const label = actionOption?.label;\n const actionType = actionOption?.type;\n const actionValue = renderActionValue({ actionType, displayValue });\n const isRichText = actionType === \"textarea\";\n\n return (\n <Action {...{ id, label }} richText={isRichText} value={actionValue} />\n );\n};\n\nconst getActionDropdown = ({ status, teams, members, tags }) => ({\n change_status: status || [],\n assign_group: teams || [],\n assign_agent: members || [],\n add_tags: tags || [],\n remove_tags: tags || [],\n});\n\nconst getActionType = kind => ACTION_TYPES_MAP[kind] || kind;\n\nconst getDropdownOptions = (kind, optionsAttribute) => {\n if ([\"single_option\", \"multi_option\"].includes(kind)) {\n return optionsAttribute.map(({ id, label }) => ({\n label,\n value: id,\n }));\n } else if (kind === \"checkbox\") {\n return [...DEFAULT_CHECKBOX_OPTIONS];\n }\n\n return [];\n};\n\nexport const renderAction = ({\n name,\n id,\n actionableId,\n displayValue,\n actionOptions = [],\n trixBody = \"\",\n}) => {\n const isCustomAction = name === ACTION_OPTIONS.assignTicketFieldValue;\n\n return isCustomAction\n ? renderCustomAction({\n id,\n actionableId,\n displayValue,\n actionOptions,\n })\n : renderDefaultAction({ id, name, displayValue, trixBody });\n};\n\nexport const buildActionOptions = ({\n dropdownOptions,\n actionNameOptions,\n variables,\n}) => {\n const actionDropdown = getActionDropdown(dropdownOptions);\n const options = actionNameOptions.map(option => {\n const dropdownOptions = actionDropdown[option.value];\n\n return dropdownOptions ? { ...option, dropdownOptions } : option;\n });\n\n const fields =\n (dropdownOptions.fields || []).filter(\n field => !field.kind.startsWith(\"system_\")\n ) || [];\n\n const fieldOptions = fields.map(\n ({ id, name, kind, data: attributeOptions }) => ({\n label: t(\"neetoRules.common.assign\", { what: name }),\n value: `ticket_field_${id}`,\n type: getActionType(kind),\n variables,\n defaultData: { actionable_id: id, actionable_type: \"Field\" },\n dropdownOptions: getDropdownOptions(kind, attributeOptions),\n })\n );\n\n return [...options, ...fieldOptions];\n};\n","import { Spinner } from \"neetoui\";\nimport { not } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { buildActionOptions, renderAction } from \"./utils\";\n\nconst Body = ({\n actionNameOptions,\n cannedResponse,\n dropdownList,\n isLoading,\n variables,\n}) => {\n const { t } = useTranslation();\n\n const actionOptions = buildActionOptions({\n dropdownOptions: dropdownList,\n actionNameOptions,\n variables,\n });\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <div className=\"overflow-y-auto p-4\">\n {not(cannedResponse)\n ? t(\"neetoRules.common.preview\")\n : cannedResponse.actions?.map(action =>\n renderAction({ ...action, actionOptions })\n )}\n </div>\n );\n};\nexport default Body;\n","import { useRef, useState } from \"react\";\n\nimport { Form, Formik } from \"formik\";\nimport { isPresent, toLabelAndValue } from \"neetocist\";\nimport { PLURAL } from \"neetocommons/constants\";\nimport { Pane, Spinner, Typography } from \"neetoui\";\nimport { ActionBlock, Select } from \"neetoui/formik\";\nimport { values } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Body from \"./Body\";\n\nconst CannedResponsesPane = ({\n actionNameOptions,\n areDropdownListsLoading,\n dropdownList,\n isCannedResponsePaneOpen,\n isLoadingPreview,\n macros,\n onApply,\n onCancel,\n previewCannedResponses,\n previewParams,\n variables = [],\n}) => {\n const [cannedResponse, setCannedResponse] = useState(null);\n\n const initialFocusRef = useRef();\n\n const { t } = useTranslation();\n\n const options = macros?.map(({ name, id }) => ({ label: name, value: id }));\n\n const handleSelect = async ({ value }) => {\n await previewCannedResponses(\n { id: value, payload: previewParams },\n { onSuccess: response => setCannedResponse(values(response || {})[0]) }\n );\n };\n\n const handleSubmit = () =>\n onApply({ cannedResponse, setCannedResponse, onSettled: onCancel });\n\n const handleCancel = () => {\n onCancel();\n setCannedResponse(null);\n };\n\n return (\n <Pane\n {...{ initialFocusRef }}\n isOpen={isCannedResponsePaneOpen}\n onClose={handleCancel}\n >\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoRules.cannedResponses.title\", PLURAL)}\n </Typography>\n </Pane.Header>\n <Formik\n initialValues={{ cannedResponse: toLabelAndValue(null) }}\n onSubmit={handleSubmit}\n >\n {({ setFieldValue, isSubmitting }) => (\n <Form>\n <Pane.Body>\n <div className=\"flex w-full flex-grow flex-col space-y-4\">\n {areDropdownListsLoading ? (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n ) : (\n <div className=\"flex flex-col gap-y-4\">\n <Select\n {...{ options }}\n isSearchable\n label={t(\"neetoRules.labels.selectCannedResponse\")}\n name=\"cannedResponse\"\n ref={initialFocusRef}\n onChange={value => {\n setFieldValue(\"cannedResponse\", value);\n handleSelect(value);\n }}\n />\n {isPresent(cannedResponse) && (\n <div className=\"flex flex-col\">\n <Typography style=\"body2\">\n {t(\"neetoRules.common.preview\")}\n </Typography>\n <Body\n {...{\n actionNameOptions,\n cannedResponse,\n dropdownList,\n variables,\n }}\n isLoading={isLoadingPreview}\n />\n </div>\n )}\n </div>\n )}\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n cancelButtonProps={{ onClick: handleCancel }}\n isSubmitting={isSubmitting || isLoadingPreview}\n submitButtonProps={{ label: t(\"neetoRules.common.apply\") }}\n />\n </Pane.Footer>\n </Form>\n )}\n </Formik>\n </Pane>\n );\n};\n\nexport default CannedResponsesPane;\n"],"names":["Action","_ref","id","label","value","_ref$richText","richText","_jsxs","className","children","_jsx","Label","dangerouslySetInnerHTML","__html","sanitize","replace","_createElement","Input","disabled","key","CANNED_RESPONSE_INPUT_ACTION_NAMES","CANNED_RESPONSE_RICH_TEXT_ACTION_NAME","CANNED_RESPONSE_ACTION_LABELS","concat","reduce","labelObject","actionName","_objectSpread","_defineProperty","ACTION_OPTIONS","addNote","addCommentOrReply","addTags","removeTags","changePriority","changeStatus","assignAgent","assignGroup","assignTicketFieldValue","ACTION_TYPES_MAP","single_option","multi_option","checkbox","integer","DEFAULT_CHECKBOX_OPTIONS","t","renderActionValue","actionType","displayValue","join","renderDefaultAction","_ref2","name","trixBody","includes","renderCustomAction","_ref3","actionableId","actionOptions","actionOption","findBy","type","actionValue","isRichText","getActionDropdown","_ref4","status","teams","members","tags","change_status","assign_group","assign_agent","add_tags","remove_tags","getActionType","kind","getDropdownOptions","optionsAttribute","map","_ref5","_toConsumableArray","renderAction","_ref6","_ref6$actionOptions","_ref6$trixBody","isCustomAction","buildActionOptions","_ref7","dropdownOptions","actionNameOptions","variables","actionDropdown","options","option","fields","filter","field","startsWith","fieldOptions","_ref8","attributeOptions","data","what","defaultData","actionable_id","actionable_type","Body","_cannedResponse$actio","cannedResponse","dropdownList","isLoading","_useTranslation","useTranslation","Spinner","not","actions","action","CannedResponsesPane","areDropdownListsLoading","isCannedResponsePaneOpen","isLoadingPreview","macros","onApply","onCancel","previewCannedResponses","previewParams","_ref$variables","_useState","useState","_useState2","_slicedToArray","setCannedResponse","initialFocusRef","useRef","handleSelect","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","payload","onSuccess","response","values","stop","_x","apply","arguments","handleSubmit","onSettled","handleCancel","Pane","isOpen","onClose","Header","Typography","style","weight","PLURAL","Formik","initialValues","toLabelAndValue","onSubmit","setFieldValue","isSubmitting","Form","Select","isSearchable","ref","onChange","isPresent","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAGA,IAAMA,MAAM,GAAG,SAATA,MAAMA,CAAAC,IAAA,EAA+C;AAAA,EAAA,IAAzCC,EAAE,GAAAD,IAAA,CAAFC,EAAE;IAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;IAAEC,KAAK,GAAAH,IAAA,CAALG,KAAK;IAAAC,aAAA,GAAAJ,IAAA,CAAEK,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,aAAA,CAAA;AAClD,EAAA,IAAIC,QAAQ,EAAE;AACZ,IAAA,oBACEC,IAAA,CAAA,KAAA,EAAA;AAAKC,MAAAA,SAAS,EAAC,gBAAgB;MAAAC,QAAA,EAAA,cAC7BC,GAAA,CAACC,KAAK,EAAA;AAAAF,QAAAA,QAAA,EAAEN,KAAAA;OAAa,CAAC,eACtBO,GAAA,CAAA,KAAA,EAAA;AACEF,QAAAA,SAAS,EAAC,mGAAmG;AAC7GI,QAAAA,uBAAuB,EAAE;UACvBC,MAAM,EAAEC,QAAQ,CAACV,KAAK,CAACW,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAC3C,SAAA;AAAE,OACH,CAAC,CAAA;AAAA,KAAA,EAPiCb,EAQhC,CAAC,CAAA;AAEV,GAAA;EAEA,oBACEc,aAAA,CAACC,KAAK,EAAA;AACEd,IAAAA,KAAK,EAALA,KAAK;IACXe,QAAQ,EAAA,IAAA;AACRV,IAAAA,SAAS,EAAC,MAAM;AAChBW,IAAAA,GAAG,EAAEjB,EAAG;AACRE,IAAAA,KAAK,EAAEA,KAAK,CAACW,OAAO,CAAC,IAAI,EAAE,GAAG,CAAA;AAAE,GACjC,CAAC,CAAA;AAEN,CAAC;;;;ACzBD,IAAMK,kCAAkC,GAAG,CACzC,cAAc,EACd,cAAc,EACd,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,eAAe,CAChB,CAAA;AAEM,IAAMC,qCAAqC,GAAG,CAAC,UAAU,EAAE,WAAW,CAAC,CAAA;AAEvE,IAAMC,6BAA6B,GAAG,EAAA,CAAAC,MAAA,CACxCH,kCAAkC,EAClCC,qCAAqC,EACxCG,MAAM,CACN,UAACC,WAAW,EAAEC,UAAU,EAAA;AAAA,EAAA,OAAAC,eAAA,CAAAA,eAAA,CAAA,EAAA,EACnBF,WAAW,CAAA,EAAA,EAAA,EAAAG,eAAA,CAAA,EAAA,EACbF,UAAU,EAAA,oBAAA,CAAAH,MAAA,CAAwBG,UAAU,CAAA,CAAA,CAAA,CAAA;AAAA,CAC7C,EACF,EACF,CAAC,CAAA;AAEM,IAAMG,cAAc,GAAG;AAC5BC,EAAAA,OAAO,EAAE,UAAU;AACnBC,EAAAA,iBAAiB,EAAE,WAAW;AAC9BC,EAAAA,OAAO,EAAE,UAAU;AACnBC,EAAAA,UAAU,EAAE,aAAa;AACzBC,EAAAA,cAAc,EAAE,iBAAiB;AACjCC,EAAAA,YAAY,EAAE,eAAe;AAC7BC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,WAAW,EAAE,cAAc;AAC3BC,EAAAA,sBAAsB,EAAE,oBAAA;AAC1B,CAAC,CAAA;AAEM,IAAMC,gBAAgB,GAAG;AAC9BC,EAAAA,aAAa,EAAE,UAAU;AACzBC,EAAAA,YAAY,EAAE,aAAa;AAC3BC,EAAAA,QAAQ,EAAE,UAAU;AACpBC,EAAAA,OAAO,EAAE,QAAA;AACX,CAAC,CAAA;AAEM,IAAMC,wBAAwB,GAAG,CACtC;AAAEzC,EAAAA,KAAK,EAAE0C,CAAC,CAAC,2BAA2B,CAAC;AAAEzC,EAAAA,KAAK,EAAE,IAAA;AAAK,CAAC,EACtD;AAAED,EAAAA,KAAK,EAAE0C,CAAC,CAAC,6BAA6B,CAAC;AAAEzC,EAAAA,KAAK,EAAE,KAAA;AAAM,CAAC,CAC1D;;;;ACjCD,IAAM0C,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAA7C,IAAA,EAAqC;AAAA,EAAA,IAA/B8C,UAAU,GAAA9C,IAAA,CAAV8C,UAAU;IAAEC,YAAY,GAAA/C,IAAA,CAAZ+C,YAAY,CAAA;EACnD,IAAID,UAAU,KAAK,aAAa,EAAE;AAChC,IAAA,OAAOE,IAAI,CAAC,IAAI,EAAED,YAAY,CAAC,CAAA;AACjC,GAAA;AAEA,EAAA,OAAOA,YAAY,CAAA;AACrB,CAAC,CAAA;AAED,IAAME,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,EAA6C;AAAA,EAAA,IAAvCjD,EAAE,GAAAiD,KAAA,CAAFjD,EAAE;IAAEkD,IAAI,GAAAD,KAAA,CAAJC,IAAI;IAAEJ,YAAY,GAAAG,KAAA,CAAZH,YAAY;IAAEK,QAAQ,GAAAF,KAAA,CAARE,QAAQ,CAAA;EAC7D,IAAMlD,KAAK,GAAG0C,CAAC,CAACvB,6BAA6B,CAAC8B,IAAI,CAAC,CAAC,CAAA;AAEpD,EAAA,IAAI/B,qCAAqC,CAACiC,QAAQ,CAACF,IAAI,CAAC,EAAE;IACxD,oBAAO1C,GAAA,CAACV,MAAM,EAAA;AAAOE,MAAAA,EAAE,EAAFA,EAAE;AAAEC,MAAAA,KAAK,EAALA,KAAK;MAAIG,QAAQ,EAAA,IAAA;AAACF,MAAAA,KAAK,EAAEiD,QAAAA;AAAS,KAAE,CAAC,CAAA;AAChE,GAAA;EAEA,oBAAO3C,GAAA,CAACV,MAAM,EAAA;AAAOE,IAAAA,EAAE,EAAFA,EAAE;AAAEC,IAAAA,KAAK,EAALA,KAAK;AAAIC,IAAAA,KAAK,EAAE4C,YAAAA;AAAa,GAAE,CAAC,CAAA;AAC3D,CAAC,CAAA;AAED,IAAMO,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,KAAA,EAKlB;AAAA,EAAA,IAJJtD,EAAE,GAAAsD,KAAA,CAAFtD,EAAE;IACFuD,YAAY,GAAAD,KAAA,CAAZC,YAAY;IACZT,YAAY,GAAAQ,KAAA,CAAZR,YAAY;IACZU,aAAa,GAAAF,KAAA,CAAbE,aAAa,CAAA;AAEb,EAAA,IAAMhC,UAAU,GAAA,eAAA,CAAAH,MAAA,CAAmBkC,YAAY,CAAE,CAAA;EACjD,IAAME,YAAY,GAAGC,MAAM,CAAC;AAAExD,IAAAA,KAAK,EAAEsB,UAAAA;GAAY,EAAEgC,aAAa,CAAC,CAAA;EACjE,IAAMvD,KAAK,GAAGwD,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAExD,KAAK,CAAA;EACjC,IAAM4C,UAAU,GAAGY,YAAY,KAAA,IAAA,IAAZA,YAAY,KAAZA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAEE,IAAI,CAAA;EACrC,IAAMC,WAAW,GAAGhB,iBAAiB,CAAC;AAAEC,IAAAA,UAAU,EAAVA,UAAU;AAAEC,IAAAA,YAAY,EAAZA,YAAAA;AAAa,GAAC,CAAC,CAAA;AACnE,EAAA,IAAMe,UAAU,GAAGhB,UAAU,KAAK,UAAU,CAAA;EAE5C,oBACErC,GAAA,CAACV,MAAM,EAAA;AAAOE,IAAAA,EAAE,EAAFA,EAAE;AAAEC,IAAAA,KAAK,EAALA,KAAK;AAAIG,IAAAA,QAAQ,EAAEyD,UAAW;AAAC3D,IAAAA,KAAK,EAAE0D,WAAAA;AAAY,GAAE,CAAC,CAAA;AAE3E,CAAC,CAAA;AAED,IAAME,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAAC,KAAA,EAAA;AAAA,EAAA,IAAMC,MAAM,GAAAD,KAAA,CAANC,MAAM;IAAEC,KAAK,GAAAF,KAAA,CAALE,KAAK;IAAEC,OAAO,GAAAH,KAAA,CAAPG,OAAO;IAAEC,IAAI,GAAAJ,KAAA,CAAJI,IAAI,CAAA;EAAA,OAAQ;IAC/DC,aAAa,EAAEJ,MAAM,IAAI,EAAE;IAC3BK,YAAY,EAAEJ,KAAK,IAAI,EAAE;IACzBK,YAAY,EAAEJ,OAAO,IAAI,EAAE;IAC3BK,QAAQ,EAAEJ,IAAI,IAAI,EAAE;IACpBK,WAAW,EAAEL,IAAI,IAAI,EAAA;GACtB,CAAA;AAAA,CAAC,CAAA;AAEF,IAAMM,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,IAAI,EAAA;AAAA,EAAA,OAAIrC,gBAAgB,CAACqC,IAAI,CAAC,IAAIA,IAAI,CAAA;AAAA,CAAA,CAAA;AAE5D,IAAMC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAID,IAAI,EAAEE,gBAAgB,EAAK;EACrD,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,CAACxB,QAAQ,CAACsB,IAAI,CAAC,EAAE;AACpD,IAAA,OAAOE,gBAAgB,CAACC,GAAG,CAAC,UAAAC,KAAA,EAAA;AAAA,MAAA,IAAG9E,EAAE,GAAA8E,KAAA,CAAF9E,EAAE;QAAEC,KAAK,GAAA6E,KAAA,CAAL7E,KAAK,CAAA;MAAA,OAAQ;AAC9CA,QAAAA,KAAK,EAALA,KAAK;AACLC,QAAAA,KAAK,EAAEF,EAAAA;OACR,CAAA;AAAA,KAAC,CAAC,CAAA;AACL,GAAC,MAAM,IAAI0E,IAAI,KAAK,UAAU,EAAE;IAC9B,OAAAK,kBAAA,CAAWrC,wBAAwB,CAAA,CAAA;AACrC,GAAA;AAEA,EAAA,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAEM,IAAMsC,YAAY,GAAG,SAAfA,YAAYA,CAAAC,KAAA,EAOnB;AAAA,EAAA,IANJ/B,IAAI,GAAA+B,KAAA,CAAJ/B,IAAI;IACJlD,EAAE,GAAAiF,KAAA,CAAFjF,EAAE;IACFuD,YAAY,GAAA0B,KAAA,CAAZ1B,YAAY;IACZT,YAAY,GAAAmC,KAAA,CAAZnC,YAAY;IAAAoC,mBAAA,GAAAD,KAAA,CACZzB,aAAa;AAAbA,IAAAA,aAAa,GAAA0B,mBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,mBAAA;IAAAC,cAAA,GAAAF,KAAA,CAClB9B,QAAQ;AAARA,IAAAA,QAAQ,GAAAgC,cAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,cAAA,CAAA;AAEb,EAAA,IAAMC,cAAc,GAAGlC,IAAI,KAAKvB,cAAc,CAACS,sBAAsB,CAAA;EAErE,OAAOgD,cAAc,GACjB/B,kBAAkB,CAAC;AACjBrD,IAAAA,EAAE,EAAFA,EAAE;AACFuD,IAAAA,YAAY,EAAZA,YAAY;AACZT,IAAAA,YAAY,EAAZA,YAAY;AACZU,IAAAA,aAAa,EAAbA,aAAAA;GACD,CAAC,GACFR,mBAAmB,CAAC;AAAEhD,IAAAA,EAAE,EAAFA,EAAE;AAAEkD,IAAAA,IAAI,EAAJA,IAAI;AAAEJ,IAAAA,YAAY,EAAZA,YAAY;AAAEK,IAAAA,QAAQ,EAARA,QAAAA;AAAS,GAAC,CAAC,CAAA;AAC/D,CAAC,CAAA;AAEM,IAAMkC,kBAAkB,GAAG,SAArBA,kBAAkBA,CAAAC,KAAA,EAIzB;AAAA,EAAA,IAHJC,eAAe,GAAAD,KAAA,CAAfC,eAAe;IACfC,iBAAiB,GAAAF,KAAA,CAAjBE,iBAAiB;IACjBC,SAAS,GAAAH,KAAA,CAATG,SAAS,CAAA;AAET,EAAA,IAAMC,cAAc,GAAG5B,iBAAiB,CAACyB,eAAe,CAAC,CAAA;EACzD,IAAMI,OAAO,GAAGH,iBAAiB,CAACX,GAAG,CAAC,UAAAe,MAAM,EAAI;AAC9C,IAAA,IAAML,eAAe,GAAGG,cAAc,CAACE,MAAM,CAAC1F,KAAK,CAAC,CAAA;AAEpD,IAAA,OAAOqF,eAAe,GAAA9D,eAAA,CAAAA,eAAA,KAAQmE,MAAM,CAAA,EAAA,EAAA,EAAA;AAAEL,MAAAA,eAAe,EAAfA,eAAAA;AAAe,KAAA,CAAA,GAAKK,MAAM,CAAA;AAClE,GAAC,CAAC,CAAA;AAEF,EAAA,IAAMC,MAAM,GACV,CAACN,eAAe,CAACM,MAAM,IAAI,EAAE,EAAEC,MAAM,CACnC,UAAAC,KAAK,EAAA;IAAA,OAAI,CAACA,KAAK,CAACrB,IAAI,CAACsB,UAAU,CAAC,SAAS,CAAC,CAAA;GAC5C,CAAC,IAAI,EAAE,CAAA;AAET,EAAA,IAAMC,YAAY,GAAGJ,MAAM,CAAChB,GAAG,CAC7B,UAAAqB,KAAA,EAAA;AAAA,IAAA,IAAGlG,EAAE,GAAAkG,KAAA,CAAFlG,EAAE;MAAEkD,IAAI,GAAAgD,KAAA,CAAJhD,IAAI;MAAEwB,IAAI,GAAAwB,KAAA,CAAJxB,IAAI;MAAQyB,gBAAgB,GAAAD,KAAA,CAAtBE,IAAI,CAAA;IAAA,OAA0B;AAC/CnG,MAAAA,KAAK,EAAE0C,CAAC,CAAC,0BAA0B,EAAE;AAAE0D,QAAAA,IAAI,EAAEnD,IAAAA;AAAK,OAAC,CAAC;AACpDhD,MAAAA,KAAK,EAAAmB,eAAAA,CAAAA,MAAA,CAAkBrB,EAAE,CAAE;AAC3B2D,MAAAA,IAAI,EAAEc,aAAa,CAACC,IAAI,CAAC;AACzBe,MAAAA,SAAS,EAATA,SAAS;AACTa,MAAAA,WAAW,EAAE;AAAEC,QAAAA,aAAa,EAAEvG,EAAE;AAAEwG,QAAAA,eAAe,EAAE,OAAA;OAAS;AAC5DjB,MAAAA,eAAe,EAAEZ,kBAAkB,CAACD,IAAI,EAAEyB,gBAAgB,CAAA;KAC3D,CAAA;AAAA,GACH,CAAC,CAAA;EAED,OAAA9E,EAAAA,CAAAA,MAAA,CAAA0D,kBAAA,CAAWY,OAAO,CAAAZ,EAAAA,kBAAA,CAAKkB,YAAY,CAAA,CAAA,CAAA;AACrC,CAAC;;;;ACnHD,IAAMQ,IAAI,GAAG,SAAPA,IAAIA,CAAA1G,IAAA,EAMJ;AAAA,EAAA,IAAA2G,qBAAA,CAAA;AAAA,EAAA,IALJlB,iBAAiB,GAAAzF,IAAA,CAAjByF,iBAAiB;IACjBmB,cAAc,GAAA5G,IAAA,CAAd4G,cAAc;IACdC,YAAY,GAAA7G,IAAA,CAAZ6G,YAAY;IACZC,SAAS,GAAA9G,IAAA,CAAT8G,SAAS;IACTpB,SAAS,GAAA1F,IAAA,CAAT0F,SAAS,CAAA;AAET,EAAA,IAAAqB,eAAA,GAAcC,cAAc,EAAE;IAAtBpE,CAAC,GAAAmE,eAAA,CAADnE,CAAC,CAAA;EAET,IAAMa,aAAa,GAAG6B,kBAAkB,CAAC;AACvCE,IAAAA,eAAe,EAAEqB,YAAY;AAC7BpB,IAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBC,IAAAA,SAAS,EAATA,SAAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,IAAIoB,SAAS,EAAE;AACb,IAAA,oBACErG,GAAA,CAAA,KAAA,EAAA;AAAKF,MAAAA,SAAS,EAAC,gDAAgD;AAAAC,MAAAA,QAAA,eAC7DC,GAAA,CAACwG,OAAO,EAAE,EAAA,CAAA;AAAC,KACR,CAAC,CAAA;AAEV,GAAA;AAEA,EAAA,oBACExG,GAAA,CAAA,KAAA,EAAA;AAAKF,IAAAA,SAAS,EAAC,qBAAqB;IAAAC,QAAA,EACjC0G,GAAG,CAACN,cAAc,CAAC,GAChBhE,CAAC,CAAC,2BAA2B,CAAC,GAAA+D,CAAAA,qBAAA,GAC9BC,cAAc,CAACO,OAAO,MAAA,IAAA,IAAAR,qBAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAtBA,qBAAA,CAAwB7B,GAAG,CAAC,UAAAsC,MAAM,EAAA;AAAA,MAAA,OAChCnC,YAAY,CAAAvD,aAAA,CAAAA,aAAA,KAAM0F,MAAM,CAAA,EAAA,EAAA,EAAA;AAAE3D,QAAAA,aAAa,EAAbA,aAAAA;AAAa,OAAA,CAAE,CAAC,CAAA;KAC5C,CAAA;AAAC,GACF,CAAC,CAAA;AAEV,CAAC;;AC1BD,IAAM4D,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAArH,IAAA,EAYnB;AAAA,EAAA,IAXJyF,iBAAiB,GAAAzF,IAAA,CAAjByF,iBAAiB;IACjB6B,uBAAuB,GAAAtH,IAAA,CAAvBsH,uBAAuB;IACvBT,YAAY,GAAA7G,IAAA,CAAZ6G,YAAY;IACZU,wBAAwB,GAAAvH,IAAA,CAAxBuH,wBAAwB;IACxBC,gBAAgB,GAAAxH,IAAA,CAAhBwH,gBAAgB;IAChBC,MAAM,GAAAzH,IAAA,CAANyH,MAAM;IACNC,OAAO,GAAA1H,IAAA,CAAP0H,OAAO;IACPC,QAAQ,GAAA3H,IAAA,CAAR2H,QAAQ;IACRC,sBAAsB,GAAA5H,IAAA,CAAtB4H,sBAAsB;IACtBC,aAAa,GAAA7H,IAAA,CAAb6H,aAAa;IAAAC,cAAA,GAAA9H,IAAA,CACb0F,SAAS;AAATA,IAAAA,SAAS,GAAAoC,cAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,cAAA,CAAA;AAEd,EAAA,IAAAC,SAAA,GAA4CC,QAAQ,CAAC,IAAI,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAAnDnB,IAAAA,cAAc,GAAAqB,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,iBAAiB,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAExC,EAAA,IAAMG,eAAe,GAAGC,MAAM,EAAE,CAAA;AAEhC,EAAA,IAAAtB,eAAA,GAAcC,cAAc,EAAE;IAAtBpE,CAAC,GAAAmE,eAAA,CAADnE,CAAC,CAAA;EAET,IAAMgD,OAAO,GAAG6B,MAAM,KAANA,IAAAA,IAAAA,MAAM,KAANA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,MAAM,CAAE3C,GAAG,CAAC,UAAA5B,KAAA,EAAA;AAAA,IAAA,IAAGC,IAAI,GAAAD,KAAA,CAAJC,IAAI;MAAElD,EAAE,GAAAiD,KAAA,CAAFjD,EAAE,CAAA;IAAA,OAAQ;AAAEC,MAAAA,KAAK,EAAEiD,IAAI;AAAEhD,MAAAA,KAAK,EAAEF,EAAAA;KAAI,CAAA;AAAA,GAAC,CAAC,CAAA;AAE3E,EAAA,IAAMqI,YAAY,gBAAA,YAAA;IAAA,IAAAtE,KAAA,GAAAuE,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAG,SAAAC,OAAAA,CAAAnF,KAAA,EAAA;AAAA,MAAA,IAAApD,KAAA,CAAA;AAAA,MAAA,OAAAqI,mBAAA,CAAAG,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;YAAS5I,KAAK,GAAAoD,KAAA,CAALpD,KAAK,CAAA;AAAA0I,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA,CAAA;AAAA,YAAA,OAC3BnB,sBAAsB,CAC1B;AAAE3H,cAAAA,EAAE,EAAEE,KAAK;AAAE6I,cAAAA,OAAO,EAAEnB,aAAAA;AAAc,aAAC,EACrC;AAAEoB,cAAAA,SAAS,EAAE,SAAXA,SAASA,CAAEC,QAAQ,EAAA;AAAA,gBAAA,OAAIf,iBAAiB,CAACgB,MAAM,CAACD,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAAA,eAAA;AAAC,aACxE,CAAC,CAAA;AAAA,UAAA,KAAA,CAAA,CAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAL,QAAA,CAAAO,IAAA,EAAA,CAAA;AAAA,SAAA;AAAA,OAAA,EAAAV,OAAA,CAAA,CAAA;KACF,CAAA,CAAA,CAAA;IAAA,OALKJ,SAAAA,YAAYA,CAAAe,EAAA,EAAA;AAAA,MAAA,OAAArF,KAAA,CAAAsF,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA,CAAA;AAAA,KAAA,CAAA;GAKjB,EAAA,CAAA;AAED,EAAA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,GAAA;AAAA,IAAA,OAChB9B,OAAO,CAAC;AAAEd,MAAAA,cAAc,EAAdA,cAAc;AAAEuB,MAAAA,iBAAiB,EAAjBA,iBAAiB;AAAEsB,MAAAA,SAAS,EAAE9B,QAAAA;AAAS,KAAC,CAAC,CAAA;AAAA,GAAA,CAAA;AAErE,EAAA,IAAM+B,YAAY,GAAG,SAAfA,YAAYA,GAAS;AACzB/B,IAAAA,QAAQ,EAAE,CAAA;IACVQ,iBAAiB,CAAC,IAAI,CAAC,CAAA;GACxB,CAAA;EAED,oBACE7H,IAAA,CAACqJ,IAAI,EAAA;AACGvB,IAAAA,eAAe,EAAfA,eAAe;AACrBwB,IAAAA,MAAM,EAAErC,wBAAyB;AACjCsC,IAAAA,OAAO,EAAEH,YAAa;AAAAlJ,IAAAA,QAAA,EAEtBC,cAAAA,GAAA,CAACkJ,IAAI,CAACG,MAAM,EAAA;MAAAtJ,QAAA,eACVC,GAAA,CAACsJ,UAAU,EAAA;AAACC,QAAAA,KAAK,EAAC,IAAI;AAACC,QAAAA,MAAM,EAAC,UAAU;AAAAzJ,QAAAA,QAAA,EACrCoC,CAAC,CAAC,kCAAkC,EAAEsH,MAAM,CAAA;OACnC,CAAA;AAAC,KACF,CAAC,eACdzJ,GAAA,CAAC0J,MAAM,EAAA;AACLC,MAAAA,aAAa,EAAE;QAAExD,cAAc,EAAEyD,eAAe,CAAC,IAAI,CAAA;OAAI;AACzDC,MAAAA,QAAQ,EAAEd,YAAa;MAAAhJ,QAAA,EAEtB,SAAAA,QAAAA,CAAAuE,KAAA,EAAA;AAAA,QAAA,IAAGwF,aAAa,GAAAxF,KAAA,CAAbwF,aAAa;UAAEC,YAAY,GAAAzF,KAAA,CAAZyF,YAAY,CAAA;QAAA,oBAC7BlK,IAAA,CAACmK,IAAI,EAAA;AAAAjK,UAAAA,QAAA,EACHC,cAAAA,GAAA,CAACkJ,IAAI,CAACjD,IAAI,EAAA;AAAAlG,YAAAA,QAAA,eACRC,GAAA,CAAA,KAAA,EAAA;AAAKF,cAAAA,SAAS,EAAC,0CAA0C;cAAAC,QAAA,EACtD8G,uBAAuB,gBACtB7G,GAAA,CAAA,KAAA,EAAA;AAAKF,gBAAAA,SAAS,EAAC,gDAAgD;AAAAC,gBAAAA,QAAA,eAC7DC,GAAA,CAACwG,OAAO,EAAE,EAAA,CAAA;eACP,CAAC,gBAEN3G,IAAA,CAAA,KAAA,EAAA;AAAKC,gBAAAA,SAAS,EAAC,uBAAuB;gBAAAC,QAAA,EAAA,cACpCC,GAAA,CAACiK,MAAM,EAAA;AACC9E,kBAAAA,OAAO,EAAPA,OAAO;kBACb+E,YAAY,EAAA,IAAA;AACZzK,kBAAAA,KAAK,EAAE0C,CAAC,CAAC,wCAAwC,CAAE;AACnDO,kBAAAA,IAAI,EAAC,gBAAgB;AACrByH,kBAAAA,GAAG,EAAExC,eAAgB;AACrByC,kBAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAE1K,KAAK,EAAI;AACjBoK,oBAAAA,aAAa,CAAC,gBAAgB,EAAEpK,KAAK,CAAC,CAAA;oBACtCmI,YAAY,CAACnI,KAAK,CAAC,CAAA;AACrB,mBAAA;AAAE,iBACH,CAAC,EACD2K,SAAS,CAAClE,cAAc,CAAC,iBACxBtG,IAAA,CAAA,KAAA,EAAA;AAAKC,kBAAAA,SAAS,EAAC,eAAe;kBAAAC,QAAA,EAAA,cAC5BC,GAAA,CAACsJ,UAAU,EAAA;AAACC,oBAAAA,KAAK,EAAC,OAAO;oBAAAxJ,QAAA,EACtBoC,CAAC,CAAC,2BAA2B,CAAA;AAAC,mBACrB,CAAC,eACbnC,GAAA,CAACiG,IAAI,EAAA;AAEDjB,oBAAAA,iBAAiB,EAAjBA,iBAAiB;AACjBmB,oBAAAA,cAAc,EAAdA,cAAc;AACdC,oBAAAA,YAAY,EAAZA,YAAY;AACZnB,oBAAAA,SAAS,EAATA,SAAS;AAEXoB,oBAAAA,SAAS,EAAEU,gBAAAA;AAAiB,mBAC7B,CAAC,CAAA;AAAA,iBACC,CACN,CAAA;eACE,CAAA;aAEJ,CAAA;AAAC,WACG,CAAC,eACZ/G,GAAA,CAACkJ,IAAI,CAACoB,MAAM,EAAA;YAAAvK,QAAA,eACVC,GAAA,CAACuK,WAAW,EAAA;AACVC,cAAAA,iBAAiB,EAAE;AAAEC,gBAAAA,OAAO,EAAExB,YAAAA;eAAe;cAC7Cc,YAAY,EAAEA,YAAY,IAAIhD,gBAAiB;AAC/C2D,cAAAA,iBAAiB,EAAE;gBAAEjL,KAAK,EAAE0C,CAAC,CAAC,yBAAyB,CAAA;AAAE,eAAA;aAC1D,CAAA;AAAC,WACS,CAAC,CAAA;AAAA,SACV,CAAC,CAAA;AAAA,OAAA;AACR,KACK,CAAC,CAAA;AAAA,GACL,CAAC,CAAA;AAEX;;;;"}
|