@vendure/admin-ui 1.7.1 → 1.7.2
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/bundles/vendure-admin-ui-catalog.umd.js +8 -1
- package/bundles/vendure-admin-ui-catalog.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-core.umd.js +28 -11
- package/bundles/vendure-admin-ui-core.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-customer.umd.js +5 -4
- package/bundles/vendure-admin-ui-customer.umd.js.map +1 -1
- package/bundles/vendure-admin-ui-order.umd.js +10 -7
- package/bundles/vendure-admin-ui-order.umd.js.map +1 -1
- package/core/common/generated-types.d.ts +2 -1
- package/core/common/utilities/configurable-operation-utils.d.ts +4 -1
- package/core/common/version.d.ts +1 -1
- package/core/vendure-admin-ui-core.metadata.json +1 -1
- package/customer/vendure-admin-ui-customer.metadata.json +1 -1
- package/esm2015/catalog/components/option-value-input/option-value-input.component.js +8 -2
- package/esm2015/core/common/generated-types.js +2 -2
- package/esm2015/core/common/introspection-result.js +1 -1
- package/esm2015/core/common/utilities/configurable-operation-utils.js +8 -2
- package/esm2015/core/common/version.js +2 -2
- package/esm2015/core/components/app-shell/app-shell.component.js +1 -1
- package/esm2015/core/data/utils/remove-readonly-custom-fields.js +4 -1
- package/esm2015/core/shared/components/dropdown/dropdown-menu.component.js +11 -11
- package/esm2015/core/shared/components/dropdown/dropdown-trigger.directive.js +1 -1
- package/esm2015/core/shared/pipes/locale-currency.pipe.js +10 -2
- package/esm2015/customer/components/customer-group-list/customer-group-list.component.js +6 -5
- package/esm2015/order/components/order-editor/order-editor.component.js +9 -5
- package/fesm2015/vendure-admin-ui-catalog.js +7 -1
- package/fesm2015/vendure-admin-ui-catalog.js.map +1 -1
- package/fesm2015/vendure-admin-ui-core.js +32 -15
- package/fesm2015/vendure-admin-ui-core.js.map +1 -1
- package/fesm2015/vendure-admin-ui-customer.js +5 -4
- package/fesm2015/vendure-admin-ui-customer.js.map +1 -1
- package/fesm2015/vendure-admin-ui-order.js +8 -4
- package/fesm2015/vendure-admin-ui-order.js.map +1 -1
- package/order/vendure-admin-ui-order.metadata.json +1 -1
- package/package.json +2 -2
- package/static/styles/_variables.scss +1 -0
- package/static/styles/global/_sass-overrides.scss +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vendure-admin-ui-order.umd.js","sources":["../../src/lib/order/src/components/add-manual-payment-dialog/add-manual-payment-dialog.component.ts","../../node_modules/tslib/tslib.es6.js","../../src/lib/order/src/components/cancel-order-dialog/cancel-order-dialog.component.ts","../../src/lib/order/src/components/fulfill-order-dialog/fulfill-order-dialog.component.ts","../../src/lib/order/src/components/fulfillment-card/fulfillment-card.component.ts","../../src/lib/order/src/components/fulfillment-detail/fulfillment-detail.component.ts","../../src/lib/order/src/components/fulfillment-state-label/fulfillment-state-label.component.ts","../../src/lib/order/src/components/line-fulfillment/line-fulfillment.component.ts","../../src/lib/order/src/components/line-refunds/line-refunds.component.ts","../../src/lib/order/src/components/modification-detail/modification-detail.component.ts","../../src/lib/order/src/components/order-custom-fields-card/order-custom-fields-card.component.ts","../../src/lib/order/src/components/order-state-select-dialog/order-state-select-dialog.component.ts","../../src/lib/order/src/providers/order-transition.service.ts","../../src/lib/order/src/components/order-process-graph-dialog/order-process-graph-dialog.component.ts","../../src/lib/order/src/components/refund-order-dialog/refund-order-dialog.component.ts","../../src/lib/order/src/components/settle-refund-dialog/settle-refund-dialog.component.ts","../../src/lib/order/src/components/order-detail/order-detail.component.ts","../../src/lib/order/src/components/order-edits-preview-dialog/order-edits-preview-dialog.component.ts","../../src/lib/order/src/components/order-editor/order-editor.component.ts","../../src/lib/order/src/components/order-history/order-history.component.ts","../../src/lib/order/src/components/order-list/order-list.component.ts","../../src/lib/order/src/components/order-payment-card/order-payment-card.component.ts","../../src/lib/order/src/components/order-process-graph/constants.ts","../../src/lib/order/src/components/order-process-graph/order-process-edge.component.ts","../../src/lib/order/src/components/order-process-graph/order-process-node.component.ts","../../src/lib/order/src/components/order-process-graph/order-process-graph.component.ts","../../src/lib/order/src/components/order-table/order-table.component.ts","../../src/lib/order/src/components/payment-detail/payment-detail.component.ts","../../src/lib/order/src/components/payment-state-label/payment-state-label.component.ts","../../src/lib/order/src/components/refund-state-label/refund-state-label.component.ts","../../src/lib/order/src/components/simple-item-list/simple-item-list.component.ts","../../src/lib/order/src/providers/routing/order-resolver.ts","../../src/lib/order/src/order.routes.ts","../../src/lib/order/src/order.module.ts","../../src/lib/order/src/public_api.ts","../../src/lib/order/src/vendure-admin-ui-order.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport {\r\n CurrencyCode,\r\n DataService,\r\n Dialog,\r\n GetPaymentMethodList,\r\n ManualPaymentInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'vdr-add-manual-payment-dialog',\r\n templateUrl: './add-manual-payment-dialog.component.html',\r\n styleUrls: ['./add-manual-payment-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AddManualPaymentDialogComponent implements OnInit, Dialog<Omit<ManualPaymentInput, 'orderId'>> {\r\n // populated by ModalService call\r\n outstandingAmount: number;\r\n currencyCode: CurrencyCode;\r\n\r\n resolveWith: (result?: Omit<ManualPaymentInput, 'orderId'>) => void;\r\n form = new FormGroup({\r\n method: new FormControl('', Validators.required),\r\n transactionId: new FormControl('', Validators.required),\r\n });\r\n paymentMethods$: Observable<GetPaymentMethodList.Items[]>;\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit(): void {\r\n this.paymentMethods$ = this.dataService.settings\r\n .getPaymentMethods(999)\r\n .mapSingle(data => data.paymentMethods.items);\r\n }\r\n\r\n submit() {\r\n const formValue = this.form.value;\r\n this.resolveWith({\r\n method: formValue.method,\r\n transactionId: formValue.transactionId,\r\n });\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CancelOrderInput,\r\n Dialog,\r\n getAppConfig,\r\n I18nService,\r\n OrderDetailFragment,\r\n OrderLineInput,\r\n} from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-cancel-order-dialog',\r\n templateUrl: './cancel-order-dialog.component.html',\r\n styleUrls: ['./cancel-order-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CancelOrderDialogComponent implements OnInit, Dialog<CancelOrderInput> {\r\n order: OrderDetailFragment;\r\n cancelAll = true;\r\n resolveWith: (result?: CancelOrderInput) => void;\r\n reason: string;\r\n lineQuantities: { [lineId: string]: number } = {};\r\n reasons: string[] = getAppConfig().cancellationReasons ?? [\r\n _('order.cancel-reason-customer-request'),\r\n _('order.cancel-reason-not-available'),\r\n ];\r\n\r\n get selectionCount(): number {\r\n return Object.values(this.lineQuantities).reduce((sum, n) => sum + n, 0);\r\n }\r\n\r\n constructor(private i18nService: I18nService) {\r\n this.reasons = this.reasons.map(r => this.i18nService.translate(r));\r\n }\r\n\r\n ngOnInit() {\r\n this.lineQuantities = this.order.lines.reduce((result, line) => {\r\n return { ...result, [line.id]: line.quantity };\r\n }, {});\r\n }\r\n\r\n radioChanged() {\r\n if (this.cancelAll) {\r\n for (const line of this.order.lines) {\r\n this.lineQuantities[line.id] = line.quantity;\r\n }\r\n } else {\r\n for (const line of this.order.lines) {\r\n this.lineQuantities[line.id] = 0;\r\n }\r\n }\r\n }\r\n\r\n checkIfAllSelected() {\r\n for (const [lineId, quantity] of Object.entries(this.lineQuantities)) {\r\n const quantityInOrder = this.order.lines.find(line => line.id === lineId)?.quantity;\r\n if (quantityInOrder && quantity < quantityInOrder) {\r\n return;\r\n }\r\n }\r\n // If we got here, all of the selected quantities are equal to the order\r\n // line quantities, i.e. everything is selected.\r\n this.cancelAll = true;\r\n }\r\n\r\n select() {\r\n this.resolveWith({\r\n orderId: this.order.id,\r\n lines: this.getLineInputs(),\r\n reason: this.reason,\r\n cancelShipping: this.cancelAll,\r\n });\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n\r\n private getLineInputs(): OrderLineInput[] | undefined {\r\n if (this.order.active) {\r\n return;\r\n }\r\n return Object.entries(this.lineQuantities)\r\n .map(([orderLineId, quantity]) => ({\r\n orderLineId,\r\n quantity,\r\n }))\r\n .filter(l => 0 < l.quantity);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport {\r\n configurableDefinitionToInstance,\r\n ConfigurableOperation,\r\n ConfigurableOperationDefinition,\r\n configurableOperationValueIsValid,\r\n DataService,\r\n Dialog,\r\n FulfillOrderInput,\r\n GlobalFlag,\r\n OrderDetail,\r\n OrderDetailFragment,\r\n toConfigurableOperationInput,\r\n} from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-fulfill-order-dialog',\r\n templateUrl: './fulfill-order-dialog.component.html',\r\n styleUrls: ['./fulfill-order-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FulfillOrderDialogComponent implements Dialog<FulfillOrderInput>, OnInit {\r\n resolveWith: (result?: FulfillOrderInput) => void;\r\n fulfillmentHandlerDef: ConfigurableOperationDefinition;\r\n fulfillmentHandler: ConfigurableOperation;\r\n fulfillmentHandlerControl = new FormControl();\r\n fulfillmentQuantities: { [lineId: string]: { fulfillCount: number; max: number } } = {};\r\n\r\n // Provided by modalService.fromComponent() call\r\n order: OrderDetailFragment;\r\n\r\n constructor(private dataService: DataService, private changeDetector: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.dataService.settings.getGlobalSettings().single$.subscribe(({ globalSettings }) => {\r\n this.fulfillmentQuantities = this.order.lines.reduce((result, line) => {\r\n const fulfillCount = this.getFulfillableCount(line, globalSettings.trackInventory);\r\n return {\r\n ...result,\r\n [line.id]: { fulfillCount, max: fulfillCount },\r\n };\r\n }, {});\r\n this.changeDetector.markForCheck();\r\n });\r\n\r\n this.dataService.shippingMethod\r\n .getShippingMethodOperations()\r\n .mapSingle(data => data.fulfillmentHandlers)\r\n .subscribe(handlers => {\r\n this.fulfillmentHandlerDef =\r\n handlers.find(\r\n h => h.code === this.order.shippingLines[0]?.shippingMethod?.fulfillmentHandlerCode,\r\n ) || handlers[0];\r\n this.fulfillmentHandler = configurableDefinitionToInstance(this.fulfillmentHandlerDef);\r\n this.fulfillmentHandlerControl.patchValue(this.fulfillmentHandler);\r\n this.changeDetector.markForCheck();\r\n });\r\n }\r\n\r\n getFulfillableCount(line: OrderDetail.Lines, globalTrackInventory: boolean): number {\r\n const { trackInventory, stockOnHand } = line.productVariant;\r\n const effectiveTracInventory =\r\n trackInventory === GlobalFlag.INHERIT ? globalTrackInventory : trackInventory === GlobalFlag.TRUE;\r\n\r\n const unfulfilledCount = this.getUnfulfilledCount(line);\r\n return effectiveTracInventory ? Math.min(unfulfilledCount, stockOnHand) : unfulfilledCount;\r\n }\r\n\r\n getUnfulfilledCount(line: OrderDetail.Lines): number {\r\n const fulfilled =\r\n line.fulfillments\r\n ?.map(f => f.summary)\r\n .flat()\r\n .filter(row => row.orderLine.id === line.id)\r\n .reduce((sum, row) => sum + row.quantity, 0) ?? 0;\r\n return line.quantity - fulfilled;\r\n }\r\n\r\n canSubmit(): boolean {\r\n const totalCount = Object.values(this.fulfillmentQuantities).reduce(\r\n (total, { fulfillCount }) => total + fulfillCount,\r\n 0,\r\n );\r\n const formIsValid =\r\n configurableOperationValueIsValid(\r\n this.fulfillmentHandlerDef,\r\n this.fulfillmentHandlerControl.value,\r\n ) && this.fulfillmentHandlerControl.valid;\r\n return formIsValid && 0 < totalCount;\r\n }\r\n\r\n select() {\r\n const lines = Object.entries(this.fulfillmentQuantities).map(([orderLineId, { fulfillCount }]) => ({\r\n orderLineId,\r\n quantity: fulfillCount,\r\n }));\r\n this.resolveWith({\r\n lines,\r\n handler: toConfigurableOperationInput(\r\n this.fulfillmentHandler,\r\n this.fulfillmentHandlerControl.value,\r\n ),\r\n });\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Fulfillment, OrderDetail } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-fulfillment-card',\r\n templateUrl: './fulfillment-card.component.html',\r\n styleUrls: ['./fulfillment-card.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FulfillmentCardComponent {\r\n @Input() fulfillment: Fulfillment.Fragment | undefined;\r\n @Input() order: OrderDetail.Fragment;\r\n @Output() transitionState = new EventEmitter<string>();\r\n\r\n nextSuggestedState(): string | undefined {\r\n if (!this.fulfillment) {\r\n return;\r\n }\r\n const { nextStates } = this.fulfillment;\r\n const namedStateOrDefault = (targetState: string) =>\r\n nextStates.includes(targetState) ? targetState : nextStates[0];\r\n switch (this.fulfillment?.state) {\r\n case 'Pending':\r\n return namedStateOrDefault('Shipped');\r\n case 'Shipped':\r\n return namedStateOrDefault('Delivered');\r\n default:\r\n return nextStates.find(s => s !== 'Cancelled');\r\n }\r\n }\r\n\r\n nextOtherStates(): string[] {\r\n if (!this.fulfillment) {\r\n return [];\r\n }\r\n const suggested = this.nextSuggestedState();\r\n return this.fulfillment.nextStates.filter(s => s !== suggested);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { CustomFieldConfig, OrderDetail, ServerConfigService } from '@vendure/admin-ui/core';\r\nimport { isObject } from '@vendure/common/lib/shared-utils';\r\n\r\n@Component({\r\n selector: 'vdr-fulfillment-detail',\r\n templateUrl: './fulfillment-detail.component.html',\r\n styleUrls: ['./fulfillment-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FulfillmentDetailComponent implements OnInit, OnChanges {\r\n @Input() fulfillmentId: string;\r\n @Input() order: OrderDetail.Fragment;\r\n\r\n customFieldConfig: CustomFieldConfig[] = [];\r\n customFieldFormGroup = new FormGroup({});\r\n\r\n constructor(private serverConfigService: ServerConfigService) {}\r\n\r\n ngOnInit() {\r\n this.customFieldConfig = this.serverConfigService.getCustomFieldsFor('Fulfillment');\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.buildCustomFieldsFormGroup();\r\n }\r\n\r\n get fulfillment(): OrderDetail.Fulfillments | undefined | null {\r\n return this.order.fulfillments && this.order.fulfillments.find(f => f.id === this.fulfillmentId);\r\n }\r\n\r\n get items(): Array<{ name: string; quantity: number }> {\r\n return (\r\n this.fulfillment?.summary.map(row => {\r\n return {\r\n name:\r\n this.order.lines.find(line => line.id === row.orderLine.id)?.productVariant.name ??\r\n '',\r\n quantity: row.quantity,\r\n };\r\n }) ?? []\r\n );\r\n }\r\n\r\n buildCustomFieldsFormGroup() {\r\n const customFields = (this.fulfillment as any).customFields;\r\n for (const fieldDef of this.serverConfigService.getCustomFieldsFor('Fulfillment')) {\r\n this.customFieldFormGroup.addControl(fieldDef.name, new FormControl(customFields[fieldDef.name]));\r\n }\r\n }\r\n\r\n customFieldIsObject(customField: unknown) {\r\n return Array.isArray(customField) || isObject(customField);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-fulfillment-state-label',\r\n templateUrl: './fulfillment-state-label.component.html',\r\n styleUrls: ['./fulfillment-state-label.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FulfillmentStateLabelComponent {\r\n @Input() state: string;\r\n\r\n get chipColorType() {\r\n switch (this.state) {\r\n case 'Pending':\r\n case 'Shipped':\r\n return 'warning';\r\n case 'Delivered':\r\n return 'success';\r\n case 'Cancelled':\r\n return 'error';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { OrderDetail, OrderDetailFragment } from '@vendure/admin-ui/core';\r\nimport { unique } from '@vendure/common/lib/unique';\r\n\r\nexport type FulfillmentStatus = 'full' | 'partial' | 'none';\r\n\r\n@Component({\r\n selector: 'vdr-line-fulfillment',\r\n templateUrl: './line-fulfillment.component.html',\r\n styleUrls: ['./line-fulfillment.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LineFulfillmentComponent implements OnChanges {\r\n @Input() line: OrderDetail.Lines;\r\n @Input() orderState: string;\r\n fulfilledCount = 0;\r\n fulfillmentStatus: FulfillmentStatus;\r\n fulfillments: Array<{\r\n count: number;\r\n fulfillment: NonNullable<OrderDetailFragment['fulfillments']>[number];\r\n }> = [];\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.line) {\r\n this.fulfilledCount = this.getDeliveredCount(this.line);\r\n this.fulfillmentStatus = this.getFulfillmentStatus(this.fulfilledCount, this.line.items.length);\r\n this.fulfillments = this.getFulfillments(this.line);\r\n }\r\n }\r\n\r\n /**\r\n * Returns the number of items in an OrderLine which are fulfilled.\r\n */\r\n private getDeliveredCount(line: OrderDetail.Lines): number {\r\n return (\r\n line.fulfillments?.reduce(\r\n (sum, fulfillment) =>\r\n sum + (fulfillment.summary.find(s => s.orderLine.id === line.id)?.quantity ?? 0),\r\n 0,\r\n ) ?? 0\r\n );\r\n }\r\n\r\n private getFulfillmentStatus(fulfilledCount: number, lineQuantity: number): FulfillmentStatus {\r\n if (fulfilledCount === lineQuantity) {\r\n return 'full';\r\n }\r\n if (0 < fulfilledCount && fulfilledCount < lineQuantity) {\r\n return 'partial';\r\n }\r\n return 'none';\r\n }\r\n\r\n private getFulfillments(\r\n line: OrderDetail.Lines,\r\n ): Array<{ count: number; fulfillment: NonNullable<OrderDetailFragment['fulfillments']>[number] }> {\r\n return (\r\n line.fulfillments?.map(fulfillment => {\r\n const summaryLine = fulfillment.summary.find(s => s.orderLine.id === line.id);\r\n return {\r\n count: summaryLine?.quantity ?? 0,\r\n fulfillment,\r\n };\r\n }) ?? []\r\n );\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { OrderDetail } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-line-refunds',\r\n templateUrl: './line-refunds.component.html',\r\n styleUrls: ['./line-refunds.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LineRefundsComponent {\r\n @Input() line: OrderDetail.Lines;\r\n @Input() payments: OrderDetail.Payments[];\r\n\r\n getRefundedCount(): number {\r\n const refunds =\r\n this.payments?.reduce(\r\n (all, payment) => [...all, ...payment.refunds],\r\n [] as OrderDetail.Refunds[],\r\n ) ?? [];\r\n return this.line.items.filter(i => {\r\n if (i.refundId === null && !i.cancelled) {\r\n return false;\r\n }\r\n if (i.refundId) {\r\n const refund = refunds.find(r => r.id === i.refundId);\r\n if (refund?.state === 'Failed') {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }).length;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit } from '@angular/core';\r\nimport { OrderDetail, OrderDetailFragment } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-modification-detail',\r\n templateUrl: './modification-detail.component.html',\r\n styleUrls: ['./modification-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ModificationDetailComponent implements OnChanges {\r\n @Input() order: OrderDetailFragment;\r\n @Input() modification: OrderDetail.Modifications;\r\n private addedItems = new Map<OrderDetail.Lines, number>();\r\n private removedItems = new Map<OrderDetail.Lines, number>();\r\n\r\n ngOnChanges(): void {\r\n const { added, removed } = this.getModifiedLines();\r\n this.addedItems = added;\r\n this.removedItems = removed;\r\n }\r\n\r\n getSurcharge(id: string) {\r\n return this.order.surcharges.find(m => m.id === id);\r\n }\r\n\r\n getAddedItems() {\r\n return [...this.addedItems.entries()].map(([line, count]) => {\r\n return { name: line.productVariant.name, quantity: count };\r\n });\r\n }\r\n\r\n getRemovedItems() {\r\n return [...this.removedItems.entries()].map(([line, count]) => {\r\n return { name: line.productVariant.name, quantity: count };\r\n });\r\n }\r\n\r\n private getModifiedLines() {\r\n const added = new Map<OrderDetail.Lines, number>();\r\n const removed = new Map<OrderDetail.Lines, number>();\r\n for (const _item of this.modification.orderItems || []) {\r\n const result = this.getOrderLineAndItem(_item.id);\r\n if (result) {\r\n const { line, item } = result;\r\n if (item.cancelled) {\r\n const count = removed.get(line) ?? 0;\r\n removed.set(line, count + 1);\r\n } else {\r\n const count = added.get(line) ?? 0;\r\n added.set(line, count + 1);\r\n }\r\n }\r\n }\r\n return { added, removed };\r\n }\r\n\r\n private getOrderLineAndItem(itemId: string) {\r\n for (const line of this.order.lines) {\r\n const item = line.items.find(i => i.id === itemId);\r\n if (item) {\r\n return { line, item };\r\n }\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { CustomFieldConfig, ModalService } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-order-custom-fields-card',\r\n templateUrl: './order-custom-fields-card.component.html',\r\n styleUrls: ['./order-custom-fields-card.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderCustomFieldsCardComponent implements OnInit {\r\n @Input() customFieldsConfig: CustomFieldConfig[] = [];\r\n @Input() customFieldValues: { [name: string]: any } = {};\r\n @Output() updateClick = new EventEmitter<any>();\r\n customFieldForm: FormGroup;\r\n editable = false;\r\n constructor(private formBuilder: FormBuilder, private modalService: ModalService) {}\r\n\r\n ngOnInit() {\r\n this.customFieldForm = this.formBuilder.group({});\r\n for (const field of this.customFieldsConfig) {\r\n this.customFieldForm.addControl(\r\n field.name,\r\n this.formBuilder.control(this.customFieldValues[field.name]),\r\n );\r\n }\r\n }\r\n\r\n onUpdateClick() {\r\n this.updateClick.emit(this.customFieldForm.value);\r\n this.customFieldForm.markAsPristine();\r\n this.editable = false;\r\n }\r\n\r\n onCancelClick() {\r\n if (this.customFieldForm.dirty) {\r\n this.modalService\r\n .dialog({\r\n title: _('catalog.confirm-cancel'),\r\n buttons: [\r\n { type: 'secondary', label: _('common.keep-editing') },\r\n { type: 'danger', label: _('common.discard-changes'), returnValue: true },\r\n ],\r\n })\r\n .subscribe(result => {\r\n if (result) {\r\n this.customFieldForm.reset();\r\n this.customFieldForm.markAsPristine();\r\n this.editable = false;\r\n }\r\n });\r\n } else {\r\n this.editable = false;\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { Dialog } from '@vendure/admin-ui/core';\n\n@Component({\n selector: 'vdr-order-state-select-dialog',\n templateUrl: './order-state-select-dialog.component.html',\n styleUrls: ['./order-state-select-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OrderStateSelectDialogComponent implements Dialog<string> {\n resolveWith: (result?: string) => void;\n nextStates: string[] = [];\n message = '';\n cancellable: boolean;\n selectedState = '';\n\n select() {\n if (this.selectedState) {\n this.resolveWith(this.selectedState);\n }\n }\n\n cancel() {\n this.resolveWith();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n DataService,\n HistoryEntryType,\n I18nService,\n ModalService,\n NotificationService,\n SortOrder,\n} from '@vendure/admin-ui/core';\nimport { EMPTY } from 'rxjs';\nimport { catchError, delay, map, retryWhen, switchMap, take } from 'rxjs/operators';\n\nimport { OrderStateSelectDialogComponent } from '../components/order-state-select-dialog/order-state-select-dialog.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OrderTransitionService {\n constructor(\n private dataService: DataService,\n private modalService: ModalService,\n private notificationService: NotificationService,\n private i18nService: I18nService,\n ) {}\n\n /**\n * Attempts to transition the Order to the last state it was in before it was transitioned\n * to the \"Modifying\" state. If this fails, a manual prompt is used.\n */\n transitionToPreModifyingState(orderId: string, nextStates: string[]) {\n return this.getPreModifyingState(orderId).pipe(\n switchMap(state => {\n const manualTransitionOptions = {\n orderId,\n nextStates,\n message: this.i18nService.translate(\n _('order.unable-to-transition-to-state-try-another'),\n { state },\n ),\n cancellable: false,\n retry: 10,\n };\n if (state) {\n return this.transitionToStateOrThrow(orderId, state).pipe(\n catchError(err => this.manuallyTransitionToState(manualTransitionOptions)),\n );\n } else {\n return this.manuallyTransitionToState(manualTransitionOptions);\n }\n }),\n );\n }\n\n /**\n * Displays a modal for manually selecting the next state.\n */\n manuallyTransitionToState(options: {\n orderId: string;\n nextStates: string[];\n message: string;\n cancellable: boolean;\n retry: number;\n }) {\n return this.modalService\n .fromComponent(OrderStateSelectDialogComponent, {\n locals: {\n nextStates: options.nextStates,\n cancellable: options.cancellable,\n message: options.message,\n },\n closable: false,\n size: 'md',\n })\n .pipe(\n switchMap(result => {\n if (result) {\n return this.transitionToStateOrThrow(options.orderId, result);\n } else {\n if (!options.cancellable) {\n throw new Error(`An order state must be selected`);\n } else {\n return EMPTY;\n }\n }\n }),\n retryWhen(errors => errors.pipe(delay(2000), take(options.retry))),\n );\n }\n\n /**\n * Attempts to get the last state the Order was in before it was transitioned\n * to the \"Modifying\" state.\n */\n private getPreModifyingState(orderId: string) {\n return this.dataService.order\n .getOrderHistory(orderId, {\n filter: {\n type: {\n eq: HistoryEntryType.ORDER_STATE_TRANSITION,\n },\n },\n sort: {\n createdAt: SortOrder.DESC,\n },\n })\n .mapSingle(result => result.order)\n .pipe(\n map(result => {\n const item = result?.history.items.find(i => i.data.to === 'Modifying');\n if (item) {\n return item.data.from as string;\n } else {\n return;\n }\n }),\n );\n }\n\n private transitionToStateOrThrow(orderId: string, state: string) {\n return this.dataService.order.transitionToState(orderId, state).pipe(\n map(({ transitionOrderToState }) => {\n switch (transitionOrderToState?.__typename) {\n case 'Order':\n return transitionOrderToState?.state;\n case 'OrderStateTransitionError':\n this.notificationService.error(transitionOrderToState?.transitionError);\n throw new Error(transitionOrderToState?.transitionError);\n }\n }),\n );\n }\n}\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport {\r\n CancelOrderInput,\r\n DataService,\r\n Dialog,\r\n OrderProcessState,\r\n ServerConfigService,\r\n} from '@vendure/admin-ui/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'vdr-order-process-graph-dialog',\r\n templateUrl: './order-process-graph-dialog.component.html',\r\n styleUrls: ['./order-process-graph-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderProcessGraphDialogComponent implements OnInit, Dialog<void> {\r\n activeState: string;\r\n states: OrderProcessState[] = [];\r\n constructor(private serverConfigService: ServerConfigService) {}\r\n\r\n ngOnInit(): void {\r\n this.states = this.serverConfigService.getOrderProcessStates();\r\n }\r\n\r\n resolveWith: (result: void | undefined) => void;\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CancelOrderInput,\r\n Dialog,\r\n getAppConfig,\r\n I18nService,\r\n OrderDetail,\r\n OrderDetailFragment,\r\n OrderLineInput,\r\n RefundOrderInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { summate } from '@vendure/common/lib/shared-utils';\r\n\r\ntype SelectionLine = { quantity: number; refund: boolean; cancel: boolean };\r\n\r\n@Component({\r\n selector: 'vdr-refund-order-dialog',\r\n templateUrl: './refund-order-dialog.component.html',\r\n styleUrls: ['./refund-order-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RefundOrderDialogComponent\r\n implements OnInit, Dialog<{ cancel: CancelOrderInput; refund: RefundOrderInput }>\r\n{\r\n order: OrderDetailFragment;\r\n resolveWith: (result?: { cancel: CancelOrderInput; refund: RefundOrderInput }) => void;\r\n reason: string;\r\n settledPayments: OrderDetail.Payments[];\r\n selectedPayment: OrderDetail.Payments;\r\n lineQuantities: { [lineId: string]: SelectionLine } = {};\r\n refundShipping = false;\r\n adjustment = 0;\r\n reasons = getAppConfig().cancellationReasons ?? [\r\n _('order.refund-reason-customer-request'),\r\n _('order.refund-reason-not-available'),\r\n ];\r\n\r\n constructor(private i18nService: I18nService) {\r\n this.reasons = this.reasons.map(r => this.i18nService.translate(r));\r\n }\r\n\r\n get refundTotal(): number {\r\n const itemTotal = this.order.lines.reduce((total, line) => {\r\n const lineRef = this.lineQuantities[line.id];\r\n const refundCount = (lineRef.refund && lineRef.quantity) || 0;\r\n return total + line.proratedUnitPriceWithTax * refundCount;\r\n }, 0);\r\n return itemTotal + (this.refundShipping ? this.order.shippingWithTax : 0) + this.adjustment;\r\n }\r\n\r\n get settledPaymentsTotal(): number {\r\n return this.settledPayments\r\n .map(payment => {\r\n const paymentTotal = payment.amount;\r\n const alreadyRefundedTotal = summate(\r\n payment.refunds.filter(r => r.state !== 'Failed') as Array<Required<OrderDetail.Refunds>>,\r\n 'total',\r\n );\r\n return paymentTotal - alreadyRefundedTotal;\r\n })\r\n .reduce((sum, amount) => sum + amount, 0);\r\n }\r\n\r\n lineCanBeRefundedOrCancelled(line: OrderDetail.Lines): boolean {\r\n const refunds =\r\n this.order.payments?.reduce(\r\n (all, payment) => [...all, ...payment.refunds],\r\n [] as OrderDetail.Refunds[],\r\n ) ?? [];\r\n\r\n const refundable = line.items.filter(i => {\r\n if (i.cancelled) {\r\n return false;\r\n }\r\n if (i.refundId == null) {\r\n return true;\r\n }\r\n const refund = refunds.find(r => r.id === i.refundId);\r\n return refund?.state === 'Failed';\r\n });\r\n return 0 < refundable.length;\r\n }\r\n\r\n ngOnInit() {\r\n this.lineQuantities = this.order.lines.reduce((result, line) => {\r\n return {\r\n ...result,\r\n [line.id]: {\r\n quantity: 0,\r\n refund: false,\r\n cancel: false,\r\n },\r\n };\r\n }, {});\r\n this.settledPayments = (this.order.payments || []).filter(p => p.state === 'Settled');\r\n if (this.settledPayments.length) {\r\n this.selectedPayment = this.settledPayments[0];\r\n }\r\n }\r\n\r\n handleZeroQuantity(line?: SelectionLine) {\r\n if (line?.quantity === 0) {\r\n line.cancel = false;\r\n line.refund = false;\r\n }\r\n }\r\n\r\n isRefunding(): boolean {\r\n const result = Object.values(this.lineQuantities).reduce((isRefunding, line) => {\r\n return isRefunding || (0 < line.quantity && line.refund);\r\n }, false);\r\n return result;\r\n }\r\n\r\n isCancelling(): boolean {\r\n const result = Object.values(this.lineQuantities).reduce((isCancelling, line) => {\r\n return isCancelling || (0 < line.quantity && line.cancel);\r\n }, false);\r\n return result;\r\n }\r\n\r\n canSubmit(): boolean {\r\n if (this.isRefunding()) {\r\n return !!(\r\n this.selectedPayment &&\r\n this.reason &&\r\n 0 < this.refundTotal &&\r\n this.refundTotal <= this.settledPaymentsTotal\r\n );\r\n } else if (this.isCancelling()) {\r\n return !!this.reason;\r\n }\r\n return false;\r\n }\r\n\r\n select() {\r\n const payment = this.selectedPayment;\r\n if (payment) {\r\n const refundLines = this.getOrderLineInput(line => line.refund);\r\n const cancelLines = this.getOrderLineInput(line => line.cancel);\r\n\r\n this.resolveWith({\r\n refund: {\r\n lines: refundLines,\r\n reason: this.reason,\r\n shipping: this.refundShipping ? this.order.shippingWithTax : 0,\r\n adjustment: this.adjustment,\r\n paymentId: payment.id,\r\n },\r\n cancel: {\r\n lines: cancelLines,\r\n orderId: this.order.id,\r\n reason: this.reason,\r\n cancelShipping: this.refundShipping,\r\n },\r\n });\r\n }\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n\r\n private getOrderLineInput(filterFn: (line: SelectionLine) => boolean): OrderLineInput[] {\r\n return Object.entries(this.lineQuantities)\r\n .filter(([orderLineId, line]) => 0 < line.quantity && filterFn(line))\r\n .map(([orderLineId, line]) => ({\r\n orderLineId,\r\n quantity: line.quantity,\r\n }));\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\nimport { OrderDetail } from '@vendure/admin-ui/core';\r\nimport { Dialog } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-settle-refund-dialog',\r\n templateUrl: './settle-refund-dialog.component.html',\r\n styleUrls: ['./settle-refund-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SettleRefundDialogComponent implements Dialog<string> {\r\n resolveWith: (result?: string) => void;\r\n transactionId = '';\r\n refund: OrderDetail.Refunds;\r\n\r\n submit() {\r\n this.resolveWith(this.transactionId);\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n BaseDetailComponent,\r\n CancelOrder,\r\n CustomFieldConfig,\r\n DataService,\r\n EditNoteDialogComponent,\r\n FulfillmentFragment,\r\n FulfillmentLineSummary,\r\n GetOrderHistory,\r\n GetOrderQuery,\r\n HistoryEntry,\r\n HistoryEntryType,\r\n ModalService,\r\n NotificationService,\r\n Order,\r\n OrderDetail,\r\n OrderDetailFragment,\r\n OrderLineFragment,\r\n Refund,\r\n RefundOrder,\r\n ServerConfigService,\r\n SortOrder,\r\n} from '@vendure/admin-ui/core';\r\nimport { pick } from '@vendure/common/lib/pick';\r\nimport { assertNever, summate } from '@vendure/common/lib/shared-utils';\r\nimport { EMPTY, merge, Observable, of, Subject } from 'rxjs';\r\nimport { map, mapTo, startWith, switchMap, take } from 'rxjs/operators';\r\n\r\nimport { OrderTransitionService } from '../../providers/order-transition.service';\r\nimport { AddManualPaymentDialogComponent } from '../add-manual-payment-dialog/add-manual-payment-dialog.component';\r\nimport { CancelOrderDialogComponent } from '../cancel-order-dialog/cancel-order-dialog.component';\r\nimport { FulfillOrderDialogComponent } from '../fulfill-order-dialog/fulfill-order-dialog.component';\r\nimport { OrderProcessGraphDialogComponent } from '../order-process-graph-dialog/order-process-graph-dialog.component';\r\nimport { RefundOrderDialogComponent } from '../refund-order-dialog/refund-order-dialog.component';\r\nimport { SettleRefundDialogComponent } from '../settle-refund-dialog/settle-refund-dialog.component';\r\n\r\n@Component({\r\n selector: 'vdr-order-detail',\r\n templateUrl: './order-detail.component.html',\r\n styleUrls: ['./order-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderDetailComponent\r\n extends BaseDetailComponent<OrderDetail.Fragment>\r\n implements OnInit, OnDestroy\r\n{\r\n detailForm = new FormGroup({});\r\n history$: Observable<GetOrderHistory.Items[] | undefined>;\r\n nextStates$: Observable<string[]>;\r\n fetchHistory = new Subject<void>();\r\n customFields: CustomFieldConfig[];\r\n orderLineCustomFields: CustomFieldConfig[];\r\n private readonly defaultStates = [\r\n 'AddingItems',\r\n 'ArrangingPayment',\r\n 'PaymentAuthorized',\r\n 'PaymentSettled',\r\n 'PartiallyShipped',\r\n 'Shipped',\r\n 'PartiallyDelivered',\r\n 'Delivered',\r\n 'Cancelled',\r\n 'Modifying',\r\n 'ArrangingAdditionalPayment',\r\n ];\r\n\r\n constructor(\r\n router: Router,\r\n route: ActivatedRoute,\r\n serverConfigService: ServerConfigService,\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private notificationService: NotificationService,\r\n private modalService: ModalService,\r\n private orderTransitionService: OrderTransitionService,\r\n ) {\r\n super(route, router, serverConfigService, dataService);\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.entity$.pipe(take(1)).subscribe(order => {\r\n if (order.state === 'Modifying') {\r\n this.router.navigate(['./', 'modify'], { relativeTo: this.route });\r\n }\r\n });\r\n this.customFields = this.getCustomFieldConfig('Order');\r\n this.orderLineCustomFields = this.getCustomFieldConfig('OrderLine');\r\n this.history$ = this.fetchHistory.pipe(\r\n startWith(null),\r\n switchMap(() => {\r\n return this.dataService.order\r\n .getOrderHistory(this.id, {\r\n sort: {\r\n createdAt: SortOrder.DESC,\r\n },\r\n })\r\n .mapStream(data => data.order?.history.items);\r\n }),\r\n );\r\n this.nextStates$ = this.entity$.pipe(\r\n map(order => {\r\n const isInCustomState = !this.defaultStates.includes(order.state);\r\n return isInCustomState\r\n ? order.nextStates\r\n : order.nextStates.filter(s => !this.defaultStates.includes(s));\r\n }),\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n openStateDiagram() {\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n switchMap(order =>\r\n this.modalService.fromComponent(OrderProcessGraphDialogComponent, {\r\n closable: true,\r\n locals: {\r\n activeState: order.state,\r\n },\r\n }),\r\n ),\r\n )\r\n .subscribe();\r\n }\r\n\r\n transitionToState(state: string) {\r\n this.dataService.order.transitionToState(this.id, state).subscribe(({ transitionOrderToState }) => {\r\n switch (transitionOrderToState?.__typename) {\r\n case 'Order':\r\n this.notificationService.success(_('order.transitioned-to-state-success'), { state });\r\n this.fetchHistory.next();\r\n break;\r\n case 'OrderStateTransitionError':\r\n this.notificationService.error(transitionOrderToState.transitionError);\r\n }\r\n });\r\n }\r\n\r\n manuallyTransitionToState(order: OrderDetailFragment) {\r\n this.orderTransitionService\r\n .manuallyTransitionToState({\r\n orderId: order.id,\r\n nextStates: order.nextStates,\r\n cancellable: true,\r\n message: _('order.manually-transition-to-state-message'),\r\n retry: 0,\r\n })\r\n .subscribe();\r\n }\r\n\r\n transitionToModifying() {\r\n this.dataService.order\r\n .transitionToState(this.id, 'Modifying')\r\n .subscribe(({ transitionOrderToState }) => {\r\n switch (transitionOrderToState?.__typename) {\r\n case 'Order':\r\n this.router.navigate(['./modify'], { relativeTo: this.route });\r\n break;\r\n case 'OrderStateTransitionError':\r\n this.notificationService.error(transitionOrderToState.transitionError);\r\n }\r\n });\r\n }\r\n\r\n updateCustomFields(customFieldsValue: any) {\r\n this.dataService.order\r\n .updateOrderCustomFields({\r\n id: this.id,\r\n customFields: customFieldsValue,\r\n })\r\n .subscribe(() => {\r\n this.notificationService.success(_('common.notify-update-success'), { entity: 'Order' });\r\n });\r\n }\r\n\r\n getOrderAddressLines(orderAddress?: { [key: string]: string }): string[] {\r\n if (!orderAddress) {\r\n return [];\r\n }\r\n return Object.values(orderAddress)\r\n .filter(val => val !== 'OrderAddress')\r\n .filter(line => !!line);\r\n }\r\n\r\n settlePayment(payment: OrderDetail.Payments) {\r\n this.dataService.order.settlePayment(payment.id).subscribe(({ settlePayment }) => {\r\n switch (settlePayment.__typename) {\r\n case 'Payment':\r\n if (settlePayment.state === 'Settled') {\r\n this.notificationService.success(_('order.settle-payment-success'));\r\n } else {\r\n this.notificationService.error(_('order.settle-payment-error'));\r\n }\r\n this.dataService.order.getOrder(this.id).single$.subscribe();\r\n this.fetchHistory.next();\r\n break;\r\n case 'OrderStateTransitionError':\r\n case 'PaymentStateTransitionError':\r\n case 'SettlePaymentError':\r\n this.notificationService.error(settlePayment.message);\r\n }\r\n });\r\n }\r\n\r\n transitionPaymentState({ payment, state }: { payment: OrderDetail.Payments; state: string }) {\r\n if (state === 'Cancelled') {\r\n this.dataService.order.cancelPayment(payment.id).subscribe(({ cancelPayment }) => {\r\n switch (cancelPayment.__typename) {\r\n case 'Payment':\r\n this.notificationService.success(_('order.transitioned-payment-to-state-success'), {\r\n state,\r\n });\r\n this.dataService.order.getOrder(this.id).single$.subscribe();\r\n this.fetchHistory.next();\r\n break;\r\n case 'PaymentStateTransitionError':\r\n this.notificationService.error(cancelPayment.transitionError);\r\n break;\r\n case 'CancelPaymentError':\r\n this.notificationService.error(cancelPayment.paymentErrorMessage);\r\n break;\r\n }\r\n });\r\n } else {\r\n this.dataService.order\r\n .transitionPaymentToState(payment.id, state)\r\n .subscribe(({ transitionPaymentToState }) => {\r\n switch (transitionPaymentToState.__typename) {\r\n case 'Payment':\r\n this.notificationService.success(\r\n _('order.transitioned-payment-to-state-success'),\r\n {\r\n state,\r\n },\r\n );\r\n this.dataService.order.getOrder(this.id).single$.subscribe();\r\n this.fetchHistory.next();\r\n break;\r\n case 'PaymentStateTransitionError':\r\n this.notificationService.error(transitionPaymentToState.message);\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n\r\n canAddFulfillment(order: OrderDetail.Fragment): boolean {\r\n const allFulfillmentSummaryRows: FulfillmentFragment['summary'] = (order.fulfillments ?? []).reduce(\r\n (all, fulfillment) => [...all, ...fulfillment.summary],\r\n [] as FulfillmentFragment['summary'],\r\n );\r\n let allItemsFulfilled = true;\r\n for (const line of order.lines) {\r\n const totalFulfilledCount = allFulfillmentSummaryRows\r\n .filter(row => row.orderLine.id === line.id)\r\n .reduce((sum, row) => sum + row.quantity, 0);\r\n if (totalFulfilledCount < line.quantity) {\r\n allItemsFulfilled = false;\r\n }\r\n }\r\n return (\r\n !allItemsFulfilled &&\r\n !this.hasUnsettledModifications(order) &&\r\n this.outstandingPaymentAmount(order) === 0 &&\r\n (order.nextStates.includes('Shipped') ||\r\n order.nextStates.includes('PartiallyShipped') ||\r\n order.nextStates.includes('Delivered'))\r\n );\r\n }\r\n\r\n hasUnsettledModifications(order: OrderDetailFragment): boolean {\r\n return 0 < order.modifications.filter(m => !m.isSettled).length;\r\n }\r\n\r\n getOutstandingModificationAmount(order: OrderDetailFragment): number {\r\n return summate(\r\n order.modifications.filter(m => !m.isSettled),\r\n 'priceChange',\r\n );\r\n }\r\n\r\n outstandingPaymentAmount(order: OrderDetailFragment): number {\r\n const paymentIsValid = (p: OrderDetail.Payments): boolean =>\r\n p.state !== 'Cancelled' && p.state !== 'Declined' && p.state !== 'Error';\r\n\r\n let amountCovered = 0;\r\n for (const payment of order.payments?.filter(paymentIsValid) ?? []) {\r\n const refunds = payment.refunds.filter(r => r.state !== 'Failed') ?? [];\r\n const refundsTotal = summate(refunds as Array<Required<Refund>>, 'total');\r\n amountCovered += payment.amount - refundsTotal;\r\n }\r\n return order.totalWithTax - amountCovered;\r\n }\r\n\r\n addManualPayment(order: OrderDetailFragment) {\r\n const priorState = order.state;\r\n this.modalService\r\n .fromComponent(AddManualPaymentDialogComponent, {\r\n closable: true,\r\n locals: {\r\n outstandingAmount: this.outstandingPaymentAmount(order),\r\n currencyCode: order.currencyCode,\r\n },\r\n })\r\n .pipe(\r\n switchMap(result => {\r\n if (result) {\r\n return this.dataService.order.addManualPaymentToOrder({\r\n orderId: this.id,\r\n transactionId: result.transactionId,\r\n method: result.method,\r\n metadata: result.metadata || {},\r\n });\r\n } else {\r\n return EMPTY;\r\n }\r\n }),\r\n switchMap(({ addManualPaymentToOrder }) => {\r\n switch (addManualPaymentToOrder.__typename) {\r\n case 'Order':\r\n this.notificationService.success(_('order.add-payment-to-order-success'));\r\n if (priorState === 'ArrangingAdditionalPayment') {\r\n return this.orderTransitionService.transitionToPreModifyingState(\r\n order.id,\r\n order.nextStates,\r\n );\r\n } else {\r\n return this.dataService.order\r\n .transitionToState(this.id, 'PaymentSettled')\r\n .pipe(mapTo('PaymentSettled'));\r\n }\r\n case 'ManualPaymentStateError':\r\n this.notificationService.error(addManualPaymentToOrder.message);\r\n return EMPTY;\r\n default:\r\n return EMPTY;\r\n }\r\n }),\r\n )\r\n .subscribe(result => {\r\n if (result) {\r\n this.refetchOrder({ result });\r\n }\r\n });\r\n }\r\n\r\n fulfillOrder() {\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n switchMap(order => {\r\n return this.modalService.fromComponent(FulfillOrderDialogComponent, {\r\n size: 'xl',\r\n locals: {\r\n order,\r\n },\r\n });\r\n }),\r\n switchMap(input => {\r\n if (input) {\r\n return this.dataService.order.createFulfillment(input);\r\n } else {\r\n return of(undefined);\r\n }\r\n }),\r\n switchMap(result => this.refetchOrder(result).pipe(mapTo(result))),\r\n )\r\n .subscribe(result => {\r\n if (result) {\r\n const { addFulfillmentToOrder } = result;\r\n switch (addFulfillmentToOrder.__typename) {\r\n case 'Fulfillment':\r\n this.notificationService.success(_('order.create-fulfillment-success'));\r\n break;\r\n case 'EmptyOrderLineSelectionError':\r\n case 'InsufficientStockOnHandError':\r\n case 'ItemsAlreadyFulfilledError':\r\n case 'InvalidFulfillmentHandlerError':\r\n this.notificationService.error(addFulfillmentToOrder.message);\r\n break;\r\n case 'FulfillmentStateTransitionError':\r\n this.notificationService.error(addFulfillmentToOrder.transitionError);\r\n break;\r\n case 'CreateFulfillmentError':\r\n this.notificationService.error(addFulfillmentToOrder.fulfillmentHandlerError);\r\n break;\r\n case undefined:\r\n this.notificationService.error(JSON.stringify(addFulfillmentToOrder));\r\n break;\r\n default:\r\n assertNever(addFulfillmentToOrder);\r\n }\r\n }\r\n });\r\n }\r\n\r\n transitionFulfillment(id: string, state: string) {\r\n this.dataService.order\r\n .transitionFulfillmentToState(id, state)\r\n .pipe(switchMap(result => this.refetchOrder(result)))\r\n .subscribe(() => {\r\n this.notificationService.success(_('order.successfully-updated-fulfillment'));\r\n });\r\n }\r\n\r\n cancelOrRefund(order: OrderDetail.Fragment) {\r\n const isRefundable = this.orderHasSettledPayments(order);\r\n if (order.state === 'PaymentAuthorized' || order.active === true || !isRefundable) {\r\n this.cancelOrder(order);\r\n } else {\r\n this.refundOrder(order);\r\n }\r\n }\r\n\r\n settleRefund(refund: OrderDetail.Refunds) {\r\n this.modalService\r\n .fromComponent(SettleRefundDialogComponent, {\r\n size: 'md',\r\n locals: {\r\n refund,\r\n },\r\n })\r\n .pipe(\r\n switchMap(transactionId => {\r\n if (transactionId) {\r\n return this.dataService.order.settleRefund(\r\n {\r\n transactionId,\r\n id: refund.id,\r\n },\r\n this.id,\r\n );\r\n } else {\r\n return of(undefined);\r\n }\r\n }),\r\n // switchMap(result => this.refetchOrder(result)),\r\n )\r\n .subscribe(result => {\r\n if (result) {\r\n this.notificationService.success(_('order.settle-refund-success'));\r\n }\r\n });\r\n }\r\n\r\n addNote(event: { note: string; isPublic: boolean }) {\r\n const { note, isPublic } = event;\r\n this.dataService.order\r\n .addNoteToOrder({\r\n id: this.id,\r\n note,\r\n isPublic,\r\n })\r\n .pipe(switchMap(result => this.refetchOrder(result)))\r\n .subscribe(result => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'Note',\r\n });\r\n });\r\n }\r\n\r\n updateNote(entry: HistoryEntry) {\r\n this.modalService\r\n .fromComponent(EditNoteDialogComponent, {\r\n closable: true,\r\n locals: {\r\n displayPrivacyControls: true,\r\n note: entry.data.note,\r\n noteIsPrivate: !entry.isPublic,\r\n },\r\n })\r\n .pipe(\r\n switchMap(result => {\r\n if (result) {\r\n return this.dataService.order.updateOrderNote({\r\n noteId: entry.id,\r\n isPublic: !result.isPrivate,\r\n note: result.note,\r\n });\r\n } else {\r\n return EMPTY;\r\n }\r\n }),\r\n )\r\n .subscribe(result => {\r\n this.fetchHistory.next();\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Note',\r\n });\r\n });\r\n }\r\n\r\n deleteNote(entry: HistoryEntry) {\r\n return this.modalService\r\n .dialog({\r\n title: _('common.confirm-delete-note'),\r\n body: entry.data.note,\r\n buttons: [\r\n { type: 'secondary', label: _('common.cancel') },\r\n { type: 'danger', label: _('common.delete'), returnValue: true },\r\n ],\r\n })\r\n .pipe(switchMap(res => (res ? this.dataService.order.deleteOrderNote(entry.id) : EMPTY)))\r\n .subscribe(() => {\r\n this.fetchHistory.next();\r\n this.notificationService.success(_('common.notify-delete-success'), {\r\n entity: 'Note',\r\n });\r\n });\r\n }\r\n\r\n orderHasSettledPayments(order: OrderDetail.Fragment): boolean {\r\n return !!order.payments?.find(p => p.state === 'Settled');\r\n }\r\n\r\n private cancelOrder(order: OrderDetail.Fragment) {\r\n this.modalService\r\n .fromComponent(CancelOrderDialogComponent, {\r\n size: 'xl',\r\n locals: {\r\n order,\r\n },\r\n })\r\n .pipe(\r\n switchMap(input => {\r\n if (input) {\r\n return this.dataService.order.cancelOrder(input);\r\n } else {\r\n return of(undefined);\r\n }\r\n }),\r\n switchMap(result => this.refetchOrder(result)),\r\n )\r\n .subscribe(result => {\r\n if (result) {\r\n this.notificationService.success(_('order.cancelled-order-success'));\r\n }\r\n });\r\n }\r\n\r\n private refundOrder(order: OrderDetail.Fragment) {\r\n this.modalService\r\n .fromComponent(RefundOrderDialogComponent, {\r\n size: 'xl',\r\n locals: {\r\n order,\r\n },\r\n })\r\n .pipe(\r\n switchMap(input => {\r\n if (!input) {\r\n return of(undefined);\r\n }\r\n\r\n if (input.cancel.lines?.length) {\r\n return this.dataService.order.cancelOrder(input.cancel).pipe(\r\n map(res => {\r\n const result = res.cancelOrder;\r\n switch (result.__typename) {\r\n case 'Order':\r\n this.refetchOrder(result).subscribe();\r\n this.notificationService.success(_('order.cancelled-order-success'));\r\n return input;\r\n case 'CancelActiveOrderError':\r\n case 'QuantityTooGreatError':\r\n case 'MultipleOrderError':\r\n case 'OrderStateTransitionError':\r\n case 'EmptyOrderLineSelectionError':\r\n this.notificationService.error(result.message);\r\n return undefined;\r\n }\r\n }),\r\n );\r\n } else {\r\n return [input];\r\n }\r\n }),\r\n switchMap(input => {\r\n if (!input) {\r\n return of(undefined);\r\n }\r\n if (input.refund.lines.length) {\r\n return this.dataService.order\r\n .refundOrder(input.refund)\r\n .pipe(map(res => res.refundOrder));\r\n } else {\r\n return [undefined];\r\n }\r\n }),\r\n )\r\n .subscribe(result => {\r\n if (result) {\r\n switch (result.__typename) {\r\n case 'Refund':\r\n this.refetchOrder(result).subscribe();\r\n if (result.state === 'Failed') {\r\n this.notificationService.error(_('order.refund-order-failed'));\r\n } else {\r\n this.notificationService.success(_('order.refund-order-success'));\r\n }\r\n break;\r\n case 'AlreadyRefundedError':\r\n case 'NothingToRefundError':\r\n case 'PaymentOrderMismatchError':\r\n case 'RefundOrderStateError':\r\n case 'RefundStateTransitionError':\r\n this.notificationService.error(result.message);\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private refetchOrder(result: object | undefined): Observable<GetOrderQuery | undefined> {\r\n this.fetchHistory.next();\r\n if (result) {\r\n return this.dataService.order.getOrder(this.id).single$;\r\n } else {\r\n return of(undefined);\r\n }\r\n }\r\n\r\n protected setFormValues(entity: Order.Fragment): void {\r\n // empty\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { CustomFieldConfig, Dialog, ModifyOrderInput, OrderDetail } from '@vendure/admin-ui/core';\r\n\r\nexport enum OrderEditResultType {\r\n Refund,\r\n Payment,\r\n PriceUnchanged,\r\n Cancel,\r\n}\r\n\r\ninterface OrderEditsRefundResult {\r\n result: OrderEditResultType.Refund;\r\n refundPaymentId: string;\r\n refundNote?: string;\r\n}\r\ninterface OrderEditsPaymentResult {\r\n result: OrderEditResultType.Payment;\r\n}\r\ninterface OrderEditsPriceUnchangedResult {\r\n result: OrderEditResultType.PriceUnchanged;\r\n}\r\ninterface OrderEditsCancelResult {\r\n result: OrderEditResultType.Cancel;\r\n}\r\ntype OrderEditResult =\r\n | OrderEditsRefundResult\r\n | OrderEditsPaymentResult\r\n | OrderEditsPriceUnchangedResult\r\n | OrderEditsCancelResult;\r\n\r\n@Component({\r\n selector: 'vdr-order-edits-preview-dialog',\r\n templateUrl: './order-edits-preview-dialog.component.html',\r\n styleUrls: ['./order-edits-preview-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderEditsPreviewDialogComponent implements OnInit, Dialog<OrderEditResult> {\r\n // Passed in via the modalService\r\n order: OrderDetail.Fragment;\r\n originalTotalWithTax: number;\r\n orderLineCustomFields: CustomFieldConfig[];\r\n modifyOrderInput: ModifyOrderInput;\r\n\r\n selectedPayment?: OrderDetail.Payments;\r\n refundNote: string;\r\n resolveWith: (result?: OrderEditResult) => void;\r\n\r\n get priceDifference(): number {\r\n return this.order.totalWithTax - this.originalTotalWithTax;\r\n }\r\n\r\n ngOnInit() {\r\n this.refundNote = this.modifyOrderInput.note || '';\r\n }\r\n\r\n cancel() {\r\n this.resolveWith({\r\n result: OrderEditResultType.Cancel,\r\n });\r\n }\r\n\r\n submit() {\r\n if (0 < this.priceDifference) {\r\n this.resolveWith({\r\n result: OrderEditResultType.Payment,\r\n });\r\n } else if (this.priceDifference < 0) {\r\n this.resolveWith({\r\n result: OrderEditResultType.Refund,\r\n // tslint:disable-next-line:no-non-null-assertion\r\n refundPaymentId: this.selectedPayment!.id,\r\n refundNote: this.refundNote,\r\n });\r\n } else {\r\n this.resolveWith({\r\n result: OrderEditResultType.PriceUnchanged,\r\n });\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport {\r\n AddItemInput,\r\n AdjustOrderLineInput,\r\n BaseDetailComponent,\r\n CustomFieldConfig,\r\n DataService,\r\n ErrorResult,\r\n GetAvailableCountries,\r\n HistoryEntryType,\r\n LanguageCode,\r\n ModalService,\r\n ModifyOrderInput,\r\n NotificationService,\r\n OrderAddressFragment,\r\n OrderDetail,\r\n ProductSelectorSearch,\r\n ServerConfigService,\r\n SortOrder,\r\n SurchargeInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { assertNever, notNullOrUndefined } from '@vendure/common/lib/shared-utils';\r\nimport { concat, EMPTY, Observable, of, Subject } from 'rxjs';\r\nimport {\r\n distinctUntilChanged,\r\n map,\r\n mapTo,\r\n shareReplay,\r\n startWith,\r\n switchMap,\r\n takeUntil,\r\n} from 'rxjs/operators';\r\n\r\nimport { OrderTransitionService } from '../../providers/order-transition.service';\r\nimport {\r\n OrderEditResultType,\r\n OrderEditsPreviewDialogComponent,\r\n} from '../order-edits-preview-dialog/order-edits-preview-dialog.component';\r\n\r\ninterface AddedLine {\r\n productVariantId: string;\r\n productAsset?: ProductSelectorSearch.ProductAsset | null;\r\n productVariantName: string;\r\n sku: string;\r\n priceWithTax: number;\r\n price: number;\r\n quantity: number;\r\n}\r\n\r\ntype ModifyOrderData = Omit<ModifyOrderInput, 'addItems' | 'adjustOrderLines'> & {\r\n addItems: Array<AddItemInput & { customFields?: any }>;\r\n adjustOrderLines: Array<AdjustOrderLineInput & { customFields?: any }>;\r\n};\r\n\r\n@Component({\r\n selector: 'vdr-order-editor',\r\n templateUrl: './order-editor.component.html',\r\n styleUrls: ['./order-editor.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderEditorComponent\r\n extends BaseDetailComponent<OrderDetail.Fragment>\r\n implements OnInit, OnDestroy\r\n{\r\n availableCountries$: Observable<GetAvailableCountries.Items[]>;\r\n availableCouponCodes$: Observable<Array<{ code: string; promotionName: string }>>;\r\n couponCodeInput$ = new Subject<string>();\r\n addressCustomFields: CustomFieldConfig[];\r\n detailForm = new FormGroup({});\r\n couponCodesControl = new FormControl();\r\n orderLineCustomFieldsFormArray: FormArray;\r\n addItemCustomFieldsFormArray: FormArray;\r\n addItemCustomFieldsForm: FormGroup;\r\n addItemSelectedVariant: ProductSelectorSearch.Items | undefined;\r\n orderLineCustomFields: CustomFieldConfig[];\r\n modifyOrderInput: ModifyOrderData = {\r\n dryRun: true,\r\n orderId: '',\r\n addItems: [],\r\n adjustOrderLines: [],\r\n surcharges: [],\r\n note: '',\r\n updateShippingAddress: {},\r\n updateBillingAddress: {},\r\n };\r\n surchargeForm: FormGroup;\r\n shippingAddressForm: FormGroup;\r\n billingAddressForm: FormGroup;\r\n note = '';\r\n recalculateShipping = true;\r\n previousState: string;\r\n private addedVariants = new Map<string, ProductSelectorSearch.Items>();\r\n\r\n constructor(\r\n router: Router,\r\n route: ActivatedRoute,\r\n serverConfigService: ServerConfigService,\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private notificationService: NotificationService,\r\n private modalService: ModalService,\r\n private orderTransitionService: OrderTransitionService,\r\n ) {\r\n super(route, router, serverConfigService, dataService);\r\n }\r\n\r\n get addedLines(): AddedLine[] {\r\n const getSinglePriceValue = (price: ProductSelectorSearch.Price) =>\r\n price.__typename === 'SinglePrice' ? price.value : 0;\r\n return (this.modifyOrderInput.addItems || [])\r\n .map(row => {\r\n const variantInfo = this.addedVariants.get(row.productVariantId);\r\n if (variantInfo) {\r\n return {\r\n ...variantInfo,\r\n price: getSinglePriceValue(variantInfo.price),\r\n priceWithTax: getSinglePriceValue(variantInfo.priceWithTax),\r\n quantity: row.quantity,\r\n };\r\n }\r\n })\r\n .filter(notNullOrUndefined);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.init();\r\n this.dataService.promotion.getPromotions();\r\n this.addressCustomFields = this.getCustomFieldConfig('Address');\r\n this.modifyOrderInput.orderId = this.route.snapshot.paramMap.get('id') as string;\r\n this.orderLineCustomFields = this.getCustomFieldConfig('OrderLine');\r\n this.entity$.pipe(takeUntil(this.destroy$)).subscribe(order => {\r\n if (order.couponCodes.length) {\r\n this.couponCodesControl.setValue(order.couponCodes);\r\n }\r\n this.surchargeForm = new FormGroup({\r\n description: new FormControl('', Validators.required),\r\n sku: new FormControl(''),\r\n price: new FormControl(0, Validators.required),\r\n priceIncludesTax: new FormControl(true),\r\n taxRate: new FormControl(0),\r\n taxDescription: new FormControl(''),\r\n });\r\n if (!this.shippingAddressForm) {\r\n this.shippingAddressForm = new FormGroup({\r\n fullName: new FormControl(order.shippingAddress?.fullName),\r\n company: new FormControl(order.shippingAddress?.company),\r\n streetLine1: new FormControl(order.shippingAddress?.streetLine1),\r\n streetLine2: new FormControl(order.shippingAddress?.streetLine2),\r\n city: new FormControl(order.shippingAddress?.city),\r\n province: new FormControl(order.shippingAddress?.province),\r\n postalCode: new FormControl(order.shippingAddress?.postalCode),\r\n countryCode: new FormControl(order.shippingAddress?.countryCode),\r\n phoneNumber: new FormControl(order.shippingAddress?.phoneNumber),\r\n });\r\n this.addAddressCustomFieldsFormGroup(this.shippingAddressForm, order.shippingAddress);\r\n }\r\n if (!this.billingAddressForm) {\r\n this.billingAddressForm = new FormGroup({\r\n fullName: new FormControl(order.billingAddress?.fullName),\r\n company: new FormControl(order.billingAddress?.company),\r\n streetLine1: new FormControl(order.billingAddress?.streetLine1),\r\n streetLine2: new FormControl(order.billingAddress?.streetLine2),\r\n city: new FormControl(order.billingAddress?.city),\r\n province: new FormControl(order.billingAddress?.province),\r\n postalCode: new FormControl(order.billingAddress?.postalCode),\r\n countryCode: new FormControl(order.billingAddress?.countryCode),\r\n phoneNumber: new FormControl(order.billingAddress?.phoneNumber),\r\n });\r\n this.addAddressCustomFieldsFormGroup(this.billingAddressForm, order.billingAddress);\r\n }\r\n this.orderLineCustomFieldsFormArray = new FormArray([]);\r\n for (const line of order.lines) {\r\n const formGroup = new FormGroup({});\r\n for (const { name } of this.orderLineCustomFields) {\r\n formGroup.addControl(name, new FormControl((line as any).customFields[name]));\r\n }\r\n formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\r\n let modifyRow = this.modifyOrderInput.adjustOrderLines.find(\r\n l => l.orderLineId === line.id,\r\n );\r\n if (!modifyRow) {\r\n modifyRow = {\r\n orderLineId: line.id,\r\n quantity: line.quantity,\r\n };\r\n this.modifyOrderInput.adjustOrderLines.push(modifyRow);\r\n }\r\n if (this.orderLineCustomFields.length) {\r\n modifyRow.customFields = value;\r\n }\r\n });\r\n this.orderLineCustomFieldsFormArray.push(formGroup);\r\n }\r\n });\r\n this.availableCouponCodes$ = concat(\r\n this.couponCodeInput$.pipe(\r\n distinctUntilChanged(),\r\n switchMap(\r\n term =>\r\n this.dataService.promotion.getPromotions(10, 0, {\r\n couponCode: { contains: term },\r\n }).single$,\r\n ),\r\n map(({ promotions }) =>\r\n // tslint:disable-next-line:no-non-null-assertion\r\n promotions.items.map(p => ({ code: p.couponCode!, promotionName: p.name })),\r\n ),\r\n startWith([]),\r\n ),\r\n );\r\n this.addItemCustomFieldsFormArray = new FormArray([]);\r\n this.addItemCustomFieldsForm = new FormGroup({});\r\n for (const customField of this.orderLineCustomFields) {\r\n this.addItemCustomFieldsForm.addControl(customField.name, new FormControl());\r\n }\r\n this.availableCountries$ = this.dataService.settings\r\n .getAvailableCountries()\r\n .mapSingle(result => result.countries.items)\r\n .pipe(shareReplay(1));\r\n this.dataService.order\r\n .getOrderHistory(this.id, {\r\n take: 1,\r\n sort: {\r\n createdAt: SortOrder.DESC,\r\n },\r\n filter: { type: { eq: HistoryEntryType.ORDER_STATE_TRANSITION } },\r\n })\r\n .single$.subscribe(({ order }) => {\r\n this.previousState = order?.history.items[0].data.from;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n transitionToPriorState(order: OrderDetail.Fragment) {\r\n this.orderTransitionService\r\n .transitionToPreModifyingState(order.id, order.nextStates)\r\n .subscribe(result => {\r\n this.router.navigate(['..'], { relativeTo: this.route });\r\n });\r\n }\r\n\r\n canPreviewChanges(): boolean {\r\n const { addItems, adjustOrderLines, surcharges } = this.modifyOrderInput;\r\n return (\r\n !!addItems?.length ||\r\n !!surcharges?.length ||\r\n !!adjustOrderLines?.length ||\r\n (this.shippingAddressForm.dirty && this.shippingAddressForm.valid) ||\r\n (this.billingAddressForm.dirty && this.billingAddressForm.valid) ||\r\n this.couponCodesControl.dirty\r\n );\r\n }\r\n\r\n isLineModified(line: OrderDetail.Lines): boolean {\r\n return !!this.modifyOrderInput.adjustOrderLines?.find(\r\n l => l.orderLineId === line.id && l.quantity !== line.quantity,\r\n );\r\n }\r\n\r\n updateLineQuantity(line: OrderDetail.Lines, quantity: string) {\r\n const { adjustOrderLines } = this.modifyOrderInput;\r\n let row = adjustOrderLines?.find(l => l.orderLineId === line.id);\r\n if (row && +quantity === line.quantity) {\r\n // Remove the modification if the quantity is the same as\r\n // the original order\r\n adjustOrderLines?.splice(adjustOrderLines?.indexOf(row), 1);\r\n }\r\n if (!row) {\r\n row = { orderLineId: line.id, quantity: +quantity };\r\n adjustOrderLines?.push(row);\r\n }\r\n row.quantity = +quantity;\r\n }\r\n\r\n updateAddedItemQuantity(item: AddedLine, quantity: string) {\r\n const row = this.modifyOrderInput.addItems?.find(l => l.productVariantId === item.productVariantId);\r\n if (row) {\r\n row.quantity = +quantity;\r\n }\r\n }\r\n\r\n trackByProductVariantId(index: number, item: AddedLine) {\r\n return item.productVariantId;\r\n }\r\n\r\n getSelectedItemPrice(result: ProductSelectorSearch.Items | undefined): number {\r\n switch (result?.priceWithTax.__typename) {\r\n case 'SinglePrice':\r\n return result.priceWithTax.value;\r\n default:\r\n return 0;\r\n }\r\n }\r\n\r\n addItemToOrder(result: ProductSelectorSearch.Items | undefined) {\r\n if (!result) {\r\n return;\r\n }\r\n const customFields = this.orderLineCustomFields.length\r\n ? this.addItemCustomFieldsForm.value\r\n : undefined;\r\n let row = this.modifyOrderInput.addItems?.find(l =>\r\n this.isMatchingAddItemRow(l, result, customFields),\r\n );\r\n if (!row) {\r\n row = { productVariantId: result.productVariantId, quantity: 1 };\r\n if (customFields) {\r\n row.customFields = customFields;\r\n }\r\n this.modifyOrderInput.addItems?.push(row);\r\n } else {\r\n row.quantity++;\r\n }\r\n if (customFields) {\r\n const formGroup = new FormGroup({});\r\n for (const [key, value] of Object.entries(customFields)) {\r\n formGroup.addControl(key, new FormControl(value));\r\n }\r\n this.addItemCustomFieldsFormArray.push(formGroup);\r\n formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\r\n if (row) {\r\n row.customFields = value;\r\n }\r\n });\r\n }\r\n this.addItemCustomFieldsForm.reset({});\r\n this.addItemSelectedVariant = undefined;\r\n this.addedVariants.set(result.productVariantId, result);\r\n }\r\n\r\n private isMatchingAddItemRow(\r\n row: ModifyOrderData['addItems'][number],\r\n result: ProductSelectorSearch.Items,\r\n customFields: any,\r\n ): boolean {\r\n return (\r\n row.productVariantId === result.productVariantId &&\r\n JSON.stringify(row.customFields) === JSON.stringify(customFields)\r\n );\r\n }\r\n\r\n removeAddedItem(index: number) {\r\n this.modifyOrderInput.addItems.splice(index, 1);\r\n if (-1 < index) {\r\n this.addItemCustomFieldsFormArray.removeAt(index);\r\n }\r\n }\r\n\r\n getSurchargePrices(surcharge: SurchargeInput) {\r\n const priceWithTax = surcharge.priceIncludesTax\r\n ? surcharge.price\r\n : Math.round(surcharge.price * ((100 + (surcharge.taxRate || 0)) / 100));\r\n const price = surcharge.priceIncludesTax\r\n ? Math.round(surcharge.price / ((100 + (surcharge.taxRate || 0)) / 100))\r\n : surcharge.price;\r\n return {\r\n price,\r\n priceWithTax,\r\n };\r\n }\r\n\r\n addSurcharge(value: any) {\r\n this.modifyOrderInput.surcharges?.push(value);\r\n this.surchargeForm.reset({\r\n price: 0,\r\n priceIncludesTax: true,\r\n taxRate: 0,\r\n });\r\n }\r\n\r\n removeSurcharge(index: number) {\r\n this.modifyOrderInput.surcharges?.splice(index, 1);\r\n }\r\n\r\n previewAndModify(order: OrderDetail.Fragment) {\r\n const input: ModifyOrderInput = {\r\n ...this.modifyOrderInput,\r\n ...(this.billingAddressForm.dirty ? { updateBillingAddress: this.billingAddressForm.value } : {}),\r\n ...(this.shippingAddressForm.dirty\r\n ? { updateShippingAddress: this.shippingAddressForm.value }\r\n : {}),\r\n dryRun: true,\r\n couponCodes: this.couponCodesControl.dirty ? this.couponCodesControl.value : undefined,\r\n note: this.note ?? '',\r\n options: {\r\n recalculateShipping: this.recalculateShipping,\r\n },\r\n };\r\n const originalTotalWithTax = order.totalWithTax;\r\n this.dataService.order\r\n .modifyOrder(input)\r\n .pipe(\r\n switchMap(({ modifyOrder }) => {\r\n switch (modifyOrder.__typename) {\r\n case 'Order':\r\n return this.modalService.fromComponent(OrderEditsPreviewDialogComponent, {\r\n size: 'xl',\r\n closable: false,\r\n locals: {\r\n originalTotalWithTax,\r\n order: modifyOrder,\r\n orderLineCustomFields: this.orderLineCustomFields,\r\n modifyOrderInput: input,\r\n },\r\n });\r\n case 'InsufficientStockError':\r\n case 'NegativeQuantityError':\r\n case 'NoChangesSpecifiedError':\r\n case 'OrderLimitError':\r\n case 'OrderModificationStateError':\r\n case 'PaymentMethodMissingError':\r\n case 'RefundPaymentIdMissingError':\r\n case 'CouponCodeLimitError':\r\n case 'CouponCodeExpiredError':\r\n case 'CouponCodeInvalidError': {\r\n this.notificationService.error(modifyOrder.message);\r\n return of(false as const);\r\n }\r\n case null:\r\n case undefined:\r\n return of(false as const);\r\n default:\r\n assertNever(modifyOrder);\r\n }\r\n }),\r\n switchMap(result => {\r\n if (!result || result.result === OrderEditResultType.Cancel) {\r\n // re-fetch so that the preview values get overwritten in the cache.\r\n return this.dataService.order.getOrder(this.id).mapSingle(() => false);\r\n } else {\r\n // Do the modification\r\n const wetRunInput = {\r\n ...input,\r\n dryRun: false,\r\n };\r\n if (result.result === OrderEditResultType.Refund) {\r\n wetRunInput.refund = {\r\n paymentId: result.refundPaymentId,\r\n reason: result.refundNote,\r\n };\r\n }\r\n return this.dataService.order.modifyOrder(wetRunInput).pipe(\r\n switchMap(({ modifyOrder }) => {\r\n if (modifyOrder.__typename === 'Order') {\r\n const priceDelta = modifyOrder.totalWithTax - originalTotalWithTax;\r\n const nextState =\r\n 0 < priceDelta ? 'ArrangingAdditionalPayment' : this.previousState;\r\n\r\n return this.dataService.order\r\n .transitionToState(order.id, nextState)\r\n .pipe(mapTo(true));\r\n } else {\r\n this.notificationService.error((modifyOrder as ErrorResult).message);\r\n return EMPTY;\r\n }\r\n }),\r\n );\r\n }\r\n }),\r\n )\r\n .subscribe(result => {\r\n if (result) {\r\n this.router.navigate(['../'], { relativeTo: this.route });\r\n }\r\n });\r\n }\r\n\r\n private addAddressCustomFieldsFormGroup(\r\n parentFormGroup: FormGroup,\r\n address?: OrderAddressFragment | null,\r\n ) {\r\n if (address && this.addressCustomFields.length) {\r\n const addressCustomFieldsFormGroup = new FormGroup({});\r\n for (const customFieldDef of this.addressCustomFields) {\r\n const name = customFieldDef.name;\r\n const value = (address as any).customFields?.[name];\r\n addressCustomFieldsFormGroup.addControl(name, new FormControl(value));\r\n }\r\n parentFormGroup.addControl('customFields', addressCustomFieldsFormGroup);\r\n }\r\n }\r\n\r\n protected setFormValues(entity: OrderDetail.Fragment, languageCode: LanguageCode): void {\r\n /* not used */\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport {\r\n GetOrderHistory,\r\n HistoryEntry,\r\n HistoryEntryType,\r\n OrderDetail,\r\n OrderDetailFragment,\r\n TimelineDisplayType,\r\n} from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-order-history',\r\n templateUrl: './order-history.component.html',\r\n styleUrls: ['./order-history.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderHistoryComponent {\r\n @Input() order: OrderDetailFragment;\r\n @Input() history: GetOrderHistory.Items[];\r\n @Output() addNote = new EventEmitter<{ note: string; isPublic: boolean }>();\r\n @Output() updateNote = new EventEmitter<HistoryEntry>();\r\n @Output() deleteNote = new EventEmitter<HistoryEntry>();\r\n note = '';\r\n noteIsPrivate = true;\r\n expanded = false;\r\n readonly type = HistoryEntryType;\r\n\r\n getDisplayType(entry: GetOrderHistory.Items): TimelineDisplayType {\r\n if (entry.type === HistoryEntryType.ORDER_STATE_TRANSITION) {\r\n if (entry.data.to === 'Delivered') {\r\n return 'success';\r\n }\r\n if (entry.data.to === 'Cancelled') {\r\n return 'error';\r\n }\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_FULFILLMENT_TRANSITION) {\r\n if (entry.data.to === 'Delivered') {\r\n return 'success';\r\n }\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_PAYMENT_TRANSITION) {\r\n if (entry.data.to === 'Declined' || entry.data.to === 'Cancelled') {\r\n return 'error';\r\n }\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_CANCELLATION) {\r\n return 'error';\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_REFUND_TRANSITION) {\r\n return 'warning';\r\n }\r\n return 'default';\r\n }\r\n\r\n getTimelineIcon(entry: GetOrderHistory.Items) {\r\n if (entry.type === HistoryEntryType.ORDER_STATE_TRANSITION) {\r\n if (entry.data.to === 'Delivered') {\r\n return ['success-standard', 'is-solid'];\r\n }\r\n if (entry.data.to === 'Cancelled') {\r\n return 'ban';\r\n }\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_PAYMENT_TRANSITION) {\r\n if (entry.data.to === 'Settled') {\r\n return 'credit-card';\r\n }\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_NOTE) {\r\n return 'note';\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_MODIFIED) {\r\n return 'pencil';\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_FULFILLMENT_TRANSITION) {\r\n if (entry.data.to === 'Shipped') {\r\n return 'truck';\r\n }\r\n if (entry.data.to === 'Delivered') {\r\n return 'truck';\r\n }\r\n }\r\n }\r\n\r\n isFeatured(entry: GetOrderHistory.Items): boolean {\r\n switch (entry.type) {\r\n case HistoryEntryType.ORDER_STATE_TRANSITION: {\r\n return (\r\n entry.data.to === 'Delivered' ||\r\n entry.data.to === 'Cancelled' ||\r\n entry.data.to === 'Settled'\r\n );\r\n }\r\n case HistoryEntryType.ORDER_PAYMENT_TRANSITION:\r\n return entry.data.to === 'Settled' || entry.data.to === 'Cancelled';\r\n case HistoryEntryType.ORDER_FULFILLMENT_TRANSITION:\r\n return entry.data.to === 'Delivered' || entry.data.to === 'Shipped';\r\n case HistoryEntryType.ORDER_NOTE:\r\n case HistoryEntryType.ORDER_MODIFIED:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n getFulfillment(entry: GetOrderHistory.Items): OrderDetail.Fulfillments | undefined {\r\n if (\r\n (entry.type === HistoryEntryType.ORDER_FULFILLMENT ||\r\n entry.type === HistoryEntryType.ORDER_FULFILLMENT_TRANSITION) &&\r\n this.order.fulfillments\r\n ) {\r\n return this.order.fulfillments.find(f => f.id === entry.data.fulfillmentId);\r\n }\r\n }\r\n\r\n getPayment(entry: GetOrderHistory.Items): OrderDetail.Payments | undefined {\r\n if (entry.type === HistoryEntryType.ORDER_PAYMENT_TRANSITION && this.order.payments) {\r\n return this.order.payments.find(p => p.id === entry.data.paymentId);\r\n }\r\n }\r\n\r\n getCancelledItems(entry: GetOrderHistory.Items): Array<{ name: string; quantity: number }> {\r\n const itemMap = new Map<string, number>();\r\n const cancelledItemIds: string[] = entry.data.orderItemIds;\r\n for (const line of this.order.lines) {\r\n for (const item of line.items) {\r\n if (cancelledItemIds.includes(item.id)) {\r\n const count = itemMap.get(line.productVariant.name);\r\n if (count != null) {\r\n itemMap.set(line.productVariant.name, count + 1);\r\n } else {\r\n itemMap.set(line.productVariant.name, 1);\r\n }\r\n }\r\n }\r\n }\r\n return Array.from(itemMap.entries()).map(([name, quantity]) => ({ name, quantity }));\r\n }\r\n\r\n getModification(id: string) {\r\n return this.order.modifications.find(m => m.id === id);\r\n }\r\n\r\n getName(entry: GetOrderHistory.Items): string {\r\n const { administrator } = entry;\r\n if (administrator) {\r\n return `${administrator.firstName} ${administrator.lastName}`;\r\n } else {\r\n const customer = this.order.customer;\r\n if (customer) {\r\n return `${customer.firstName} ${customer.lastName}`;\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n addNoteToOrder() {\r\n this.addNote.emit({ note: this.note, isPublic: !this.noteIsPrivate });\r\n this.note = '';\r\n this.noteIsPrivate = true;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n BaseListComponent,\r\n DataService,\r\n GetOrderList,\r\n LocalStorageService,\r\n LogicalOperator,\r\n OrderListOptions,\r\n ServerConfigService,\r\n SortOrder,\r\n} from '@vendure/admin-ui/core';\r\nimport { Order } from '@vendure/common/lib/generated-types';\r\nimport { merge, Observable } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, filter, map, takeUntil } from 'rxjs/operators';\r\n\r\ninterface OrderFilterConfig {\r\n active?: boolean;\r\n states?: string[];\r\n}\r\n\r\ninterface FilterPreset {\r\n name: string;\r\n label: string;\r\n config: OrderFilterConfig;\r\n}\r\n\r\n@Component({\r\n selector: 'vdr-order-list',\r\n templateUrl: './order-list.component.html',\r\n styleUrls: ['./order-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderListComponent\r\n extends BaseListComponent<GetOrderList.Query, GetOrderList.Items>\r\n implements OnInit\r\n{\r\n searchControl = new FormControl('');\r\n searchOrderCodeControl = new FormControl('');\r\n searchLastNameControl = new FormControl('');\r\n customFilterForm: FormGroup;\r\n orderStates = this.serverConfigService.getOrderProcessStates().map(item => item.name);\r\n filterPresets: FilterPreset[] = [\r\n {\r\n name: 'open',\r\n label: _('order.filter-preset-open'),\r\n config: {\r\n active: false,\r\n states: this.orderStates.filter(\r\n s => s !== 'Delivered' && s !== 'Cancelled' && s !== 'Shipped',\r\n ),\r\n },\r\n },\r\n {\r\n name: 'shipped',\r\n label: _('order.filter-preset-shipped'),\r\n config: {\r\n active: false,\r\n states: ['Shipped'],\r\n },\r\n },\r\n {\r\n name: 'completed',\r\n label: _('order.filter-preset-completed'),\r\n config: {\r\n active: false,\r\n states: ['Delivered', 'Cancelled'],\r\n },\r\n },\r\n {\r\n name: 'active',\r\n label: _('order.filter-preset-active'),\r\n config: {\r\n active: true,\r\n },\r\n },\r\n ];\r\n activePreset$: Observable<string>;\r\n\r\n constructor(\r\n private serverConfigService: ServerConfigService,\r\n private dataService: DataService,\r\n private localStorageService: LocalStorageService,\r\n router: Router,\r\n route: ActivatedRoute,\r\n ) {\r\n super(router, route);\r\n super.setQueryFn(\r\n // tslint:disable-next-line:no-shadowed-variable\r\n (take, skip) => this.dataService.order.getOrders({ take, skip }).refetchOnChannelChange(),\r\n data => data.orders,\r\n // tslint:disable-next-line:no-shadowed-variable\r\n (skip, take) =>\r\n this.createQueryOptions(\r\n skip,\r\n take,\r\n this.searchControl.value,\r\n this.route.snapshot.queryParamMap.get('filter') || 'open',\r\n ),\r\n );\r\n const lastFilters = this.localStorageService.get('orderListLastCustomFilters');\r\n if (lastFilters) {\r\n this.setQueryParam(lastFilters, { replaceUrl: true });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n this.activePreset$ = this.route.queryParamMap.pipe(\r\n map(qpm => qpm.get('filter') || 'open'),\r\n distinctUntilChanged(),\r\n );\r\n const searchTerms$ = merge(this.searchControl.valueChanges).pipe(\r\n filter(value => 2 < value.length || value.length === 0),\r\n debounceTime(250),\r\n );\r\n merge(searchTerms$, this.route.queryParamMap)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(val => {\r\n this.refresh();\r\n });\r\n\r\n const queryParamMap = this.route.snapshot.queryParamMap;\r\n this.customFilterForm = new FormGroup({\r\n states: new FormControl(queryParamMap.getAll('states') ?? []),\r\n placedAtStart: new FormControl(queryParamMap.get('placedAtStart')),\r\n placedAtEnd: new FormControl(queryParamMap.get('placedAtEnd')),\r\n });\r\n }\r\n\r\n selectFilterPreset(presetName: string) {\r\n const lastCustomFilters = this.localStorageService.get('orderListLastCustomFilters') ?? {};\r\n const emptyCustomFilters = { states: undefined, placedAtStart: undefined, placedAtEnd: undefined };\r\n const filters = presetName === 'custom' ? lastCustomFilters : emptyCustomFilters;\r\n this.setQueryParam(\r\n {\r\n filter: presetName,\r\n page: 1,\r\n ...filters,\r\n },\r\n { replaceUrl: true },\r\n );\r\n }\r\n\r\n applyCustomFilters() {\r\n const formValue = this.customFilterForm.value;\r\n const customFilters = {\r\n states: formValue.states,\r\n placedAtStart: formValue.placedAtStart,\r\n placedAtEnd: formValue.placedAtEnd,\r\n };\r\n this.setQueryParam({\r\n filter: 'custom',\r\n ...customFilters,\r\n });\r\n this.customFilterForm.markAsPristine();\r\n this.localStorageService.set('orderListLastCustomFilters', customFilters);\r\n }\r\n\r\n private createQueryOptions(\r\n // tslint:disable-next-line:no-shadowed-variable\r\n skip: number,\r\n take: number,\r\n searchTerm: string,\r\n activeFilterPreset?: string,\r\n ): { options: OrderListOptions } {\r\n const filterConfig = this.filterPresets.find(p => p.name === activeFilterPreset);\r\n // tslint:disable-next-line:no-shadowed-variable\r\n let filter: any = {};\r\n let filterOperator: LogicalOperator = LogicalOperator.AND;\r\n if (filterConfig) {\r\n if (filterConfig.config.active != null) {\r\n filter.active = {\r\n eq: filterConfig.config.active,\r\n };\r\n }\r\n if (filterConfig.config.states) {\r\n filter.state = {\r\n in: filterConfig.config.states,\r\n };\r\n }\r\n } else if (activeFilterPreset === 'custom') {\r\n const queryParams = this.route.snapshot.queryParamMap;\r\n const states = queryParams.getAll('states') ?? [];\r\n const placedAtStart = queryParams.get('placedAtStart');\r\n const placedAtEnd = queryParams.get('placedAtEnd');\r\n if (states.length) {\r\n filter.state = {\r\n in: states,\r\n };\r\n }\r\n if (placedAtStart && placedAtEnd) {\r\n filter.orderPlacedAt = {\r\n between: {\r\n start: placedAtStart,\r\n end: placedAtEnd,\r\n },\r\n };\r\n } else if (placedAtStart) {\r\n filter.orderPlacedAt = {\r\n after: placedAtStart,\r\n };\r\n } else if (placedAtEnd) {\r\n filter.orderPlacedAt = {\r\n before: placedAtEnd,\r\n };\r\n }\r\n }\r\n if (searchTerm) {\r\n filter = {\r\n customerLastName: {\r\n contains: searchTerm,\r\n },\r\n transactionId: {\r\n contains: searchTerm,\r\n },\r\n code: {\r\n contains: searchTerm,\r\n },\r\n };\r\n filterOperator = LogicalOperator.OR;\r\n }\r\n return {\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n ...(filter ?? {}),\r\n },\r\n sort: {\r\n updatedAt: SortOrder.DESC,\r\n },\r\n filterOperator,\r\n },\r\n };\r\n }\r\n\r\n getShippingNames(order: Order) {\r\n if (order.shippingLines.length) {\r\n return order.shippingLines.map(shippingLine => shippingLine.shippingMethod.name).join(', ');\r\n } else {\r\n return '';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CurrencyCode } from '@vendure/admin-ui/core';\r\nimport { OrderDetail } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-order-payment-card',\r\n templateUrl: './order-payment-card.component.html',\r\n styleUrls: ['./order-payment-card.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderPaymentCardComponent {\r\n @Input() payment: OrderDetail.Payments;\r\n @Input() currencyCode: CurrencyCode;\r\n @Output() settlePayment = new EventEmitter<OrderDetail.Payments>();\r\n @Output() transitionPaymentState = new EventEmitter<{ payment: OrderDetail.Payments; state: string }>();\r\n @Output() settleRefund = new EventEmitter<OrderDetail.Refunds>();\r\n\r\n refundHasMetadata(refund?: OrderDetail.Refunds): boolean {\r\n return !!refund && Object.keys(refund.metadata).length > 0;\r\n }\r\n\r\n nextOtherStates(): string[] {\r\n if (!this.payment) {\r\n return [];\r\n }\r\n return this.payment.nextStates.filter(s => s !== 'Settled' && s !== 'Error');\r\n }\r\n}\r\n","export const NODE_HEIGHT = 72;\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nimport { OrderProcessNodeComponent } from './order-process-node.component';\r\n\r\n@Component({\r\n selector: 'vdr-order-process-edge',\r\n templateUrl: './order-process-edge.component.html',\r\n styleUrls: ['./order-process-edge.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderProcessEdgeComponent implements OnInit {\r\n @Input() from: OrderProcessNodeComponent;\r\n @Input() to: OrderProcessNodeComponent;\r\n @Input() index: number;\r\n active$: Observable<boolean>;\r\n\r\n ngOnInit() {\r\n this.active$ = this.from.active$\r\n .asObservable()\r\n .pipe(tap((active) => this.to.activeTarget$.next(active)));\r\n }\r\n\r\n getStyle() {\r\n const direction = this.from.index < this.to.index ? 'down' : 'up';\r\n const startPos = this.from.getPos(direction === 'down' ? 'bottom' : 'top');\r\n const endPos = this.to.getPos(direction === 'down' ? 'top' : 'bottom');\r\n const dX = Math.abs(startPos.x - endPos.x);\r\n const dY = Math.abs(startPos.y - endPos.y);\r\n const length = Math.sqrt(dX ** 2 + dY ** 2);\r\n return {\r\n 'top.px': startPos.y,\r\n 'left.px': startPos.x + (direction === 'down' ? 10 : 40) + this.index * 12,\r\n 'height.px': length,\r\n 'width.px': 1,\r\n ...(direction === 'up'\r\n ? {\r\n transform: 'rotateZ(180deg)',\r\n 'transform-origin': 'top',\r\n }\r\n : {}),\r\n };\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport { NODE_HEIGHT } from './constants';\r\nimport { StateNode } from './types';\r\n\r\n@Component({\r\n selector: 'vdr-order-process-node',\r\n templateUrl: './order-process-node.component.html',\r\n styleUrls: ['./order-process-node.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderProcessNodeComponent implements OnChanges {\r\n @Input() node: StateNode;\r\n @Input() index: number;\r\n @Input() active: boolean;\r\n active$ = new BehaviorSubject<boolean>(false);\r\n activeTarget$ = new BehaviorSubject<boolean>(false);\r\n isCancellable = false;\r\n // We use a class field here to prevent the\r\n // i18n extractor from extracting a \"Cancelled\" key\r\n cancelledState = 'Cancelled';\r\n\r\n constructor(private elementRef: ElementRef<HTMLDivElement>) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.isCancellable = !!this.node.to.find((s) => s.name === 'Cancelled');\r\n if (changes.active) {\r\n this.active$.next(this.active);\r\n }\r\n }\r\n\r\n getPos(origin: 'top' | 'bottom' = 'top'): { x: number; y: number } {\r\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\r\n const nodeHeight =\r\n this.elementRef.nativeElement.querySelector('.node')?.getBoundingClientRect().height ?? 0;\r\n return {\r\n x: 10,\r\n y: this.index * NODE_HEIGHT + (origin === 'bottom' ? nodeHeight : 0),\r\n };\r\n }\r\n\r\n getStyle() {\r\n const pos = this.getPos();\r\n return {\r\n 'top.px': pos.y,\r\n 'left.px': pos.x,\r\n };\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport { OrderProcessState } from '@vendure/admin-ui/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\nimport { NODE_HEIGHT } from './constants';\r\nimport { OrderProcessNodeComponent } from './order-process-node.component';\r\nimport { StateNode } from './types';\r\n\r\n@Component({\r\n selector: 'vdr-order-process-graph',\r\n templateUrl: './order-process-graph.component.html',\r\n styleUrls: ['./order-process-graph.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderProcessGraphComponent implements OnInit, OnChanges, AfterViewInit {\r\n @Input() states: OrderProcessState[];\r\n @Input() initialState?: string;\r\n setActiveState$ = new BehaviorSubject<string | undefined>(undefined);\r\n activeState$: Observable<string | undefined>;\r\n nodes: StateNode[] = [];\r\n edges: Array<{ from: OrderProcessNodeComponent; to: OrderProcessNodeComponent; index: number }> = [];\r\n\r\n @ViewChildren(OrderProcessNodeComponent) nodeComponents: QueryList<OrderProcessNodeComponent>;\r\n\r\n constructor(private changeDetector: ChangeDetectorRef) {}\r\n\r\n @HostBinding('style.height.px')\r\n get outerHeight(): number {\r\n return this.nodes.length * NODE_HEIGHT;\r\n }\r\n\r\n ngOnInit() {\r\n this.setActiveState$.next(this.initialState);\r\n this.activeState$ = this.setActiveState$.pipe(debounceTime(150));\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.populateNodes();\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => this.populateEdges());\r\n }\r\n\r\n onMouseOver(stateName: string) {\r\n this.setActiveState$.next(stateName);\r\n }\r\n\r\n onMouseOut() {\r\n this.setActiveState$.next(this.initialState);\r\n }\r\n\r\n getNodeFor(state: string): OrderProcessNodeComponent | undefined {\r\n if (this.nodeComponents) {\r\n return this.nodeComponents.find((n) => n.node.name === state);\r\n }\r\n }\r\n\r\n private populateNodes() {\r\n const stateNodeMap = new Map<string, StateNode>();\r\n for (const state of this.states) {\r\n stateNodeMap.set(state.name, {\r\n name: state.name,\r\n to: [],\r\n });\r\n }\r\n\r\n for (const [name, stateNode] of stateNodeMap.entries()) {\r\n const targets = this.states.find((s) => s.name === name)?.to ?? [];\r\n for (const target of targets) {\r\n const targetNode = stateNodeMap.get(target);\r\n if (targetNode) {\r\n stateNode.to.push(targetNode);\r\n }\r\n }\r\n }\r\n this.nodes = [...stateNodeMap.values()].filter((n) => n.name !== 'Cancelled');\r\n }\r\n\r\n private populateEdges() {\r\n for (const node of this.nodes) {\r\n const nodeCmp = this.getNodeFor(node.name);\r\n let index = 0;\r\n for (const to of node.to) {\r\n const toCmp = this.getNodeFor(to.name);\r\n if (nodeCmp && toCmp && nodeCmp !== toCmp) {\r\n this.edges.push({\r\n to: toCmp,\r\n from: nodeCmp,\r\n index,\r\n });\r\n index++;\r\n }\r\n }\r\n }\r\n this.edges = [...this.edges];\r\n this.changeDetector.markForCheck();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { AdjustmentType, CustomFieldConfig, OrderDetail } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-order-table',\r\n templateUrl: './order-table.component.html',\r\n styleUrls: ['./order-table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderTableComponent implements OnInit {\r\n @Input() order: OrderDetail.Fragment;\r\n @Input() orderLineCustomFields: CustomFieldConfig[];\r\n orderLineCustomFieldsVisible = false;\r\n customFieldsForLine: {\r\n [lineId: string]: Array<{ config: CustomFieldConfig; formGroup: FormGroup; value: any }>;\r\n } = {};\r\n\r\n get visibleOrderLineCustomFields(): CustomFieldConfig[] {\r\n return this.orderLineCustomFieldsVisible ? this.orderLineCustomFields : [];\r\n }\r\n\r\n get showElided(): boolean {\r\n return !this.orderLineCustomFieldsVisible && 0 < this.orderLineCustomFields.length;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.orderLineCustomFieldsVisible = this.orderLineCustomFields.length < 2;\r\n this.getLineCustomFields();\r\n }\r\n\r\n toggleOrderLineCustomFields() {\r\n this.orderLineCustomFieldsVisible = !this.orderLineCustomFieldsVisible;\r\n }\r\n\r\n getLineDiscounts(line: OrderDetail.Lines) {\r\n return line.discounts.filter(a => a.type === AdjustmentType.PROMOTION);\r\n }\r\n\r\n private getLineCustomFields() {\r\n for (const line of this.order.lines) {\r\n const formGroup = new FormGroup({});\r\n const result = this.orderLineCustomFields\r\n .map(config => {\r\n const value = (line as any).customFields[config.name];\r\n formGroup.addControl(config.name, new FormControl(value));\r\n return {\r\n config,\r\n formGroup,\r\n value,\r\n };\r\n })\r\n .filter(field => {\r\n return this.orderLineCustomFieldsVisible ? true : field.value != null;\r\n });\r\n this.customFieldsForLine[line.id] = result;\r\n }\r\n }\r\n\r\n getPromotionLink(promotion: OrderDetail.Discounts): any[] {\r\n const id = promotion.adjustmentSource.split(':')[1];\r\n return ['/marketing', 'promotions', id];\r\n }\r\n\r\n getCouponCodeForAdjustment(\r\n order: OrderDetail.Fragment,\r\n promotionAdjustment: OrderDetail.Discounts,\r\n ): string | undefined {\r\n const id = promotionAdjustment.adjustmentSource.split(':')[1];\r\n const promotion = order.promotions.find(p => p.id === id);\r\n if (promotion) {\r\n return promotion.couponCode || undefined;\r\n }\r\n }\r\n\r\n getShippingNames(order: OrderDetail.Fragment) {\r\n if (order.shippingLines.length) {\r\n return order.shippingLines.map(shippingLine => shippingLine.shippingMethod.name).join(', ');\r\n } else {\r\n return '';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { CurrencyCode, OrderDetail } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-payment-detail',\r\n templateUrl: './payment-detail.component.html',\r\n styleUrls: ['./payment-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PaymentDetailComponent {\r\n @Input() payment: OrderDetail.Payments;\r\n @Input() currencyCode: CurrencyCode;\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-payment-state-label',\r\n templateUrl: './payment-state-label.component.html',\r\n styleUrls: ['./payment-state-label.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PaymentStateLabelComponent {\r\n @Input() state: string;\r\n\r\n get chipColorType() {\r\n switch (this.state) {\r\n case 'Authorized':\r\n return 'warning';\r\n case 'Settled':\r\n return 'success';\r\n case 'Declined':\r\n case 'Cancelled':\r\n return 'error';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-refund-state-label',\r\n templateUrl: './refund-state-label.component.html',\r\n styleUrls: ['./refund-state-label.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RefundStateLabelComponent {\r\n @Input() state: string;\r\n\r\n get chipColorType() {\r\n switch (this.state) {\r\n case 'Pending':\r\n return 'warning';\r\n case 'Settled':\r\n return 'success';\r\n case 'Failed':\r\n return 'error';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-simple-item-list',\r\n templateUrl: './simple-item-list.component.html',\r\n styleUrls: ['./simple-item-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SimpleItemListComponent {\r\n @Input() items: Array<{ name: string; quantity: number }>;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { BaseEntityResolver } from '@vendure/admin-ui/core';\r\nimport { OrderDetail } from '@vendure/admin-ui/core';\r\nimport { DataService } from '@vendure/admin-ui/core';\r\n\r\n/**\r\n * Resolves the id from the path into a Customer entity.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OrderResolver extends BaseEntityResolver<OrderDetail.Fragment> {\r\n constructor(router: Router, dataService: DataService) {\r\n super(\r\n router,\r\n {\r\n __typename: 'Order',\r\n id: '',\r\n code: '',\r\n createdAt: '',\r\n updatedAt: '',\r\n total: 0,\r\n } as any,\r\n id => dataService.order.getOrder(id).mapStream(data => data.order),\r\n );\r\n }\r\n}\r\n","import { Route } from '@angular/router';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n BreadcrumbLabelLinkPair,\r\n CanDeactivateDetailGuard,\r\n createResolveData,\r\n detailBreadcrumb,\r\n OrderDetail,\r\n} from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { OrderDetailComponent } from './components/order-detail/order-detail.component';\r\nimport { OrderEditorComponent } from './components/order-editor/order-editor.component';\r\nimport { OrderListComponent } from './components/order-list/order-list.component';\r\nimport { OrderResolver } from './providers/routing/order-resolver';\r\n\r\nexport const orderRoutes: Route[] = [\r\n {\r\n path: '',\r\n component: OrderListComponent,\r\n data: {\r\n breadcrumb: _('breadcrumb.orders'),\r\n },\r\n },\r\n {\r\n path: ':id',\r\n component: OrderDetailComponent,\r\n resolve: createResolveData(OrderResolver),\r\n canDeactivate: [CanDeactivateDetailGuard],\r\n data: {\r\n breadcrumb: orderBreadcrumb,\r\n },\r\n },\r\n {\r\n path: ':id/modify',\r\n component: OrderEditorComponent,\r\n resolve: createResolveData(OrderResolver),\r\n // canDeactivate: [CanDeactivateDetailGuard],\r\n data: {\r\n breadcrumb: modifyingOrderBreadcrumb,\r\n },\r\n },\r\n];\r\n\r\nexport function orderBreadcrumb(data: any, params: any) {\r\n return detailBreadcrumb<OrderDetail.Fragment>({\r\n entity: data.entity,\r\n id: params.id,\r\n breadcrumbKey: 'breadcrumb.orders',\r\n getName: order => order.code,\r\n route: '',\r\n });\r\n}\r\n\r\nexport function modifyingOrderBreadcrumb(data: any, params: any) {\r\n return orderBreadcrumb(data, params).pipe(\r\n map((breadcrumbs: BreadcrumbLabelLinkPair[]) => {\r\n const modifiedBreadcrumbs = breadcrumbs.slice();\r\n modifiedBreadcrumbs[0].link[0] = '../';\r\n modifiedBreadcrumbs[1].link[0] = '../orders';\r\n return modifiedBreadcrumbs.concat({ label: _('breadcrumb.modifying'), link: [''] });\r\n }) as any,\r\n );\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { SharedModule } from '@vendure/admin-ui/core';\n\nimport { AddManualPaymentDialogComponent } from './components/add-manual-payment-dialog/add-manual-payment-dialog.component';\nimport { CancelOrderDialogComponent } from './components/cancel-order-dialog/cancel-order-dialog.component';\nimport { FulfillOrderDialogComponent } from './components/fulfill-order-dialog/fulfill-order-dialog.component';\nimport { FulfillmentCardComponent } from './components/fulfillment-card/fulfillment-card.component';\nimport { FulfillmentDetailComponent } from './components/fulfillment-detail/fulfillment-detail.component';\nimport { FulfillmentStateLabelComponent } from './components/fulfillment-state-label/fulfillment-state-label.component';\nimport { LineFulfillmentComponent } from './components/line-fulfillment/line-fulfillment.component';\nimport { LineRefundsComponent } from './components/line-refunds/line-refunds.component';\nimport { ModificationDetailComponent } from './components/modification-detail/modification-detail.component';\nimport { OrderCustomFieldsCardComponent } from './components/order-custom-fields-card/order-custom-fields-card.component';\nimport { OrderDetailComponent } from './components/order-detail/order-detail.component';\nimport { OrderEditorComponent } from './components/order-editor/order-editor.component';\nimport { OrderEditsPreviewDialogComponent } from './components/order-edits-preview-dialog/order-edits-preview-dialog.component';\nimport { OrderHistoryComponent } from './components/order-history/order-history.component';\nimport { OrderListComponent } from './components/order-list/order-list.component';\nimport { OrderPaymentCardComponent } from './components/order-payment-card/order-payment-card.component';\nimport { OrderProcessGraphDialogComponent } from './components/order-process-graph-dialog/order-process-graph-dialog.component';\nimport { OrderProcessEdgeComponent } from './components/order-process-graph/order-process-edge.component';\nimport { OrderProcessGraphComponent } from './components/order-process-graph/order-process-graph.component';\nimport { OrderProcessNodeComponent } from './components/order-process-graph/order-process-node.component';\nimport { OrderStateSelectDialogComponent } from './components/order-state-select-dialog/order-state-select-dialog.component';\nimport { OrderTableComponent } from './components/order-table/order-table.component';\nimport { PaymentDetailComponent } from './components/payment-detail/payment-detail.component';\nimport { PaymentStateLabelComponent } from './components/payment-state-label/payment-state-label.component';\nimport { RefundOrderDialogComponent } from './components/refund-order-dialog/refund-order-dialog.component';\nimport { RefundStateLabelComponent } from './components/refund-state-label/refund-state-label.component';\nimport { SettleRefundDialogComponent } from './components/settle-refund-dialog/settle-refund-dialog.component';\nimport { SimpleItemListComponent } from './components/simple-item-list/simple-item-list.component';\nimport { orderRoutes } from './order.routes';\n\n@NgModule({\n imports: [SharedModule, RouterModule.forChild(orderRoutes)],\n declarations: [\n OrderListComponent,\n OrderDetailComponent,\n FulfillOrderDialogComponent,\n LineFulfillmentComponent,\n RefundOrderDialogComponent,\n CancelOrderDialogComponent,\n PaymentStateLabelComponent,\n LineRefundsComponent,\n OrderPaymentCardComponent,\n RefundStateLabelComponent,\n SettleRefundDialogComponent,\n OrderHistoryComponent,\n FulfillmentDetailComponent,\n PaymentDetailComponent,\n SimpleItemListComponent,\n OrderCustomFieldsCardComponent,\n OrderProcessGraphComponent,\n OrderProcessNodeComponent,\n OrderProcessEdgeComponent,\n OrderProcessGraphDialogComponent,\n FulfillmentStateLabelComponent,\n FulfillmentCardComponent,\n OrderEditorComponent,\n OrderTableComponent,\n OrderEditsPreviewDialogComponent,\n ModificationDetailComponent,\n AddManualPaymentDialogComponent,\n OrderStateSelectDialogComponent,\n ],\n})\nexport class OrderModule {}\n","// This file was generated by the build-public-api.ts script\nexport * from './components/add-manual-payment-dialog/add-manual-payment-dialog.component';\nexport * from './components/cancel-order-dialog/cancel-order-dialog.component';\nexport * from './components/fulfill-order-dialog/fulfill-order-dialog.component';\nexport * from './components/fulfillment-card/fulfillment-card.component';\nexport * from './components/fulfillment-detail/fulfillment-detail.component';\nexport * from './components/fulfillment-state-label/fulfillment-state-label.component';\nexport * from './components/line-fulfillment/line-fulfillment.component';\nexport * from './components/line-refunds/line-refunds.component';\nexport * from './components/modification-detail/modification-detail.component';\nexport * from './components/order-custom-fields-card/order-custom-fields-card.component';\nexport * from './components/order-detail/order-detail.component';\nexport * from './components/order-editor/order-editor.component';\nexport * from './components/order-edits-preview-dialog/order-edits-preview-dialog.component';\nexport * from './components/order-history/order-history.component';\nexport * from './components/order-list/order-list.component';\nexport * from './components/order-payment-card/order-payment-card.component';\nexport * from './components/order-process-graph/constants';\nexport * from './components/order-process-graph/order-process-edge.component';\nexport * from './components/order-process-graph/order-process-graph.component';\nexport * from './components/order-process-graph/order-process-node.component';\nexport * from './components/order-process-graph/types';\nexport * from './components/order-process-graph-dialog/order-process-graph-dialog.component';\nexport * from './components/order-state-select-dialog/order-state-select-dialog.component';\nexport * from './components/order-table/order-table.component';\nexport * from './components/payment-detail/payment-detail.component';\nexport * from './components/payment-state-label/payment-state-label.component';\nexport * from './components/refund-order-dialog/refund-order-dialog.component';\nexport * from './components/refund-state-label/refund-state-label.component';\nexport * from './components/settle-refund-dialog/settle-refund-dialog.component';\nexport * from './components/simple-item-list/simple-item-list.component';\nexport * from './order.module';\nexport * from './order.routes';\nexport * from './providers/order-transition.service';\nexport * from './providers/routing/order-resolver';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["FormGroup","FormControl","Validators","Component","ChangeDetectionStrategy","DataService","getAppConfig","_","I18nService","configurableDefinitionToInstance","GlobalFlag","configurableOperationValueIsValid","toConfigurableOperationInput","ChangeDetectorRef","EventEmitter","Input","Output","isObject","ServerConfigService","FormBuilder","ModalService","switchMap","catchError","EMPTY","retryWhen","delay","take","HistoryEntryType","SortOrder","map","Injectable","NotificationService","summate","Subject","startWith","mapTo","of","assertNever","EditNoteDialogComponent","BaseDetailComponent","Router","ActivatedRoute","OrderEditResultType","notNullOrUndefined","takeUntil","FormArray","concat","distinctUntilChanged","shareReplay","merge","filter","debounceTime","LogicalOperator","BaseListComponent","LocalStorageService","tap","BehaviorSubject","ElementRef","ViewChildren","HostBinding","AdjustmentType","BaseEntityResolver","createResolveData","CanDeactivateDetailGuard","detailBreadcrumb","NgModule","SharedModule","RouterModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"vendure-admin-ui-order.umd.js","sources":["../../src/lib/order/src/components/add-manual-payment-dialog/add-manual-payment-dialog.component.ts","../../node_modules/tslib/tslib.es6.js","../../src/lib/order/src/components/cancel-order-dialog/cancel-order-dialog.component.ts","../../src/lib/order/src/components/fulfill-order-dialog/fulfill-order-dialog.component.ts","../../src/lib/order/src/components/fulfillment-card/fulfillment-card.component.ts","../../src/lib/order/src/components/fulfillment-detail/fulfillment-detail.component.ts","../../src/lib/order/src/components/fulfillment-state-label/fulfillment-state-label.component.ts","../../src/lib/order/src/components/line-fulfillment/line-fulfillment.component.ts","../../src/lib/order/src/components/line-refunds/line-refunds.component.ts","../../src/lib/order/src/components/modification-detail/modification-detail.component.ts","../../src/lib/order/src/components/order-custom-fields-card/order-custom-fields-card.component.ts","../../src/lib/order/src/components/order-state-select-dialog/order-state-select-dialog.component.ts","../../src/lib/order/src/providers/order-transition.service.ts","../../src/lib/order/src/components/order-process-graph-dialog/order-process-graph-dialog.component.ts","../../src/lib/order/src/components/refund-order-dialog/refund-order-dialog.component.ts","../../src/lib/order/src/components/settle-refund-dialog/settle-refund-dialog.component.ts","../../src/lib/order/src/components/order-detail/order-detail.component.ts","../../src/lib/order/src/components/order-edits-preview-dialog/order-edits-preview-dialog.component.ts","../../src/lib/order/src/components/order-editor/order-editor.component.ts","../../src/lib/order/src/components/order-history/order-history.component.ts","../../src/lib/order/src/components/order-list/order-list.component.ts","../../src/lib/order/src/components/order-payment-card/order-payment-card.component.ts","../../src/lib/order/src/components/order-process-graph/constants.ts","../../src/lib/order/src/components/order-process-graph/order-process-edge.component.ts","../../src/lib/order/src/components/order-process-graph/order-process-node.component.ts","../../src/lib/order/src/components/order-process-graph/order-process-graph.component.ts","../../src/lib/order/src/components/order-table/order-table.component.ts","../../src/lib/order/src/components/payment-detail/payment-detail.component.ts","../../src/lib/order/src/components/payment-state-label/payment-state-label.component.ts","../../src/lib/order/src/components/refund-state-label/refund-state-label.component.ts","../../src/lib/order/src/components/simple-item-list/simple-item-list.component.ts","../../src/lib/order/src/providers/routing/order-resolver.ts","../../src/lib/order/src/order.routes.ts","../../src/lib/order/src/order.module.ts","../../src/lib/order/src/public_api.ts","../../src/lib/order/src/vendure-admin-ui-order.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport {\r\n CurrencyCode,\r\n DataService,\r\n Dialog,\r\n GetPaymentMethodList,\r\n ManualPaymentInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'vdr-add-manual-payment-dialog',\r\n templateUrl: './add-manual-payment-dialog.component.html',\r\n styleUrls: ['./add-manual-payment-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AddManualPaymentDialogComponent implements OnInit, Dialog<Omit<ManualPaymentInput, 'orderId'>> {\r\n // populated by ModalService call\r\n outstandingAmount: number;\r\n currencyCode: CurrencyCode;\r\n\r\n resolveWith: (result?: Omit<ManualPaymentInput, 'orderId'>) => void;\r\n form = new FormGroup({\r\n method: new FormControl('', Validators.required),\r\n transactionId: new FormControl('', Validators.required),\r\n });\r\n paymentMethods$: Observable<GetPaymentMethodList.Items[]>;\r\n constructor(private dataService: DataService) {}\r\n\r\n ngOnInit(): void {\r\n this.paymentMethods$ = this.dataService.settings\r\n .getPaymentMethods(999)\r\n .mapSingle(data => data.paymentMethods.items);\r\n }\r\n\r\n submit() {\r\n const formValue = this.form.value;\r\n this.resolveWith({\r\n method: formValue.method,\r\n transactionId: formValue.transactionId,\r\n });\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CancelOrderInput,\r\n Dialog,\r\n getAppConfig,\r\n I18nService,\r\n OrderDetailFragment,\r\n OrderLineInput,\r\n} from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-cancel-order-dialog',\r\n templateUrl: './cancel-order-dialog.component.html',\r\n styleUrls: ['./cancel-order-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CancelOrderDialogComponent implements OnInit, Dialog<CancelOrderInput> {\r\n order: OrderDetailFragment;\r\n cancelAll = true;\r\n resolveWith: (result?: CancelOrderInput) => void;\r\n reason: string;\r\n lineQuantities: { [lineId: string]: number } = {};\r\n reasons: string[] = getAppConfig().cancellationReasons ?? [\r\n _('order.cancel-reason-customer-request'),\r\n _('order.cancel-reason-not-available'),\r\n ];\r\n\r\n get selectionCount(): number {\r\n return Object.values(this.lineQuantities).reduce((sum, n) => sum + n, 0);\r\n }\r\n\r\n constructor(private i18nService: I18nService) {\r\n this.reasons = this.reasons.map(r => this.i18nService.translate(r));\r\n }\r\n\r\n ngOnInit() {\r\n this.lineQuantities = this.order.lines.reduce((result, line) => {\r\n return { ...result, [line.id]: line.quantity };\r\n }, {});\r\n }\r\n\r\n radioChanged() {\r\n if (this.cancelAll) {\r\n for (const line of this.order.lines) {\r\n this.lineQuantities[line.id] = line.quantity;\r\n }\r\n } else {\r\n for (const line of this.order.lines) {\r\n this.lineQuantities[line.id] = 0;\r\n }\r\n }\r\n }\r\n\r\n checkIfAllSelected() {\r\n for (const [lineId, quantity] of Object.entries(this.lineQuantities)) {\r\n const quantityInOrder = this.order.lines.find(line => line.id === lineId)?.quantity;\r\n if (quantityInOrder && quantity < quantityInOrder) {\r\n return;\r\n }\r\n }\r\n // If we got here, all of the selected quantities are equal to the order\r\n // line quantities, i.e. everything is selected.\r\n this.cancelAll = true;\r\n }\r\n\r\n select() {\r\n this.resolveWith({\r\n orderId: this.order.id,\r\n lines: this.getLineInputs(),\r\n reason: this.reason,\r\n cancelShipping: this.cancelAll,\r\n });\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n\r\n private getLineInputs(): OrderLineInput[] | undefined {\r\n if (this.order.active) {\r\n return;\r\n }\r\n return Object.entries(this.lineQuantities)\r\n .map(([orderLineId, quantity]) => ({\r\n orderLineId,\r\n quantity,\r\n }))\r\n .filter(l => 0 < l.quantity);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport {\r\n configurableDefinitionToInstance,\r\n ConfigurableOperation,\r\n ConfigurableOperationDefinition,\r\n configurableOperationValueIsValid,\r\n DataService,\r\n Dialog,\r\n FulfillOrderInput,\r\n GlobalFlag,\r\n OrderDetail,\r\n OrderDetailFragment,\r\n toConfigurableOperationInput,\r\n} from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-fulfill-order-dialog',\r\n templateUrl: './fulfill-order-dialog.component.html',\r\n styleUrls: ['./fulfill-order-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FulfillOrderDialogComponent implements Dialog<FulfillOrderInput>, OnInit {\r\n resolveWith: (result?: FulfillOrderInput) => void;\r\n fulfillmentHandlerDef: ConfigurableOperationDefinition;\r\n fulfillmentHandler: ConfigurableOperation;\r\n fulfillmentHandlerControl = new FormControl();\r\n fulfillmentQuantities: { [lineId: string]: { fulfillCount: number; max: number } } = {};\r\n\r\n // Provided by modalService.fromComponent() call\r\n order: OrderDetailFragment;\r\n\r\n constructor(private dataService: DataService, private changeDetector: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.dataService.settings.getGlobalSettings().single$.subscribe(({ globalSettings }) => {\r\n this.fulfillmentQuantities = this.order.lines.reduce((result, line) => {\r\n const fulfillCount = this.getFulfillableCount(line, globalSettings.trackInventory);\r\n return {\r\n ...result,\r\n [line.id]: { fulfillCount, max: fulfillCount },\r\n };\r\n }, {});\r\n this.changeDetector.markForCheck();\r\n });\r\n\r\n this.dataService.shippingMethod\r\n .getShippingMethodOperations()\r\n .mapSingle(data => data.fulfillmentHandlers)\r\n .subscribe(handlers => {\r\n this.fulfillmentHandlerDef =\r\n handlers.find(\r\n h => h.code === this.order.shippingLines[0]?.shippingMethod?.fulfillmentHandlerCode,\r\n ) || handlers[0];\r\n this.fulfillmentHandler = configurableDefinitionToInstance(this.fulfillmentHandlerDef);\r\n this.fulfillmentHandlerControl.patchValue(this.fulfillmentHandler);\r\n this.changeDetector.markForCheck();\r\n });\r\n }\r\n\r\n getFulfillableCount(line: OrderDetail.Lines, globalTrackInventory: boolean): number {\r\n const { trackInventory, stockOnHand } = line.productVariant;\r\n const effectiveTracInventory =\r\n trackInventory === GlobalFlag.INHERIT ? globalTrackInventory : trackInventory === GlobalFlag.TRUE;\r\n\r\n const unfulfilledCount = this.getUnfulfilledCount(line);\r\n return effectiveTracInventory ? Math.min(unfulfilledCount, stockOnHand) : unfulfilledCount;\r\n }\r\n\r\n getUnfulfilledCount(line: OrderDetail.Lines): number {\r\n const fulfilled =\r\n line.fulfillments\r\n ?.map(f => f.summary)\r\n .flat()\r\n .filter(row => row.orderLine.id === line.id)\r\n .reduce((sum, row) => sum + row.quantity, 0) ?? 0;\r\n return line.quantity - fulfilled;\r\n }\r\n\r\n canSubmit(): boolean {\r\n const totalCount = Object.values(this.fulfillmentQuantities).reduce(\r\n (total, { fulfillCount }) => total + fulfillCount,\r\n 0,\r\n );\r\n const formIsValid =\r\n configurableOperationValueIsValid(\r\n this.fulfillmentHandlerDef,\r\n this.fulfillmentHandlerControl.value,\r\n ) && this.fulfillmentHandlerControl.valid;\r\n return formIsValid && 0 < totalCount;\r\n }\r\n\r\n select() {\r\n const lines = Object.entries(this.fulfillmentQuantities).map(([orderLineId, { fulfillCount }]) => ({\r\n orderLineId,\r\n quantity: fulfillCount,\r\n }));\r\n this.resolveWith({\r\n lines,\r\n handler: toConfigurableOperationInput(\r\n this.fulfillmentHandler,\r\n this.fulfillmentHandlerControl.value,\r\n ),\r\n });\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Fulfillment, OrderDetail } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-fulfillment-card',\r\n templateUrl: './fulfillment-card.component.html',\r\n styleUrls: ['./fulfillment-card.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FulfillmentCardComponent {\r\n @Input() fulfillment: Fulfillment.Fragment | undefined;\r\n @Input() order: OrderDetail.Fragment;\r\n @Output() transitionState = new EventEmitter<string>();\r\n\r\n nextSuggestedState(): string | undefined {\r\n if (!this.fulfillment) {\r\n return;\r\n }\r\n const { nextStates } = this.fulfillment;\r\n const namedStateOrDefault = (targetState: string) =>\r\n nextStates.includes(targetState) ? targetState : nextStates[0];\r\n switch (this.fulfillment?.state) {\r\n case 'Pending':\r\n return namedStateOrDefault('Shipped');\r\n case 'Shipped':\r\n return namedStateOrDefault('Delivered');\r\n default:\r\n return nextStates.find(s => s !== 'Cancelled');\r\n }\r\n }\r\n\r\n nextOtherStates(): string[] {\r\n if (!this.fulfillment) {\r\n return [];\r\n }\r\n const suggested = this.nextSuggestedState();\r\n return this.fulfillment.nextStates.filter(s => s !== suggested);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { CustomFieldConfig, OrderDetail, ServerConfigService } from '@vendure/admin-ui/core';\r\nimport { isObject } from '@vendure/common/lib/shared-utils';\r\n\r\n@Component({\r\n selector: 'vdr-fulfillment-detail',\r\n templateUrl: './fulfillment-detail.component.html',\r\n styleUrls: ['./fulfillment-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FulfillmentDetailComponent implements OnInit, OnChanges {\r\n @Input() fulfillmentId: string;\r\n @Input() order: OrderDetail.Fragment;\r\n\r\n customFieldConfig: CustomFieldConfig[] = [];\r\n customFieldFormGroup = new FormGroup({});\r\n\r\n constructor(private serverConfigService: ServerConfigService) {}\r\n\r\n ngOnInit() {\r\n this.customFieldConfig = this.serverConfigService.getCustomFieldsFor('Fulfillment');\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.buildCustomFieldsFormGroup();\r\n }\r\n\r\n get fulfillment(): OrderDetail.Fulfillments | undefined | null {\r\n return this.order.fulfillments && this.order.fulfillments.find(f => f.id === this.fulfillmentId);\r\n }\r\n\r\n get items(): Array<{ name: string; quantity: number }> {\r\n return (\r\n this.fulfillment?.summary.map(row => {\r\n return {\r\n name:\r\n this.order.lines.find(line => line.id === row.orderLine.id)?.productVariant.name ??\r\n '',\r\n quantity: row.quantity,\r\n };\r\n }) ?? []\r\n );\r\n }\r\n\r\n buildCustomFieldsFormGroup() {\r\n const customFields = (this.fulfillment as any).customFields;\r\n for (const fieldDef of this.serverConfigService.getCustomFieldsFor('Fulfillment')) {\r\n this.customFieldFormGroup.addControl(fieldDef.name, new FormControl(customFields[fieldDef.name]));\r\n }\r\n }\r\n\r\n customFieldIsObject(customField: unknown) {\r\n return Array.isArray(customField) || isObject(customField);\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-fulfillment-state-label',\r\n templateUrl: './fulfillment-state-label.component.html',\r\n styleUrls: ['./fulfillment-state-label.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FulfillmentStateLabelComponent {\r\n @Input() state: string;\r\n\r\n get chipColorType() {\r\n switch (this.state) {\r\n case 'Pending':\r\n case 'Shipped':\r\n return 'warning';\r\n case 'Delivered':\r\n return 'success';\r\n case 'Cancelled':\r\n return 'error';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { OrderDetail, OrderDetailFragment } from '@vendure/admin-ui/core';\r\nimport { unique } from '@vendure/common/lib/unique';\r\n\r\nexport type FulfillmentStatus = 'full' | 'partial' | 'none';\r\n\r\n@Component({\r\n selector: 'vdr-line-fulfillment',\r\n templateUrl: './line-fulfillment.component.html',\r\n styleUrls: ['./line-fulfillment.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LineFulfillmentComponent implements OnChanges {\r\n @Input() line: OrderDetail.Lines;\r\n @Input() orderState: string;\r\n fulfilledCount = 0;\r\n fulfillmentStatus: FulfillmentStatus;\r\n fulfillments: Array<{\r\n count: number;\r\n fulfillment: NonNullable<OrderDetailFragment['fulfillments']>[number];\r\n }> = [];\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.line) {\r\n this.fulfilledCount = this.getDeliveredCount(this.line);\r\n this.fulfillmentStatus = this.getFulfillmentStatus(this.fulfilledCount, this.line.items.length);\r\n this.fulfillments = this.getFulfillments(this.line);\r\n }\r\n }\r\n\r\n /**\r\n * Returns the number of items in an OrderLine which are fulfilled.\r\n */\r\n private getDeliveredCount(line: OrderDetail.Lines): number {\r\n return (\r\n line.fulfillments?.reduce(\r\n (sum, fulfillment) =>\r\n sum + (fulfillment.summary.find(s => s.orderLine.id === line.id)?.quantity ?? 0),\r\n 0,\r\n ) ?? 0\r\n );\r\n }\r\n\r\n private getFulfillmentStatus(fulfilledCount: number, lineQuantity: number): FulfillmentStatus {\r\n if (fulfilledCount === lineQuantity) {\r\n return 'full';\r\n }\r\n if (0 < fulfilledCount && fulfilledCount < lineQuantity) {\r\n return 'partial';\r\n }\r\n return 'none';\r\n }\r\n\r\n private getFulfillments(\r\n line: OrderDetail.Lines,\r\n ): Array<{ count: number; fulfillment: NonNullable<OrderDetailFragment['fulfillments']>[number] }> {\r\n return (\r\n line.fulfillments?.map(fulfillment => {\r\n const summaryLine = fulfillment.summary.find(s => s.orderLine.id === line.id);\r\n return {\r\n count: summaryLine?.quantity ?? 0,\r\n fulfillment,\r\n };\r\n }) ?? []\r\n );\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\nimport { OrderDetail } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-line-refunds',\r\n templateUrl: './line-refunds.component.html',\r\n styleUrls: ['./line-refunds.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LineRefundsComponent {\r\n @Input() line: OrderDetail.Lines;\r\n @Input() payments: OrderDetail.Payments[];\r\n\r\n getRefundedCount(): number {\r\n const refunds =\r\n this.payments?.reduce(\r\n (all, payment) => [...all, ...payment.refunds],\r\n [] as OrderDetail.Refunds[],\r\n ) ?? [];\r\n return this.line.items.filter(i => {\r\n if (i.refundId === null && !i.cancelled) {\r\n return false;\r\n }\r\n if (i.refundId) {\r\n const refund = refunds.find(r => r.id === i.refundId);\r\n if (refund?.state === 'Failed') {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }).length;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnChanges, OnInit } from '@angular/core';\r\nimport { OrderDetail, OrderDetailFragment } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-modification-detail',\r\n templateUrl: './modification-detail.component.html',\r\n styleUrls: ['./modification-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ModificationDetailComponent implements OnChanges {\r\n @Input() order: OrderDetailFragment;\r\n @Input() modification: OrderDetail.Modifications;\r\n private addedItems = new Map<OrderDetail.Lines, number>();\r\n private removedItems = new Map<OrderDetail.Lines, number>();\r\n\r\n ngOnChanges(): void {\r\n const { added, removed } = this.getModifiedLines();\r\n this.addedItems = added;\r\n this.removedItems = removed;\r\n }\r\n\r\n getSurcharge(id: string) {\r\n return this.order.surcharges.find(m => m.id === id);\r\n }\r\n\r\n getAddedItems() {\r\n return [...this.addedItems.entries()].map(([line, count]) => {\r\n return { name: line.productVariant.name, quantity: count };\r\n });\r\n }\r\n\r\n getRemovedItems() {\r\n return [...this.removedItems.entries()].map(([line, count]) => {\r\n return { name: line.productVariant.name, quantity: count };\r\n });\r\n }\r\n\r\n private getModifiedLines() {\r\n const added = new Map<OrderDetail.Lines, number>();\r\n const removed = new Map<OrderDetail.Lines, number>();\r\n for (const _item of this.modification.orderItems || []) {\r\n const result = this.getOrderLineAndItem(_item.id);\r\n if (result) {\r\n const { line, item } = result;\r\n if (item.cancelled) {\r\n const count = removed.get(line) ?? 0;\r\n removed.set(line, count + 1);\r\n } else {\r\n const count = added.get(line) ?? 0;\r\n added.set(line, count + 1);\r\n }\r\n }\r\n }\r\n return { added, removed };\r\n }\r\n\r\n private getOrderLineAndItem(itemId: string) {\r\n for (const line of this.order.lines) {\r\n const item = line.items.find(i => i.id === itemId);\r\n if (item) {\r\n return { line, item };\r\n }\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport { CustomFieldConfig, ModalService } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-order-custom-fields-card',\r\n templateUrl: './order-custom-fields-card.component.html',\r\n styleUrls: ['./order-custom-fields-card.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderCustomFieldsCardComponent implements OnInit {\r\n @Input() customFieldsConfig: CustomFieldConfig[] = [];\r\n @Input() customFieldValues: { [name: string]: any } = {};\r\n @Output() updateClick = new EventEmitter<any>();\r\n customFieldForm: FormGroup;\r\n editable = false;\r\n constructor(private formBuilder: FormBuilder, private modalService: ModalService) {}\r\n\r\n ngOnInit() {\r\n this.customFieldForm = this.formBuilder.group({});\r\n for (const field of this.customFieldsConfig) {\r\n this.customFieldForm.addControl(\r\n field.name,\r\n this.formBuilder.control(this.customFieldValues[field.name]),\r\n );\r\n }\r\n }\r\n\r\n onUpdateClick() {\r\n this.updateClick.emit(this.customFieldForm.value);\r\n this.customFieldForm.markAsPristine();\r\n this.editable = false;\r\n }\r\n\r\n onCancelClick() {\r\n if (this.customFieldForm.dirty) {\r\n this.modalService\r\n .dialog({\r\n title: _('catalog.confirm-cancel'),\r\n buttons: [\r\n { type: 'secondary', label: _('common.keep-editing') },\r\n { type: 'danger', label: _('common.discard-changes'), returnValue: true },\r\n ],\r\n })\r\n .subscribe(result => {\r\n if (result) {\r\n this.customFieldForm.reset();\r\n this.customFieldForm.markAsPristine();\r\n this.editable = false;\r\n }\r\n });\r\n } else {\r\n this.editable = false;\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { Dialog } from '@vendure/admin-ui/core';\n\n@Component({\n selector: 'vdr-order-state-select-dialog',\n templateUrl: './order-state-select-dialog.component.html',\n styleUrls: ['./order-state-select-dialog.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class OrderStateSelectDialogComponent implements Dialog<string> {\n resolveWith: (result?: string) => void;\n nextStates: string[] = [];\n message = '';\n cancellable: boolean;\n selectedState = '';\n\n select() {\n if (this.selectedState) {\n this.resolveWith(this.selectedState);\n }\n }\n\n cancel() {\n this.resolveWith();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\nimport {\n DataService,\n HistoryEntryType,\n I18nService,\n ModalService,\n NotificationService,\n SortOrder,\n} from '@vendure/admin-ui/core';\nimport { EMPTY } from 'rxjs';\nimport { catchError, delay, map, retryWhen, switchMap, take } from 'rxjs/operators';\n\nimport { OrderStateSelectDialogComponent } from '../components/order-state-select-dialog/order-state-select-dialog.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class OrderTransitionService {\n constructor(\n private dataService: DataService,\n private modalService: ModalService,\n private notificationService: NotificationService,\n private i18nService: I18nService,\n ) {}\n\n /**\n * Attempts to transition the Order to the last state it was in before it was transitioned\n * to the \"Modifying\" state. If this fails, a manual prompt is used.\n */\n transitionToPreModifyingState(orderId: string, nextStates: string[]) {\n return this.getPreModifyingState(orderId).pipe(\n switchMap(state => {\n const manualTransitionOptions = {\n orderId,\n nextStates,\n message: this.i18nService.translate(\n _('order.unable-to-transition-to-state-try-another'),\n { state },\n ),\n cancellable: false,\n retry: 10,\n };\n if (state) {\n return this.transitionToStateOrThrow(orderId, state).pipe(\n catchError(err => this.manuallyTransitionToState(manualTransitionOptions)),\n );\n } else {\n return this.manuallyTransitionToState(manualTransitionOptions);\n }\n }),\n );\n }\n\n /**\n * Displays a modal for manually selecting the next state.\n */\n manuallyTransitionToState(options: {\n orderId: string;\n nextStates: string[];\n message: string;\n cancellable: boolean;\n retry: number;\n }) {\n return this.modalService\n .fromComponent(OrderStateSelectDialogComponent, {\n locals: {\n nextStates: options.nextStates,\n cancellable: options.cancellable,\n message: options.message,\n },\n closable: false,\n size: 'md',\n })\n .pipe(\n switchMap(result => {\n if (result) {\n return this.transitionToStateOrThrow(options.orderId, result);\n } else {\n if (!options.cancellable) {\n throw new Error(`An order state must be selected`);\n } else {\n return EMPTY;\n }\n }\n }),\n retryWhen(errors => errors.pipe(delay(2000), take(options.retry))),\n );\n }\n\n /**\n * Attempts to get the last state the Order was in before it was transitioned\n * to the \"Modifying\" state.\n */\n private getPreModifyingState(orderId: string) {\n return this.dataService.order\n .getOrderHistory(orderId, {\n filter: {\n type: {\n eq: HistoryEntryType.ORDER_STATE_TRANSITION,\n },\n },\n sort: {\n createdAt: SortOrder.DESC,\n },\n })\n .mapSingle(result => result.order)\n .pipe(\n map(result => {\n const item = result?.history.items.find(i => i.data.to === 'Modifying');\n if (item) {\n return item.data.from as string;\n } else {\n return;\n }\n }),\n );\n }\n\n private transitionToStateOrThrow(orderId: string, state: string) {\n return this.dataService.order.transitionToState(orderId, state).pipe(\n map(({ transitionOrderToState }) => {\n switch (transitionOrderToState?.__typename) {\n case 'Order':\n return transitionOrderToState?.state;\n case 'OrderStateTransitionError':\n this.notificationService.error(transitionOrderToState?.transitionError);\n throw new Error(transitionOrderToState?.transitionError);\n }\n }),\n );\n }\n}\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport {\r\n CancelOrderInput,\r\n DataService,\r\n Dialog,\r\n OrderProcessState,\r\n ServerConfigService,\r\n} from '@vendure/admin-ui/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'vdr-order-process-graph-dialog',\r\n templateUrl: './order-process-graph-dialog.component.html',\r\n styleUrls: ['./order-process-graph-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderProcessGraphDialogComponent implements OnInit, Dialog<void> {\r\n activeState: string;\r\n states: OrderProcessState[] = [];\r\n constructor(private serverConfigService: ServerConfigService) {}\r\n\r\n ngOnInit(): void {\r\n this.states = this.serverConfigService.getOrderProcessStates();\r\n }\r\n\r\n resolveWith: (result: void | undefined) => void;\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n CancelOrderInput,\r\n Dialog,\r\n getAppConfig,\r\n I18nService,\r\n OrderDetail,\r\n OrderDetailFragment,\r\n OrderLineInput,\r\n RefundOrderInput,\r\n} from '@vendure/admin-ui/core';\r\nimport { summate } from '@vendure/common/lib/shared-utils';\r\n\r\ntype SelectionLine = { quantity: number; refund: boolean; cancel: boolean };\r\n\r\n@Component({\r\n selector: 'vdr-refund-order-dialog',\r\n templateUrl: './refund-order-dialog.component.html',\r\n styleUrls: ['./refund-order-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RefundOrderDialogComponent\r\n implements OnInit, Dialog<{ cancel: CancelOrderInput; refund: RefundOrderInput }>\r\n{\r\n order: OrderDetailFragment;\r\n resolveWith: (result?: { cancel: CancelOrderInput; refund: RefundOrderInput }) => void;\r\n reason: string;\r\n settledPayments: OrderDetail.Payments[];\r\n selectedPayment: OrderDetail.Payments;\r\n lineQuantities: { [lineId: string]: SelectionLine } = {};\r\n refundShipping = false;\r\n adjustment = 0;\r\n reasons = getAppConfig().cancellationReasons ?? [\r\n _('order.refund-reason-customer-request'),\r\n _('order.refund-reason-not-available'),\r\n ];\r\n\r\n constructor(private i18nService: I18nService) {\r\n this.reasons = this.reasons.map(r => this.i18nService.translate(r));\r\n }\r\n\r\n get refundTotal(): number {\r\n const itemTotal = this.order.lines.reduce((total, line) => {\r\n const lineRef = this.lineQuantities[line.id];\r\n const refundCount = (lineRef.refund && lineRef.quantity) || 0;\r\n return total + line.proratedUnitPriceWithTax * refundCount;\r\n }, 0);\r\n return itemTotal + (this.refundShipping ? this.order.shippingWithTax : 0) + this.adjustment;\r\n }\r\n\r\n get settledPaymentsTotal(): number {\r\n return this.settledPayments\r\n .map(payment => {\r\n const paymentTotal = payment.amount;\r\n const alreadyRefundedTotal = summate(\r\n payment.refunds.filter(r => r.state !== 'Failed') as Array<Required<OrderDetail.Refunds>>,\r\n 'total',\r\n );\r\n return paymentTotal - alreadyRefundedTotal;\r\n })\r\n .reduce((sum, amount) => sum + amount, 0);\r\n }\r\n\r\n lineCanBeRefundedOrCancelled(line: OrderDetail.Lines): boolean {\r\n const refunds =\r\n this.order.payments?.reduce(\r\n (all, payment) => [...all, ...payment.refunds],\r\n [] as OrderDetail.Refunds[],\r\n ) ?? [];\r\n\r\n const refundable = line.items.filter(i => {\r\n if (i.cancelled) {\r\n return false;\r\n }\r\n if (i.refundId == null) {\r\n return true;\r\n }\r\n const refund = refunds.find(r => r.id === i.refundId);\r\n return refund?.state === 'Failed';\r\n });\r\n return 0 < refundable.length;\r\n }\r\n\r\n ngOnInit() {\r\n this.lineQuantities = this.order.lines.reduce((result, line) => {\r\n return {\r\n ...result,\r\n [line.id]: {\r\n quantity: 0,\r\n refund: false,\r\n cancel: false,\r\n },\r\n };\r\n }, {});\r\n this.settledPayments = (this.order.payments || []).filter(p => p.state === 'Settled');\r\n if (this.settledPayments.length) {\r\n this.selectedPayment = this.settledPayments[0];\r\n }\r\n }\r\n\r\n handleZeroQuantity(line?: SelectionLine) {\r\n if (line?.quantity === 0) {\r\n line.cancel = false;\r\n line.refund = false;\r\n }\r\n }\r\n\r\n isRefunding(): boolean {\r\n const result = Object.values(this.lineQuantities).reduce((isRefunding, line) => {\r\n return isRefunding || (0 < line.quantity && line.refund);\r\n }, false);\r\n return result;\r\n }\r\n\r\n isCancelling(): boolean {\r\n const result = Object.values(this.lineQuantities).reduce((isCancelling, line) => {\r\n return isCancelling || (0 < line.quantity && line.cancel);\r\n }, false);\r\n return result;\r\n }\r\n\r\n canSubmit(): boolean {\r\n if (this.isRefunding()) {\r\n return !!(\r\n this.selectedPayment &&\r\n this.reason &&\r\n 0 < this.refundTotal &&\r\n this.refundTotal <= this.settledPaymentsTotal\r\n );\r\n } else if (this.isCancelling()) {\r\n return !!this.reason;\r\n }\r\n return false;\r\n }\r\n\r\n select() {\r\n const payment = this.selectedPayment;\r\n if (payment) {\r\n const refundLines = this.getOrderLineInput(line => line.refund);\r\n const cancelLines = this.getOrderLineInput(line => line.cancel);\r\n\r\n this.resolveWith({\r\n refund: {\r\n lines: refundLines,\r\n reason: this.reason,\r\n shipping: this.refundShipping ? this.order.shippingWithTax : 0,\r\n adjustment: this.adjustment,\r\n paymentId: payment.id,\r\n },\r\n cancel: {\r\n lines: cancelLines,\r\n orderId: this.order.id,\r\n reason: this.reason,\r\n cancelShipping: this.refundShipping,\r\n },\r\n });\r\n }\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n\r\n private getOrderLineInput(filterFn: (line: SelectionLine) => boolean): OrderLineInput[] {\r\n return Object.entries(this.lineQuantities)\r\n .filter(([orderLineId, line]) => 0 < line.quantity && filterFn(line))\r\n .map(([orderLineId, line]) => ({\r\n orderLineId,\r\n quantity: line.quantity,\r\n }));\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\r\n\r\nimport { OrderDetail } from '@vendure/admin-ui/core';\r\nimport { Dialog } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-settle-refund-dialog',\r\n templateUrl: './settle-refund-dialog.component.html',\r\n styleUrls: ['./settle-refund-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SettleRefundDialogComponent implements Dialog<string> {\r\n resolveWith: (result?: string) => void;\r\n transactionId = '';\r\n refund: OrderDetail.Refunds;\r\n\r\n submit() {\r\n this.resolveWith(this.transactionId);\r\n }\r\n\r\n cancel() {\r\n this.resolveWith();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n BaseDetailComponent,\r\n CancelOrder,\r\n CustomFieldConfig,\r\n DataService,\r\n EditNoteDialogComponent,\r\n FulfillmentFragment,\r\n FulfillmentLineSummary,\r\n GetOrderHistory,\r\n GetOrderQuery,\r\n HistoryEntry,\r\n HistoryEntryType,\r\n ModalService,\r\n NotificationService,\r\n Order,\r\n OrderDetail,\r\n OrderDetailFragment,\r\n OrderLineFragment,\r\n Refund,\r\n RefundOrder,\r\n ServerConfigService,\r\n SortOrder,\r\n} from '@vendure/admin-ui/core';\r\nimport { pick } from '@vendure/common/lib/pick';\r\nimport { assertNever, summate } from '@vendure/common/lib/shared-utils';\r\nimport { EMPTY, merge, Observable, of, Subject } from 'rxjs';\r\nimport { map, mapTo, startWith, switchMap, take } from 'rxjs/operators';\r\n\r\nimport { OrderTransitionService } from '../../providers/order-transition.service';\r\nimport { AddManualPaymentDialogComponent } from '../add-manual-payment-dialog/add-manual-payment-dialog.component';\r\nimport { CancelOrderDialogComponent } from '../cancel-order-dialog/cancel-order-dialog.component';\r\nimport { FulfillOrderDialogComponent } from '../fulfill-order-dialog/fulfill-order-dialog.component';\r\nimport { OrderProcessGraphDialogComponent } from '../order-process-graph-dialog/order-process-graph-dialog.component';\r\nimport { RefundOrderDialogComponent } from '../refund-order-dialog/refund-order-dialog.component';\r\nimport { SettleRefundDialogComponent } from '../settle-refund-dialog/settle-refund-dialog.component';\r\n\r\n@Component({\r\n selector: 'vdr-order-detail',\r\n templateUrl: './order-detail.component.html',\r\n styleUrls: ['./order-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderDetailComponent\r\n extends BaseDetailComponent<OrderDetail.Fragment>\r\n implements OnInit, OnDestroy\r\n{\r\n detailForm = new FormGroup({});\r\n history$: Observable<GetOrderHistory.Items[] | undefined>;\r\n nextStates$: Observable<string[]>;\r\n fetchHistory = new Subject<void>();\r\n customFields: CustomFieldConfig[];\r\n orderLineCustomFields: CustomFieldConfig[];\r\n private readonly defaultStates = [\r\n 'AddingItems',\r\n 'ArrangingPayment',\r\n 'PaymentAuthorized',\r\n 'PaymentSettled',\r\n 'PartiallyShipped',\r\n 'Shipped',\r\n 'PartiallyDelivered',\r\n 'Delivered',\r\n 'Cancelled',\r\n 'Modifying',\r\n 'ArrangingAdditionalPayment',\r\n ];\r\n\r\n constructor(\r\n router: Router,\r\n route: ActivatedRoute,\r\n serverConfigService: ServerConfigService,\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private notificationService: NotificationService,\r\n private modalService: ModalService,\r\n private orderTransitionService: OrderTransitionService,\r\n ) {\r\n super(route, router, serverConfigService, dataService);\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.entity$.pipe(take(1)).subscribe(order => {\r\n if (order.state === 'Modifying') {\r\n this.router.navigate(['./', 'modify'], { relativeTo: this.route });\r\n }\r\n });\r\n this.customFields = this.getCustomFieldConfig('Order');\r\n this.orderLineCustomFields = this.getCustomFieldConfig('OrderLine');\r\n this.history$ = this.fetchHistory.pipe(\r\n startWith(null),\r\n switchMap(() => {\r\n return this.dataService.order\r\n .getOrderHistory(this.id, {\r\n sort: {\r\n createdAt: SortOrder.DESC,\r\n },\r\n })\r\n .mapStream(data => data.order?.history.items);\r\n }),\r\n );\r\n this.nextStates$ = this.entity$.pipe(\r\n map(order => {\r\n const isInCustomState = !this.defaultStates.includes(order.state);\r\n return isInCustomState\r\n ? order.nextStates\r\n : order.nextStates.filter(s => !this.defaultStates.includes(s));\r\n }),\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n this.destroy();\r\n }\r\n\r\n openStateDiagram() {\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n switchMap(order =>\r\n this.modalService.fromComponent(OrderProcessGraphDialogComponent, {\r\n closable: true,\r\n locals: {\r\n activeState: order.state,\r\n },\r\n }),\r\n ),\r\n )\r\n .subscribe();\r\n }\r\n\r\n transitionToState(state: string) {\r\n this.dataService.order.transitionToState(this.id, state).subscribe(({ transitionOrderToState }) => {\r\n switch (transitionOrderToState?.__typename) {\r\n case 'Order':\r\n this.notificationService.success(_('order.transitioned-to-state-success'), { state });\r\n this.fetchHistory.next();\r\n break;\r\n case 'OrderStateTransitionError':\r\n this.notificationService.error(transitionOrderToState.transitionError);\r\n }\r\n });\r\n }\r\n\r\n manuallyTransitionToState(order: OrderDetailFragment) {\r\n this.orderTransitionService\r\n .manuallyTransitionToState({\r\n orderId: order.id,\r\n nextStates: order.nextStates,\r\n cancellable: true,\r\n message: _('order.manually-transition-to-state-message'),\r\n retry: 0,\r\n })\r\n .subscribe();\r\n }\r\n\r\n transitionToModifying() {\r\n this.dataService.order\r\n .transitionToState(this.id, 'Modifying')\r\n .subscribe(({ transitionOrderToState }) => {\r\n switch (transitionOrderToState?.__typename) {\r\n case 'Order':\r\n this.router.navigate(['./modify'], { relativeTo: this.route });\r\n break;\r\n case 'OrderStateTransitionError':\r\n this.notificationService.error(transitionOrderToState.transitionError);\r\n }\r\n });\r\n }\r\n\r\n updateCustomFields(customFieldsValue: any) {\r\n this.dataService.order\r\n .updateOrderCustomFields({\r\n id: this.id,\r\n customFields: customFieldsValue,\r\n })\r\n .subscribe(() => {\r\n this.notificationService.success(_('common.notify-update-success'), { entity: 'Order' });\r\n });\r\n }\r\n\r\n getOrderAddressLines(orderAddress?: { [key: string]: string }): string[] {\r\n if (!orderAddress) {\r\n return [];\r\n }\r\n return Object.values(orderAddress)\r\n .filter(val => val !== 'OrderAddress')\r\n .filter(line => !!line);\r\n }\r\n\r\n settlePayment(payment: OrderDetail.Payments) {\r\n this.dataService.order.settlePayment(payment.id).subscribe(({ settlePayment }) => {\r\n switch (settlePayment.__typename) {\r\n case 'Payment':\r\n if (settlePayment.state === 'Settled') {\r\n this.notificationService.success(_('order.settle-payment-success'));\r\n } else {\r\n this.notificationService.error(_('order.settle-payment-error'));\r\n }\r\n this.dataService.order.getOrder(this.id).single$.subscribe();\r\n this.fetchHistory.next();\r\n break;\r\n case 'OrderStateTransitionError':\r\n case 'PaymentStateTransitionError':\r\n case 'SettlePaymentError':\r\n this.notificationService.error(settlePayment.message);\r\n }\r\n });\r\n }\r\n\r\n transitionPaymentState({ payment, state }: { payment: OrderDetail.Payments; state: string }) {\r\n if (state === 'Cancelled') {\r\n this.dataService.order.cancelPayment(payment.id).subscribe(({ cancelPayment }) => {\r\n switch (cancelPayment.__typename) {\r\n case 'Payment':\r\n this.notificationService.success(_('order.transitioned-payment-to-state-success'), {\r\n state,\r\n });\r\n this.dataService.order.getOrder(this.id).single$.subscribe();\r\n this.fetchHistory.next();\r\n break;\r\n case 'PaymentStateTransitionError':\r\n this.notificationService.error(cancelPayment.transitionError);\r\n break;\r\n case 'CancelPaymentError':\r\n this.notificationService.error(cancelPayment.paymentErrorMessage);\r\n break;\r\n }\r\n });\r\n } else {\r\n this.dataService.order\r\n .transitionPaymentToState(payment.id, state)\r\n .subscribe(({ transitionPaymentToState }) => {\r\n switch (transitionPaymentToState.__typename) {\r\n case 'Payment':\r\n this.notificationService.success(\r\n _('order.transitioned-payment-to-state-success'),\r\n {\r\n state,\r\n },\r\n );\r\n this.dataService.order.getOrder(this.id).single$.subscribe();\r\n this.fetchHistory.next();\r\n break;\r\n case 'PaymentStateTransitionError':\r\n this.notificationService.error(transitionPaymentToState.message);\r\n break;\r\n }\r\n });\r\n }\r\n }\r\n\r\n canAddFulfillment(order: OrderDetail.Fragment): boolean {\r\n const allFulfillmentSummaryRows: FulfillmentFragment['summary'] = (order.fulfillments ?? []).reduce(\r\n (all, fulfillment) => [...all, ...fulfillment.summary],\r\n [] as FulfillmentFragment['summary'],\r\n );\r\n let allItemsFulfilled = true;\r\n for (const line of order.lines) {\r\n const totalFulfilledCount = allFulfillmentSummaryRows\r\n .filter(row => row.orderLine.id === line.id)\r\n .reduce((sum, row) => sum + row.quantity, 0);\r\n if (totalFulfilledCount < line.quantity) {\r\n allItemsFulfilled = false;\r\n }\r\n }\r\n return (\r\n !allItemsFulfilled &&\r\n !this.hasUnsettledModifications(order) &&\r\n this.outstandingPaymentAmount(order) === 0 &&\r\n (order.nextStates.includes('Shipped') ||\r\n order.nextStates.includes('PartiallyShipped') ||\r\n order.nextStates.includes('Delivered'))\r\n );\r\n }\r\n\r\n hasUnsettledModifications(order: OrderDetailFragment): boolean {\r\n return 0 < order.modifications.filter(m => !m.isSettled).length;\r\n }\r\n\r\n getOutstandingModificationAmount(order: OrderDetailFragment): number {\r\n return summate(\r\n order.modifications.filter(m => !m.isSettled),\r\n 'priceChange',\r\n );\r\n }\r\n\r\n outstandingPaymentAmount(order: OrderDetailFragment): number {\r\n const paymentIsValid = (p: OrderDetail.Payments): boolean =>\r\n p.state !== 'Cancelled' && p.state !== 'Declined' && p.state !== 'Error';\r\n\r\n let amountCovered = 0;\r\n for (const payment of order.payments?.filter(paymentIsValid) ?? []) {\r\n const refunds = payment.refunds.filter(r => r.state !== 'Failed') ?? [];\r\n const refundsTotal = summate(refunds as Array<Required<Refund>>, 'total');\r\n amountCovered += payment.amount - refundsTotal;\r\n }\r\n return order.totalWithTax - amountCovered;\r\n }\r\n\r\n addManualPayment(order: OrderDetailFragment) {\r\n const priorState = order.state;\r\n this.modalService\r\n .fromComponent(AddManualPaymentDialogComponent, {\r\n closable: true,\r\n locals: {\r\n outstandingAmount: this.outstandingPaymentAmount(order),\r\n currencyCode: order.currencyCode,\r\n },\r\n })\r\n .pipe(\r\n switchMap(result => {\r\n if (result) {\r\n return this.dataService.order.addManualPaymentToOrder({\r\n orderId: this.id,\r\n transactionId: result.transactionId,\r\n method: result.method,\r\n metadata: result.metadata || {},\r\n });\r\n } else {\r\n return EMPTY;\r\n }\r\n }),\r\n switchMap(({ addManualPaymentToOrder }) => {\r\n switch (addManualPaymentToOrder.__typename) {\r\n case 'Order':\r\n this.notificationService.success(_('order.add-payment-to-order-success'));\r\n if (priorState === 'ArrangingAdditionalPayment') {\r\n return this.orderTransitionService.transitionToPreModifyingState(\r\n order.id,\r\n order.nextStates,\r\n );\r\n } else {\r\n return this.dataService.order\r\n .transitionToState(this.id, 'PaymentSettled')\r\n .pipe(mapTo('PaymentSettled'));\r\n }\r\n case 'ManualPaymentStateError':\r\n this.notificationService.error(addManualPaymentToOrder.message);\r\n return EMPTY;\r\n default:\r\n return EMPTY;\r\n }\r\n }),\r\n )\r\n .subscribe(result => {\r\n if (result) {\r\n this.refetchOrder({ result });\r\n }\r\n });\r\n }\r\n\r\n fulfillOrder() {\r\n this.entity$\r\n .pipe(\r\n take(1),\r\n switchMap(order => {\r\n return this.modalService.fromComponent(FulfillOrderDialogComponent, {\r\n size: 'xl',\r\n locals: {\r\n order,\r\n },\r\n });\r\n }),\r\n switchMap(input => {\r\n if (input) {\r\n return this.dataService.order.createFulfillment(input);\r\n } else {\r\n return of(undefined);\r\n }\r\n }),\r\n switchMap(result => this.refetchOrder(result).pipe(mapTo(result))),\r\n )\r\n .subscribe(result => {\r\n if (result) {\r\n const { addFulfillmentToOrder } = result;\r\n switch (addFulfillmentToOrder.__typename) {\r\n case 'Fulfillment':\r\n this.notificationService.success(_('order.create-fulfillment-success'));\r\n break;\r\n case 'EmptyOrderLineSelectionError':\r\n case 'InsufficientStockOnHandError':\r\n case 'ItemsAlreadyFulfilledError':\r\n case 'InvalidFulfillmentHandlerError':\r\n this.notificationService.error(addFulfillmentToOrder.message);\r\n break;\r\n case 'FulfillmentStateTransitionError':\r\n this.notificationService.error(addFulfillmentToOrder.transitionError);\r\n break;\r\n case 'CreateFulfillmentError':\r\n this.notificationService.error(addFulfillmentToOrder.fulfillmentHandlerError);\r\n break;\r\n case undefined:\r\n this.notificationService.error(JSON.stringify(addFulfillmentToOrder));\r\n break;\r\n default:\r\n assertNever(addFulfillmentToOrder);\r\n }\r\n }\r\n });\r\n }\r\n\r\n transitionFulfillment(id: string, state: string) {\r\n this.dataService.order\r\n .transitionFulfillmentToState(id, state)\r\n .pipe(switchMap(result => this.refetchOrder(result)))\r\n .subscribe(() => {\r\n this.notificationService.success(_('order.successfully-updated-fulfillment'));\r\n });\r\n }\r\n\r\n cancelOrRefund(order: OrderDetail.Fragment) {\r\n const isRefundable = this.orderHasSettledPayments(order);\r\n if (order.state === 'PaymentAuthorized' || order.active === true || !isRefundable) {\r\n this.cancelOrder(order);\r\n } else {\r\n this.refundOrder(order);\r\n }\r\n }\r\n\r\n settleRefund(refund: OrderDetail.Refunds) {\r\n this.modalService\r\n .fromComponent(SettleRefundDialogComponent, {\r\n size: 'md',\r\n locals: {\r\n refund,\r\n },\r\n })\r\n .pipe(\r\n switchMap(transactionId => {\r\n if (transactionId) {\r\n return this.dataService.order.settleRefund(\r\n {\r\n transactionId,\r\n id: refund.id,\r\n },\r\n this.id,\r\n );\r\n } else {\r\n return of(undefined);\r\n }\r\n }),\r\n // switchMap(result => this.refetchOrder(result)),\r\n )\r\n .subscribe(result => {\r\n if (result) {\r\n this.notificationService.success(_('order.settle-refund-success'));\r\n }\r\n });\r\n }\r\n\r\n addNote(event: { note: string; isPublic: boolean }) {\r\n const { note, isPublic } = event;\r\n this.dataService.order\r\n .addNoteToOrder({\r\n id: this.id,\r\n note,\r\n isPublic,\r\n })\r\n .pipe(switchMap(result => this.refetchOrder(result)))\r\n .subscribe(result => {\r\n this.notificationService.success(_('common.notify-create-success'), {\r\n entity: 'Note',\r\n });\r\n });\r\n }\r\n\r\n updateNote(entry: HistoryEntry) {\r\n this.modalService\r\n .fromComponent(EditNoteDialogComponent, {\r\n closable: true,\r\n locals: {\r\n displayPrivacyControls: true,\r\n note: entry.data.note,\r\n noteIsPrivate: !entry.isPublic,\r\n },\r\n })\r\n .pipe(\r\n switchMap(result => {\r\n if (result) {\r\n return this.dataService.order.updateOrderNote({\r\n noteId: entry.id,\r\n isPublic: !result.isPrivate,\r\n note: result.note,\r\n });\r\n } else {\r\n return EMPTY;\r\n }\r\n }),\r\n )\r\n .subscribe(result => {\r\n this.fetchHistory.next();\r\n this.notificationService.success(_('common.notify-update-success'), {\r\n entity: 'Note',\r\n });\r\n });\r\n }\r\n\r\n deleteNote(entry: HistoryEntry) {\r\n return this.modalService\r\n .dialog({\r\n title: _('common.confirm-delete-note'),\r\n body: entry.data.note,\r\n buttons: [\r\n { type: 'secondary', label: _('common.cancel') },\r\n { type: 'danger', label: _('common.delete'), returnValue: true },\r\n ],\r\n })\r\n .pipe(switchMap(res => (res ? this.dataService.order.deleteOrderNote(entry.id) : EMPTY)))\r\n .subscribe(() => {\r\n this.fetchHistory.next();\r\n this.notificationService.success(_('common.notify-delete-success'), {\r\n entity: 'Note',\r\n });\r\n });\r\n }\r\n\r\n orderHasSettledPayments(order: OrderDetail.Fragment): boolean {\r\n return !!order.payments?.find(p => p.state === 'Settled');\r\n }\r\n\r\n private cancelOrder(order: OrderDetail.Fragment) {\r\n this.modalService\r\n .fromComponent(CancelOrderDialogComponent, {\r\n size: 'xl',\r\n locals: {\r\n order,\r\n },\r\n })\r\n .pipe(\r\n switchMap(input => {\r\n if (input) {\r\n return this.dataService.order.cancelOrder(input);\r\n } else {\r\n return of(undefined);\r\n }\r\n }),\r\n switchMap(result => this.refetchOrder(result)),\r\n )\r\n .subscribe(result => {\r\n if (result) {\r\n this.notificationService.success(_('order.cancelled-order-success'));\r\n }\r\n });\r\n }\r\n\r\n private refundOrder(order: OrderDetail.Fragment) {\r\n this.modalService\r\n .fromComponent(RefundOrderDialogComponent, {\r\n size: 'xl',\r\n locals: {\r\n order,\r\n },\r\n })\r\n .pipe(\r\n switchMap(input => {\r\n if (!input) {\r\n return of(undefined);\r\n }\r\n\r\n if (input.cancel.lines?.length) {\r\n return this.dataService.order.cancelOrder(input.cancel).pipe(\r\n map(res => {\r\n const result = res.cancelOrder;\r\n switch (result.__typename) {\r\n case 'Order':\r\n this.refetchOrder(result).subscribe();\r\n this.notificationService.success(_('order.cancelled-order-success'));\r\n return input;\r\n case 'CancelActiveOrderError':\r\n case 'QuantityTooGreatError':\r\n case 'MultipleOrderError':\r\n case 'OrderStateTransitionError':\r\n case 'EmptyOrderLineSelectionError':\r\n this.notificationService.error(result.message);\r\n return undefined;\r\n }\r\n }),\r\n );\r\n } else {\r\n return [input];\r\n }\r\n }),\r\n switchMap(input => {\r\n if (!input) {\r\n return of(undefined);\r\n }\r\n if (input.refund.lines.length) {\r\n return this.dataService.order\r\n .refundOrder(input.refund)\r\n .pipe(map(res => res.refundOrder));\r\n } else {\r\n return [undefined];\r\n }\r\n }),\r\n )\r\n .subscribe(result => {\r\n if (result) {\r\n switch (result.__typename) {\r\n case 'Refund':\r\n this.refetchOrder(result).subscribe();\r\n if (result.state === 'Failed') {\r\n this.notificationService.error(_('order.refund-order-failed'));\r\n } else {\r\n this.notificationService.success(_('order.refund-order-success'));\r\n }\r\n break;\r\n case 'AlreadyRefundedError':\r\n case 'NothingToRefundError':\r\n case 'PaymentOrderMismatchError':\r\n case 'RefundOrderStateError':\r\n case 'RefundStateTransitionError':\r\n this.notificationService.error(result.message);\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n private refetchOrder(result: object | undefined): Observable<GetOrderQuery | undefined> {\r\n this.fetchHistory.next();\r\n if (result) {\r\n return this.dataService.order.getOrder(this.id).single$;\r\n } else {\r\n return of(undefined);\r\n }\r\n }\r\n\r\n protected setFormValues(entity: Order.Fragment): void {\r\n // empty\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { CustomFieldConfig, Dialog, ModifyOrderInput, OrderDetail } from '@vendure/admin-ui/core';\r\n\r\nexport enum OrderEditResultType {\r\n Refund,\r\n Payment,\r\n PriceUnchanged,\r\n Cancel,\r\n}\r\n\r\ninterface OrderEditsRefundResult {\r\n result: OrderEditResultType.Refund;\r\n refundPaymentId: string;\r\n refundNote?: string;\r\n}\r\ninterface OrderEditsPaymentResult {\r\n result: OrderEditResultType.Payment;\r\n}\r\ninterface OrderEditsPriceUnchangedResult {\r\n result: OrderEditResultType.PriceUnchanged;\r\n}\r\ninterface OrderEditsCancelResult {\r\n result: OrderEditResultType.Cancel;\r\n}\r\ntype OrderEditResult =\r\n | OrderEditsRefundResult\r\n | OrderEditsPaymentResult\r\n | OrderEditsPriceUnchangedResult\r\n | OrderEditsCancelResult;\r\n\r\n@Component({\r\n selector: 'vdr-order-edits-preview-dialog',\r\n templateUrl: './order-edits-preview-dialog.component.html',\r\n styleUrls: ['./order-edits-preview-dialog.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderEditsPreviewDialogComponent implements OnInit, Dialog<OrderEditResult> {\r\n // Passed in via the modalService\r\n order: OrderDetail.Fragment;\r\n originalTotalWithTax: number;\r\n orderLineCustomFields: CustomFieldConfig[];\r\n modifyOrderInput: ModifyOrderInput;\r\n\r\n selectedPayment?: OrderDetail.Payments;\r\n refundNote: string;\r\n resolveWith: (result?: OrderEditResult) => void;\r\n\r\n get priceDifference(): number {\r\n return this.order.totalWithTax - this.originalTotalWithTax;\r\n }\r\n\r\n ngOnInit() {\r\n this.refundNote = this.modifyOrderInput.note || '';\r\n }\r\n\r\n cancel() {\r\n this.resolveWith({\r\n result: OrderEditResultType.Cancel,\r\n });\r\n }\r\n\r\n submit() {\r\n if (0 < this.priceDifference) {\r\n this.resolveWith({\r\n result: OrderEditResultType.Payment,\r\n });\r\n } else if (this.priceDifference < 0) {\r\n this.resolveWith({\r\n result: OrderEditResultType.Refund,\r\n // tslint:disable-next-line:no-non-null-assertion\r\n refundPaymentId: this.selectedPayment!.id,\r\n refundNote: this.refundNote,\r\n });\r\n } else {\r\n this.resolveWith({\r\n result: OrderEditResultType.PriceUnchanged,\r\n });\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormArray, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport {\r\n AddItemInput,\r\n AdjustOrderLineInput,\r\n BaseDetailComponent,\r\n CustomFieldConfig,\r\n DataService,\r\n ErrorResult,\r\n GetAvailableCountries,\r\n HistoryEntryType,\r\n LanguageCode,\r\n ModalService,\r\n ModifyOrderInput,\r\n NotificationService,\r\n OrderAddressFragment,\r\n OrderDetail,\r\n ProductSelectorSearch,\r\n ServerConfigService,\r\n SortOrder,\r\n SurchargeInput,\r\n transformRelationCustomFieldInputs,\r\n} from '@vendure/admin-ui/core';\r\nimport { assertNever, notNullOrUndefined } from '@vendure/common/lib/shared-utils';\r\nimport { simpleDeepClone } from '@vendure/common/lib/simple-deep-clone';\r\nimport { concat, EMPTY, Observable, of, Subject } from 'rxjs';\r\nimport {\r\n distinctUntilChanged,\r\n map,\r\n mapTo,\r\n shareReplay,\r\n startWith,\r\n switchMap,\r\n takeUntil,\r\n} from 'rxjs/operators';\r\n\r\nimport { OrderTransitionService } from '../../providers/order-transition.service';\r\nimport {\r\n OrderEditResultType,\r\n OrderEditsPreviewDialogComponent,\r\n} from '../order-edits-preview-dialog/order-edits-preview-dialog.component';\r\n\r\ninterface AddedLine {\r\n productVariantId: string;\r\n productAsset?: ProductSelectorSearch.ProductAsset | null;\r\n productVariantName: string;\r\n sku: string;\r\n priceWithTax: number;\r\n price: number;\r\n quantity: number;\r\n}\r\n\r\ntype ModifyOrderData = Omit<ModifyOrderInput, 'addItems' | 'adjustOrderLines'> & {\r\n addItems: Array<AddItemInput & { customFields?: any }>;\r\n adjustOrderLines: Array<AdjustOrderLineInput & { customFields?: any }>;\r\n};\r\n\r\n@Component({\r\n selector: 'vdr-order-editor',\r\n templateUrl: './order-editor.component.html',\r\n styleUrls: ['./order-editor.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderEditorComponent\r\n extends BaseDetailComponent<OrderDetail.Fragment>\r\n implements OnInit, OnDestroy\r\n{\r\n availableCountries$: Observable<GetAvailableCountries.Items[]>;\r\n availableCouponCodes$: Observable<Array<{ code: string; promotionName: string }>>;\r\n couponCodeInput$ = new Subject<string>();\r\n addressCustomFields: CustomFieldConfig[];\r\n detailForm = new FormGroup({});\r\n couponCodesControl = new FormControl();\r\n orderLineCustomFieldsFormArray: FormArray;\r\n addItemCustomFieldsFormArray: FormArray;\r\n addItemCustomFieldsForm: FormGroup;\r\n addItemSelectedVariant: ProductSelectorSearch.Items | undefined;\r\n orderLineCustomFields: CustomFieldConfig[];\r\n modifyOrderInput: ModifyOrderData = {\r\n dryRun: true,\r\n orderId: '',\r\n addItems: [],\r\n adjustOrderLines: [],\r\n surcharges: [],\r\n note: '',\r\n updateShippingAddress: {},\r\n updateBillingAddress: {},\r\n };\r\n surchargeForm: FormGroup;\r\n shippingAddressForm: FormGroup;\r\n billingAddressForm: FormGroup;\r\n note = '';\r\n recalculateShipping = true;\r\n previousState: string;\r\n private addedVariants = new Map<string, ProductSelectorSearch.Items>();\r\n\r\n constructor(\r\n router: Router,\r\n route: ActivatedRoute,\r\n serverConfigService: ServerConfigService,\r\n private changeDetector: ChangeDetectorRef,\r\n protected dataService: DataService,\r\n private notificationService: NotificationService,\r\n private modalService: ModalService,\r\n private orderTransitionService: OrderTransitionService,\r\n ) {\r\n super(route, router, serverConfigService, dataService);\r\n }\r\n\r\n get addedLines(): AddedLine[] {\r\n const getSinglePriceValue = (price: ProductSelectorSearch.Price) =>\r\n price.__typename === 'SinglePrice' ? price.value : 0;\r\n return (this.modifyOrderInput.addItems || [])\r\n .map(row => {\r\n const variantInfo = this.addedVariants.get(row.productVariantId);\r\n if (variantInfo) {\r\n return {\r\n ...variantInfo,\r\n price: getSinglePriceValue(variantInfo.price),\r\n priceWithTax: getSinglePriceValue(variantInfo.priceWithTax),\r\n quantity: row.quantity,\r\n };\r\n }\r\n })\r\n .filter(notNullOrUndefined);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.init();\r\n this.dataService.promotion.getPromotions();\r\n this.addressCustomFields = this.getCustomFieldConfig('Address');\r\n this.modifyOrderInput.orderId = this.route.snapshot.paramMap.get('id') as string;\r\n this.orderLineCustomFields = this.getCustomFieldConfig('OrderLine');\r\n this.entity$.pipe(takeUntil(this.destroy$)).subscribe(order => {\r\n if (order.couponCodes.length) {\r\n this.couponCodesControl.setValue(order.couponCodes);\r\n }\r\n this.surchargeForm = new FormGroup({\r\n description: new FormControl('', Validators.required),\r\n sku: new FormControl(''),\r\n price: new FormControl(0, Validators.required),\r\n priceIncludesTax: new FormControl(true),\r\n taxRate: new FormControl(0),\r\n taxDescription: new FormControl(''),\r\n });\r\n if (!this.shippingAddressForm) {\r\n this.shippingAddressForm = new FormGroup({\r\n fullName: new FormControl(order.shippingAddress?.fullName),\r\n company: new FormControl(order.shippingAddress?.company),\r\n streetLine1: new FormControl(order.shippingAddress?.streetLine1),\r\n streetLine2: new FormControl(order.shippingAddress?.streetLine2),\r\n city: new FormControl(order.shippingAddress?.city),\r\n province: new FormControl(order.shippingAddress?.province),\r\n postalCode: new FormControl(order.shippingAddress?.postalCode),\r\n countryCode: new FormControl(order.shippingAddress?.countryCode),\r\n phoneNumber: new FormControl(order.shippingAddress?.phoneNumber),\r\n });\r\n this.addAddressCustomFieldsFormGroup(this.shippingAddressForm, order.shippingAddress);\r\n }\r\n if (!this.billingAddressForm) {\r\n this.billingAddressForm = new FormGroup({\r\n fullName: new FormControl(order.billingAddress?.fullName),\r\n company: new FormControl(order.billingAddress?.company),\r\n streetLine1: new FormControl(order.billingAddress?.streetLine1),\r\n streetLine2: new FormControl(order.billingAddress?.streetLine2),\r\n city: new FormControl(order.billingAddress?.city),\r\n province: new FormControl(order.billingAddress?.province),\r\n postalCode: new FormControl(order.billingAddress?.postalCode),\r\n countryCode: new FormControl(order.billingAddress?.countryCode),\r\n phoneNumber: new FormControl(order.billingAddress?.phoneNumber),\r\n });\r\n this.addAddressCustomFieldsFormGroup(this.billingAddressForm, order.billingAddress);\r\n }\r\n this.orderLineCustomFieldsFormArray = new FormArray([]);\r\n for (const line of order.lines) {\r\n const formGroup = new FormGroup({});\r\n for (const { name } of this.orderLineCustomFields) {\r\n formGroup.addControl(name, new FormControl((line as any).customFields[name]));\r\n }\r\n formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\r\n let modifyRow = this.modifyOrderInput.adjustOrderLines.find(\r\n l => l.orderLineId === line.id,\r\n );\r\n if (!modifyRow) {\r\n modifyRow = {\r\n orderLineId: line.id,\r\n quantity: line.quantity,\r\n };\r\n this.modifyOrderInput.adjustOrderLines.push(modifyRow);\r\n }\r\n if (this.orderLineCustomFields.length) {\r\n modifyRow.customFields = value;\r\n }\r\n });\r\n this.orderLineCustomFieldsFormArray.push(formGroup);\r\n }\r\n });\r\n this.availableCouponCodes$ = concat(\r\n this.couponCodeInput$.pipe(\r\n distinctUntilChanged(),\r\n switchMap(\r\n term =>\r\n this.dataService.promotion.getPromotions(10, 0, {\r\n couponCode: { contains: term },\r\n }).single$,\r\n ),\r\n map(({ promotions }) =>\r\n // tslint:disable-next-line:no-non-null-assertion\r\n promotions.items.map(p => ({ code: p.couponCode!, promotionName: p.name })),\r\n ),\r\n startWith([]),\r\n ),\r\n );\r\n this.addItemCustomFieldsFormArray = new FormArray([]);\r\n this.addItemCustomFieldsForm = new FormGroup({});\r\n for (const customField of this.orderLineCustomFields) {\r\n this.addItemCustomFieldsForm.addControl(customField.name, new FormControl());\r\n }\r\n this.availableCountries$ = this.dataService.settings\r\n .getAvailableCountries()\r\n .mapSingle(result => result.countries.items)\r\n .pipe(shareReplay(1));\r\n this.dataService.order\r\n .getOrderHistory(this.id, {\r\n take: 1,\r\n sort: {\r\n createdAt: SortOrder.DESC,\r\n },\r\n filter: { type: { eq: HistoryEntryType.ORDER_STATE_TRANSITION } },\r\n })\r\n .single$.subscribe(({ order }) => {\r\n this.previousState = order?.history.items[0].data.from;\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy();\r\n }\r\n\r\n transitionToPriorState(order: OrderDetail.Fragment) {\r\n this.orderTransitionService\r\n .transitionToPreModifyingState(order.id, order.nextStates)\r\n .subscribe(result => {\r\n this.router.navigate(['..'], { relativeTo: this.route });\r\n });\r\n }\r\n\r\n canPreviewChanges(): boolean {\r\n const { addItems, adjustOrderLines, surcharges } = this.modifyOrderInput;\r\n return (\r\n !!addItems?.length ||\r\n !!surcharges?.length ||\r\n !!adjustOrderLines?.length ||\r\n (this.shippingAddressForm.dirty && this.shippingAddressForm.valid) ||\r\n (this.billingAddressForm.dirty && this.billingAddressForm.valid) ||\r\n this.couponCodesControl.dirty\r\n );\r\n }\r\n\r\n isLineModified(line: OrderDetail.Lines): boolean {\r\n return !!this.modifyOrderInput.adjustOrderLines?.find(\r\n l => l.orderLineId === line.id && l.quantity !== line.quantity,\r\n );\r\n }\r\n\r\n updateLineQuantity(line: OrderDetail.Lines, quantity: string) {\r\n const { adjustOrderLines } = this.modifyOrderInput;\r\n let row = adjustOrderLines?.find(l => l.orderLineId === line.id);\r\n if (row && +quantity === line.quantity) {\r\n // Remove the modification if the quantity is the same as\r\n // the original order\r\n adjustOrderLines?.splice(adjustOrderLines?.indexOf(row), 1);\r\n }\r\n if (!row) {\r\n row = { orderLineId: line.id, quantity: +quantity };\r\n adjustOrderLines?.push(row);\r\n }\r\n row.quantity = +quantity;\r\n }\r\n\r\n updateAddedItemQuantity(item: AddedLine, quantity: string) {\r\n const row = this.modifyOrderInput.addItems?.find(l => l.productVariantId === item.productVariantId);\r\n if (row) {\r\n row.quantity = +quantity;\r\n }\r\n }\r\n\r\n trackByProductVariantId(index: number, item: AddedLine) {\r\n return item.productVariantId;\r\n }\r\n\r\n getSelectedItemPrice(result: ProductSelectorSearch.Items | undefined): number {\r\n switch (result?.priceWithTax.__typename) {\r\n case 'SinglePrice':\r\n return result.priceWithTax.value;\r\n default:\r\n return 0;\r\n }\r\n }\r\n\r\n addItemToOrder(result: ProductSelectorSearch.Items | undefined) {\r\n if (!result) {\r\n return;\r\n }\r\n const customFields = this.orderLineCustomFields.length\r\n ? this.addItemCustomFieldsForm.value\r\n : undefined;\r\n let row = this.modifyOrderInput.addItems?.find(l =>\r\n this.isMatchingAddItemRow(l, result, customFields),\r\n );\r\n if (!row) {\r\n row = { productVariantId: result.productVariantId, quantity: 1 };\r\n if (customFields) {\r\n row.customFields = customFields;\r\n }\r\n this.modifyOrderInput.addItems?.push(row);\r\n } else {\r\n row.quantity++;\r\n }\r\n if (customFields) {\r\n const formGroup = new FormGroup({});\r\n for (const [key, value] of Object.entries(customFields)) {\r\n formGroup.addControl(key, new FormControl(value));\r\n }\r\n this.addItemCustomFieldsFormArray.push(formGroup);\r\n formGroup.valueChanges.pipe(takeUntil(this.destroy$)).subscribe(value => {\r\n if (row) {\r\n row.customFields = value;\r\n }\r\n });\r\n }\r\n this.addItemCustomFieldsForm.reset({});\r\n this.addItemSelectedVariant = undefined;\r\n this.addedVariants.set(result.productVariantId, result);\r\n }\r\n\r\n private isMatchingAddItemRow(\r\n row: ModifyOrderData['addItems'][number],\r\n result: ProductSelectorSearch.Items,\r\n customFields: any,\r\n ): boolean {\r\n return (\r\n row.productVariantId === result.productVariantId &&\r\n JSON.stringify(row.customFields) === JSON.stringify(customFields)\r\n );\r\n }\r\n\r\n removeAddedItem(index: number) {\r\n this.modifyOrderInput.addItems.splice(index, 1);\r\n if (-1 < index) {\r\n this.addItemCustomFieldsFormArray.removeAt(index);\r\n }\r\n }\r\n\r\n getSurchargePrices(surcharge: SurchargeInput) {\r\n const priceWithTax = surcharge.priceIncludesTax\r\n ? surcharge.price\r\n : Math.round(surcharge.price * ((100 + (surcharge.taxRate || 0)) / 100));\r\n const price = surcharge.priceIncludesTax\r\n ? Math.round(surcharge.price / ((100 + (surcharge.taxRate || 0)) / 100))\r\n : surcharge.price;\r\n return {\r\n price,\r\n priceWithTax,\r\n };\r\n }\r\n\r\n addSurcharge(value: any) {\r\n this.modifyOrderInput.surcharges?.push(value);\r\n this.surchargeForm.reset({\r\n price: 0,\r\n priceIncludesTax: true,\r\n taxRate: 0,\r\n });\r\n }\r\n\r\n removeSurcharge(index: number) {\r\n this.modifyOrderInput.surcharges?.splice(index, 1);\r\n }\r\n\r\n previewAndModify(order: OrderDetail.Fragment) {\r\n const modifyOrderInput: ModifyOrderData = {\r\n ...this.modifyOrderInput,\r\n adjustOrderLines: this.modifyOrderInput.adjustOrderLines.map(line => {\r\n return transformRelationCustomFieldInputs(simpleDeepClone(line), this.orderLineCustomFields);\r\n }),\r\n };\r\n const input: ModifyOrderInput = {\r\n ...modifyOrderInput,\r\n ...(this.billingAddressForm.dirty ? { updateBillingAddress: this.billingAddressForm.value } : {}),\r\n ...(this.shippingAddressForm.dirty\r\n ? { updateShippingAddress: this.shippingAddressForm.value }\r\n : {}),\r\n dryRun: true,\r\n couponCodes: this.couponCodesControl.dirty ? this.couponCodesControl.value : undefined,\r\n note: this.note ?? '',\r\n options: {\r\n recalculateShipping: this.recalculateShipping,\r\n },\r\n };\r\n const originalTotalWithTax = order.totalWithTax;\r\n this.dataService.order\r\n .modifyOrder(input)\r\n .pipe(\r\n switchMap(({ modifyOrder }) => {\r\n switch (modifyOrder.__typename) {\r\n case 'Order':\r\n return this.modalService.fromComponent(OrderEditsPreviewDialogComponent, {\r\n size: 'xl',\r\n closable: false,\r\n locals: {\r\n originalTotalWithTax,\r\n order: modifyOrder,\r\n orderLineCustomFields: this.orderLineCustomFields,\r\n modifyOrderInput: input,\r\n },\r\n });\r\n case 'InsufficientStockError':\r\n case 'NegativeQuantityError':\r\n case 'NoChangesSpecifiedError':\r\n case 'OrderLimitError':\r\n case 'OrderModificationStateError':\r\n case 'PaymentMethodMissingError':\r\n case 'RefundPaymentIdMissingError':\r\n case 'CouponCodeLimitError':\r\n case 'CouponCodeExpiredError':\r\n case 'CouponCodeInvalidError': {\r\n this.notificationService.error(modifyOrder.message);\r\n return of(false as const);\r\n }\r\n case null:\r\n case undefined:\r\n return of(false as const);\r\n default:\r\n assertNever(modifyOrder);\r\n }\r\n }),\r\n switchMap(result => {\r\n if (!result || result.result === OrderEditResultType.Cancel) {\r\n // re-fetch so that the preview values get overwritten in the cache.\r\n return this.dataService.order.getOrder(this.id).mapSingle(() => false);\r\n } else {\r\n // Do the modification\r\n const wetRunInput = {\r\n ...input,\r\n dryRun: false,\r\n };\r\n if (result.result === OrderEditResultType.Refund) {\r\n wetRunInput.refund = {\r\n paymentId: result.refundPaymentId,\r\n reason: result.refundNote,\r\n };\r\n }\r\n return this.dataService.order.modifyOrder(wetRunInput).pipe(\r\n switchMap(({ modifyOrder }) => {\r\n if (modifyOrder.__typename === 'Order') {\r\n const priceDelta = modifyOrder.totalWithTax - originalTotalWithTax;\r\n const nextState =\r\n 0 < priceDelta ? 'ArrangingAdditionalPayment' : this.previousState;\r\n\r\n return this.dataService.order\r\n .transitionToState(order.id, nextState)\r\n .pipe(mapTo(true));\r\n } else {\r\n this.notificationService.error((modifyOrder as ErrorResult).message);\r\n return EMPTY;\r\n }\r\n }),\r\n );\r\n }\r\n }),\r\n )\r\n .subscribe(result => {\r\n if (result) {\r\n this.router.navigate(['../'], { relativeTo: this.route });\r\n }\r\n });\r\n }\r\n\r\n private addAddressCustomFieldsFormGroup(\r\n parentFormGroup: FormGroup,\r\n address?: OrderAddressFragment | null,\r\n ) {\r\n if (address && this.addressCustomFields.length) {\r\n const addressCustomFieldsFormGroup = new FormGroup({});\r\n for (const customFieldDef of this.addressCustomFields) {\r\n const name = customFieldDef.name;\r\n const value = (address as any).customFields?.[name];\r\n addressCustomFieldsFormGroup.addControl(name, new FormControl(value));\r\n }\r\n parentFormGroup.addControl('customFields', addressCustomFieldsFormGroup);\r\n }\r\n }\r\n\r\n protected setFormValues(entity: OrderDetail.Fragment, languageCode: LanguageCode): void {\r\n /* not used */\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport {\r\n GetOrderHistory,\r\n HistoryEntry,\r\n HistoryEntryType,\r\n OrderDetail,\r\n OrderDetailFragment,\r\n TimelineDisplayType,\r\n} from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-order-history',\r\n templateUrl: './order-history.component.html',\r\n styleUrls: ['./order-history.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderHistoryComponent {\r\n @Input() order: OrderDetailFragment;\r\n @Input() history: GetOrderHistory.Items[];\r\n @Output() addNote = new EventEmitter<{ note: string; isPublic: boolean }>();\r\n @Output() updateNote = new EventEmitter<HistoryEntry>();\r\n @Output() deleteNote = new EventEmitter<HistoryEntry>();\r\n note = '';\r\n noteIsPrivate = true;\r\n expanded = false;\r\n readonly type = HistoryEntryType;\r\n\r\n getDisplayType(entry: GetOrderHistory.Items): TimelineDisplayType {\r\n if (entry.type === HistoryEntryType.ORDER_STATE_TRANSITION) {\r\n if (entry.data.to === 'Delivered') {\r\n return 'success';\r\n }\r\n if (entry.data.to === 'Cancelled') {\r\n return 'error';\r\n }\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_FULFILLMENT_TRANSITION) {\r\n if (entry.data.to === 'Delivered') {\r\n return 'success';\r\n }\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_PAYMENT_TRANSITION) {\r\n if (entry.data.to === 'Declined' || entry.data.to === 'Cancelled') {\r\n return 'error';\r\n }\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_CANCELLATION) {\r\n return 'error';\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_REFUND_TRANSITION) {\r\n return 'warning';\r\n }\r\n return 'default';\r\n }\r\n\r\n getTimelineIcon(entry: GetOrderHistory.Items) {\r\n if (entry.type === HistoryEntryType.ORDER_STATE_TRANSITION) {\r\n if (entry.data.to === 'Delivered') {\r\n return ['success-standard', 'is-solid'];\r\n }\r\n if (entry.data.to === 'Cancelled') {\r\n return 'ban';\r\n }\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_PAYMENT_TRANSITION) {\r\n if (entry.data.to === 'Settled') {\r\n return 'credit-card';\r\n }\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_NOTE) {\r\n return 'note';\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_MODIFIED) {\r\n return 'pencil';\r\n }\r\n if (entry.type === HistoryEntryType.ORDER_FULFILLMENT_TRANSITION) {\r\n if (entry.data.to === 'Shipped') {\r\n return 'truck';\r\n }\r\n if (entry.data.to === 'Delivered') {\r\n return 'truck';\r\n }\r\n }\r\n }\r\n\r\n isFeatured(entry: GetOrderHistory.Items): boolean {\r\n switch (entry.type) {\r\n case HistoryEntryType.ORDER_STATE_TRANSITION: {\r\n return (\r\n entry.data.to === 'Delivered' ||\r\n entry.data.to === 'Cancelled' ||\r\n entry.data.to === 'Settled'\r\n );\r\n }\r\n case HistoryEntryType.ORDER_PAYMENT_TRANSITION:\r\n return entry.data.to === 'Settled' || entry.data.to === 'Cancelled';\r\n case HistoryEntryType.ORDER_FULFILLMENT_TRANSITION:\r\n return entry.data.to === 'Delivered' || entry.data.to === 'Shipped';\r\n case HistoryEntryType.ORDER_NOTE:\r\n case HistoryEntryType.ORDER_MODIFIED:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n getFulfillment(entry: GetOrderHistory.Items): OrderDetail.Fulfillments | undefined {\r\n if (\r\n (entry.type === HistoryEntryType.ORDER_FULFILLMENT ||\r\n entry.type === HistoryEntryType.ORDER_FULFILLMENT_TRANSITION) &&\r\n this.order.fulfillments\r\n ) {\r\n return this.order.fulfillments.find(f => f.id === entry.data.fulfillmentId);\r\n }\r\n }\r\n\r\n getPayment(entry: GetOrderHistory.Items): OrderDetail.Payments | undefined {\r\n if (entry.type === HistoryEntryType.ORDER_PAYMENT_TRANSITION && this.order.payments) {\r\n return this.order.payments.find(p => p.id === entry.data.paymentId);\r\n }\r\n }\r\n\r\n getCancelledItems(entry: GetOrderHistory.Items): Array<{ name: string; quantity: number }> {\r\n const itemMap = new Map<string, number>();\r\n const cancelledItemIds: string[] = entry.data.orderItemIds;\r\n for (const line of this.order.lines) {\r\n for (const item of line.items) {\r\n if (cancelledItemIds.includes(item.id)) {\r\n const count = itemMap.get(line.productVariant.name);\r\n if (count != null) {\r\n itemMap.set(line.productVariant.name, count + 1);\r\n } else {\r\n itemMap.set(line.productVariant.name, 1);\r\n }\r\n }\r\n }\r\n }\r\n return Array.from(itemMap.entries()).map(([name, quantity]) => ({ name, quantity }));\r\n }\r\n\r\n getModification(id: string) {\r\n return this.order.modifications.find(m => m.id === id);\r\n }\r\n\r\n getName(entry: GetOrderHistory.Items): string {\r\n const { administrator } = entry;\r\n if (administrator) {\r\n return `${administrator.firstName} ${administrator.lastName}`;\r\n } else {\r\n const customer = this.order.customer;\r\n if (customer) {\r\n return `${customer.firstName} ${customer.lastName}`;\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n addNoteToOrder() {\r\n this.addNote.emit({ note: this.note, isPublic: !this.noteIsPrivate });\r\n this.note = '';\r\n this.noteIsPrivate = true;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n BaseListComponent,\r\n DataService,\r\n GetOrderList,\r\n LocalStorageService,\r\n LogicalOperator,\r\n OrderListOptions,\r\n ServerConfigService,\r\n SortOrder,\r\n} from '@vendure/admin-ui/core';\r\nimport { Order } from '@vendure/common/lib/generated-types';\r\nimport { merge, Observable } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, filter, map, takeUntil } from 'rxjs/operators';\r\n\r\ninterface OrderFilterConfig {\r\n active?: boolean;\r\n states?: string[];\r\n}\r\n\r\ninterface FilterPreset {\r\n name: string;\r\n label: string;\r\n config: OrderFilterConfig;\r\n}\r\n\r\n@Component({\r\n selector: 'vdr-order-list',\r\n templateUrl: './order-list.component.html',\r\n styleUrls: ['./order-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderListComponent\r\n extends BaseListComponent<GetOrderList.Query, GetOrderList.Items>\r\n implements OnInit\r\n{\r\n searchControl = new FormControl('');\r\n searchOrderCodeControl = new FormControl('');\r\n searchLastNameControl = new FormControl('');\r\n customFilterForm: FormGroup;\r\n orderStates = this.serverConfigService.getOrderProcessStates().map(item => item.name);\r\n filterPresets: FilterPreset[] = [\r\n {\r\n name: 'open',\r\n label: _('order.filter-preset-open'),\r\n config: {\r\n active: false,\r\n states: this.orderStates.filter(\r\n s => s !== 'Delivered' && s !== 'Cancelled' && s !== 'Shipped',\r\n ),\r\n },\r\n },\r\n {\r\n name: 'shipped',\r\n label: _('order.filter-preset-shipped'),\r\n config: {\r\n active: false,\r\n states: ['Shipped'],\r\n },\r\n },\r\n {\r\n name: 'completed',\r\n label: _('order.filter-preset-completed'),\r\n config: {\r\n active: false,\r\n states: ['Delivered', 'Cancelled'],\r\n },\r\n },\r\n {\r\n name: 'active',\r\n label: _('order.filter-preset-active'),\r\n config: {\r\n active: true,\r\n },\r\n },\r\n ];\r\n activePreset$: Observable<string>;\r\n\r\n constructor(\r\n private serverConfigService: ServerConfigService,\r\n private dataService: DataService,\r\n private localStorageService: LocalStorageService,\r\n router: Router,\r\n route: ActivatedRoute,\r\n ) {\r\n super(router, route);\r\n super.setQueryFn(\r\n // tslint:disable-next-line:no-shadowed-variable\r\n (take, skip) => this.dataService.order.getOrders({ take, skip }).refetchOnChannelChange(),\r\n data => data.orders,\r\n // tslint:disable-next-line:no-shadowed-variable\r\n (skip, take) =>\r\n this.createQueryOptions(\r\n skip,\r\n take,\r\n this.searchControl.value,\r\n this.route.snapshot.queryParamMap.get('filter') || 'open',\r\n ),\r\n );\r\n const lastFilters = this.localStorageService.get('orderListLastCustomFilters');\r\n if (lastFilters) {\r\n this.setQueryParam(lastFilters, { replaceUrl: true });\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n this.activePreset$ = this.route.queryParamMap.pipe(\r\n map(qpm => qpm.get('filter') || 'open'),\r\n distinctUntilChanged(),\r\n );\r\n const searchTerms$ = merge(this.searchControl.valueChanges).pipe(\r\n filter(value => 2 < value.length || value.length === 0),\r\n debounceTime(250),\r\n );\r\n merge(searchTerms$, this.route.queryParamMap)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(val => {\r\n this.refresh();\r\n });\r\n\r\n const queryParamMap = this.route.snapshot.queryParamMap;\r\n this.customFilterForm = new FormGroup({\r\n states: new FormControl(queryParamMap.getAll('states') ?? []),\r\n placedAtStart: new FormControl(queryParamMap.get('placedAtStart')),\r\n placedAtEnd: new FormControl(queryParamMap.get('placedAtEnd')),\r\n });\r\n }\r\n\r\n selectFilterPreset(presetName: string) {\r\n const lastCustomFilters = this.localStorageService.get('orderListLastCustomFilters') ?? {};\r\n const emptyCustomFilters = { states: undefined, placedAtStart: undefined, placedAtEnd: undefined };\r\n const filters = presetName === 'custom' ? lastCustomFilters : emptyCustomFilters;\r\n this.setQueryParam(\r\n {\r\n filter: presetName,\r\n page: 1,\r\n ...filters,\r\n },\r\n { replaceUrl: true },\r\n );\r\n }\r\n\r\n applyCustomFilters() {\r\n const formValue = this.customFilterForm.value;\r\n const customFilters = {\r\n states: formValue.states,\r\n placedAtStart: formValue.placedAtStart,\r\n placedAtEnd: formValue.placedAtEnd,\r\n };\r\n this.setQueryParam({\r\n filter: 'custom',\r\n ...customFilters,\r\n });\r\n this.customFilterForm.markAsPristine();\r\n this.localStorageService.set('orderListLastCustomFilters', customFilters);\r\n }\r\n\r\n private createQueryOptions(\r\n // tslint:disable-next-line:no-shadowed-variable\r\n skip: number,\r\n take: number,\r\n searchTerm: string,\r\n activeFilterPreset?: string,\r\n ): { options: OrderListOptions } {\r\n const filterConfig = this.filterPresets.find(p => p.name === activeFilterPreset);\r\n // tslint:disable-next-line:no-shadowed-variable\r\n let filter: any = {};\r\n let filterOperator: LogicalOperator = LogicalOperator.AND;\r\n if (filterConfig) {\r\n if (filterConfig.config.active != null) {\r\n filter.active = {\r\n eq: filterConfig.config.active,\r\n };\r\n }\r\n if (filterConfig.config.states) {\r\n filter.state = {\r\n in: filterConfig.config.states,\r\n };\r\n }\r\n } else if (activeFilterPreset === 'custom') {\r\n const queryParams = this.route.snapshot.queryParamMap;\r\n const states = queryParams.getAll('states') ?? [];\r\n const placedAtStart = queryParams.get('placedAtStart');\r\n const placedAtEnd = queryParams.get('placedAtEnd');\r\n if (states.length) {\r\n filter.state = {\r\n in: states,\r\n };\r\n }\r\n if (placedAtStart && placedAtEnd) {\r\n filter.orderPlacedAt = {\r\n between: {\r\n start: placedAtStart,\r\n end: placedAtEnd,\r\n },\r\n };\r\n } else if (placedAtStart) {\r\n filter.orderPlacedAt = {\r\n after: placedAtStart,\r\n };\r\n } else if (placedAtEnd) {\r\n filter.orderPlacedAt = {\r\n before: placedAtEnd,\r\n };\r\n }\r\n }\r\n if (searchTerm) {\r\n filter = {\r\n customerLastName: {\r\n contains: searchTerm,\r\n },\r\n transactionId: {\r\n contains: searchTerm,\r\n },\r\n code: {\r\n contains: searchTerm,\r\n },\r\n };\r\n filterOperator = LogicalOperator.OR;\r\n }\r\n return {\r\n options: {\r\n skip,\r\n take,\r\n filter: {\r\n ...(filter ?? {}),\r\n },\r\n sort: {\r\n updatedAt: SortOrder.DESC,\r\n },\r\n filterOperator,\r\n },\r\n };\r\n }\r\n\r\n getShippingNames(order: Order) {\r\n if (order.shippingLines.length) {\r\n return order.shippingLines.map(shippingLine => shippingLine.shippingMethod.name).join(', ');\r\n } else {\r\n return '';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { CurrencyCode } from '@vendure/admin-ui/core';\r\nimport { OrderDetail } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-order-payment-card',\r\n templateUrl: './order-payment-card.component.html',\r\n styleUrls: ['./order-payment-card.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderPaymentCardComponent {\r\n @Input() payment: OrderDetail.Payments;\r\n @Input() currencyCode: CurrencyCode;\r\n @Output() settlePayment = new EventEmitter<OrderDetail.Payments>();\r\n @Output() transitionPaymentState = new EventEmitter<{ payment: OrderDetail.Payments; state: string }>();\r\n @Output() settleRefund = new EventEmitter<OrderDetail.Refunds>();\r\n\r\n refundHasMetadata(refund?: OrderDetail.Refunds): boolean {\r\n return !!refund && Object.keys(refund.metadata).length > 0;\r\n }\r\n\r\n nextOtherStates(): string[] {\r\n if (!this.payment) {\r\n return [];\r\n }\r\n return this.payment.nextStates.filter(s => s !== 'Settled' && s !== 'Error');\r\n }\r\n}\r\n","export const NODE_HEIGHT = 72;\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nimport { OrderProcessNodeComponent } from './order-process-node.component';\r\n\r\n@Component({\r\n selector: 'vdr-order-process-edge',\r\n templateUrl: './order-process-edge.component.html',\r\n styleUrls: ['./order-process-edge.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderProcessEdgeComponent implements OnInit {\r\n @Input() from: OrderProcessNodeComponent;\r\n @Input() to: OrderProcessNodeComponent;\r\n @Input() index: number;\r\n active$: Observable<boolean>;\r\n\r\n ngOnInit() {\r\n this.active$ = this.from.active$\r\n .asObservable()\r\n .pipe(tap((active) => this.to.activeTarget$.next(active)));\r\n }\r\n\r\n getStyle() {\r\n const direction = this.from.index < this.to.index ? 'down' : 'up';\r\n const startPos = this.from.getPos(direction === 'down' ? 'bottom' : 'top');\r\n const endPos = this.to.getPos(direction === 'down' ? 'top' : 'bottom');\r\n const dX = Math.abs(startPos.x - endPos.x);\r\n const dY = Math.abs(startPos.y - endPos.y);\r\n const length = Math.sqrt(dX ** 2 + dY ** 2);\r\n return {\r\n 'top.px': startPos.y,\r\n 'left.px': startPos.x + (direction === 'down' ? 10 : 40) + this.index * 12,\r\n 'height.px': length,\r\n 'width.px': 1,\r\n ...(direction === 'up'\r\n ? {\r\n transform: 'rotateZ(180deg)',\r\n 'transform-origin': 'top',\r\n }\r\n : {}),\r\n };\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n} from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport { NODE_HEIGHT } from './constants';\r\nimport { StateNode } from './types';\r\n\r\n@Component({\r\n selector: 'vdr-order-process-node',\r\n templateUrl: './order-process-node.component.html',\r\n styleUrls: ['./order-process-node.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderProcessNodeComponent implements OnChanges {\r\n @Input() node: StateNode;\r\n @Input() index: number;\r\n @Input() active: boolean;\r\n active$ = new BehaviorSubject<boolean>(false);\r\n activeTarget$ = new BehaviorSubject<boolean>(false);\r\n isCancellable = false;\r\n // We use a class field here to prevent the\r\n // i18n extractor from extracting a \"Cancelled\" key\r\n cancelledState = 'Cancelled';\r\n\r\n constructor(private elementRef: ElementRef<HTMLDivElement>) {}\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.isCancellable = !!this.node.to.find((s) => s.name === 'Cancelled');\r\n if (changes.active) {\r\n this.active$.next(this.active);\r\n }\r\n }\r\n\r\n getPos(origin: 'top' | 'bottom' = 'top'): { x: number; y: number } {\r\n const rect = this.elementRef.nativeElement.getBoundingClientRect();\r\n const nodeHeight =\r\n this.elementRef.nativeElement.querySelector('.node')?.getBoundingClientRect().height ?? 0;\r\n return {\r\n x: 10,\r\n y: this.index * NODE_HEIGHT + (origin === 'bottom' ? nodeHeight : 0),\r\n };\r\n }\r\n\r\n getStyle() {\r\n const pos = this.getPos();\r\n return {\r\n 'top.px': pos.y,\r\n 'left.px': pos.x,\r\n };\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n QueryList,\r\n SimpleChanges,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport { OrderProcessState } from '@vendure/admin-ui/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { debounceTime } from 'rxjs/operators';\r\n\r\nimport { NODE_HEIGHT } from './constants';\r\nimport { OrderProcessNodeComponent } from './order-process-node.component';\r\nimport { StateNode } from './types';\r\n\r\n@Component({\r\n selector: 'vdr-order-process-graph',\r\n templateUrl: './order-process-graph.component.html',\r\n styleUrls: ['./order-process-graph.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderProcessGraphComponent implements OnInit, OnChanges, AfterViewInit {\r\n @Input() states: OrderProcessState[];\r\n @Input() initialState?: string;\r\n setActiveState$ = new BehaviorSubject<string | undefined>(undefined);\r\n activeState$: Observable<string | undefined>;\r\n nodes: StateNode[] = [];\r\n edges: Array<{ from: OrderProcessNodeComponent; to: OrderProcessNodeComponent; index: number }> = [];\r\n\r\n @ViewChildren(OrderProcessNodeComponent) nodeComponents: QueryList<OrderProcessNodeComponent>;\r\n\r\n constructor(private changeDetector: ChangeDetectorRef) {}\r\n\r\n @HostBinding('style.height.px')\r\n get outerHeight(): number {\r\n return this.nodes.length * NODE_HEIGHT;\r\n }\r\n\r\n ngOnInit() {\r\n this.setActiveState$.next(this.initialState);\r\n this.activeState$ = this.setActiveState$.pipe(debounceTime(150));\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n this.populateNodes();\r\n }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => this.populateEdges());\r\n }\r\n\r\n onMouseOver(stateName: string) {\r\n this.setActiveState$.next(stateName);\r\n }\r\n\r\n onMouseOut() {\r\n this.setActiveState$.next(this.initialState);\r\n }\r\n\r\n getNodeFor(state: string): OrderProcessNodeComponent | undefined {\r\n if (this.nodeComponents) {\r\n return this.nodeComponents.find((n) => n.node.name === state);\r\n }\r\n }\r\n\r\n private populateNodes() {\r\n const stateNodeMap = new Map<string, StateNode>();\r\n for (const state of this.states) {\r\n stateNodeMap.set(state.name, {\r\n name: state.name,\r\n to: [],\r\n });\r\n }\r\n\r\n for (const [name, stateNode] of stateNodeMap.entries()) {\r\n const targets = this.states.find((s) => s.name === name)?.to ?? [];\r\n for (const target of targets) {\r\n const targetNode = stateNodeMap.get(target);\r\n if (targetNode) {\r\n stateNode.to.push(targetNode);\r\n }\r\n }\r\n }\r\n this.nodes = [...stateNodeMap.values()].filter((n) => n.name !== 'Cancelled');\r\n }\r\n\r\n private populateEdges() {\r\n for (const node of this.nodes) {\r\n const nodeCmp = this.getNodeFor(node.name);\r\n let index = 0;\r\n for (const to of node.to) {\r\n const toCmp = this.getNodeFor(to.name);\r\n if (nodeCmp && toCmp && nodeCmp !== toCmp) {\r\n this.edges.push({\r\n to: toCmp,\r\n from: nodeCmp,\r\n index,\r\n });\r\n index++;\r\n }\r\n }\r\n }\r\n this.edges = [...this.edges];\r\n this.changeDetector.markForCheck();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { AdjustmentType, CustomFieldConfig, OrderDetail } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-order-table',\r\n templateUrl: './order-table.component.html',\r\n styleUrls: ['./order-table.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderTableComponent implements OnInit {\r\n @Input() order: OrderDetail.Fragment;\r\n @Input() orderLineCustomFields: CustomFieldConfig[];\r\n orderLineCustomFieldsVisible = false;\r\n customFieldsForLine: {\r\n [lineId: string]: Array<{ config: CustomFieldConfig; formGroup: FormGroup; value: any }>;\r\n } = {};\r\n\r\n get visibleOrderLineCustomFields(): CustomFieldConfig[] {\r\n return this.orderLineCustomFieldsVisible ? this.orderLineCustomFields : [];\r\n }\r\n\r\n get showElided(): boolean {\r\n return !this.orderLineCustomFieldsVisible && 0 < this.orderLineCustomFields.length;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.orderLineCustomFieldsVisible = this.orderLineCustomFields.length < 2;\r\n this.getLineCustomFields();\r\n }\r\n\r\n toggleOrderLineCustomFields() {\r\n this.orderLineCustomFieldsVisible = !this.orderLineCustomFieldsVisible;\r\n }\r\n\r\n getLineDiscounts(line: OrderDetail.Lines) {\r\n return line.discounts.filter(a => a.type === AdjustmentType.PROMOTION);\r\n }\r\n\r\n private getLineCustomFields() {\r\n for (const line of this.order.lines) {\r\n const formGroup = new FormGroup({});\r\n const result = this.orderLineCustomFields\r\n .map(config => {\r\n const value = (line as any).customFields[config.name];\r\n formGroup.addControl(config.name, new FormControl(value));\r\n return {\r\n config,\r\n formGroup,\r\n value,\r\n };\r\n })\r\n .filter(field => {\r\n return this.orderLineCustomFieldsVisible ? true : field.value != null;\r\n });\r\n this.customFieldsForLine[line.id] = result;\r\n }\r\n }\r\n\r\n getPromotionLink(promotion: OrderDetail.Discounts): any[] {\r\n const id = promotion.adjustmentSource.split(':')[1];\r\n return ['/marketing', 'promotions', id];\r\n }\r\n\r\n getCouponCodeForAdjustment(\r\n order: OrderDetail.Fragment,\r\n promotionAdjustment: OrderDetail.Discounts,\r\n ): string | undefined {\r\n const id = promotionAdjustment.adjustmentSource.split(':')[1];\r\n const promotion = order.promotions.find(p => p.id === id);\r\n if (promotion) {\r\n return promotion.couponCode || undefined;\r\n }\r\n }\r\n\r\n getShippingNames(order: OrderDetail.Fragment) {\r\n if (order.shippingLines.length) {\r\n return order.shippingLines.map(shippingLine => shippingLine.shippingMethod.name).join(', ');\r\n } else {\r\n return '';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\nimport { CurrencyCode, OrderDetail } from '@vendure/admin-ui/core';\r\n\r\n@Component({\r\n selector: 'vdr-payment-detail',\r\n templateUrl: './payment-detail.component.html',\r\n styleUrls: ['./payment-detail.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PaymentDetailComponent {\r\n @Input() payment: OrderDetail.Payments;\r\n @Input() currencyCode: CurrencyCode;\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-payment-state-label',\r\n templateUrl: './payment-state-label.component.html',\r\n styleUrls: ['./payment-state-label.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PaymentStateLabelComponent {\r\n @Input() state: string;\r\n\r\n get chipColorType() {\r\n switch (this.state) {\r\n case 'Authorized':\r\n return 'warning';\r\n case 'Settled':\r\n return 'success';\r\n case 'Declined':\r\n case 'Cancelled':\r\n return 'error';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-refund-state-label',\r\n templateUrl: './refund-state-label.component.html',\r\n styleUrls: ['./refund-state-label.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RefundStateLabelComponent {\r\n @Input() state: string;\r\n\r\n get chipColorType() {\r\n switch (this.state) {\r\n case 'Pending':\r\n return 'warning';\r\n case 'Settled':\r\n return 'success';\r\n case 'Failed':\r\n return 'error';\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'vdr-simple-item-list',\r\n templateUrl: './simple-item-list.component.html',\r\n styleUrls: ['./simple-item-list.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SimpleItemListComponent {\r\n @Input() items: Array<{ name: string; quantity: number }>;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { BaseEntityResolver } from '@vendure/admin-ui/core';\r\nimport { OrderDetail } from '@vendure/admin-ui/core';\r\nimport { DataService } from '@vendure/admin-ui/core';\r\n\r\n/**\r\n * Resolves the id from the path into a Customer entity.\r\n */\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class OrderResolver extends BaseEntityResolver<OrderDetail.Fragment> {\r\n constructor(router: Router, dataService: DataService) {\r\n super(\r\n router,\r\n {\r\n __typename: 'Order',\r\n id: '',\r\n code: '',\r\n createdAt: '',\r\n updatedAt: '',\r\n total: 0,\r\n } as any,\r\n id => dataService.order.getOrder(id).mapStream(data => data.order),\r\n );\r\n }\r\n}\r\n","import { Route } from '@angular/router';\r\nimport { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';\r\nimport {\r\n BreadcrumbLabelLinkPair,\r\n CanDeactivateDetailGuard,\r\n createResolveData,\r\n detailBreadcrumb,\r\n OrderDetail,\r\n} from '@vendure/admin-ui/core';\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { OrderDetailComponent } from './components/order-detail/order-detail.component';\r\nimport { OrderEditorComponent } from './components/order-editor/order-editor.component';\r\nimport { OrderListComponent } from './components/order-list/order-list.component';\r\nimport { OrderResolver } from './providers/routing/order-resolver';\r\n\r\nexport const orderRoutes: Route[] = [\r\n {\r\n path: '',\r\n component: OrderListComponent,\r\n data: {\r\n breadcrumb: _('breadcrumb.orders'),\r\n },\r\n },\r\n {\r\n path: ':id',\r\n component: OrderDetailComponent,\r\n resolve: createResolveData(OrderResolver),\r\n canDeactivate: [CanDeactivateDetailGuard],\r\n data: {\r\n breadcrumb: orderBreadcrumb,\r\n },\r\n },\r\n {\r\n path: ':id/modify',\r\n component: OrderEditorComponent,\r\n resolve: createResolveData(OrderResolver),\r\n // canDeactivate: [CanDeactivateDetailGuard],\r\n data: {\r\n breadcrumb: modifyingOrderBreadcrumb,\r\n },\r\n },\r\n];\r\n\r\nexport function orderBreadcrumb(data: any, params: any) {\r\n return detailBreadcrumb<OrderDetail.Fragment>({\r\n entity: data.entity,\r\n id: params.id,\r\n breadcrumbKey: 'breadcrumb.orders',\r\n getName: order => order.code,\r\n route: '',\r\n });\r\n}\r\n\r\nexport function modifyingOrderBreadcrumb(data: any, params: any) {\r\n return orderBreadcrumb(data, params).pipe(\r\n map((breadcrumbs: BreadcrumbLabelLinkPair[]) => {\r\n const modifiedBreadcrumbs = breadcrumbs.slice();\r\n modifiedBreadcrumbs[0].link[0] = '../';\r\n modifiedBreadcrumbs[1].link[0] = '../orders';\r\n return modifiedBreadcrumbs.concat({ label: _('breadcrumb.modifying'), link: [''] });\r\n }) as any,\r\n );\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { SharedModule } from '@vendure/admin-ui/core';\n\nimport { AddManualPaymentDialogComponent } from './components/add-manual-payment-dialog/add-manual-payment-dialog.component';\nimport { CancelOrderDialogComponent } from './components/cancel-order-dialog/cancel-order-dialog.component';\nimport { FulfillOrderDialogComponent } from './components/fulfill-order-dialog/fulfill-order-dialog.component';\nimport { FulfillmentCardComponent } from './components/fulfillment-card/fulfillment-card.component';\nimport { FulfillmentDetailComponent } from './components/fulfillment-detail/fulfillment-detail.component';\nimport { FulfillmentStateLabelComponent } from './components/fulfillment-state-label/fulfillment-state-label.component';\nimport { LineFulfillmentComponent } from './components/line-fulfillment/line-fulfillment.component';\nimport { LineRefundsComponent } from './components/line-refunds/line-refunds.component';\nimport { ModificationDetailComponent } from './components/modification-detail/modification-detail.component';\nimport { OrderCustomFieldsCardComponent } from './components/order-custom-fields-card/order-custom-fields-card.component';\nimport { OrderDetailComponent } from './components/order-detail/order-detail.component';\nimport { OrderEditorComponent } from './components/order-editor/order-editor.component';\nimport { OrderEditsPreviewDialogComponent } from './components/order-edits-preview-dialog/order-edits-preview-dialog.component';\nimport { OrderHistoryComponent } from './components/order-history/order-history.component';\nimport { OrderListComponent } from './components/order-list/order-list.component';\nimport { OrderPaymentCardComponent } from './components/order-payment-card/order-payment-card.component';\nimport { OrderProcessGraphDialogComponent } from './components/order-process-graph-dialog/order-process-graph-dialog.component';\nimport { OrderProcessEdgeComponent } from './components/order-process-graph/order-process-edge.component';\nimport { OrderProcessGraphComponent } from './components/order-process-graph/order-process-graph.component';\nimport { OrderProcessNodeComponent } from './components/order-process-graph/order-process-node.component';\nimport { OrderStateSelectDialogComponent } from './components/order-state-select-dialog/order-state-select-dialog.component';\nimport { OrderTableComponent } from './components/order-table/order-table.component';\nimport { PaymentDetailComponent } from './components/payment-detail/payment-detail.component';\nimport { PaymentStateLabelComponent } from './components/payment-state-label/payment-state-label.component';\nimport { RefundOrderDialogComponent } from './components/refund-order-dialog/refund-order-dialog.component';\nimport { RefundStateLabelComponent } from './components/refund-state-label/refund-state-label.component';\nimport { SettleRefundDialogComponent } from './components/settle-refund-dialog/settle-refund-dialog.component';\nimport { SimpleItemListComponent } from './components/simple-item-list/simple-item-list.component';\nimport { orderRoutes } from './order.routes';\n\n@NgModule({\n imports: [SharedModule, RouterModule.forChild(orderRoutes)],\n declarations: [\n OrderListComponent,\n OrderDetailComponent,\n FulfillOrderDialogComponent,\n LineFulfillmentComponent,\n RefundOrderDialogComponent,\n CancelOrderDialogComponent,\n PaymentStateLabelComponent,\n LineRefundsComponent,\n OrderPaymentCardComponent,\n RefundStateLabelComponent,\n SettleRefundDialogComponent,\n OrderHistoryComponent,\n FulfillmentDetailComponent,\n PaymentDetailComponent,\n SimpleItemListComponent,\n OrderCustomFieldsCardComponent,\n OrderProcessGraphComponent,\n OrderProcessNodeComponent,\n OrderProcessEdgeComponent,\n OrderProcessGraphDialogComponent,\n FulfillmentStateLabelComponent,\n FulfillmentCardComponent,\n OrderEditorComponent,\n OrderTableComponent,\n OrderEditsPreviewDialogComponent,\n ModificationDetailComponent,\n AddManualPaymentDialogComponent,\n OrderStateSelectDialogComponent,\n ],\n})\nexport class OrderModule {}\n","// This file was generated by the build-public-api.ts script\nexport * from './components/add-manual-payment-dialog/add-manual-payment-dialog.component';\nexport * from './components/cancel-order-dialog/cancel-order-dialog.component';\nexport * from './components/fulfill-order-dialog/fulfill-order-dialog.component';\nexport * from './components/fulfillment-card/fulfillment-card.component';\nexport * from './components/fulfillment-detail/fulfillment-detail.component';\nexport * from './components/fulfillment-state-label/fulfillment-state-label.component';\nexport * from './components/line-fulfillment/line-fulfillment.component';\nexport * from './components/line-refunds/line-refunds.component';\nexport * from './components/modification-detail/modification-detail.component';\nexport * from './components/order-custom-fields-card/order-custom-fields-card.component';\nexport * from './components/order-detail/order-detail.component';\nexport * from './components/order-editor/order-editor.component';\nexport * from './components/order-edits-preview-dialog/order-edits-preview-dialog.component';\nexport * from './components/order-history/order-history.component';\nexport * from './components/order-list/order-list.component';\nexport * from './components/order-payment-card/order-payment-card.component';\nexport * from './components/order-process-graph/constants';\nexport * from './components/order-process-graph/order-process-edge.component';\nexport * from './components/order-process-graph/order-process-graph.component';\nexport * from './components/order-process-graph/order-process-node.component';\nexport * from './components/order-process-graph/types';\nexport * from './components/order-process-graph-dialog/order-process-graph-dialog.component';\nexport * from './components/order-state-select-dialog/order-state-select-dialog.component';\nexport * from './components/order-table/order-table.component';\nexport * from './components/payment-detail/payment-detail.component';\nexport * from './components/payment-state-label/payment-state-label.component';\nexport * from './components/refund-order-dialog/refund-order-dialog.component';\nexport * from './components/refund-state-label/refund-state-label.component';\nexport * from './components/settle-refund-dialog/settle-refund-dialog.component';\nexport * from './components/simple-item-list/simple-item-list.component';\nexport * from './order.module';\nexport * from './order.routes';\nexport * from './providers/order-transition.service';\nexport * from './providers/routing/order-resolver';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["FormGroup","FormControl","Validators","Component","ChangeDetectionStrategy","DataService","getAppConfig","_","I18nService","configurableDefinitionToInstance","GlobalFlag","configurableOperationValueIsValid","toConfigurableOperationInput","ChangeDetectorRef","EventEmitter","Input","Output","isObject","ServerConfigService","FormBuilder","ModalService","switchMap","catchError","EMPTY","retryWhen","delay","take","HistoryEntryType","SortOrder","map","Injectable","NotificationService","summate","Subject","startWith","mapTo","of","assertNever","EditNoteDialogComponent","BaseDetailComponent","Router","ActivatedRoute","OrderEditResultType","notNullOrUndefined","takeUntil","FormArray","concat","distinctUntilChanged","shareReplay","transformRelationCustomFieldInputs","simpleDeepClone","merge","filter","debounceTime","LogicalOperator","BaseListComponent","LocalStorageService","tap","BehaviorSubject","ElementRef","ViewChildren","HostBinding","AdjustmentType","BaseEntityResolver","createResolveData","CanDeactivateDetailGuard","detailBreadcrumb","NgModule","SharedModule","RouterModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QA4BI,yCAAoB,WAAwB;YAAxB,gBAAW,GAAX,WAAW,CAAa;YAL5C,SAAI,GAAG,IAAIA,eAAS,CAAC;gBACjB,MAAM,EAAE,IAAIC,iBAAW,CAAC,EAAE,EAAEC,gBAAU,CAAC,QAAQ,CAAC;gBAChD,aAAa,EAAE,IAAID,iBAAW,CAAC,EAAE,EAAEC,gBAAU,CAAC,QAAQ,CAAC;aAC1D,CAAC,CAAC;SAE6C;QAEhD,kDAAQ,GAAR;YACI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ;iBAC3C,iBAAiB,CAAC,GAAG,CAAC;iBACtB,SAAS,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,cAAc,CAAC,KAAK,GAAA,CAAC,CAAC;SACrD;QAED,gDAAM,GAAN;YACI,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,IAAI,CAAC,WAAW,CAAC;gBACb,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,aAAa,EAAE,SAAS,CAAC,aAAa;aACzC,CAAC,CAAC;SACN;QAED,gDAAM,GAAN;YACI,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;;;;gBAnCJC,YAAS,SAAC;oBACP,QAAQ,EAAE,+BAA+B;oBACzC,onCAAyD;oBAEzD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;gBAZGC,cAAW;;;ICJf;;;;;;;;;;;;;;IAcA;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;aAEc,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;YACrC,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;QAC9F,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;QACvC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAEM,IAAI,QAAQ,GAAG;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAChF;YACD,OAAO,CAAC,CAAC;SACZ,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;QACL,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;QACpD,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;YAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;aAEe,OAAO,CAAC,UAAU,EAAE,SAAS;QACzC,OAAO,UAAU,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;aAEe,UAAU,CAAC,WAAW,EAAE,aAAa;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;aAEe,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS;QACvD,SAAS,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC5G,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM;YACrD,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC3F,SAAS,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC9F,SAAS,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC9G,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;aAEe,WAAW,CAAC,OAAO,EAAE,IAAI;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,cAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC9D,OAAO,CAAC;gBAAE,IAAI;oBACV,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;wBAAE,OAAO,CAAC,CAAC;oBAC7J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACT,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;wBAC9B,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACxD,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;wBACjD,KAAK,CAAC;4BAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACjD;4BACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BAC5G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACtF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;6BAAE;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;gCAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;qBAC9B;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;iBAAE;wBAAS;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAAE;YAC1D,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,cAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;aAEa,YAAY,CAAC,CAAC,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;aAEe,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;gBAC1C,IAAI,EAAE;oBACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;oBACnC,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;QACF,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC9E;QACD,OAAO,KAAK,EAAE;YAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAAE;gBAC/B;YACJ,IAAI;gBACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpD;oBACO;gBAAE,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;aAAE;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ;QACpB,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAC9C,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI;QACxC,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,EAAE;wBAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBACnB;aACJ;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;aAEe,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAC9D,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAC1I,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAAE;QAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACxH,SAAS,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;aAEe,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5I,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;aAEe,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAChK,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;aAEe,oBAAoB,CAAC,MAAM,EAAE,GAAG;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;SAAE;aAAM;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;QAC/G,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC;QACd,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;aAEc,YAAY,CAAC,GAAG;QAC5B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACzI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;aAEe,eAAe,CAAC,GAAG;QAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;QACnL,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClG,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClE,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;QAClL,OAAO,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC9G;;;QC9MI,oCAAoB,WAAwB;YAA5C,iBAEC;;YAFmB,gBAAW,GAAX,WAAW,CAAa;YAb5C,cAAS,GAAG,IAAI,CAAC;YAGjB,mBAAc,GAAiC,EAAE,CAAC;YAClD,YAAO,GAAa,MAAAC,eAAY,EAAE,CAAC,mBAAmB,mCAAI;gBACtDC,gCAAC,CAAC,sCAAsC,CAAC;gBACzCA,gCAAC,CAAC,mCAAmC,CAAC;aACzC,CAAC;YAOE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,GAAA,CAAC,CAAC;SACvE;QAND,sBAAI,sDAAc;iBAAlB;gBACI,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,CAAC,IAAK,OAAA,GAAG,GAAG,CAAC,GAAA,EAAE,CAAC,CAAC,CAAC;aAC5E;;;WAAA;QAMD,6CAAQ,GAAR;YACI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,MAAM,EAAE,IAAI;;gBACvD,uCAAY,MAAM,aAAE,GAAC,IAAI,CAAC,EAAE,IAAG,IAAI,CAAC,QAAQ,OAAG;aAClD,EAAE,EAAE,CAAC,CAAC;SACV;QAED,iDAAY,GAAZ;;YACI,IAAI,IAAI,CAAC,SAAS,EAAE;;oBAChB,KAAmB,IAAA,KAAA,SAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA,gBAAA,4BAAE;wBAAhC,IAAM,IAAI,WAAA;wBACX,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC;qBAChD;;;;;;;;;aACJ;iBAAM;;oBACH,KAAmB,IAAA,KAAA,SAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA,gBAAA,4BAAE;wBAAhC,IAAM,IAAI,WAAA;wBACX,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;qBACpC;;;;;;;;;aACJ;SACJ;QAED,uDAAkB,GAAlB;;;oCACgB,MAAM,EAAE,QAAQ;gBACxB,IAAM,eAAe,GAAG,MAAA,OAAK,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,EAAE,KAAK,MAAM,GAAA,CAAC,0CAAE,QAAQ,CAAC;gBACpF,IAAI,eAAe,IAAI,QAAQ,GAAG,eAAe,EAAE;;iBAElD;;;;gBAJL,KAAiC,IAAA,KAAA,SAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA,gBAAA;oBAAzD,IAAA,KAAA,mBAAkB,EAAjB,MAAM,QAAA,EAAE,QAAQ,QAAA;0CAAhB,MAAM,EAAE,QAAQ;;;iBAK3B;;;;;;;;;;;YAGD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;SACzB;QAED,2CAAM,GAAN;YACI,IAAI,CAAC,WAAW,CAAC;gBACb,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;gBACtB,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE;gBAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,cAAc,EAAE,IAAI,CAAC,SAAS;aACjC,CAAC,CAAC;SACN;QAED,2CAAM,GAAN;YACI,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;QAEO,kDAAa,GAAb;YACJ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACnB,OAAO;aACV;YACD,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;iBACrC,GAAG,CAAC,UAAC,EAAuB;oBAAvB,KAAA,aAAuB,EAAtB,WAAW,QAAA,EAAE,QAAQ,QAAA;gBAAM,QAAC;oBAC/B,WAAW,aAAA;oBACX,QAAQ,UAAA;iBACX;aAAC,CAAC;iBACF,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,GAAG,CAAC,CAAC,QAAQ,GAAA,CAAC,CAAC;SACpC;;;;gBA9EJJ,YAAS,SAAC;oBACP,QAAQ,EAAE,yBAAyB;oBACnC,opIAAmD;oBAEnD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;gBAVGI,cAAW;;;;QC0BX,qCAAoB,WAAwB,EAAU,cAAiC;YAAnE,gBAAW,GAAX,WAAW,CAAa;YAAU,mBAAc,GAAd,cAAc,CAAmB;YANvF,8BAAyB,GAAG,IAAIP,iBAAW,EAAE,CAAC;YAC9C,0BAAqB,GAAgE,EAAE,CAAC;SAKG;QAE3F,8CAAQ,GAAR;YAAA,iBAwBC;YAvBG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,UAAC,EAAkB;oBAAhB,cAAc,oBAAA;gBAC7E,KAAI,CAAC,qBAAqB,GAAG,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,MAAM,EAAE,IAAI;;oBAC9D,IAAM,YAAY,GAAG,KAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,cAAc,CAAC,cAAc,CAAC,CAAC;oBACnF,uCACO,MAAM,aACT,GAAC,IAAI,CAAC,EAAE,IAAG,EAAE,YAAY,cAAA,EAAE,GAAG,EAAE,YAAY,EAAE,OAChD;iBACL,EAAE,EAAE,CAAC,CAAC;gBACP,KAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;aACtC,CAAC,CAAC;YAEH,IAAI,CAAC,WAAW,CAAC,cAAc;iBAC1B,2BAA2B,EAAE;iBAC7B,SAAS,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,mBAAmB,GAAA,CAAC;iBAC3C,SAAS,CAAC,UAAA,QAAQ;gBACf,KAAI,CAAC,qBAAqB;oBACtB,QAAQ,CAAC,IAAI,CACT,UAAA,CAAC,gBAAI,OAAA,CAAC,CAAC,IAAI,MAAK,MAAA,MAAA,KAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,0CAAE,cAAc,0CAAE,sBAAsB,CAAA,CAAA,EAAA,CACtF,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACrB,KAAI,CAAC,kBAAkB,GAAGQ,mCAAgC,CAAC,KAAI,CAAC,qBAAqB,CAAC,CAAC;gBACvF,KAAI,CAAC,yBAAyB,CAAC,UAAU,CAAC,KAAI,CAAC,kBAAkB,CAAC,CAAC;gBACnE,KAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;aACtC,CAAC,CAAC;SACV;QAED,yDAAmB,GAAnB,UAAoB,IAAuB,EAAE,oBAA6B;YAChE,IAAA,KAAkC,IAAI,CAAC,cAAc,EAAnD,cAAc,oBAAA,EAAE,WAAW,iBAAwB,CAAC;YAC5D,IAAM,sBAAsB,GACxB,cAAc,KAAKC,aAAU,CAAC,OAAO,GAAG,oBAAoB,GAAG,cAAc,KAAKA,aAAU,CAAC,IAAI,CAAC;YAEtG,IAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;YACxD,OAAO,sBAAsB,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,WAAW,CAAC,GAAG,gBAAgB,CAAC;SAC9F;QAED,yDAAmB,GAAnB,UAAoB,IAAuB;;YACvC,IAAM,SAAS,GACX,MAAA,MAAA,IAAI,CAAC,YAAY,0CACX,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,OAAO,GAAA,EACnB,IAAI,GACJ,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,GAAA,EAC1C,MAAM,CAAC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAA,EAAE,CAAC,CAAC,mCAAI,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;SACpC;QAED,+CAAS,GAAT;YACI,IAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAC/D,UAAC,KAAK,EAAE,EAAgB;oBAAd,YAAY,kBAAA;gBAAO,OAAA,KAAK,GAAG,YAAY;aAAA,EACjD,CAAC,CACJ,CAAC;YACF,IAAM,WAAW,GACbC,oCAAiC,CAC7B,IAAI,CAAC,qBAAqB,EAC1B,IAAI,CAAC,yBAAyB,CAAC,KAAK,CACvC,IAAI,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;YAC9C,OAAO,WAAW,IAAI,CAAC,GAAG,UAAU,CAAC;SACxC;QAED,4CAAM,GAAN;YACI,IAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,UAAC,EAA+B;oBAA/B,KAAA,aAA+B,EAA9B,WAAW,QAAA,EAAI,YAAY,qBAAA;gBAAQ,QAAC;oBAC/F,WAAW,aAAA;oBACX,QAAQ,EAAE,YAAY;iBACzB;aAAC,CAAC,CAAC;YACJ,IAAI,CAAC,WAAW,CAAC;gBACb,KAAK,OAAA;gBACL,OAAO,EAAEC,+BAA4B,CACjC,IAAI,CAAC,kBAAkB,EACvB,IAAI,CAAC,yBAAyB,CAAC,KAAK,CACvC;aACJ,CAAC,CAAC;SACN;QAED,4CAAM,GAAN;YACI,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;;;;gBA5FJT,YAAS,SAAC;oBACP,QAAQ,EAAE,0BAA0B;oBACpC,i8FAAoD;oBAEpD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;gBAdGC,cAAW;gBAPmBQ,oBAAiB;;;;QCGnD;YASc,oBAAe,GAAG,IAAIC,eAAY,EAAU,CAAC;SA0B1D;QAxBG,qDAAkB,GAAlB;;YACI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACnB,OAAO;aACV;YACO,IAAA,UAAU,GAAK,IAAI,CAAC,WAAW,WAArB,CAAsB;YACxC,IAAM,mBAAmB,GAAG,UAAC,WAAmB,IAC5C,OAAA,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,GAAA,CAAC;YACnE,QAAQ,MAAA,IAAI,CAAC,WAAW,0CAAE,KAAK;gBAC3B,KAAK,SAAS;oBACV,OAAO,mBAAmB,CAAC,SAAS,CAAC,CAAC;gBAC1C,KAAK,SAAS;oBACV,OAAO,mBAAmB,CAAC,WAAW,CAAC,CAAC;gBAC5C;oBACI,OAAO,UAAU,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,WAAW,GAAA,CAAC,CAAC;aACtD;SACJ;QAED,kDAAe,GAAf;YACI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;gBACnB,OAAO,EAAE,CAAC;aACb;YACD,IAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,SAAS,GAAA,CAAC,CAAC;SACnE;;;;gBAlCJX,YAAS,SAAC;oBACP,QAAQ,EAAE,sBAAsB;oBAChC,mzEAAgD;oBAEhD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;8BAEIW,QAAK;wBACLA,QAAK;kCACLC,SAAM;;;;QCMP,oCAAoB,mBAAwC;YAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;YAH5D,sBAAiB,GAAwB,EAAE,CAAC;YAC5C,yBAAoB,GAAG,IAAIhB,eAAS,CAAC,EAAE,CAAC,CAAC;SAEuB;QAEhE,6CAAQ,GAAR;YACI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;SACvF;QAED,gDAAW,GAAX,UAAY,OAAsB;YAC9B,IAAI,CAAC,0BAA0B,EAAE,CAAC;SACrC;QAED,sBAAI,mDAAW;iBAAf;gBAAA,iBAEC;gBADG,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,KAAI,CAAC,aAAa,GAAA,CAAC,CAAC;aACpG;;;WAAA;QAED,sBAAI,6CAAK;iBAAT;gBAAA,iBAWC;;gBAVG,QACI,MAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,OAAO,CAAC,GAAG,CAAC,UAAA,GAAG;;oBAC7B,OAAO;wBACH,IAAI,EACA,MAAA,MAAA,KAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,EAAE,KAAK,GAAG,CAAC,SAAS,CAAC,EAAE,GAAA,CAAC,0CAAE,cAAc,CAAC,IAAI,mCAChF,EAAE;wBACN,QAAQ,EAAE,GAAG,CAAC,QAAQ;qBACzB,CAAC;iBACL,CAAC,mCAAI,EAAE,EACV;aACL;;;WAAA;QAED,+DAA0B,GAA1B;;YACI,IAAM,YAAY,GAAI,IAAI,CAAC,WAAmB,CAAC,YAAY,CAAC;;gBAC5D,KAAuB,IAAA,KAAA,SAAA,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAA,gBAAA,4BAAE;oBAA9E,IAAM,QAAQ,WAAA;oBACf,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAIC,iBAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;iBACrG;;;;;;;;;SACJ;QAED,wDAAmB,GAAnB,UAAoB,WAAoB;YACpC,OAAO,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAIgB,oBAAQ,CAAC,WAAW,CAAC,CAAC;SAC9D;;;;gBAjDJd,YAAS,SAAC;oBACP,QAAQ,EAAE,wBAAwB;oBAClC,g+BAAkD;oBAElD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;gBARwCc,sBAAmB;;;gCAUvDH,QAAK;wBACLA,QAAK;;;;QCLV;;QAGI,sBAAI,yDAAa;iBAAjB;gBACI,QAAQ,IAAI,CAAC,KAAK;oBACd,KAAK,SAAS,CAAC;oBACf,KAAK,SAAS;wBACV,OAAO,SAAS,CAAC;oBACrB,KAAK,WAAW;wBACZ,OAAO,SAAS,CAAC;oBACrB,KAAK,WAAW;wBACZ,OAAO,OAAO,CAAC;iBACtB;aACJ;;;WAAA;;;;gBAnBJZ,YAAS,SAAC;oBACP,QAAQ,EAAE,6BAA6B;oBACvC,yPAAuD;oBAEvD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;wBAEIW,QAAK;;;;QCHV;YASI,mBAAc,GAAG,CAAC,CAAC;YAEnB,iBAAY,GAGP,EAAE,CAAC;SA8CX;QA5CG,8CAAW,GAAX,UAAY,OAAsB;YAC9B,IAAI,IAAI,CAAC,IAAI,EAAE;gBACX,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAChG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACvD;SACJ;;;;QAKO,oDAAiB,GAAjB,UAAkB,IAAuB;;YAC7C,QACI,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,MAAM,CACrB,UAAC,GAAG,EAAE,WAAW,gBACb,OAAA,GAAG,IAAI,MAAA,MAAA,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,GAAA,CAAC,0CAAE,QAAQ,mCAAI,CAAC,CAAC,CAAA,EAAA,EACpF,CAAC,CACJ,mCAAI,CAAC,EACR;SACL;QAEO,uDAAoB,GAApB,UAAqB,cAAsB,EAAE,YAAoB;YACrE,IAAI,cAAc,KAAK,YAAY,EAAE;gBACjC,OAAO,MAAM,CAAC;aACjB;YACD,IAAI,CAAC,GAAG,cAAc,IAAI,cAAc,GAAG,YAAY,EAAE;gBACrD,OAAO,SAAS,CAAC;aACpB;YACD,OAAO,MAAM,CAAC;SACjB;QAEO,kDAAe,GAAf,UACJ,IAAuB;;YAEvB,QACI,MAAA,MAAA,IAAI,CAAC,YAAY,0CAAE,GAAG,CAAC,UAAA,WAAW;;gBAC9B,IAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,GAAA,CAAC,CAAC;gBAC9E,OAAO;oBACH,KAAK,EAAE,MAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,QAAQ,mCAAI,CAAC;oBACjC,WAAW,aAAA;iBACd,CAAC;aACL,CAAC,mCAAI,EAAE,EACV;SACL;;;;gBA3DJZ,YAAS,SAAC;oBACP,QAAQ,EAAE,sBAAsB;oBAChC,g1EAAgD;oBAEhD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;uBAEIW,QAAK;6BACLA,QAAK;;;;QCLV;;QAII,+CAAgB,GAAhB;;YACI,IAAM,OAAO,GACT,MAAA,MAAA,IAAI,CAAC,QAAQ,0CAAE,MAAM,CACjB,UAAC,GAAG,EAAE,OAAO,IAAK,8CAAI,GAAG,WAAK,OAAO,CAAC,OAAO,KAAC,EAC9C,EAA2B,CAC9B,mCAAI,EAAE,CAAC;YACZ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAA,CAAC;gBAC3B,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE;oBACrC,OAAO,KAAK,CAAC;iBAChB;gBACD,IAAI,CAAC,CAAC,QAAQ,EAAE;oBACZ,IAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,GAAA,CAAC,CAAC;oBACtD,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,MAAK,QAAQ,EAAE;wBAC5B,OAAO,KAAK,CAAC;qBAChB;yBAAM;wBACH,OAAO,IAAI,CAAC;qBACf;iBACJ;gBACD,OAAO,KAAK,CAAC;aAChB,CAAC,CAAC,MAAM,CAAC;SACb;;;;gBA9BJZ,YAAS,SAAC;oBACP,QAAQ,EAAE,kBAAkB;oBAC5B,wNAA4C;oBAE5C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;uBAEIW,QAAK;2BACLA,QAAK;;;;QCRV;YASY,eAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;YAClD,iBAAY,GAAG,IAAI,GAAG,EAA6B,CAAC;SAmD/D;QAjDG,iDAAW,GAAX;YACU,IAAA,KAAqB,IAAI,CAAC,gBAAgB,EAAE,EAA1C,KAAK,WAAA,EAAE,OAAO,aAA4B,CAAC;YACnD,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;SAC/B;QAED,kDAAY,GAAZ,UAAa,EAAU;YACnB,OAAO,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,EAAE,GAAA,CAAC,CAAC;SACvD;QAED,mDAAa,GAAb;YACI,OAAO,yBAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,GAAE,GAAG,CAAC,UAAC,EAAa;oBAAb,KAAA,aAAa,EAAZ,IAAI,QAAA,EAAE,KAAK,QAAA;gBACnD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;aAC9D,CAAC,CAAC;SACN;QAED,qDAAe,GAAf;YACI,OAAO,yBAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,GAAE,GAAG,CAAC,UAAC,EAAa;oBAAb,KAAA,aAAa,EAAZ,IAAI,QAAA,EAAE,KAAK,QAAA;gBACrD,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;aAC9D,CAAC,CAAC;SACN;QAEO,sDAAgB,GAAhB;;;YACJ,IAAM,KAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;YACnD,IAAM,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;;gBACrD,KAAoB,IAAA,KAAA,SAAA,IAAI,CAAC,YAAY,CAAC,UAAU,IAAI,EAAE,CAAA,gBAAA,4BAAE;oBAAnD,IAAM,KAAK,WAAA;oBACZ,IAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBAClD,IAAI,MAAM,EAAE;wBACA,IAAA,IAAI,GAAW,MAAM,KAAjB,EAAE,IAAI,GAAK,MAAM,KAAX,CAAY;wBAC9B,IAAI,IAAI,CAAC,SAAS,EAAE;4BAChB,IAAM,KAAK,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAI,CAAC,CAAC;4BACrC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;yBAChC;6BAAM;4BACH,IAAM,KAAK,GAAG,MAAA,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAI,CAAC,CAAC;4BACnC,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;yBAC9B;qBACJ;iBACJ;;;;;;;;;YACD,OAAO,EAAE,KAAK,OAAA,EAAE,OAAO,SAAA,EAAE,CAAC;SAC7B;QAEO,yDAAmB,GAAnB,UAAoB,MAAc;;;gBACtC,KAAmB,IAAA,KAAA,SAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA,gBAAA,4BAAE;oBAAhC,IAAM,IAAI,WAAA;oBACX,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,MAAM,GAAA,CAAC,CAAC;oBACnD,IAAI,IAAI,EAAE;wBACN,OAAO,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,CAAC;qBACzB;iBACJ;;;;;;;;;SACJ;;;;gBA5DJZ,YAAS,SAAC;oBACP,QAAQ,EAAE,yBAAyB;oBACnC,i7BAAmD;oBAEnD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;wBAEIW,QAAK;+BACLA,QAAK;;;;QCMN,wCAAoB,WAAwB,EAAU,YAA0B;YAA5D,gBAAW,GAAX,WAAW,CAAa;YAAU,iBAAY,GAAZ,YAAY,CAAc;YALvE,uBAAkB,GAAwB,EAAE,CAAC;YAC7C,sBAAiB,GAA4B,EAAE,CAAC;YAC/C,gBAAW,GAAG,IAAID,eAAY,EAAO,CAAC;YAEhD,aAAQ,GAAG,KAAK,CAAC;SACmE;QAEpF,iDAAQ,GAAR;;YACI,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;;gBAClD,KAAoB,IAAA,KAAA,SAAA,IAAI,CAAC,kBAAkB,CAAA,gBAAA,4BAAE;oBAAxC,IAAM,KAAK,WAAA;oBACZ,IAAI,CAAC,eAAe,CAAC,UAAU,CAC3B,KAAK,CAAC,IAAI,EACV,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAC/D,CAAC;iBACL;;;;;;;;;SACJ;QAED,sDAAa,GAAb;YACI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAClD,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACzB;QAED,sDAAa,GAAb;YAAA,iBAoBC;YAnBG,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE;gBAC5B,IAAI,CAAC,YAAY;qBACZ,MAAM,CAAC;oBACJ,KAAK,EAAEP,gCAAC,CAAC,wBAAwB,CAAC;oBAClC,OAAO,EAAE;wBACL,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAEA,gCAAC,CAAC,qBAAqB,CAAC,EAAE;wBACtD,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAEA,gCAAC,CAAC,wBAAwB,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;qBAC5E;iBACJ,CAAC;qBACD,SAAS,CAAC,UAAA,MAAM;oBACb,IAAI,MAAM,EAAE;wBACR,KAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;wBAC7B,KAAI,CAAC,eAAe,CAAC,cAAc,EAAE,CAAC;wBACtC,KAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;qBACzB;iBACJ,CAAC,CAAC;aACV;iBAAM;gBACH,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;aACzB;SACJ;;;;gBAlDJJ,YAAS,SAAC;oBACP,QAAQ,EAAE,8BAA8B;oBACxC,2iDAAwD;oBAExD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;gBATQe,iBAAW;gBAEQC,eAAY;;;qCASnCL,QAAK;oCACLA,QAAK;8BACLC,SAAM;;;;QCXX;YAQI,eAAU,GAAa,EAAE,CAAC;YAC1B,YAAO,GAAG,EAAE,CAAC;YAEb,kBAAa,GAAG,EAAE,CAAC;SAWtB;QATG,gDAAM,GAAN;YACI,IAAI,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACxC;SACJ;QAED,gDAAM,GAAN;YACI,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;;;;gBArBJb,YAAS,SAAC;oBACP,QAAQ,EAAE,+BAA+B;oBACzC,g3BAAyD;oBAEzD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;;QCWG,gCACY,WAAwB,EACxB,YAA0B,EAC1B,mBAAwC,EACxC,WAAwB;YAHxB,gBAAW,GAAX,WAAW,CAAa;YACxB,iBAAY,GAAZ,YAAY,CAAc;YAC1B,wBAAmB,GAAnB,mBAAmB,CAAqB;YACxC,gBAAW,GAAX,WAAW,CAAa;SAChC;;;;;QAMJ,8DAA6B,GAA7B,UAA8B,OAAe,EAAE,UAAoB;YAAnE,iBAsBC;YArBG,OAAO,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,IAAI,CAC1CiB,mBAAS,CAAC,UAAA,KAAK;gBACX,IAAM,uBAAuB,GAAG;oBAC5B,OAAO,SAAA;oBACP,UAAU,YAAA;oBACV,OAAO,EAAE,KAAI,CAAC,WAAW,CAAC,SAAS,CAC/Bd,gCAAC,CAAC,iDAAiD,CAAC,EACpD,EAAE,KAAK,OAAA,EAAE,CACZ;oBACD,WAAW,EAAE,KAAK;oBAClB,KAAK,EAAE,EAAE;iBACZ,CAAC;gBACF,IAAI,KAAK,EAAE;oBACP,OAAO,KAAI,CAAC,wBAAwB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CACrDe,oBAAU,CAAC,UAAA,GAAG,IAAI,OAAA,KAAI,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,GAAA,CAAC,CAC7E,CAAC;iBACL;qBAAM;oBACH,OAAO,KAAI,CAAC,yBAAyB,CAAC,uBAAuB,CAAC,CAAC;iBAClE;aACJ,CAAC,CACL,CAAC;SACL;;;;QAKD,0DAAyB,GAAzB,UAA0B,OAMzB;YAND,iBA+BC;YAxBG,OAAO,IAAI,CAAC,YAAY;iBACnB,aAAa,CAAC,+BAA+B,EAAE;gBAC5C,MAAM,EAAE;oBACJ,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,OAAO,EAAE,OAAO,CAAC,OAAO;iBAC3B;gBACD,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,IAAI;aACb,CAAC;iBACD,IAAI,CACDD,mBAAS,CAAC,UAAA,MAAM;gBACZ,IAAI,MAAM,EAAE;oBACR,OAAO,KAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;iBACjE;qBAAM;oBACH,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE;wBACtB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;qBACtD;yBAAM;wBACH,OAAOE,UAAK,CAAC;qBAChB;iBACJ;aACJ,CAAC,EACFC,mBAAS,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,IAAI,CAACC,eAAK,CAAC,IAAI,CAAC,EAAEC,cAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAA,CAAC,CACrE,CAAC;SACT;;;;;QAMO,qDAAoB,GAApB,UAAqB,OAAe;YACxC,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK;iBACxB,eAAe,CAAC,OAAO,EAAE;gBACtB,MAAM,EAAE;oBACJ,IAAI,EAAE;wBACF,EAAE,EAAEC,mBAAgB,CAAC,sBAAsB;qBAC9C;iBACJ;gBACD,IAAI,EAAE;oBACF,SAAS,EAAEC,YAAS,CAAC,IAAI;iBAC5B;aACJ,CAAC;iBACD,SAAS,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,KAAK,GAAA,CAAC;iBACjC,IAAI,CACDC,aAAG,CAAC,UAAA,MAAM;gBACN,IAAM,IAAI,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,GAAA,CAAC,CAAC;gBACxE,IAAI,IAAI,EAAE;oBACN,OAAO,IAAI,CAAC,IAAI,CAAC,IAAc,CAAC;iBACnC;qBAAM;oBACH,OAAO;iBACV;aACJ,CAAC,CACL,CAAC;SACT;QAEO,yDAAwB,GAAxB,UAAyB,OAAe,EAAE,KAAa;YAAvD,iBAYP;YAXG,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,IAAI,CAChEA,aAAG,CAAC,UAAC,EAA0B;oBAAxB,sBAAsB,4BAAA;gBACzB,QAAQ,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,UAAU;oBACtC,KAAK,OAAO;wBACR,OAAO,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,KAAK,CAAC;oBACzC,KAAK,2BAA2B;wBAC5B,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,eAAe,CAAC,CAAC;wBACxE,MAAM,IAAI,KAAK,CAAC,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,eAAe,CAAC,CAAC;iBAChE;aACJ,CAAC,CACL,CAAC;SACL;;;;;gBApHJC,aAAU,SAAC;oBACR,UAAU,EAAE,MAAM;iBACrB;;;gBAdGzB,cAAW;gBAGXe,eAAY;gBACZW,sBAAmB;gBAFnBvB,cAAW;;;;QCcX,0CAAoB,mBAAwC;YAAxC,wBAAmB,GAAnB,mBAAmB,CAAqB;YAD5D,WAAM,GAAwB,EAAE,CAAC;SAC+B;QAEhE,mDAAQ,GAAR;YACI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,CAAC;SAClE;;;;gBAbJL,YAAS,SAAC;oBACP,QAAQ,EAAE,gCAAgC;oBAC1C,qNAA0D;oBAE1D,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;gBATGc,sBAAmB;;;;QCgCnB,oCAAoB,WAAwB;YAA5C,iBAEC;;YAFmB,gBAAW,GAAX,WAAW,CAAa;YAR5C,mBAAc,GAAwC,EAAE,CAAC;YACzD,mBAAc,GAAG,KAAK,CAAC;YACvB,eAAU,GAAG,CAAC,CAAC;YACf,YAAO,GAAG,MAAAZ,eAAY,EAAE,CAAC,mBAAmB,mCAAI;gBAC5CC,gCAAC,CAAC,sCAAsC,CAAC;gBACzCA,gCAAC,CAAC,mCAAmC,CAAC;aACzC,CAAC;YAGE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,GAAA,CAAC,CAAC;SACvE;QAED,sBAAI,mDAAW;iBAAf;gBAAA,iBAOC;gBANG,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,IAAI;oBAClD,IAAM,OAAO,GAAG,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBAC7C,IAAM,WAAW,GAAG,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,CAAC,CAAC;oBAC9D,OAAO,KAAK,GAAG,IAAI,CAAC,wBAAwB,GAAG,WAAW,CAAC;iBAC9D,EAAE,CAAC,CAAC,CAAC;gBACN,OAAO,SAAS,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;aAC/F;;;WAAA;QAED,sBAAI,4DAAoB;iBAAxB;gBACI,OAAO,IAAI,CAAC,eAAe;qBACtB,GAAG,CAAC,UAAA,OAAO;oBACR,IAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;oBACpC,IAAM,oBAAoB,GAAGyB,mBAAO,CAChC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,KAAK,QAAQ,GAAA,CAAyC,EACzF,OAAO,CACV,CAAC;oBACF,OAAO,YAAY,GAAG,oBAAoB,CAAC;iBAC9C,CAAC;qBACD,MAAM,CAAC,UAAC,GAAG,EAAE,MAAM,IAAK,OAAA,GAAG,GAAG,MAAM,GAAA,EAAE,CAAC,CAAC,CAAC;aACjD;;;WAAA;QAED,iEAA4B,GAA5B,UAA6B,IAAuB;;YAChD,IAAM,OAAO,GACT,MAAA,MAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,0CAAE,MAAM,CACvB,UAAC,GAAG,EAAE,OAAO,IAAK,8CAAI,GAAG,WAAK,OAAO,CAAC,OAAO,KAAC,EAC9C,EAA2B,CAC9B,mCAAI,EAAE,CAAC;YAEZ,IAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAA,CAAC;gBAClC,IAAI,CAAC,CAAC,SAAS,EAAE;oBACb,OAAO,KAAK,CAAC;iBAChB;gBACD,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE;oBACpB,OAAO,IAAI,CAAC;iBACf;gBACD,IAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,QAAQ,GAAA,CAAC,CAAC;gBACtD,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,MAAK,QAAQ,CAAC;aACrC,CAAC,CAAC;YACH,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;SAChC;QAED,6CAAQ,GAAR;YACI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,UAAC,MAAM,EAAE,IAAI;;gBACvD,uCACO,MAAM,aACT,GAAC,IAAI,CAAC,EAAE,IAAG;oBACP,QAAQ,EAAE,CAAC;oBACX,MAAM,EAAE,KAAK;oBACb,MAAM,EAAE,KAAK;iBAChB,OACH;aACL,EAAE,EAAE,CAAC,CAAC;YACP,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,KAAK,SAAS,GAAA,CAAC,CAAC;YACtF,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;gBAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;aAClD;SACJ;QAED,uDAAkB,GAAlB,UAAmB,IAAoB;YACnC,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,MAAK,CAAC,EAAE;gBACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACvB;SACJ;QAED,gDAAW,GAAX;YACI,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,UAAC,WAAW,EAAE,IAAI;gBACvE,OAAO,WAAW,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5D,EAAE,KAAK,CAAC,CAAC;YACV,OAAO,MAAM,CAAC;SACjB;QAED,iDAAY,GAAZ;YACI,IAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,UAAC,YAAY,EAAE,IAAI;gBACxE,OAAO,YAAY,KAAK,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;aAC7D,EAAE,KAAK,CAAC,CAAC;YACV,OAAO,MAAM,CAAC;SACjB;QAED,8CAAS,GAAT;YACI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;gBACpB,OAAO,CAAC,EACJ,IAAI,CAAC,eAAe;oBACpB,IAAI,CAAC,MAAM;oBACX,CAAC,GAAG,IAAI,CAAC,WAAW;oBACpB,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,oBAAoB,CAChD,CAAC;aACL;iBAAM,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE;gBAC5B,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;aACxB;YACD,OAAO,KAAK,CAAC;SAChB;QAED,2CAAM,GAAN;YACI,IAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC;YACrC,IAAI,OAAO,EAAE;gBACT,IAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,GAAA,CAAC,CAAC;gBAChE,IAAM,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,GAAA,CAAC,CAAC;gBAEhE,IAAI,CAAC,WAAW,CAAC;oBACb,MAAM,EAAE;wBACJ,KAAK,EAAE,WAAW;wBAClB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,QAAQ,EAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC;wBAC9D,UAAU,EAAE,IAAI,CAAC,UAAU;wBAC3B,SAAS,EAAE,OAAO,CAAC,EAAE;qBACxB;oBACD,MAAM,EAAE;wBACJ,KAAK,EAAE,WAAW;wBAClB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE;wBACtB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,cAAc,EAAE,IAAI,CAAC,cAAc;qBACtC;iBACJ,CAAC,CAAC;aACN;SACJ;QAED,2CAAM,GAAN;YACI,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;QAEO,sDAAiB,GAAjB,UAAkB,QAA0C;YAChE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;iBACrC,MAAM,CAAC,UAAC,EAAmB;oBAAnB,KAAA,aAAmB,EAAlB,WAAW,QAAA,EAAE,IAAI,QAAA;gBAAM,OAAA,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC;aAAA,CAAC;iBACpE,GAAG,CAAC,UAAC,EAAmB;oBAAnB,KAAA,aAAmB,EAAlB,WAAW,QAAA,EAAE,IAAI,QAAA;gBAAM,QAAC;oBAC3B,WAAW,aAAA;oBACX,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBAC1B;aAAC,CAAC,CAAC;SACX;;;;gBA3JJ7B,YAAS,SAAC;oBACP,QAAQ,EAAE,yBAAyB;oBACnC,+iSAAmD;oBAEnD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;gBAfGI,cAAW;;;;QCDf;YAQI,kBAAa,GAAG,EAAE,CAAC;SAUtB;QAPG,4CAAM,GAAN;YACI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SACxC;QAED,4CAAM,GAAN;YACI,IAAI,CAAC,WAAW,EAAE,CAAC;SACtB;;;;gBAjBJL,YAAS,SAAC;oBACP,QAAQ,EAAE,0BAA0B;oBACpC,2vBAAoD;oBAEpD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;;QCqCW,wCAAyC;QAuBjD,8BACI,MAAc,EACd,KAAqB,EACrB,mBAAwC,EAChC,cAAiC,EAC/B,WAAwB,EAC1B,mBAAwC,EACxC,YAA0B,EAC1B,sBAA8C;YAR1D,YAUI,kBAAM,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,CAAC,SACzD;YAPW,oBAAc,GAAd,cAAc,CAAmB;YAC/B,iBAAW,GAAX,WAAW,CAAa;YAC1B,yBAAmB,GAAnB,mBAAmB,CAAqB;YACxC,kBAAY,GAAZ,YAAY,CAAc;YAC1B,4BAAsB,GAAtB,sBAAsB,CAAwB;YA5B1D,gBAAU,GAAG,IAAIJ,eAAS,CAAC,EAAE,CAAC,CAAC;YAG/B,kBAAY,GAAG,IAAIiC,YAAO,EAAQ,CAAC;YAGlB,mBAAa,GAAG;gBAC7B,aAAa;gBACb,kBAAkB;gBAClB,mBAAmB;gBACnB,gBAAgB;gBAChB,kBAAkB;gBAClB,SAAS;gBACT,oBAAoB;gBACpB,WAAW;gBACX,WAAW;gBACX,WAAW;gBACX,4BAA4B;aAC/B,CAAC;;SAaD;QAED,uCAAQ,GAAR;YAAA,iBA6BC;YA5BG,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,IAAI,CAACP,cAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,KAAK;gBACtC,IAAI,KAAK,CAAC,KAAK,KAAK,WAAW,EAAE;oBAC7B,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,UAAU,EAAE,KAAI,CAAC,KAAK,EAAE,CAAC,CAAC;iBACtE;aACJ,CAAC,CAAC;YACH,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YACvD,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YACpE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAClCQ,mBAAS,CAAC,IAAI,CAAC,EACfb,mBAAS,CAAC;gBACN,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK;qBACxB,eAAe,CAAC,KAAI,CAAC,EAAE,EAAE;oBACtB,IAAI,EAAE;wBACF,SAAS,EAAEO,YAAS,CAAC,IAAI;qBAC5B;iBACJ,CAAC;qBACD,SAAS,CAAC,UAAA,IAAI,YAAI,OAAA,MAAA,IAAI,CAAC,KAAK,0CAAE,OAAO,CAAC,KAAK,CAAA,EAAA,CAAC,CAAC;aACrD,CAAC,CACL,CAAC;YACF,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAChCC,aAAG,CAAC,UAAA,KAAK;gBACL,IAAM,eAAe,GAAG,CAAC,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAClE,OAAO,eAAe;sBAChB,KAAK,CAAC,UAAU;sBAChB,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAA,CAAC,CAAC;aACvE,CAAC,CACL,CAAC;SACL;QAED,0CAAW,GAAX;YACI,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;QAED,+CAAgB,GAAhB;YAAA,iBAcC;YAbG,IAAI,CAAC,OAAO;iBACP,IAAI,CACDH,cAAI,CAAC,CAAC,CAAC,EACPL,mBAAS,CAAC,UAAA,KAAK,IACX,OAAA,KAAI,CAAC,YAAY,CAAC,aAAa,CAAC,gCAAgC,EAAE;gBAC9D,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE;oBACJ,WAAW,EAAE,KAAK,CAAC,KAAK;iBAC3B;aACJ,CAAC,GAAA,CACL,CACJ;iBACA,SAAS,EAAE,CAAC;SACpB;QAED,gDAAiB,GAAjB,UAAkB,KAAa;YAA/B,iBAWC;YAVG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,SAAS,CAAC,UAAC,EAA0B;oBAAxB,sBAAsB,4BAAA;gBACxF,QAAQ,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,UAAU;oBACtC,KAAK,OAAO;wBACR,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAACd,gCAAC,CAAC,qCAAqC,CAAC,EAAE,EAAE,KAAK,OAAA,EAAE,CAAC,CAAC;wBACtF,KAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;wBACzB,MAAM;oBACV,KAAK,2BAA2B;wBAC5B,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;iBAC9E;aACJ,CAAC,CAAC;SACN;QAED,wDAAyB,GAAzB,UAA0B,KAA0B;YAChD,IAAI,CAAC,sBAAsB;iBACtB,yBAAyB,CAAC;gBACvB,OAAO,EAAE,KAAK,CAAC,EAAE;gBACjB,UAAU,EAAE,KAAK,CAAC,UAAU;gBAC5B,WAAW,EAAE,IAAI;gBACjB,OAAO,EAAEA,gCAAC,CAAC,4CAA4C,CAAC;gBACxD,KAAK,EAAE,CAAC;aACX,CAAC;iBACD,SAAS,EAAE,CAAC;SACpB;QAED,oDAAqB,GAArB;YAAA,iBAYC;YAXG,IAAI,CAAC,WAAW,CAAC,KAAK;iBACjB,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC;iBACvC,SAAS,CAAC,UAAC,EAA0B;oBAAxB,sBAAsB,4BAAA;gBAChC,QAAQ,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,UAAU;oBACtC,KAAK,OAAO;wBACR,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,UAAU,EAAE,KAAI,CAAC,KAAK,EAAE,CAAC,CAAC;wBAC/D,MAAM;oBACV,KAAK,2BAA2B;wBAC5B,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC;iBAC9E;aACJ,CAAC,CAAC;SACV;QAED,iDAAkB,GAAlB,UAAmB,iBAAsB;YAAzC,iBASC;YARG,IAAI,CAAC,WAAW,CAAC,KAAK;iBACjB,uBAAuB,CAAC;gBACrB,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,YAAY,EAAE,iBAAiB;aAClC,CAAC;iBACD,SAAS,CAAC;gBACP,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,gCAAC,CAAC,8BAA8B,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;aAC5F,CAAC,CAAC;SACV;QAED,mDAAoB,GAApB,UAAqB,YAAwC;YACzD,IAAI,CAAC,YAAY,EAAE;gBACf,OAAO,EAAE,CAAC;aACb;YACD,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;iBAC7B,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,KAAK,cAAc,GAAA,CAAC;iBACrC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,CAAC,IAAI,GAAA,CAAC,CAAC;SAC/B;QAED,4CAAa,GAAb,UAAc,OAA6B;YAA3C,iBAkBC;YAjBG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,UAAC,EAAiB;oBAAf,aAAa,mBAAA;gBACvE,QAAQ,aAAa,CAAC,UAAU;oBAC5B,KAAK,SAAS;wBACV,IAAI,aAAa,CAAC,KAAK,KAAK,SAAS,EAAE;4BACnC,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,gCAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC;yBACvE;6BAAM;4BACH,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAACA,gCAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC;yBACnE;wBACD,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;wBAC7D,KAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;wBACzB,MAAM;oBACV,KAAK,2BAA2B,CAAC;oBACjC,KAAK,6BAA6B,CAAC;oBACnC,KAAK,oBAAoB;wBACrB,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;iBAC7D;aACJ,CAAC,CAAC;SACN;QAED,qDAAsB,GAAtB,UAAuB,EAAoE;YAA3F,iBAwCC;gBAxCwB,OAAO,aAAA,EAAE,KAAK,WAAA;YACnC,IAAI,KAAK,KAAK,WAAW,EAAE;gBACvB,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,UAAC,EAAiB;wBAAf,aAAa,mBAAA;oBACvE,QAAQ,aAAa,CAAC,UAAU;wBAC5B,KAAK,SAAS;4BACV,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,gCAAC,CAAC,6CAA6C,CAAC,EAAE;gCAC/E,KAAK,OAAA;6BACR,CAAC,CAAC;4BACH,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;4BAC7D,KAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;4BACzB,MAAM;wBACV,KAAK,6BAA6B;4BAC9B,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;4BAC9D,MAAM;wBACV,KAAK,oBAAoB;4BACrB,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;4BAClE,MAAM;qBACb;iBACJ,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,WAAW,CAAC,KAAK;qBACjB,wBAAwB,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,CAAC;qBAC3C,SAAS,CAAC,UAAC,EAA4B;wBAA1B,wBAAwB,8BAAA;oBAClC,QAAQ,wBAAwB,CAAC,UAAU;wBACvC,KAAK,SAAS;4BACV,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAC5BA,gCAAC,CAAC,6CAA6C,CAAC,EAChD;gCACI,KAAK,OAAA;6BACR,CACJ,CAAC;4BACF,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;4BAC7D,KAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;4BACzB,MAAM;wBACV,KAAK,6BAA6B;4BAC9B,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;4BACjE,MAAM;qBACb;iBACJ,CAAC,CAAC;aACV;SACJ;QAED,gDAAiB,GAAjB,UAAkB,KAA2B;;;YACzC,IAAM,yBAAyB,GAAmC,CAAC,MAAA,KAAK,CAAC,YAAY,mCAAI,EAAE,EAAE,MAAM,CAC/F,UAAC,GAAG,EAAE,WAAW,IAAK,8CAAI,GAAG,WAAK,WAAW,CAAC,OAAO,KAAC,EACtD,EAAoC,CACvC,CAAC;YACF,IAAI,iBAAiB,GAAG,IAAI,CAAC;oCAClB,IAAI;gBACX,IAAM,mBAAmB,GAAG,yBAAyB;qBAChD,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,GAAA,CAAC;qBAC3C,MAAM,CAAC,UAAC,GAAG,EAAE,GAAG,IAAK,OAAA,GAAG,GAAG,GAAG,CAAC,QAAQ,GAAA,EAAE,CAAC,CAAC,CAAC;gBACjD,IAAI,mBAAmB,GAAG,IAAI,CAAC,QAAQ,EAAE;oBACrC,iBAAiB,GAAG,KAAK,CAAC;iBAC7B;;;gBANL,KAAmB,IAAA,KAAA,SAAA,KAAK,CAAC,KAAK,CAAA,gBAAA;oBAAzB,IAAM,IAAI,WAAA;4BAAJ,IAAI;iBAOd;;;;;;;;;YACD,QACI,CAAC,iBAAiB;gBAClB,CAAC,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;gBACtC,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,KAAK,CAAC;iBACzC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;oBACjC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,kBAAkB,CAAC;oBAC7C,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,EAC7C;SACL;QAED,wDAAyB,GAAzB,UAA0B,KAA0B;YAChD,OAAO,CAAC,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,SAAS,GAAA,CAAC,CAAC,MAAM,CAAC;SACnE;QAED,+DAAgC,GAAhC,UAAiC,KAA0B;YACvD,OAAOyB,mBAAO,CACV,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,SAAS,GAAA,CAAC,EAC7C,aAAa,CAChB,CAAC;SACL;QAED,uDAAwB,GAAxB,UAAyB,KAA0B;;;YAC/C,IAAM,cAAc,GAAG,UAAC,CAAuB,IAC3C,OAAA,CAAC,CAAC,KAAK,KAAK,WAAW,IAAI,CAAC,CAAC,KAAK,KAAK,UAAU,IAAI,CAAC,CAAC,KAAK,KAAK,OAAO,GAAA,CAAC;YAE7E,IAAI,aAAa,GAAG,CAAC,CAAC;;gBACtB,KAAsB,IAAA,KAAA,SAAA,MAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,CAAC,cAAc,CAAC,mCAAI,EAAE,CAAA,gBAAA,4BAAE;oBAA/D,IAAM,OAAO,WAAA;oBACd,IAAM,OAAO,GAAG,MAAA,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,KAAK,QAAQ,GAAA,CAAC,mCAAI,EAAE,CAAC;oBACxE,IAAM,YAAY,GAAGA,mBAAO,CAAC,OAAkC,EAAE,OAAO,CAAC,CAAC;oBAC1E,aAAa,IAAI,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC;iBAClD;;;;;;;;;YACD,OAAO,KAAK,CAAC,YAAY,GAAG,aAAa,CAAC;SAC7C;QAED,+CAAgB,GAAhB,UAAiB,KAA0B;YAA3C,iBAkDC;YAjDG,IAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,YAAY;iBACZ,aAAa,CAAC,+BAA+B,EAAE;gBAC5C,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE;oBACJ,iBAAiB,EAAE,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC;oBACvD,YAAY,EAAE,KAAK,CAAC,YAAY;iBACnC;aACJ,CAAC;iBACD,IAAI,CACDX,mBAAS,CAAC,UAAA,MAAM;gBACZ,IAAI,MAAM,EAAE;oBACR,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,uBAAuB,CAAC;wBAClD,OAAO,EAAE,KAAI,CAAC,EAAE;wBAChB,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,MAAM,EAAE,MAAM,CAAC,MAAM;wBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;qBAClC,CAAC,CAAC;iBACN;qBAAM;oBACH,OAAOE,UAAK,CAAC;iBAChB;aACJ,CAAC,EACFF,mBAAS,CAAC,UAAC,EAA2B;oBAAzB,uBAAuB,6BAAA;gBAChC,QAAQ,uBAAuB,CAAC,UAAU;oBACtC,KAAK,OAAO;wBACR,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAACd,gCAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC;wBAC1E,IAAI,UAAU,KAAK,4BAA4B,EAAE;4BAC7C,OAAO,KAAI,CAAC,sBAAsB,CAAC,6BAA6B,CAC5D,KAAK,CAAC,EAAE,EACR,KAAK,CAAC,UAAU,CACnB,CAAC;yBACL;6BAAM;4BACH,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK;iCACxB,iBAAiB,CAAC,KAAI,CAAC,EAAE,EAAE,gBAAgB,CAAC;iCAC5C,IAAI,CAAC4B,eAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;yBACtC;oBACL,KAAK,yBAAyB;wBAC1B,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;wBAChE,OAAOZ,UAAK,CAAC;oBACjB;wBACI,OAAOA,UAAK,CAAC;iBACpB;aACJ,CAAC,CACL;iBACA,SAAS,CAAC,UAAA,MAAM;gBACb,IAAI,MAAM,EAAE;oBACR,KAAI,CAAC,YAAY,CAAC,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;iBACjC;aACJ,CAAC,CAAC;SACV;QAED,2CAAY,GAAZ;YAAA,iBAgDC;YA/CG,IAAI,CAAC,OAAO;iBACP,IAAI,CACDG,cAAI,CAAC,CAAC,CAAC,EACPL,mBAAS,CAAC,UAAA,KAAK;gBACX,OAAO,KAAI,CAAC,YAAY,CAAC,aAAa,CAAC,2BAA2B,EAAE;oBAChE,IAAI,EAAE,IAAI;oBACV,MAAM,EAAE;wBACJ,KAAK,OAAA;qBACR;iBACJ,CAAC,CAAC;aACN,CAAC,EACFA,mBAAS,CAAC,UAAA,KAAK;gBACX,IAAI,KAAK,EAAE;oBACP,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;iBAC1D;qBAAM;oBACH,OAAOe,OAAE,CAAC,SAAS,CAAC,CAAC;iBACxB;aACJ,CAAC,EACFf,mBAAS,CAAC,UAAA,MAAM,IAAI,OAAA,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,IAAI,CAACc,eAAK,CAAC,MAAM,CAAC,CAAC,GAAA,CAAC,CACrE;iBACA,SAAS,CAAC,UAAA,MAAM;gBACb,IAAI,MAAM,EAAE;oBACA,IAAA,qBAAqB,GAAK,MAAM,sBAAX,CAAY;oBACzC,QAAQ,qBAAqB,CAAC,UAAU;wBACpC,KAAK,aAAa;4BACd,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC5B,gCAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC;4BACxE,MAAM;wBACV,KAAK,8BAA8B,CAAC;wBACpC,KAAK,8BAA8B,CAAC;wBACpC,KAAK,4BAA4B,CAAC;wBAClC,KAAK,gCAAgC;4BACjC,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;4BAC9D,MAAM;wBACV,KAAK,iCAAiC;4BAClC,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,qBAAqB,CAAC,eAAe,CAAC,CAAC;4BACtE,MAAM;wBACV,KAAK,wBAAwB;4BACzB,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,qBAAqB,CAAC,uBAAuB,CAAC,CAAC;4BAC9E,MAAM;wBACV,KAAK,SAAS;4BACV,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC,CAAC;4BACtE,MAAM;wBACV;4BACI8B,uBAAW,CAAC,qBAAqB,CAAC,CAAC;qBAC1C;iBACJ;aACJ,CAAC,CAAC;SACV;QAED,oDAAqB,GAArB,UAAsB,EAAU,EAAE,KAAa;YAA/C,iBAOC;YANG,IAAI,CAAC,WAAW,CAAC,KAAK;iBACjB,4BAA4B,CAAC,EAAE,EAAE,KAAK,CAAC;iBACvC,IAAI,CAAChB,mBAAS,CAAC,UAAA,MAAM,IAAI,OAAA,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAA,CAAC,CAAC;iBACpD,SAAS,CAAC;gBACP,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAACd,gCAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC;aACjF,CAAC,CAAC;SACV;QAED,6CAAc,GAAd,UAAe,KAA2B;YACtC,IAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACzD,IAAI,KAAK,CAAC,KAAK,KAAK,mBAAmB,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,EAAE;gBAC/E,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aAC3B;iBAAM;gBACH,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aAC3B;SACJ;QAED,2CAAY,GAAZ,UAAa,MAA2B;YAAxC,iBA6BC;YA5BG,IAAI,CAAC,YAAY;iBACZ,aAAa,CAAC,2BAA2B,EAAE;gBACxC,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE;oBACJ,MAAM,QAAA;iBACT;aACJ,CAAC;iBACD,IAAI,CACDc,mBAAS,CAAC,UAAA,aAAa;gBACnB,IAAI,aAAa,EAAE;oBACf,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,YAAY,CACtC;wBACI,aAAa,eAAA;wBACb,EAAE,EAAE,MAAM,CAAC,EAAE;qBAChB,EACD,KAAI,CAAC,EAAE,CACV,CAAC;iBACL;qBAAM;oBACH,OAAOe,OAAE,CAAC,SAAS,CAAC,CAAC;iBACxB;aACJ,CAAC,CAEL;iBACA,SAAS,CAAC,UAAA,MAAM;gBACb,IAAI,MAAM,EAAE;oBACR,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC7B,gCAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC;iBACtE;aACJ,CAAC,CAAC;SACV;QAED,sCAAO,GAAP,UAAQ,KAA0C;YAAlD,iBAcC;YAbW,IAAA,IAAI,GAAe,KAAK,KAApB,EAAE,QAAQ,GAAK,KAAK,SAAV,CAAW;YACjC,IAAI,CAAC,WAAW,CAAC,KAAK;iBACjB,cAAc,CAAC;gBACZ,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,MAAA;gBACJ,QAAQ,UAAA;aACX,CAAC;iBACD,IAAI,CAACc,mBAAS,CAAC,UAAA,MAAM,IAAI,OAAA,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAA,CAAC,CAAC;iBACpD,SAAS,CAAC,UAAA,MAAM;gBACb,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAACd,gCAAC,CAAC,8BAA8B,CAAC,EAAE;oBAChE,MAAM,EAAE,MAAM;iBACjB,CAAC,CAAC;aACN,CAAC,CAAC;SACV;QAED,yCAAU,GAAV,UAAW,KAAmB;YAA9B,iBA6BC;YA5BG,IAAI,CAAC,YAAY;iBACZ,aAAa,CAAC+B,0BAAuB,EAAE;gBACpC,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE;oBACJ,sBAAsB,EAAE,IAAI;oBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;oBACrB,aAAa,EAAE,CAAC,KAAK,CAAC,QAAQ;iBACjC;aACJ,CAAC;iBACD,IAAI,CACDjB,mBAAS,CAAC,UAAA,MAAM;gBACZ,IAAI,MAAM,EAAE;oBACR,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC;wBAC1C,MAAM,EAAE,KAAK,CAAC,EAAE;wBAChB,QAAQ,EAAE,CAAC,MAAM,CAAC,SAAS;wBAC3B,IAAI,EAAE,MAAM,CAAC,IAAI;qBACpB,CAAC,CAAC;iBACN;qBAAM;oBACH,OAAOE,UAAK,CAAC;iBAChB;aACJ,CAAC,CACL;iBACA,SAAS,CAAC,UAAA,MAAM;gBACb,KAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBACzB,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAAChB,gCAAC,CAAC,8BAA8B,CAAC,EAAE;oBAChE,MAAM,EAAE,MAAM;iBACjB,CAAC,CAAC;aACN,CAAC,CAAC;SACV;QAED,yCAAU,GAAV,UAAW,KAAmB;YAA9B,iBAiBC;YAhBG,OAAO,IAAI,CAAC,YAAY;iBACnB,MAAM,CAAC;gBACJ,KAAK,EAAEA,gCAAC,CAAC,4BAA4B,CAAC;gBACtC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;gBACrB,OAAO,EAAE;oBACL,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAEA,gCAAC,CAAC,eAAe,CAAC,EAAE;oBAChD,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAEA,gCAAC,CAAC,eAAe,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE;iBACnE;aACJ,CAAC;iBACD,IAAI,CAACc,mBAAS,CAAC,UAAA,GAAG,IAAI,QAAC,GAAG,GAAG,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,GAAGE,UAAK,IAAC,CAAC,CAAC;iBACxF,SAAS,CAAC;gBACP,KAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;gBACzB,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAAChB,gCAAC,CAAC,8BAA8B,CAAC,EAAE;oBAChE,MAAM,EAAE,MAAM;iBACjB,CAAC,CAAC;aACN,CAAC,CAAC;SACV;QAED,sDAAuB,GAAvB,UAAwB,KAA2B;;YAC/C,OAAO,CAAC,EAAC,MAAA,KAAK,CAAC,QAAQ,0CAAE,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,KAAK,SAAS,GAAA,CAAC,CAAA,CAAC;SAC7D;QAEO,0CAAW,GAAX,UAAY,KAA2B;YAAvC,iBAuBP;YAtBG,IAAI,CAAC,YAAY;iBACZ,aAAa,CAAC,0BAA0B,EAAE;gBACvC,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE;oBACJ,KAAK,OAAA;iBACR;aACJ,CAAC;iBACD,IAAI,CACDc,mBAAS,CAAC,UAAA,KAAK;gBACX,IAAI,KAAK,EAAE;oBACP,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;iBACpD;qBAAM;oBACH,OAAOe,OAAE,CAAC,SAAS,CAAC,CAAC;iBACxB;aACJ,CAAC,EACFf,mBAAS,CAAC,UAAA,MAAM,IAAI,OAAA,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAA,CAAC,CACjD;iBACA,SAAS,CAAC,UAAA,MAAM;gBACb,IAAI,MAAM,EAAE;oBACR,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAACd,gCAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC;iBACxE;aACJ,CAAC,CAAC;SACV;QAEO,0CAAW,GAAX,UAAY,KAA2B;YAAvC,iBAuEP;YAtEG,IAAI,CAAC,YAAY;iBACZ,aAAa,CAAC,0BAA0B,EAAE;gBACvC,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE;oBACJ,KAAK,OAAA;iBACR;aACJ,CAAC;iBACD,IAAI,CACDc,mBAAS,CAAC,UAAA,KAAK;;gBACX,IAAI,CAAC,KAAK,EAAE;oBACR,OAAOe,OAAE,CAAC,SAAS,CAAC,CAAC;iBACxB;gBAED,IAAI,MAAA,KAAK,CAAC,MAAM,CAAC,KAAK,0CAAE,MAAM,EAAE;oBAC5B,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CACxDP,aAAG,CAAC,UAAA,GAAG;wBACH,IAAM,MAAM,GAAG,GAAG,CAAC,WAAW,CAAC;wBAC/B,QAAQ,MAAM,CAAC,UAAU;4BACrB,KAAK,OAAO;gCACR,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;gCACtC,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAACtB,gCAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC;gCACrE,OAAO,KAAK,CAAC;4BACjB,KAAK,wBAAwB,CAAC;4BAC9B,KAAK,uBAAuB,CAAC;4BAC7B,KAAK,oBAAoB,CAAC;4BAC1B,KAAK,2BAA2B,CAAC;4BACjC,KAAK,8BAA8B;gCAC/B,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gCAC/C,OAAO,SAAS,CAAC;yBACxB;qBACJ,CAAC,CACL,CAAC;iBACL;qBAAM;oBACH,OAAO,CAAC,KAAK,CAAC,CAAC;iBAClB;aACJ,CAAC,EACFc,mBAAS,CAAC,UAAA,KAAK;gBACX,IAAI,CAAC,KAAK,EAAE;oBACR,OAAOe,OAAE,CAAC,SAAS,CAAC,CAAC;iBACxB;gBACD,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE;oBAC3B,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK;yBACxB,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC;yBACzB,IAAI,CAACP,aAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,WAAW,GAAA,CAAC,CAAC,CAAC;iBAC1C;qBAAM;oBACH,OAAO,CAAC,SAAS,CAAC,CAAC;iBACtB;aACJ,CAAC,CACL;iBACA,SAAS,CAAC,UAAA,MAAM;gBACb,IAAI,MAAM,EAAE;oBACR,QAAQ,MAAM,CAAC,UAAU;wBACrB,KAAK,QAAQ;4BACT,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;4BACtC,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,EAAE;gCAC3B,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAACtB,gCAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC;6BAClE;iCAAM;gCACH,KAAI,CAAC,mBAAmB,CAAC,OAAO,CAACA,gCAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC;6BACrE;4BACD,MAAM;wBACV,KAAK,sBAAsB,CAAC;wBAC5B,KAAK,sBAAsB,CAAC;wBAC5B,KAAK,2BAA2B,CAAC;wBACjC,KAAK,uBAAuB,CAAC;wBAC7B,KAAK,4BAA4B;4BAC7B,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;4BAC/C,MAAM;qBACb;iBACJ;aACJ,CAAC,CAAC;SACV;QAEO,2CAAY,GAAZ,UAAa,MAA0B;YAC3C,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YACzB,IAAI,MAAM,EAAE;gBACR,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC;aAC3D;iBAAM;gBACH,OAAO6B,OAAE,CAAC,SAAS,CAAC,CAAC;aACxB;SACJ;QAES,4CAAa,GAAb,UAAc,MAAsB;;SAE7C;;KA3kBL,CACYG,sBAAyC;;gBAPpDpC,YAAS,SAAC;oBACP,QAAQ,EAAE,kBAAkB;oBAC5B,6yRAA4C;oBAE5C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;gBA3CwBoC,WAAM;gBAAtBC,mBAAc;gBAsBnBvB,sBAAmB;gBAxBWL,oBAAiB;gBAQ/CR,cAAW;gBASX0B,sBAAmB;gBADnBX,eAAY;gBAgBP,sBAAsB;;;AC7BnBsB;IAAZ,WAAY,mBAAmB;QAC3B,iEAAM,CAAA;QACN,mEAAO,CAAA;QACP,iFAAc,CAAA;QACd,iEAAM,CAAA;IACV,CAAC,EALWA,2BAAmB,KAAnBA,2BAAmB,QAK9B;;QA4BD;;QAWI,sBAAI,6DAAe;iBAAnB;gBACI,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAC;aAC9D;;;WAAA;QAED,mDAAQ,GAAR;YACI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,EAAE,CAAC;SACtD;QAED,iDAAM,GAAN;YACI,IAAI,CAAC,WAAW,CAAC;gBACb,MAAM,EAAEA,2BAAmB,CAAC,MAAM;aACrC,CAAC,CAAC;SACN;QAED,iDAAM,GAAN;YACI,IAAI,CAAC,GAAG,IAAI,CAAC,eAAe,EAAE;gBAC1B,IAAI,CAAC,WAAW,CAAC;oBACb,MAAM,EAAEA,2BAAmB,CAAC,OAAO;iBACtC,CAAC,CAAC;aACN;iBAAM,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE;gBACjC,IAAI,CAAC,WAAW,CAAC;oBACb,MAAM,EAAEA,2BAAmB,CAAC,MAAM;;oBAElC,eAAe,EAAE,IAAI,CAAC,eAAgB,CAAC,EAAE;oBACzC,UAAU,EAAE,IAAI,CAAC,UAAU;iBAC9B,CAAC,CAAC;aACN;iBAAM;gBACH,IAAI,CAAC,WAAW,CAAC;oBACb,MAAM,EAAEA,2BAAmB,CAAC,cAAc;iBAC7C,CAAC,CAAC;aACN;SACJ;;;;gBAhDJvC,YAAS,SAAC;oBACP,QAAQ,EAAE,gCAAgC;oBAC1C,68CAA0D;oBAE1D,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;;QC8BW,wCAAyC;QAgCjD,8BACI,MAAc,EACd,KAAqB,EACrB,mBAAwC,EAChC,cAAiC,EAC/B,WAAwB,EAC1B,mBAAwC,EACxC,YAA0B,EAC1B,sBAA8C;YAR1D,YAUI,kBAAM,KAAK,EAAE,MAAM,EAAE,mBAAmB,EAAE,WAAW,CAAC,SACzD;YAPW,oBAAc,GAAd,cAAc,CAAmB;YAC/B,iBAAW,GAAX,WAAW,CAAa;YAC1B,yBAAmB,GAAnB,mBAAmB,CAAqB;YACxC,kBAAY,GAAZ,YAAY,CAAc;YAC1B,4BAAsB,GAAtB,sBAAsB,CAAwB;YAnC1D,sBAAgB,GAAG,IAAI6B,YAAO,EAAU,CAAC;YAEzC,gBAAU,GAAG,IAAIjC,eAAS,CAAC,EAAE,CAAC,CAAC;YAC/B,wBAAkB,GAAG,IAAIC,iBAAW,EAAE,CAAC;YAMvC,sBAAgB,GAAoB;gBAChC,MAAM,EAAE,IAAI;gBACZ,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,EAAE;gBACZ,gBAAgB,EAAE,EAAE;gBACpB,UAAU,EAAE,EAAE;gBACd,IAAI,EAAE,EAAE;gBACR,qBAAqB,EAAE,EAAE;gBACzB,oBAAoB,EAAE,EAAE;aAC3B,CAAC;YAIF,UAAI,GAAG,EAAE,CAAC;YACV,yBAAmB,GAAG,IAAI,CAAC;YAEnB,mBAAa,GAAG,IAAI,GAAG,EAAuC,CAAC;;SAatE;QAED,sBAAI,4CAAU;iBAAd;gBAAA,iBAgBC;gBAfG,IAAM,mBAAmB,GAAG,UAAC,KAAkC,IAC3D,OAAA,KAAK,CAAC,UAAU,KAAK,aAAa,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,GAAA,CAAC;gBACzD,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,IAAI,EAAE;qBACvC,GAAG,CAAC,UAAA,GAAG;oBACJ,IAAM,WAAW,GAAG,KAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;oBACjE,IAAI,WAAW,EAAE;wBACb,uCACO,WAAW,KACd,KAAK,EAAE,mBAAmB,CAAC,WAAW,CAAC,KAAK,CAAC,EAC7C,YAAY,EAAE,mBAAmB,CAAC,WAAW,CAAC,YAAY,CAAC,EAC3D,QAAQ,EAAE,GAAG,CAAC,QAAQ,IACxB;qBACL;iBACJ,CAAC;qBACD,MAAM,CAAC0C,8BAAkB,CAAC,CAAC;aACnC;;;WAAA;QAED,uCAAQ,GAAR;;YAAA,iBA0GC;YAzGG,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,EAAE,CAAC;YAC3C,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAChE,IAAI,CAAC,gBAAgB,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAW,CAAC;YACjF,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YACpE,IAAI,CAAC,OAAO,CAAC,IAAI,CAACC,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,KAAK;;;gBACvD,IAAI,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE;oBAC1B,KAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;iBACvD;gBACD,KAAI,CAAC,aAAa,GAAG,IAAI5C,eAAS,CAAC;oBAC/B,WAAW,EAAE,IAAIC,iBAAW,CAAC,EAAE,EAAEC,gBAAU,CAAC,QAAQ,CAAC;oBACrD,GAAG,EAAE,IAAID,iBAAW,CAAC,EAAE,CAAC;oBACxB,KAAK,EAAE,IAAIA,iBAAW,CAAC,CAAC,EAAEC,gBAAU,CAAC,QAAQ,CAAC;oBAC9C,gBAAgB,EAAE,IAAID,iBAAW,CAAC,IAAI,CAAC;oBACvC,OAAO,EAAE,IAAIA,iBAAW,CAAC,CAAC,CAAC;oBAC3B,cAAc,EAAE,IAAIA,iBAAW,CAAC,EAAE,CAAC;iBACtC,CAAC,CAAC;gBACH,IAAI,CAAC,KAAI,CAAC,mBAAmB,EAAE;oBAC3B,KAAI,CAAC,mBAAmB,GAAG,IAAID,eAAS,CAAC;wBACrC,QAAQ,EAAE,IAAIC,iBAAW,CAAC,MAAA,KAAK,CAAC,eAAe,0CAAE,QAAQ,CAAC;wBAC1D,OAAO,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,eAAe,0CAAE,OAAO,CAAC;wBACxD,WAAW,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,eAAe,0CAAE,WAAW,CAAC;wBAChE,WAAW,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,eAAe,0CAAE,WAAW,CAAC;wBAChE,IAAI,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,eAAe,0CAAE,IAAI,CAAC;wBAClD,QAAQ,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,eAAe,0CAAE,QAAQ,CAAC;wBAC1D,UAAU,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,eAAe,0CAAE,UAAU,CAAC;wBAC9D,WAAW,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,eAAe,0CAAE,WAAW,CAAC;wBAChE,WAAW,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,eAAe,0CAAE,WAAW,CAAC;qBACnE,CAAC,CAAC;oBACH,KAAI,CAAC,+BAA+B,CAAC,KAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;iBACzF;gBACD,IAAI,CAAC,KAAI,CAAC,kBAAkB,EAAE;oBAC1B,KAAI,CAAC,kBAAkB,GAAG,IAAID,eAAS,CAAC;wBACpC,QAAQ,EAAE,IAAIC,iBAAW,CAAC,MAAA,KAAK,CAAC,cAAc,0CAAE,QAAQ,CAAC;wBACzD,OAAO,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,cAAc,0CAAE,OAAO,CAAC;wBACvD,WAAW,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,cAAc,0CAAE,WAAW,CAAC;wBAC/D,WAAW,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,cAAc,0CAAE,WAAW,CAAC;wBAC/D,IAAI,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,cAAc,0CAAE,IAAI,CAAC;wBACjD,QAAQ,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,cAAc,0CAAE,QAAQ,CAAC;wBACzD,UAAU,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,cAAc,0CAAE,UAAU,CAAC;wBAC7D,WAAW,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,cAAc,0CAAE,WAAW,CAAC;wBAC/D,WAAW,EAAE,IAAIA,iBAAW,CAAC,MAAA,KAAK,CAAC,cAAc,0CAAE,WAAW,CAAC;qBAClE,CAAC,CAAC;oBACH,KAAI,CAAC,+BAA+B,CAAC,KAAI,CAAC,kBAAkB,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;iBACvF;gBACD,KAAI,CAAC,8BAA8B,GAAG,IAAI4C,eAAS,CAAC,EAAE,CAAC,CAAC;wCAC7C,IAAI;;oBACX,IAAM,SAAS,GAAG,IAAI7C,eAAS,CAAC,EAAE,CAAC,CAAC;;wBACpC,KAAuB,IAAA,oBAAA,SAAA,KAAI,CAAC,qBAAqB,CAAA,CAAA,gBAAA,4BAAE;4BAAtC,IAAA,IAAI,gBAAA;4BACb,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,IAAIC,iBAAW,CAAE,IAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;yBACjF;;;;;;;;;oBACD,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC2C,mBAAS,CAAC,KAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,KAAK;wBACjE,IAAI,SAAS,GAAG,KAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CACvD,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,EAAE,GAAA,CACjC,CAAC;wBACF,IAAI,CAAC,SAAS,EAAE;4BACZ,SAAS,GAAG;gCACR,WAAW,EAAE,IAAI,CAAC,EAAE;gCACpB,QAAQ,EAAE,IAAI,CAAC,QAAQ;6BAC1B,CAAC;4BACF,KAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;yBAC1D;wBACD,IAAI,KAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE;4BACnC,SAAS,CAAC,YAAY,GAAG,KAAK,CAAC;yBAClC;qBACJ,CAAC,CAAC;oBACH,KAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;;oBApBxD,KAAmB,IAAA,KAAA,SAAA,KAAK,CAAC,KAAK,CAAA,gBAAA;wBAAzB,IAAM,IAAI,WAAA;gCAAJ,IAAI;qBAqBd;;;;;;;;;aACJ,CAAC,CAAC;YACH,IAAI,CAAC,qBAAqB,GAAGE,WAAM,CAC/B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACtBC,8BAAoB,EAAE,EACtB1B,mBAAS,CACL,UAAA,IAAI,IACA,OAAA,KAAI,CAAC,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC5C,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;aACjC,CAAC,CAAC,OAAO,GAAA,CACjB,EACDQ,aAAG,CAAC,UAAC,EAAc;oBAAZ,UAAU,gBAAA;;gBAEb,OAAA,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,QAAC,EAAE,IAAI,EAAE,CAAC,CAAC,UAAW,EAAE,aAAa,EAAE,CAAC,CAAC,IAAI,EAAE,IAAC,CAAC;aAAA,CAC9E,EACDK,mBAAS,CAAC,EAAE,CAAC,CAChB,CACJ,CAAC;YACF,IAAI,CAAC,4BAA4B,GAAG,IAAIW,eAAS,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,CAAC,uBAAuB,GAAG,IAAI7C,eAAS,CAAC,EAAE,CAAC,CAAC;;gBACjD,KAA0B,IAAA,KAAA,SAAA,IAAI,CAAC,qBAAqB,CAAA,gBAAA,4BAAE;oBAAjD,IAAM,WAAW,WAAA;oBAClB,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,EAAE,IAAIC,iBAAW,EAAE,CAAC,CAAC;iBAChF;;;;;;;;;YACD,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ;iBAC/C,qBAAqB,EAAE;iBACvB,SAAS,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,SAAS,CAAC,KAAK,GAAA,CAAC;iBAC3C,IAAI,CAAC+C,qBAAW,CAAC,CAAC,CAAC,CAAC,CAAC;YAC1B,IAAI,CAAC,WAAW,CAAC,KAAK;iBACjB,eAAe,CAAC,IAAI,CAAC,EAAE,EAAE;gBACtB,IAAI,EAAE,CAAC;gBACP,IAAI,EAAE;oBACF,SAAS,EAAEpB,YAAS,CAAC,IAAI;iBAC5B;gBACD,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAED,mBAAgB,CAAC,sBAAsB,EAAE,EAAE;aACpE,CAAC;iBACD,OAAO,CAAC,SAAS,CAAC,UAAC,EAAS;oBAAP,KAAK,WAAA;gBACvB,KAAI,CAAC,aAAa,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;aAC1D,CAAC,CAAC;SACV;QAED,0CAAW,GAAX;YACI,IAAI,CAAC,OAAO,EAAE,CAAC;SAClB;QAED,qDAAsB,GAAtB,UAAuB,KAA2B;YAAlD,iBAMC;YALG,IAAI,CAAC,sBAAsB;iBACtB,6BAA6B,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,CAAC;iBACzD,SAAS,CAAC,UAAA,MAAM;gBACb,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,KAAI,CAAC,KAAK,EAAE,CAAC,CAAC;aAC5D,CAAC,CAAC;SACV;QAED,gDAAiB,GAAjB;YACU,IAAA,KAA6C,IAAI,CAAC,gBAAgB,EAAhE,QAAQ,cAAA,EAAE,gBAAgB,sBAAA,EAAE,UAAU,gBAA0B,CAAC;YACzE,QACI,CAAC,EAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,CAAA;gBAClB,CAAC,EAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,MAAM,CAAA;gBACpB,CAAC,EAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,CAAA;iBACzB,IAAI,CAAC,mBAAmB,CAAC,KAAK,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC;iBACjE,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBAChE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAC/B;SACL;QAED,6CAAc,GAAd,UAAe,IAAuB;;YAClC,OAAO,CAAC,EAAC,MAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,0CAAE,IAAI,CACjD,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,GAAA,CACjE,CAAA,CAAC;SACL;QAED,iDAAkB,GAAlB,UAAmB,IAAuB,EAAE,QAAgB;YAChD,IAAA,gBAAgB,GAAK,IAAI,CAAC,gBAAgB,iBAA1B,CAA2B;YACnD,IAAI,GAAG,GAAG,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,EAAE,GAAA,CAAC,CAAC;YACjE,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,EAAE;;;gBAGpC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,MAAM,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;aAC/D;YACD,IAAI,CAAC,GAAG,EAAE;gBACN,GAAG,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACpD,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,IAAI,CAAC,GAAG,CAAC,CAAC;aAC/B;YACD,GAAG,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC;SAC5B;QAED,sDAAuB,GAAvB,UAAwB,IAAe,EAAE,QAAgB;;YACrD,IAAM,GAAG,GAAG,MAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,0CAAE,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,gBAAgB,KAAK,IAAI,CAAC,gBAAgB,GAAA,CAAC,CAAC;YACpG,IAAI,GAAG,EAAE;gBACL,GAAG,CAAC,QAAQ,GAAG,CAAC,QAAQ,CAAC;aAC5B;SACJ;QAED,sDAAuB,GAAvB,UAAwB,KAAa,EAAE,IAAe;YAClD,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAChC;QAED,mDAAoB,GAApB,UAAqB,MAA+C;YAChE,QAAQ,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,YAAY,CAAC,UAAU;gBACnC,KAAK,aAAa;oBACd,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC;gBACrC;oBACI,OAAO,CAAC,CAAC;aAChB;SACJ;QAED,6CAAc,GAAd,UAAe,MAA+C;;YAA9D,iBAkCC;;YAjCG,IAAI,CAAC,MAAM,EAAE;gBACT,OAAO;aACV;YACD,IAAM,YAAY,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM;kBAChD,IAAI,CAAC,uBAAuB,CAAC,KAAK;kBAClC,SAAS,CAAC;YAChB,IAAI,GAAG,GAAG,MAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,0CAAE,IAAI,CAAC,UAAA,CAAC,IAC5C,OAAA,KAAI,CAAC,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,GAAA,CACrD,CAAC;YACF,IAAI,CAAC,GAAG,EAAE;gBACN,GAAG,GAAG,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;gBACjE,IAAI,YAAY,EAAE;oBACd,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC;iBACnC;gBACD,MAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,0CAAE,IAAI,CAAC,GAAG,CAAC,CAAC;aAC7C;iBAAM;gBACH,GAAG,CAAC,QAAQ,EAAE,CAAC;aAClB;YACD,IAAI,YAAY,EAAE;gBACd,IAAM,SAAS,GAAG,IAAI3B,eAAS,CAAC,EAAE,CAAC,CAAC;;oBACpC,KAA2B,IAAA,KAAA,SAAA,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA,gBAAA,4BAAE;wBAA9C,IAAA,KAAA,mBAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;wBAClB,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,IAAIC,iBAAW,CAAC,KAAK,CAAC,CAAC,CAAC;qBACrD;;;;;;;;;gBACD,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAClD,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC2C,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,KAAK;oBACjE,IAAI,GAAG,EAAE;wBACL,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC;qBAC5B;iBACJ,CAAC,CAAC;aACN;YACD,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACvC,IAAI,CAAC,sBAAsB,GAAG,SAAS,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;SAC3D;QAEO,mDAAoB,GAApB,UACJ,GAAwC,EACxC,MAAmC,EACnC,YAAiB;YAEjB,QACI,GAAG,CAAC,gBAAgB,KAAK,MAAM,CAAC,gBAAgB;gBAChD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EACnE;SACL;QAED,8CAAe,GAAf,UAAgB,KAAa;YACzB,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAChD,IAAI,CAAC,CAAC,GAAG,KAAK,EAAE;gBACZ,IAAI,CAAC,4BAA4B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;aACrD;SACJ;QAED,iDAAkB,GAAlB,UAAmB,SAAyB;YACxC,IAAM,YAAY,GAAG,SAAS,CAAC,gBAAgB;kBACzC,SAAS,CAAC,KAAK;kBACf,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAC7E,IAAM,KAAK,GAAG,SAAS,CAAC,gBAAgB;kBAClC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,GAAG,IAAI,SAAS,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;kBACtE,SAAS,CAAC,KAAK,CAAC;YACtB,OAAO;gBACH,KAAK,OAAA;gBACL,YAAY,cAAA;aACf,CAAC;SACL;QAED,2CAAY,GAAZ,UAAa,KAAU;;YACnB,MAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,0CAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;gBACrB,KAAK,EAAE,CAAC;gBACR,gBAAgB,EAAE,IAAI;gBACtB,OAAO,EAAE,CAAC;aACb,CAAC,CAAC;SACN;QAED,8CAAe,GAAf,UAAgB,KAAa;;YACzB,MAAA,IAAI,CAAC,gBAAgB,CAAC,UAAU,0CAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACtD;QAED,+CAAgB,GAAhB,UAAiB,KAA2B;YAA5C,iBAiGC;;YAhGG,IAAM,gBAAgB,mCACf,IAAI,CAAC,gBAAgB,KACxB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAA,IAAI;oBAC7D,OAAOK,qCAAkC,CAACC,+BAAe,CAAC,IAAI,CAAC,EAAE,KAAI,CAAC,qBAAqB,CAAC,CAAC;iBAChG,CAAC,GACL,CAAC;YACF,IAAM,KAAK,+DACJ,gBAAgB,IACf,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,EAAE,oBAAoB,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,KAC5F,IAAI,CAAC,mBAAmB,CAAC,KAAK;kBAC5B,EAAE,qBAAqB,EAAE,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE;kBACzD,EAAE,MACR,MAAM,EAAE,IAAI,EACZ,WAAW,EAAE,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,SAAS,EACtF,IAAI,EAAE,MAAA,IAAI,CAAC,IAAI,mCAAI,EAAE,EACrB,OAAO,EAAE;oBACL,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;iBAChD,GACJ,CAAC;YACF,IAAM,oBAAoB,GAAG,KAAK,CAAC,YAAY,CAAC;YAChD,IAAI,CAAC,WAAW,CAAC,KAAK;iBACjB,WAAW,CAAC,KAAK,CAAC;iBAClB,IAAI,CACD7B,mBAAS,CAAC,UAAC,EAAe;oBAAb,WAAW,iBAAA;gBACpB,QAAQ,WAAW,CAAC,UAAU;oBAC1B,KAAK,OAAO;wBACR,OAAO,KAAI,CAAC,YAAY,CAAC,aAAa,CAAC,gCAAgC,EAAE;4BACrE,IAAI,EAAE,IAAI;4BACV,QAAQ,EAAE,KAAK;4BACf,MAAM,EAAE;gCACJ,oBAAoB,sBAAA;gCACpB,KAAK,EAAE,WAAW;gCAClB,qBAAqB,EAAE,KAAI,CAAC,qBAAqB;gCACjD,gBAAgB,EAAE,KAAK;6BAC1B;yBACJ,CAAC,CAAC;oBACP,KAAK,wBAAwB,CAAC;oBAC9B,KAAK,uBAAuB,CAAC;oBAC7B,KAAK,yBAAyB,CAAC;oBAC/B,KAAK,iBAAiB,CAAC;oBACvB,KAAK,6BAA6B,CAAC;oBACnC,KAAK,2BAA2B,CAAC;oBACjC,KAAK,6BAA6B,CAAC;oBACnC,KAAK,sBAAsB,CAAC;oBAC5B,KAAK,wBAAwB,CAAC;oBAC9B,KAAK,wBAAwB,EAAE;wBAC3B,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;wBACpD,OAAOe,OAAE,CAAC,KAAc,CAAC,CAAC;qBAC7B;oBACD,KAAK,IAAI,CAAC;oBACV,KAAK,SAAS;wBACV,OAAOA,OAAE,CAAC,KAAc,CAAC,CAAC;oBAC9B;wBACIC,uBAAW,CAAC,WAAW,CAAC,CAAC;iBAChC;aACJ,CAAC,EACFhB,mBAAS,CAAC,UAAA,MAAM;gBACZ,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,KAAKqB,2BAAmB,CAAC,MAAM,EAAE;;oBAEzD,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAI,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,cAAM,OAAA,KAAK,GAAA,CAAC,CAAC;iBAC1E;qBAAM;;oBAEH,IAAM,WAAW,mCACV,KAAK,KACR,MAAM,EAAE,KAAK,GAChB,CAAC;oBACF,IAAI,MAAM,CAAC,MAAM,KAAKA,2BAAmB,CAAC,MAAM,EAAE;wBAC9C,WAAW,CAAC,MAAM,GAAG;4BACjB,SAAS,EAAE,MAAM,CAAC,eAAe;4BACjC,MAAM,EAAE,MAAM,CAAC,UAAU;yBAC5B,CAAC;qBACL;oBACD,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,IAAI,CACvDrB,mBAAS,CAAC,UAAC,EAAe;4BAAb,WAAW,iBAAA;wBACpB,IAAI,WAAW,CAAC,UAAU,KAAK,OAAO,EAAE;4BACpC,IAAM,UAAU,GAAG,WAAW,CAAC,YAAY,GAAG,oBAAoB,CAAC;4BACnE,IAAM,SAAS,GACX,CAAC,GAAG,UAAU,GAAG,4BAA4B,GAAG,KAAI,CAAC,aAAa,CAAC;4BAEvE,OAAO,KAAI,CAAC,WAAW,CAAC,KAAK;iCACxB,iBAAiB,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC;iCACtC,IAAI,CAACc,eAAK,CAAC,IAAI,CAAC,CAAC,CAAC;yBAC1B;6BAAM;4BACH,KAAI,CAAC,mBAAmB,CAAC,KAAK,CAAE,WAA2B,CAAC,OAAO,CAAC,CAAC;4BACrE,OAAOZ,UAAK,CAAC;yBAChB;qBACJ,CAAC,CACL,CAAC;iBACL;aACJ,CAAC,CACL;iBACA,SAAS,CAAC,UAAA,MAAM;gBACb,IAAI,MAAM,EAAE;oBACR,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,UAAU,EAAE,KAAI,CAAC,KAAK,EAAE,CAAC,CAAC;iBAC7D;aACJ,CAAC,CAAC;SACV;QAEO,8DAA+B,GAA/B,UACJ,eAA0B,EAC1B,OAAqC;;;YAErC,IAAI,OAAO,IAAI,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE;gBAC5C,IAAM,4BAA4B,GAAG,IAAIvB,eAAS,CAAC,EAAE,CAAC,CAAC;;oBACvD,KAA6B,IAAA,KAAA,SAAA,IAAI,CAAC,mBAAmB,CAAA,gBAAA,4BAAE;wBAAlD,IAAM,cAAc,WAAA;wBACrB,IAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC;wBACjC,IAAM,KAAK,GAAG,MAAC,OAAe,CAAC,YAAY,0CAAG,IAAI,CAAC,CAAC;wBACpD,4BAA4B,CAAC,UAAU,CAAC,IAAI,EAAE,IAAIC,iBAAW,CAAC,KAAK,CAAC,CAAC,CAAC;qBACzE;;;;;;;;;gBACD,eAAe,CAAC,UAAU,CAAC,cAAc,EAAE,4BAA4B,CAAC,CAAC;aAC5E;SACJ;QAES,4CAAa,GAAb,UAAc,MAA4B,EAAE,YAA0B;;SAE/E;;KAjbL,CACYsC,sBAAyC;;gBAPpDpC,YAAS,SAAC;oBACP,QAAQ,EAAE,kBAAkB;oBAC5B,ihsBAA4C;oBAE5C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;gBA7DwBoC,WAAM;gBAAtBC,mBAAc;gBAiBnBvB,sBAAmB;gBAnBWL,oBAAiB;gBAQ/CR,cAAW;gBAOX0B,sBAAmB;gBAFnBX,eAAY;gBAwBP,sBAAsB;;;;QC3B/B;YASc,YAAO,GAAG,IAAIN,eAAY,EAAuC,CAAC;YAClE,eAAU,GAAG,IAAIA,eAAY,EAAgB,CAAC;YAC9C,eAAU,GAAG,IAAIA,eAAY,EAAgB,CAAC;YACxD,SAAI,GAAG,EAAE,CAAC;YACV,kBAAa,GAAG,IAAI,CAAC;YACrB,aAAQ,GAAG,KAAK,CAAC;YACR,SAAI,GAAGa,mBAAgB,CAAC;SAyIpC;QAvIG,8CAAc,GAAd,UAAe,KAA4B;YACvC,IAAI,KAAK,CAAC,IAAI,KAAKA,mBAAgB,CAAC,sBAAsB,EAAE;gBACxD,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE;oBAC/B,OAAO,SAAS,CAAC;iBACpB;gBACD,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE;oBAC/B,OAAO,OAAO,CAAC;iBAClB;aACJ;YACD,IAAI,KAAK,CAAC,IAAI,KAAKA,mBAAgB,CAAC,4BAA4B,EAAE;gBAC9D,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE;oBAC/B,OAAO,SAAS,CAAC;iBACpB;aACJ;YACD,IAAI,KAAK,CAAC,IAAI,KAAKA,mBAAgB,CAAC,wBAAwB,EAAE;gBAC1D,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE;oBAC/D,OAAO,OAAO,CAAC;iBAClB;aACJ;YACD,IAAI,KAAK,CAAC,IAAI,KAAKA,mBAAgB,CAAC,kBAAkB,EAAE;gBACpD,OAAO,OAAO,CAAC;aAClB;YACD,IAAI,KAAK,CAAC,IAAI,KAAKA,mBAAgB,CAAC,uBAAuB,EAAE;gBACzD,OAAO,SAAS,CAAC;aACpB;YACD,OAAO,SAAS,CAAC;SACpB;QAED,+CAAe,GAAf,UAAgB,KAA4B;YACxC,IAAI,KAAK,CAAC,IAAI,KAAKA,mBAAgB,CAAC,sBAAsB,EAAE;gBACxD,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE;oBAC/B,OAAO,CAAC,kBAAkB,EAAE,UAAU,CAAC,CAAC;iBAC3C;gBACD,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE;oBAC/B,OAAO,KAAK,CAAC;iBAChB;aACJ;YACD,IAAI,KAAK,CAAC,IAAI,KAAKA,mBAAgB,CAAC,wBAAwB,EAAE;gBAC1D,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE;oBAC7B,OAAO,aAAa,CAAC;iBACxB;aACJ;YACD,IAAI,KAAK,CAAC,IAAI,KAAKA,mBAAgB,CAAC,UAAU,EAAE;gBAC5C,OAAO,MAAM,CAAC;aACjB;YACD,IAAI,KAAK,CAAC,IAAI,KAAKA,mBAAgB,CAAC,cAAc,EAAE;gBAChD,OAAO,QAAQ,CAAC;aACnB;YACD,IAAI,KAAK,CAAC,IAAI,KAAKA,mBAAgB,CAAC,4BAA4B,EAAE;gBAC9D,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,EAAE;oBAC7B,OAAO,OAAO,CAAC;iBAClB;gBACD,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,EAAE;oBAC/B,OAAO,OAAO,CAAC;iBAClB;aACJ;SACJ;QAED,0CAAU,GAAV,UAAW,KAA4B;YACnC,QAAQ,KAAK,CAAC,IAAI;gBACd,KAAKA,mBAAgB,CAAC,sBAAsB,EAAE;oBAC1C,QACI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW;wBAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW;wBAC7B,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,EAC7B;iBACL;gBACD,KAAKA,mBAAgB,CAAC,wBAAwB;oBAC1C,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC;gBACxE,KAAKA,mBAAgB,CAAC,4BAA4B;oBAC9C,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC;gBACxE,KAAKA,mBAAgB,CAAC,UAAU,CAAC;gBACjC,KAAKA,mBAAgB,CAAC,cAAc;oBAChC,OAAO,IAAI,CAAC;gBAChB;oBACI,OAAO,KAAK,CAAC;aACpB;SACJ;QAED,8CAAc,GAAd,UAAe,KAA4B;YACvC,IACI,CAAC,KAAK,CAAC,IAAI,KAAKA,mBAAgB,CAAC,iBAAiB;gBAC9C,KAAK,CAAC,IAAI,KAAKA,mBAAgB,CAAC,4BAA4B;gBAChE,IAAI,CAAC,KAAK,CAAC,YAAY,EACzB;gBACE,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,aAAa,GAAA,CAAC,CAAC;aAC/E;SACJ;QAED,0CAAU,GAAV,UAAW,KAA4B;YACnC,IAAI,KAAK,CAAC,IAAI,KAAKA,mBAAgB,CAAC,wBAAwB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBACjF,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,IAAI,CAAC,SAAS,GAAA,CAAC,CAAC;aACvE;SACJ;QAED,iDAAiB,GAAjB,UAAkB,KAA4B;;YAC1C,IAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC1C,IAAM,gBAAgB,GAAa,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;;gBAC3D,KAAmB,IAAA,KAAA,SAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA,gBAAA,4BAAE;oBAAhC,IAAM,IAAI,WAAA;;wBACX,KAAmB,IAAA,oBAAA,SAAA,IAAI,CAAC,KAAK,CAAA,CAAA,gBAAA,4BAAE;4BAA1B,IAAM,IAAI,WAAA;4BACX,IAAI,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gCACpC,IAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;gCACpD,IAAI,KAAK,IAAI,IAAI,EAAE;oCACf,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;iCACpD;qCAAM;oCACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iCAC5C;6BACJ;yBACJ;;;;;;;;;iBACJ;;;;;;;;;YACD,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,UAAC,EAAgB;oBAAhB,KAAA,aAAgB,EAAf,IAAI,QAAA,EAAE,QAAQ,QAAA;gBAAM,QAAC,EAAE,IAAI,MAAA,EAAE,QAAQ,UAAA,EAAE;aAAC,CAAC,CAAC;SACxF;QAED,+CAAe,GAAf,UAAgB,EAAU;YACtB,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,EAAE,GAAA,CAAC,CAAC;SAC1D;QAED,uCAAO,GAAP,UAAQ,KAA4B;YACxB,IAAA,aAAa,GAAK,KAAK,cAAV,CAAW;YAChC,IAAI,aAAa,EAAE;gBACf,OAAU,aAAa,CAAC,SAAS,SAAI,aAAa,CAAC,QAAU,CAAC;aACjE;iBAAM;gBACH,IAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;gBACrC,IAAI,QAAQ,EAAE;oBACV,OAAU,QAAQ,CAAC,SAAS,SAAI,QAAQ,CAAC,QAAU,CAAC;iBACvD;aACJ;YACD,OAAO,EAAE,CAAC;SACb;QAED,8CAAc,GAAd;YACI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;YACtE,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC7B;;;;gBAvJJxB,YAAS,SAAC;oBACP,QAAQ,EAAE,mBAAmB;oBAC7B,ggXAA6C;oBAE7C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;wBAEIW,QAAK;0BACLA,QAAK;0BACLC,SAAM;6BACNA,SAAM;6BACNA,SAAM;;;;QCeC,sCAAyD;QA6CjE,4BACY,mBAAwC,EACxC,WAAwB,EACxB,mBAAwC,EAChD,MAAc,EACd,KAAqB;YALzB,YAOI,kBAAM,MAAM,EAAE,KAAK,CAAC,SAkBvB;YAxBW,yBAAmB,GAAnB,mBAAmB,CAAqB;YACxC,iBAAW,GAAX,WAAW,CAAa;YACxB,yBAAmB,GAAnB,mBAAmB,CAAqB;YA7CpD,mBAAa,GAAG,IAAIf,iBAAW,CAAC,EAAE,CAAC,CAAC;YACpC,4BAAsB,GAAG,IAAIA,iBAAW,CAAC,EAAE,CAAC,CAAC;YAC7C,2BAAqB,GAAG,IAAIA,iBAAW,CAAC,EAAE,CAAC,CAAC;YAE5C,iBAAW,GAAG,KAAI,CAAC,mBAAmB,CAAC,qBAAqB,EAAE,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,GAAA,CAAC,CAAC;YACtF,mBAAa,GAAmB;gBAC5B;oBACI,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAEM,gCAAC,CAAC,0BAA0B,CAAC;oBACpC,MAAM,EAAE;wBACJ,MAAM,EAAE,KAAK;wBACb,MAAM,EAAE,KAAI,CAAC,WAAW,CAAC,MAAM,CAC3B,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,SAAS,GAAA,CACjE;qBACJ;iBACJ;gBACD;oBACI,IAAI,EAAE,SAAS;oBACf,KAAK,EAAEA,gCAAC,CAAC,6BAA6B,CAAC;oBACvC,MAAM,EAAE;wBACJ,MAAM,EAAE,KAAK;wBACb,MAAM,EAAE,CAAC,SAAS,CAAC;qBACtB;iBACJ;gBACD;oBACI,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAEA,gCAAC,CAAC,+BAA+B,CAAC;oBACzC,MAAM,EAAE;wBACJ,MAAM,EAAE,KAAK;wBACb,MAAM,EAAE,CAAC,WAAW,EAAE,WAAW,CAAC;qBACrC;iBACJ;gBACD;oBACI,IAAI,EAAE,QAAQ;oBACd,KAAK,EAAEA,gCAAC,CAAC,4BAA4B,CAAC;oBACtC,MAAM,EAAE;wBACJ,MAAM,EAAE,IAAI;qBACf;iBACJ;aACJ,CAAC;YAWE,iBAAM,UAAU;;YAEZ,UAAC,IAAI,EAAE,IAAI,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,MAAA,EAAE,IAAI,MAAA,EAAE,CAAC,CAAC,sBAAsB,EAAE,GAAA,EACzF,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,GAAA;;YAEnB,UAAC,IAAI,EAAE,IAAI,IACP,OAAA,KAAI,CAAC,kBAAkB,CACnB,IAAI,EACJ,IAAI,EACJ,KAAI,CAAC,aAAa,CAAC,KAAK,EACxB,KAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,CAC5D,GAAA,CACR,CAAC;YACF,IAAM,WAAW,GAAG,KAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC/E,IAAI,WAAW,EAAE;gBACb,KAAI,CAAC,aAAa,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;aACzD;;SACJ;QAED,qCAAQ,GAAR;YAAA,iBAsBC;;YArBG,iBAAM,QAAQ,WAAE,CAAC;YACjB,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAC9CsB,aAAG,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,MAAM,GAAA,CAAC,EACvCkB,8BAAoB,EAAE,CACzB,CAAC;YACF,IAAM,YAAY,GAAGI,UAAK,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,IAAI,CAC5DC,gBAAM,CAAC,UAAA,KAAK,IAAI,OAAA,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,GAAA,CAAC,EACvDC,sBAAY,CAAC,GAAG,CAAC,CACpB,CAAC;YACFF,UAAK,CAAC,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;iBACxC,IAAI,CAACP,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC9B,SAAS,CAAC,UAAA,GAAG;gBACV,KAAI,CAAC,OAAO,EAAE,CAAC;aAClB,CAAC,CAAC;YAEP,IAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;YACxD,IAAI,CAAC,gBAAgB,GAAG,IAAI5C,eAAS,CAAC;gBAClC,MAAM,EAAE,IAAIC,iBAAW,CAAC,MAAA,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAC;gBAC7D,aAAa,EAAE,IAAIA,iBAAW,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBAClE,WAAW,EAAE,IAAIA,iBAAW,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;aACjE,CAAC,CAAC;SACN;QAED,+CAAkB,GAAlB,UAAmB,UAAkB;;YACjC,IAAM,iBAAiB,GAAG,MAAA,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,4BAA4B,CAAC,mCAAI,EAAE,CAAC;YAC3F,IAAM,kBAAkB,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC;YACnG,IAAM,OAAO,GAAG,UAAU,KAAK,QAAQ,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;YACjF,IAAI,CAAC,aAAa,iBAEV,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,CAAC,IACJ,OAAO,GAEd,EAAE,UAAU,EAAE,IAAI,EAAE,CACvB,CAAC;SACL;QAED,+CAAkB,GAAlB;YACI,IAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;YAC9C,IAAM,aAAa,GAAG;gBAClB,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,aAAa,EAAE,SAAS,CAAC,aAAa;gBACtC,WAAW,EAAE,SAAS,CAAC,WAAW;aACrC,CAAC;YACF,IAAI,CAAC,aAAa,iBACd,MAAM,EAAE,QAAQ,IACb,aAAa,EAClB,CAAC;YACH,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC;YACvC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,4BAA4B,EAAE,aAAa,CAAC,CAAC;SAC7E;QAEO,+CAAkB,GAAlB;;QAEJ,IAAY,EACZ,IAAY,EACZ,UAAkB,EAClB,kBAA2B;;YAE3B,IAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,KAAK,kBAAkB,GAAA,CAAC,CAAC;;YAEjF,IAAI,MAAM,GAAQ,EAAE,CAAC;YACrB,IAAI,cAAc,GAAoBqD,kBAAe,CAAC,GAAG,CAAC;YAC1D,IAAI,YAAY,EAAE;gBACd,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,EAAE;oBACpC,MAAM,CAAC,MAAM,GAAG;wBACZ,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM;qBACjC,CAAC;iBACL;gBACD,IAAI,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE;oBAC5B,MAAM,CAAC,KAAK,GAAG;wBACX,EAAE,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM;qBACjC,CAAC;iBACL;aACJ;iBAAM,IAAI,kBAAkB,KAAK,QAAQ,EAAE;gBACxC,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;gBACtD,IAAM,MAAM,GAAG,MAAA,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,mCAAI,EAAE,CAAC;gBAClD,IAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;gBACvD,IAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACnD,IAAI,MAAM,CAAC,MAAM,EAAE;oBACf,MAAM,CAAC,KAAK,GAAG;wBACX,EAAE,EAAE,MAAM;qBACb,CAAC;iBACL;gBACD,IAAI,aAAa,IAAI,WAAW,EAAE;oBAC9B,MAAM,CAAC,aAAa,GAAG;wBACnB,OAAO,EAAE;4BACL,KAAK,EAAE,aAAa;4BACpB,GAAG,EAAE,WAAW;yBACnB;qBACJ,CAAC;iBACL;qBAAM,IAAI,aAAa,EAAE;oBACtB,MAAM,CAAC,aAAa,GAAG;wBACnB,KAAK,EAAE,aAAa;qBACvB,CAAC;iBACL;qBAAM,IAAI,WAAW,EAAE;oBACpB,MAAM,CAAC,aAAa,GAAG;wBACnB,MAAM,EAAE,WAAW;qBACtB,CAAC;iBACL;aACJ;YACD,IAAI,UAAU,EAAE;gBACZ,MAAM,GAAG;oBACL,gBAAgB,EAAE;wBACd,QAAQ,EAAE,UAAU;qBACvB;oBACD,aAAa,EAAE;wBACX,QAAQ,EAAE,UAAU;qBACvB;oBACD,IAAI,EAAE;wBACF,QAAQ,EAAE,UAAU;qBACvB;iBACJ,CAAC;gBACF,cAAc,GAAGA,kBAAe,CAAC,EAAE,CAAC;aACvC;YACD,OAAO;gBACH,OAAO,EAAE;oBACL,IAAI,MAAA;oBACJ,IAAI,MAAA;oBACJ,MAAM,qBACE,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,EAAE,EACnB;oBACD,IAAI,EAAE;wBACF,SAAS,EAAE1B,YAAS,CAAC,IAAI;qBAC5B;oBACD,cAAc,gBAAA;iBACjB;aACJ,CAAC;SACL;QAED,6CAAgB,GAAhB,UAAiB,KAAY;YACzB,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;gBAC5B,OAAO,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,UAAA,YAAY,IAAI,OAAA,YAAY,CAAC,cAAc,CAAC,IAAI,GAAA,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/F;iBAAM;gBACH,OAAO,EAAE,CAAC;aACb;SACJ;;KAlNL,CACY2B,oBAAyD;;gBAPpEpD,YAAS,SAAC;oBACP,QAAQ,EAAE,gBAAgB;oBAC1B,wkLAA0C;oBAE1C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;gBAvBGc,sBAAmB;gBALnBb,cAAW;gBAEXmD,sBAAmB;gBANEhB,WAAM;gBAAtBC,mBAAc;;;;QCEvB;YASc,kBAAa,GAAG,IAAI3B,eAAY,EAAwB,CAAC;YACzD,2BAAsB,GAAG,IAAIA,eAAY,EAAoD,CAAC;YAC9F,iBAAY,GAAG,IAAIA,eAAY,EAAuB,CAAC;SAYpE;QAVG,qDAAiB,GAAjB,UAAkB,MAA4B;YAC1C,OAAO,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SAC9D;QAED,mDAAe,GAAf;YACI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACf,OAAO,EAAE,CAAC;aACb;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,OAAO,GAAA,CAAC,CAAC;SAChF;;;;gBAtBJX,YAAS,SAAC;oBACP,QAAQ,EAAE,wBAAwB;oBAClC,4kIAAkD;oBAElD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;0BAEIW,QAAK;+BACLA,QAAK;gCACLC,SAAM;yCACNA,SAAM;+BACNA,SAAM;;;QCfE,WAAW,GAAG;;;QCY3B;;QAMI,4CAAQ,GAAR;YAAA,iBAIC;YAHG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO;iBAC3B,YAAY,EAAE;iBACd,IAAI,CAACyC,aAAG,CAAC,UAAC,MAAM,IAAK,OAAA,KAAI,CAAC,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,GAAA,CAAC,CAAC,CAAC;SAClE;QAED,4CAAQ,GAAR;YACI,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,GAAG,IAAI,CAAC;YAClE,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,KAAK,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC,CAAC;YAC3E,IAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,KAAK,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC,CAAC;YACvE,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAC3C,IAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAA,EAAE,EAAI,CAAC,CAAA,GAAG,SAAA,EAAE,EAAI,CAAC,CAAA,CAAC,CAAC;YAC5C,uBACI,QAAQ,EAAE,QAAQ,CAAC,CAAC,EACpB,SAAS,EAAE,QAAQ,CAAC,CAAC,IAAI,SAAS,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,EAC1E,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,CAAC,KACT,SAAS,KAAK,IAAI;kBAChB;oBACI,SAAS,EAAE,iBAAiB;oBAC5B,kBAAkB,EAAE,KAAK;iBAC5B;kBACD,EAAE,GACV;SACL;;;;gBArCJtD,YAAS,SAAC;oBACP,QAAQ,EAAE,wBAAwB;oBAClC,gSAAkD;oBAElD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;uBAEIW,QAAK;qBACLA,QAAK;wBACLA,QAAK;;;;QCeN,mCAAoB,UAAsC;YAAtC,eAAU,GAAV,UAAU,CAA4B;YAP1D,YAAO,GAAG,IAAI2C,oBAAe,CAAU,KAAK,CAAC,CAAC;YAC9C,kBAAa,GAAG,IAAIA,oBAAe,CAAU,KAAK,CAAC,CAAC;YACpD,kBAAa,GAAG,KAAK,CAAC;;;YAGtB,mBAAc,GAAG,WAAW,CAAC;SAEiC;QAE9D,+CAAW,GAAX,UAAY,OAAsB;YAC9B,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,WAAW,GAAA,CAAC,CAAC;YACxE,IAAI,OAAO,CAAC,MAAM,EAAE;gBAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAClC;SACJ;QAED,0CAAM,GAAN,UAAO,MAAgC;YAAhC,uBAAA,EAAA,cAAgC;;YACnC,IAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;YACnE,IAAM,UAAU,GACZ,MAAA,MAAA,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,0CAAE,qBAAqB,GAAG,MAAM,mCAAI,CAAC,CAAC;YAC9F,OAAO;gBACH,CAAC,EAAE,EAAE;gBACL,CAAC,EAAE,IAAI,CAAC,KAAK,GAAG,WAAW,IAAI,MAAM,KAAK,QAAQ,GAAG,UAAU,GAAG,CAAC,CAAC;aACvE,CAAC;SACL;QAED,4CAAQ,GAAR;YACI,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO;gBACH,QAAQ,EAAE,GAAG,CAAC,CAAC;gBACf,SAAS,EAAE,GAAG,CAAC,CAAC;aACnB,CAAC;SACL;;;;gBA1CJvD,YAAS,SAAC;oBACP,QAAQ,EAAE,wBAAwB;oBAClC,gmBAAkD;oBAElD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;gBAfGuD,aAAU;;;uBAiBT5C,QAAK;wBACLA,QAAK;yBACLA,QAAK;;;;QCeN,oCAAoB,cAAiC;YAAjC,mBAAc,GAAd,cAAc,CAAmB;YAPrD,oBAAe,GAAG,IAAI2C,oBAAe,CAAqB,SAAS,CAAC,CAAC;YAErE,UAAK,GAAgB,EAAE,CAAC;YACxB,UAAK,GAA6F,EAAE,CAAC;SAI5C;QAEzD,sBACI,mDAAW;iBADf;gBAEI,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;aAC1C;;;WAAA;QAED,6CAAQ,GAAR;YACI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAACL,sBAAY,CAAC,GAAG,CAAC,CAAC,CAAC;SACpE;QAED,gDAAW,GAAX,UAAY,OAAsB;YAC9B,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB;QAED,oDAAe,GAAf;YAAA,iBAEC;YADG,UAAU,CAAC,cAAM,OAAA,KAAI,CAAC,aAAa,EAAE,GAAA,CAAC,CAAC;SAC1C;QAED,gDAAW,GAAX,UAAY,SAAiB;YACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACxC;QAED,+CAAU,GAAV;YACI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAChD;QAED,+CAAU,GAAV,UAAW,KAAa;YACpB,IAAI,IAAI,CAAC,cAAc,EAAE;gBACrB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,GAAA,CAAC,CAAC;aACjE;SACJ;QAEO,kDAAa,GAAb;;;YACJ,IAAM,YAAY,GAAG,IAAI,GAAG,EAAqB,CAAC;;gBAClD,KAAoB,IAAA,KAAA,SAAA,IAAI,CAAC,MAAM,CAAA,gBAAA,4BAAE;oBAA5B,IAAM,KAAK,WAAA;oBACZ,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;wBACzB,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,EAAE,EAAE,EAAE;qBACT,CAAC,CAAC;iBACN;;;;;;;;;oCAEW,IAAI,EAAE,SAAS;;gBACvB,IAAM,OAAO,GAAG,MAAA,MAAA,OAAK,MAAM,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,IAAI,GAAA,CAAC,0CAAE,EAAE,mCAAI,EAAE,CAAC;;oBACnE,KAAqB,IAAA,2BAAA,SAAA,OAAO,CAAA,CAAA,gCAAA,qDAAE;wBAAzB,IAAM,MAAM,oBAAA;wBACb,IAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;wBAC5C,IAAI,UAAU,EAAE;4BACZ,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;yBACjC;qBACJ;;;;;;;;;;;;gBAPL,KAAgC,IAAA,KAAA,SAAA,YAAY,CAAC,OAAO,EAAE,CAAA,gBAAA;oBAA3C,IAAA,KAAA,mBAAiB,EAAhB,IAAI,QAAA,EAAE,SAAS,QAAA;4BAAf,IAAI,EAAE,SAAS;iBAQ1B;;;;;;;;;YACD,IAAI,CAAC,KAAK,GAAG,yBAAI,YAAY,CAAC,MAAM,EAAE,GAAE,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,KAAK,WAAW,GAAA,CAAC,CAAC;SACjF;QAEO,kDAAa,GAAb;;;gBACJ,KAAmB,IAAA,KAAA,SAAA,IAAI,CAAC,KAAK,CAAA,gBAAA,4BAAE;oBAA1B,IAAM,IAAI,WAAA;oBACX,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAC3C,IAAI,KAAK,GAAG,CAAC,CAAC;;wBACd,KAAiB,IAAA,oBAAA,SAAA,IAAI,CAAC,EAAE,CAAA,CAAA,gBAAA,4BAAE;4BAArB,IAAM,EAAE,WAAA;4BACT,IAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;4BACvC,IAAI,OAAO,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,EAAE;gCACvC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;oCACZ,EAAE,EAAE,KAAK;oCACT,IAAI,EAAE,OAAO;oCACb,KAAK,OAAA;iCACR,CAAC,CAAC;gCACH,KAAK,EAAE,CAAC;6BACX;yBACJ;;;;;;;;;iBACJ;;;;;;;;;YACD,IAAI,CAAC,KAAK,4BAAO,IAAI,CAAC,KAAK,EAAC,CAAC;YAC7B,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;SACtC;;;;gBAzFJlD,YAAS,SAAC;oBACP,QAAQ,EAAE,yBAAyB;oBACnC,uiBAAmD;oBAEnD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;gBAvBGS,oBAAiB;;;yBAyBhBE,QAAK;+BACLA,QAAK;iCAML6C,eAAY,SAAC,yBAAyB;8BAItCC,cAAW,SAAC,iBAAiB;;;;QCnClC;YASI,iCAA4B,GAAG,KAAK,CAAC;YACrC,wBAAmB,GAEf,EAAE,CAAC;SAkEV;QAhEG,sBAAI,6DAA4B;iBAAhC;gBACI,OAAO,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;aAC9E;;;WAAA;QAED,sBAAI,2CAAU;iBAAd;gBACI,OAAO,CAAC,IAAI,CAAC,4BAA4B,IAAI,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;aACtF;;;WAAA;QAED,sCAAQ,GAAR;YACI,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1E,IAAI,CAAC,mBAAmB,EAAE,CAAC;SAC9B;QAED,yDAA2B,GAA3B;YACI,IAAI,CAAC,4BAA4B,GAAG,CAAC,IAAI,CAAC,4BAA4B,CAAC;SAC1E;QAED,8CAAgB,GAAhB,UAAiB,IAAuB;YACpC,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,KAAKC,iBAAc,CAAC,SAAS,GAAA,CAAC,CAAC;SAC1E;QAEO,iDAAmB,GAAnB;;YAAA,iBAkBP;oCAjBc,IAAI;gBACX,IAAM,SAAS,GAAG,IAAI9D,eAAS,CAAC,EAAE,CAAC,CAAC;gBACpC,IAAM,MAAM,GAAG,OAAK,qBAAqB;qBACpC,GAAG,CAAC,UAAA,MAAM;oBACP,IAAM,KAAK,GAAI,IAAY,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACtD,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,IAAIC,iBAAW,CAAC,KAAK,CAAC,CAAC,CAAC;oBAC1D,OAAO;wBACH,MAAM,QAAA;wBACN,SAAS,WAAA;wBACT,KAAK,OAAA;qBACR,CAAC;iBACL,CAAC;qBACD,MAAM,CAAC,UAAA,KAAK;oBACT,OAAO,KAAI,CAAC,4BAA4B,GAAG,IAAI,GAAG,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC;iBACzE,CAAC,CAAC;gBACP,OAAK,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;;;;gBAf/C,KAAmB,IAAA,KAAA,SAAA,IAAI,CAAC,KAAK,CAAC,KAAK,CAAA,gBAAA;oBAA9B,IAAM,IAAI,WAAA;4BAAJ,IAAI;iBAgBd;;;;;;;;;SACJ;QAED,8CAAgB,GAAhB,UAAiB,SAAgC;YAC7C,IAAM,EAAE,GAAG,SAAS,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,OAAO,CAAC,YAAY,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC;SAC3C;QAED,wDAA0B,GAA1B,UACI,KAA2B,EAC3B,mBAA0C;YAE1C,IAAM,EAAE,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,IAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,EAAE,KAAK,EAAE,GAAA,CAAC,CAAC;YAC1D,IAAI,SAAS,EAAE;gBACX,OAAO,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC;aAC5C;SACJ;QAED,8CAAgB,GAAhB,UAAiB,KAA2B;YACxC,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,EAAE;gBAC5B,OAAO,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,UAAA,YAAY,IAAI,OAAA,YAAY,CAAC,cAAc,CAAC,IAAI,GAAA,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAC/F;iBAAM;gBACH,OAAO,EAAE,CAAC;aACb;SACJ;;;;gBA7EJE,YAAS,SAAC;oBACP,QAAQ,EAAE,iBAAiB;oBAC3B,qhPAA2C;oBAE3C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;wBAEIW,QAAK;wCACLA,QAAK;;;;QCFV;;;;;gBANCZ,YAAS,SAAC;oBACP,QAAQ,EAAE,oBAAoB;oBAC9B,ovBAA8C;oBAE9C,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;0BAEIW,QAAK;+BACLA,QAAK;;;;QCJV;;QAGI,sBAAI,qDAAa;iBAAjB;gBACI,QAAQ,IAAI,CAAC,KAAK;oBACd,KAAK,YAAY;wBACb,OAAO,SAAS,CAAC;oBACrB,KAAK,SAAS;wBACV,OAAO,SAAS,CAAC;oBACrB,KAAK,UAAU,CAAC;oBAChB,KAAK,WAAW;wBACZ,OAAO,OAAO,CAAC;iBACtB;aACJ;;;WAAA;;;;gBAnBJZ,YAAS,SAAC;oBACP,QAAQ,EAAE,yBAAyB;oBACnC,uPAAmD;oBAEnD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;wBAEIW,QAAK;;;;QCDV;;QAGI,sBAAI,oDAAa;iBAAjB;gBACI,QAAQ,IAAI,CAAC,KAAK;oBACd,KAAK,SAAS;wBACV,OAAO,SAAS,CAAC;oBACrB,KAAK,SAAS;wBACV,OAAO,SAAS,CAAC;oBACrB,KAAK,QAAQ;wBACT,OAAO,OAAO,CAAC;iBACtB;aACJ;;;WAAA;;;;gBAlBJZ,YAAS,SAAC;oBACP,QAAQ,EAAE,wBAAwB;oBAClC,uPAAkD;oBAElD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;wBAEIW,QAAK;;;;QCDV;;;;;gBANCZ,YAAS,SAAC;oBACP,QAAQ,EAAE,sBAAsB;oBAChC,kUAAgD;oBAEhD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;iBAClD;;;wBAEIW,QAAK;;;ICHV;;;;QAMmC,iCAAwC;QACvE,uBAAY,MAAc,EAAE,WAAwB;mBAChD,kBACI,MAAM,EACN;gBACI,UAAU,EAAE,OAAO;gBACnB,EAAE,EAAE,EAAE;gBACN,IAAI,EAAE,EAAE;gBACR,SAAS,EAAE,EAAE;gBACb,SAAS,EAAE,EAAE;gBACb,KAAK,EAAE,CAAC;aACJ,EACR,UAAA,EAAE,IAAI,OAAA,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,GAAA,CAAC,GAAA,CACrE;SACJ;;KAdL,CAAmCgD,qBAAwC;;;gBAH1EjC,aAAU,SAAC;oBACR,UAAU,EAAE,MAAM;iBACrB;;;gBAVQU,WAAM;gBAGNnC,cAAW;;;aCgBN;QACF,UAAU,EAAEE,gCAAC,CAAC,mBAAmB,CAAC;KACrC,OAOK;QACF,UAAU,EAAE,eAAe;KAC9B,OAOK;QACF,UAAU,EAAE,wBAAwB;;QAvBnC,WAAW,GAAY;QAChC;YACI,IAAI,EAAE,EAAE;YACR,SAAS,EAAE,kBAAkB;YAC7B,IAAI,IAEH;SACJ;QACD;YACI,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,oBAAoB;YAC/B,OAAO,EAAEyD,oBAAiB,CAAC,aAAa,CAAC;YACzC,aAAa,EAAE,CAACC,2BAAwB,CAAC;YACzC,IAAI,IAEH;SACJ;QACD;YACI,IAAI,EAAE,YAAY;YAClB,SAAS,EAAE,oBAAoB;YAC/B,OAAO,EAAED,oBAAiB,CAAC,aAAa,CAAC;;YAEzC,IAAI,IAEH;SACJ;MACH;aAEc,eAAe,CAAC,IAAS,EAAE,MAAW;QAClD,OAAOE,mBAAgB,CAAuB;YAC1C,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,aAAa,EAAE,mBAAmB;YAClC,OAAO,EAAE,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,IAAI,GAAA;YAC5B,KAAK,EAAE,EAAE;SACZ,CAAC,CAAC;IACP,CAAC;aAEe,wBAAwB,CAAC,IAAS,EAAE,MAAW;QAC3D,OAAO,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CACrCrC,aAAG,CAAC,UAAC,WAAsC;YACvC,IAAM,mBAAmB,GAAG,WAAW,CAAC,KAAK,EAAE,CAAC;YAChD,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACvC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC;YAC7C,OAAO,mBAAmB,CAAC,MAAM,CAAC,EAAE,KAAK,EAAEtB,gCAAC,CAAC,sBAAsB,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACvF,CAAQ,CACZ,CAAC;IACN;;;QCIA;;;;;gBAjCC4D,WAAQ,SAAC;oBACN,OAAO,EAAE,CAACC,eAAY,EAAEC,iBAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBAC3D,YAAY,EAAE;wBACV,kBAAkB;wBAClB,oBAAoB;wBACpB,2BAA2B;wBAC3B,wBAAwB;wBACxB,0BAA0B;wBAC1B,0BAA0B;wBAC1B,0BAA0B;wBAC1B,oBAAoB;wBACpB,yBAAyB;wBACzB,yBAAyB;wBACzB,2BAA2B;wBAC3B,qBAAqB;wBACrB,0BAA0B;wBAC1B,sBAAsB;wBACtB,uBAAuB;wBACvB,8BAA8B;wBAC9B,0BAA0B;wBAC1B,yBAAyB;wBACzB,yBAAyB;wBACzB,gCAAgC;wBAChC,8BAA8B;wBAC9B,wBAAwB;wBACxB,oBAAoB;wBACpB,mBAAmB;wBACnB,gCAAgC;wBAChC,2BAA2B;wBAC3B,+BAA+B;wBAC/B,+BAA+B;qBAClC;iBACJ;;;IClED;;ICAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|