@datarailsshared/datarailsshared 1.4.102 → 1.4.103

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.
@@ -1 +1 @@
1
- {"version":3,"file":"datarailsshared-datarailsshared.umd.js","sources":["../../../projects/datarailsshared/src/lib/date-tags/date-tag.component.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/month-tag/month-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/quarter-tag/quarter-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/week-tag/week-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/year-tag/year-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.component.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/day-tag/day-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-button.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-group.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/checkbox/checkbox.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-input/dr-input.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select/dr-select.component.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.component.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.pipe.ts","../../../projects/datarailsshared/src/lib/models/constants.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle/dr-toggle.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.component.ts","../../../projects/datarailsshared/src/lib/models/spinnerOptions.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover-ref.ts","../../../projects/datarailsshared/src/lib/models/popover.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.component.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.service.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.service.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.component.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-position.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-item-show.pipe.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tab.component.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-header.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-body.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-header.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-body.component.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/services/dialog.service.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-position.enum.ts","../../../projects/datarailsshared/src/lib/dr-dialog/interfaces/dialog-data.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-model-debounce-change.directive.ts","../../../projects/datarailsshared/src/lib/models/datePicker.ts","../../../projects/datarailsshared/src/lib/models/chat.ts","../../../projects/datarailsshared/src/lib/date-tags/date-tag.module.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.module.ts","../../../projects/datarailsshared/src/lib/utils/dr-shared-utils.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/services/dr-date-picker.service.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-inputs.module.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.module.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.module.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.module.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.module.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.module.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.module.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.module.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.module.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.module.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.component.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.module.ts","../../../projects/datarailsshared/src/lib/dr-dialog/dialog.module.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-form/chat-form.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/chat-message.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-rich-text/chat-message-rich-text.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.module.ts","../../../projects/datarailsshared/src/public-api.ts","../../../projects/datarailsshared/src/datarailsshared-datarailsshared.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IDateTag } from '../models/serverTags';\n\n// import {*} from \"\"\n@Component({\n templateUrl: 'date-tag.component.html',\n selector: 'date-tag',\n styleUrls: ['date-tag.component.css', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class DateTagComponent {\n @Input() name: string | undefined = undefined;\n @Input() lockedDate: any[] = [];\n @Input() defaultValue: number | undefined = undefined;\n @Input() dateTypeChosen: any = {};\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Output() selectedDate: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n\n\n constructor() {\n }\n\n changeSelectedDate(date) {\n setTimeout(() => {\n console.log('change date', date);\n this.selectedDate.emit(date);\n }, 300);\n }\n}\n\n@Component({\n template: ``,\n selector: 'any-tag'\n})\nexport class AnyTagComponent implements OnInit {\n @Output() dateChange: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n @Input() name: string | undefined = undefined;\n @Input() defaultValue: number | undefined = undefined;\n dateObj = { date: undefined };\n\n constructor() {\n }\n\n ngOnInit() {\n this.initDate();\n this.initName();\n this.chosenTagHandler(this.dateObj.date);\n }\n\n initDate() {\n }\n\n initName() {\n }\n\n changeInputHandler(event: Event) {\n const input: HTMLInputElement = <HTMLInputElement>event.target;\n this.chosenTagHandler(input.value);\n }\n\n chosenTagHandler(value) {\n // need implement in all tags\n }\n}\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) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\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 { Component, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { MatSelectChange } from '@angular/material/select';\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\n// @ts-ignore\nconst moment = require('moment');\n\n@Component({\n templateUrl: 'forecast-tag.component.html',\n selector: 'forecast-tag',\n})\n\nexport class ForecastTagComponent extends AnyTagComponent {\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Input() lockedDate: any[] = [];\n forecastValue: number | undefined = undefined;\n\n forecastTags: any[] = [\n { value: 0, label: '0+12' },\n { value: 1, label: '1+11' },\n { value: 2, label: '2+10' },\n { value: 3, label: '3+9' },\n { value: 4, label: '4+8' },\n { value: 5, label: '5+7' },\n { value: 6, label: '6+6' },\n { value: 7, label: '7+5' },\n { value: 8, label: '8+4' },\n { value: 9, label: '9+3' },\n { value: 10, label: '10+2' },\n { value: 11, label: '11+1' }\n ];\n\n constructor() {\n super();\n }\n\n initDate() {\n let dateVal = new Date();\n if (this.defaultValue) {\n dateVal = new Date(this.defaultValue * 1000);\n }\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n const fiscal_year_back = this.fiscalYearBack || false;\n this.forecastValue = this.getFiscalMonthFromDate(dateVal, fiscal_year_starts_from) - 1;\n const fiscal_year = this.getFiscalYearFromDate(dateVal, fiscal_year_starts_from, fiscal_year_back);\n\n console.log('test', dateVal, fiscal_year_starts_from, this.forecastValue, fiscal_year);\n\n this.dateObj.date = moment(new Date(fiscal_year, 0, 1)).format('YYYY');\n\n this.updateLockedDate();\n }\n\n updateLockedDate() {\n for (const forecastTag of this.forecastTags) {\n forecastTag.disable = false;\n\n this.lockedDate.forEach(timestamp => {\n const locked = moment.unix(timestamp);\n\n if (locked.month() - 1 === forecastTag.value && +locked.year() + 1 === +this.dateObj.date) {\n forecastTag.disable = true;\n }\n });\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Forecast';\n }\n }\n\n getFiscalMonthFromDate(dateObj, fiscal_year_starts_from) {\n const all_months = [];\n\n for (let i = fiscal_year_starts_from; i < 13; i++) {\n all_months.push(i);\n }\n\n for (let i = 1; i < fiscal_year_starts_from; i++) {\n all_months.push(i);\n }\n\n return all_months.indexOf(dateObj.getMonth() + 1) + 1;\n }\n\n getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back) {\n let fiscal_year = dateObj.getFullYear();\n\n if (!fiscal_year_back) {\n if (dateObj.getMonth() + 1 >= fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year += 1;\n }\n } else {\n if (dateObj.getMonth() + 1 < fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year -= 1;\n }\n }\n\n return fiscal_year;\n }\n\n getForecastLabelFromValue(value, fiscal_year_starts_from, fiscal_year_back) {\n let label = '';\n if (value) {\n const dateObj = new Date(value * 1000);\n\n const fiscal_month = this.getFiscalMonthFromDate(dateObj, fiscal_year_starts_from);\n const fiscal_year = this.getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back);\n\n label = (fiscal_month - 1) + '+' + (13 - fiscal_month) + ' (' + fiscal_year + ')';\n }\n return label;\n }\n\n changeTagInputHandler(event: MatSelectChange | MatButtonToggleChange) {\n this.chosenTagHandler();\n }\n\n changeYearInputHandler(event: Event) {\n this.updateLockedDate();\n this.chosenTagHandler();\n }\n\n chosenTagHandler() {\n const month = this.forecastValue;\n const year = Number.parseInt(this.dateObj.date, 10);\n\n let timeStampVal = 0;\n let label = '';\n\n if (!Number.isNaN(month) && !Number.isNaN(year)) {\n\n\n const date = new Date(year, month, 1, 12, 0, 0, 0);\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n const fiscal_year_back = this.fiscalYearBack || false;\n if (fiscal_year_starts_from !== 1) {\n if (!fiscal_year_back)\n {date.setMonth(date.getMonth() - 13 + fiscal_year_starts_from);}\n else\n {date.setMonth(date.getMonth() - 1 + fiscal_year_starts_from);}\n }\n\n timeStampVal = date.getTime() / 1000;\n label = this.getForecastLabelFromValue(timeStampVal, fiscal_year_starts_from, fiscal_year_back);\n }\n\n const resultTag: IDateTag = {\n name: this.name,\n value: timeStampVal,\n label,\n locked: !this.dateFilter(timeStampVal)\n };\n\n this.dateChange.emit(resultTag);\n }\n\n dateFilter = (date) => {\n const forecastDate = moment.unix(date);\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const locked = moment.unix(timestamp);\n\n return status = !(locked.month() === forecastDate.month() && locked.year() === forecastDate.year());\n });\n\n return status;\n };\n}\n","import { Component, Input } from '@angular/core';\nimport { Moment } from 'moment';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { FormControl } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n// @ts-ignore\nconst moment = require('moment');\n\nconst MONTH_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'MMMM YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'month-tag.component.html',\n selector: 'month-tag',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: MONTH_FORMATS },\n ],\n})\n\nexport class MonthTagComponent extends AnyTagComponent {\n @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n\n constructor() {\n super();\n }\n\n initDate() {\n if (this.defaultValue) {\n this.dateObj.date = moment(this.defaultValue * 1000).utc().format('YYYY-MM');\n this.date = new FormControl(moment(this.defaultValue * 1000));\n } else {\n this.dateObj.date = moment(new Date()).format('YYYY-MM');\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Month and Year';\n }\n }\n\n chosenTagHandler(value) {\n const resultDate: Moment = moment.utc(value);\n resultDate.hour(12);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format('X'), 10),\n label: resultDate.format('MMMM YYYY'),\n locked: !this.dateFilter(value)\n };\n console.log(resultTag, value);\n this.dateChange.emit(resultTag);\n }\n\n chosenMonthHandler(normalizedMonth: Moment, datepicker: MatDatepicker<Moment>) {\n this.date.setValue(normalizedMonth);\n this.dateObj.date = this.date.value;\n\n this.chosenTagHandler(this.date.value);\n\n datepicker.close();\n }\n\n dateFilter = (date) => {\n const calendarDate = moment(date);\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n\n return status = !(lockDate.year() === calendarDate.year() && lockDate.month() === calendarDate.month());\n });\n\n return status;\n };\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { Moment } from 'moment';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { MatSelectChange } from '@angular/material/select';\n// @ts-ignore\nconst moment = require('moment');\n\n@Component({\n templateUrl: 'quarter-tag.component.html',\n selector: 'quarter-tag',\n})\nexport class QuarterTagComponent extends AnyTagComponent implements OnInit {\n @Input() lockedDate: any[] = [];\n selectedValue = 0;\n quarters: any[] = [];\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.initName();\n this.quarters = this.getQuarterOptions();\n\n for (const quarter of this.quarters) {\n quarter.disable = false;\n\n if (quarter.isSelected) {\n this.selectedValue = quarter.value;\n this.chosenTagHandler(quarter.value);\n }\n\n this.dateFilter(quarter);\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Quarter';\n }\n }\n\n changeSelectHandler(event: MatSelectChange) {\n this.chosenTagHandler(event.value);\n }\n\n chosenTagHandler(value) {\n const date = new Date(value * 1000);\n const resultDate: Moment = moment.utc(date);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format('X'), 10),\n label: this.getQuarterLabel(resultDate.toString()),\n locked: !this.dateFilter(value)\n };\n this.dateChange.emit(resultTag);\n }\n\n getQuarterOptions() {\n const quartersBeforeToday = 8;\n const quartersAfterToday = 8;\n const dateNow = new Date();\n const dateNowUnix = this.getUTCTimestamp(dateNow);\n let defaultValue = dateNowUnix;\n let tempDate = new Date();\n if (this.defaultValue) {\n defaultValue = this.defaultValue * 1000;\n }\n\n let afterDefault = Math.round(Math.abs(dateNowUnix - defaultValue) / 7776000000) + quartersAfterToday;\n afterDefault = Math.min(afterDefault, 100);\n let i; let tempValue;\n const to_return: any[] = [];\n for (i = 0 - quartersBeforeToday; i <= afterDefault; i++) {\n tempDate = new Date(defaultValue);\n tempDate.setDate(15);\n tempDate.setMonth(tempDate.getMonth() + 3 * i);\n tempValue = this.getUTCTimestamp(tempDate);\n to_return.push({\n value: tempValue / 1000,\n label: this.getQuarterLabel(tempValue),\n isSelected: (i === 0),\n });\n }\n return to_return;\n }\n\n private getQuarterLabel(timeValue) {\n const date = new Date(timeValue);\n return 'Q' + Math.floor((date.getMonth() / 3) + 1) + ' ' + date.getFullYear();\n }\n\n private getUTCTimestamp(date) {\n const month = Math.floor(date.getMonth() / 3) * 3;\n return Date.UTC(date.getFullYear(), month, 1, 12, 0, 0, 0);\n }\n\n dateFilter = (date) => {\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n const quarterDate = moment.unix(date.value);\n\n if (lockDate.year() === quarterDate.year() && lockDate.month() === quarterDate.month()) {\n date.disable = true;\n status = false;\n }\n });\n\n return status;\n };\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { Moment } from 'moment';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { FormControl } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n// @ts-ignore\nconst moment = require('moment');\n\nconst WEEK_FORMATS = {\n parse: {\n dateInput: 'WW-YYYY',\n },\n display: {\n dateInput: '[Week] WW, YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'week-tag.component.html',\n selector: 'week-tag',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: WEEK_FORMATS },\n ],\n})\nexport class WeekTagComponent extends AnyTagComponent implements OnInit {\n @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n selectedValue = '';\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.initName();\n\n const now = new Date();\n now.setHours(0, 0, 0, 0);\n\n const dateUnix = this.getUTCTimestamp(this.getMonday(now));\n let default_value_time = dateUnix;\n const one_day_in_seconds = 86400;\n if (this.defaultValue) {\n default_value_time = (this.defaultValue + one_day_in_seconds) * 1000;\n }\n\n const default_date = new Date(default_value_time);\n const weekNumber = this.getWeekNumberByDate(default_date);\n const yearNumber = default_date.getFullYear();\n const dateStr = `${ yearNumber }-W${ weekNumber }`;\n this.dateObj.date = dateStr;\n this.selectedValue = dateStr;\n this.chosenTagHandler(default_date);\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Week';\n }\n }\n\n chosenDateHandler(normalizedDay) {\n const date = moment(normalizedDay).unix();\n this.chosenTagHandler(date);\n }\n\n dateFilter = (date) => {\n const calendarDate = moment(date);\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n\n return status = !(lockDate.week() === calendarDate.week() && lockDate.year() === calendarDate.year());\n });\n\n return status;\n };\n\n chosenTagHandler(value) {\n let date;\n console.log('chosenTag', value);\n if (value > 1000000000000) {\n date = new Date(value);\n } else {\n date = new Date(value * 1000);\n }\n\n const resultDate: Moment = moment(date);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format('X'), 10),\n label: this.getWeekLabel(date),\n locked: !this.dateFilter(value)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n private getWeekLabel(date) {\n return 'W' + this.pad(moment(date).isoWeek(), 2) +\n ' ' + moment(date).year();\n }\n\n private getUTCTimestamp(date) {\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 12, 0, 0, 0);\n }\n\n private getMonday(date) {\n const day = date.getDay() || 7;\n if (day !== 1) {\n date.setHours(-24 * (day - 1));\n }\n return date;\n }\n\n private getWeekNumberByDate(date: Date) {\n return this.pad(moment(date).isoWeek(), 2);\n }\n\n private pad(n, width, z = '0') {\n z = z || '0';\n n = n + '';\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { Moment } from 'moment';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n// @ts-ignore\nconst moment = require('moment');\n\nconst YEAR_FORMATS = {\n parse: {\n dateInput: 'YYYY',\n },\n display: {\n dateInput: 'YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'year-tag.component.html',\n selector: 'year-tag',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: YEAR_FORMATS },\n ],\n})\n\nexport class YearTagComponent extends AnyTagComponent {\n @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n\n constructor() {\n super();\n }\n\n initDate() {\n if (this.defaultValue) {\n this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc().format('YYYY');\n this.date = new FormControl(moment(this.defaultValue * 1000));\n } else {\n this.dateObj.date = moment(new Date()).format('YYYY');\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Year';\n }\n }\n\n chosenTagHandler(value) {\n const date = new Date();\n const year = moment(value).year();\n date.setTime(0);\n date.setFullYear(year, 0, 1);\n const resultDate: Moment = moment.utc(date);\n resultDate.hour(12);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format('X'), 10),\n label: resultDate.format('YYYY'),\n locked: !this.dateFilter(value)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n chosenYearHandler(normalizedYear: Moment, datepicker: MatDatepicker<Moment>) {\n const ctrlValue = this.date.value;\n ctrlValue.year(normalizedYear.year());\n\n this.date.setValue(ctrlValue);\n this.dateObj.date = this.date.value;\n this.chosenTagHandler(this.date.value);\n\n datepicker.close();\n }\n\n dateFilter = (date) => {\n const calendarDateYear = moment(date).year();\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n\n return status = !(lockDate.year() === calendarDateYear);\n });\n\n return status;\n };\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IDateTag, IListTag, ITag, ITagForServer } from '../models/serverTags';\n\n@Component({\n templateUrl: 'dr-tag.component.html',\n selector: 'dr-tag',\n styleUrls: ['dr-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class DrTagComponent implements OnInit {\n @Input() tagConfig: ITag;\n @Input() selectedTag: ITagForServer;\n @Input() lockedDate: any[];\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>();\n\n defaultValue: string | undefined;\n\n constructor() {\n this.selectedTag = {\n id: 0,\n value: undefined,\n name: ''\n };\n }\n\n ngOnInit() {\n if (this.tagConfig && this.tagConfig.options && this.tagConfig.options.default_value) {\n this.defaultValue = this.tagConfig.options.default_value;\n }\n }\n\n onDateHandler(event: IDateTag) {\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: event.value,\n label: event.label,\n locked: event.locked\n };\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onListHandler(event: IListTag) {\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: event.value\n };\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IListTag } from '../models/serverTags';\nimport * as momentImported from 'moment';\nimport { MatSelectChange } from '@angular/material/select';\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\n\nconst moment = momentImported;\n\n@Component({\n templateUrl: 'list-tag.component.html',\n selector: 'list-tag',\n styleUrls: ['list-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class ListTagComponent implements OnInit {\n @Input() values: string[];\n @Input() defaultValue = '';\n @Input() name: string;\n @Output() tagChange: EventEmitter<IListTag> = new EventEmitter<IListTag>();\n\n constructor() {\n }\n\n ngOnInit() {\n this.chosenTagHandler(this.defaultValue);\n }\n\n changeInputHandler(event: MatSelectChange | MatButtonToggleChange) {\n this.chosenTagHandler(event.value);\n }\n\n chosenTagHandler(value) {\n console.log(value);\n if (value && value !== '') {\n const resultTag: IListTag = {\n name: this.name,\n value\n };\n this.tagChange.emit(resultTag);\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { FormControl } from '@angular/forms';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\n// @ts-ignore\nconst moment = require('moment');\n\nconst DAY_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'DD.MM.YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'day-tag.component.html',\n selector: 'day-tag',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: DAY_FORMATS },\n ],\n})\n\nexport class DayTagComponent extends AnyTagComponent {\n @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n\n constructor() {\n super();\n }\n\n initDate() {\n const utcOffsetInMilliseconds = moment().utcOffset() * 60 * 1000;\n this.dateObj.date = moment(moment().valueOf() + utcOffsetInMilliseconds);\n if (this.defaultValue) {\n this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc();\n this.date.setValue(this.dateObj.date);\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Day';\n }\n }\n\n chosenTagHandler(value) {\n const date = moment(value).unix();\n const resultTag: IDateTag = {\n name: this.name,\n value: date,\n label: moment.unix(date).format('MM/DD/YYYY'),\n locked: !this.dateFilter(value)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n chosenDateHandler(normalizedDay) {\n this.chosenTagHandler(normalizedDay);\n }\n\n dateFilter = (date) => {\n const calendarDate = moment(date).unix();\n let status = true;\n\n this.lockedDate.forEach(timestamp => status = !(timestamp === calendarDate));\n\n return status;\n };\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioButtonComponent,\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent implements ControlValueAccessor {\n @Input() name: string;\n @Input('value') _value: any;\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n }\n\n private _disabled = false;\n\n modelValue: any;\n\n get value() {\n return this._value;\n }\n\n onChange: any = (onchanges => {\n });\n onTouched: any = () => {\n };\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n registerOnChange(fn) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n\n writeValue(value: any) {\n this.modelValue = value;\n this.cdr.markForCheck();\n }\n\n toggleChange(event) {\n if (event.target.checked) {\n this.modelValue = this.value;\n }\n }\n\n valueChanged(event) {\n this.onChange(this.modelValue);\n this.valueChange.emit(this.value);\n }\n\n _setName(name: string) {\n this.name = name;\n this.cdr.markForCheck();\n }\n\n _markForCheck() {\n this.cdr.markForCheck();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n Output,\n PLATFORM_ID,\n QueryList,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { from, fromEvent, merge, Subject } from 'rxjs';\nimport { filter, startWith, switchMap, takeUntil } from 'rxjs/operators';\nimport { RadioButtonComponent } from './radio-button.component';\n\n@Component({\n selector: 'dr-radio-group',\n template: `\n <ng-content select=\"dr-radio-button\"></ng-content>`,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioGroupComponent implements AfterContentInit, OnDestroy, ControlValueAccessor {\n\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n this._value = value;\n this.updateValues();\n }\n\n @Input()\n get name(): string {\n return this._name;\n }\n\n set name(name: string) {\n this._name = name;\n this.updateNames();\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = !!disabled;\n this.updateDisabled();\n }\n\n constructor(\n protected hostElement: ElementRef<HTMLElement>,\n @Inject(PLATFORM_ID) protected platformId,\n @Inject(DOCUMENT) protected document,\n ) {\n }\n\n protected destroy$ = new Subject<void>();\n protected _value: any;\n protected _name: string;\n protected _disabled: boolean;\n\n @ContentChildren(RadioButtonComponent, { descendants: true }) radios: QueryList<RadioButtonComponent>;\n\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n protected onChange = (value: any) => {\n };\n protected onTouched = () => {\n };\n\n ngAfterContentInit() {\n // In case option 'name' isn't set on dr-radio component,\n // we need to set it's name right away, so it won't overlap with options\n // without names from other radio groups. Otherwise they all would have\n // same name and will be considered as options from one group so only the\n // last option will stay selected.\n this.updateNames();\n\n this.radios.changes.pipe(\n startWith(this.radios),\n // 'changes' emit during change detection run and we can't update\n // option properties right of since they already was initialized.\n // Instead we schedule microtask to update radios after change detection\n // run is finished and trigger one more change detection run.\n switchMap((radios: QueryList<RadioButtonComponent>) => from(Promise.resolve(radios))),\n takeUntil(this.destroy$),\n ).subscribe(() => this.updateAndSubscribeToRadios());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n protected updateAndSubscribeToRadios() {\n this.updateValueFromCheckedOption();\n this.updateNames();\n this.updateValues();\n this.updateDisabled();\n this.subscribeOnRadiosValueChange();\n this.subscribeOnRadiosBlur();\n }\n\n protected updateNames() {\n if (this.radios) {\n this.radios.forEach((radio: RadioButtonComponent) => radio._setName(this.name));\n }\n }\n\n protected updateValues() {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => {\n radio.modelValue = this.value;\n });\n }\n\n protected updateDisabled() {\n if (typeof this.disabled !== 'undefined') {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => radio.disabled = this.disabled);\n }\n }\n\n protected subscribeOnRadiosValueChange() {\n if (!this.radios || !this.radios.length) {\n return;\n }\n\n merge(...this.radios.map((radio: RadioButtonComponent) => radio.valueChange)).pipe(\n takeUntil(\n merge(\n this.radios.changes,\n this.destroy$,\n ),\n ),\n ).subscribe((value: any) => {\n this.writeValue(value);\n this.propagateValue(value);\n });\n }\n\n protected propagateValue(value: any) {\n this.valueChange.emit(value);\n this.onChange(value);\n }\n\n protected subscribeOnRadiosBlur() {\n const hasNoRadios = !this.radios || !this.radios.length;\n if (!isPlatformBrowser(this.platformId) || hasNoRadios) {\n return;\n }\n\n const hostElement = this.hostElement.nativeElement;\n fromEvent<Event>(hostElement, 'focusin').pipe(\n filter(event => hostElement.contains(event.target as Node)),\n switchMap(() => merge(\n fromEvent<Event>(this.document, 'focusin'),\n fromEvent<Event>(this.document, 'click'),\n )),\n filter(event => !hostElement.contains(event.target as Node)),\n takeUntil(\n merge(\n this.radios.changes,\n this.destroy$,\n ),\n ),\n ).subscribe(() => this.onTouched());\n }\n\n protected updateAndMarkForCheckRadios(updateFn: (RadioButtonComponent) => void) {\n if (this.radios) {\n this.radios.forEach((radio) => {\n updateFn(radio);\n radio._markForCheck();\n });\n }\n }\n\n protected updateValueFromCheckedOption() {\n const checkedRadio = this.radios.find((radio) => radio.modelValue);\n const isValueMissing = this.value === undefined || this.value === null;\n if (checkedRadio && isValueMissing && checkedRadio.value !== this.value) {\n this.value = checkedRadio.value;\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() checkedStatus: boolean;\n @Input() disabled = false;\n @Input() icon: 'cross' | '' = '';\n\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n set indeterminate(value: boolean) {\n this._indeterminate = !!value;\n this.cdr.markForCheck();\n }\n\n private _indeterminate = false;\n @Output() checkedChange = new EventEmitter();\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n setValue(event) {\n const input = (event.target as HTMLInputElement);\n this.checkedStatus = input.checked;\n this.checkedChange.emit(this.checkedStatus);\n this.onChange(this.checkedStatus);\n this.indeterminate = input.indeterminate;\n this.onTouched();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { noop } from 'rxjs';\n\n@Component({\n selector: 'dr-input',\n templateUrl: './dr-input.component.html',\n styleUrls: ['./dr-input.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DrInputComponent),\n multi: true\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrInputComponent implements AfterViewInit, ControlValueAccessor, OnDestroy {\n _clearable = false;\n\n @Input() set disabled(value) {\n this.setDisabledState(value);\n }\n\n @Input() set buttonOptions(value) {\n if (value) {\n this._buttonOptions = { ...this._buttonOptions, ...value };\n if (this._buttonOptions?.show || this._buttonOptions?.showOnFocus) {\n this._elementClass.push('with-button');\n }\n }\n if (this._buttonOptions.showOnFocus) {\n this.listenFunc = this.renderer.listen(this.elementRef.nativeElement, 'click', (event) => {\n this._buttonOptions.focusSet = true;\n this.cdr.markForCheck();\n });\n this.globalListenFunc = this.renderer.listen('document', 'click', event => {\n if (event.target.parentNode !== this.elementRef.nativeElement) {\n if (this._buttonOptions.checkFocusOut(event.target, this.elementRef.nativeElement)) {\n this.onButtonClicked(event);\n }\n }\n });\n }\n this.cdr.markForCheck();\n }\n\n @Input() type = 'string';\n @Input() name: string;\n @Input() placeholder = '';\n @Input() readonly = false;\n\n @Input() set clearable(val) {\n this._clearable = !!val;\n if (this._clearable) {\n this._elementClass.push('clearable');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'clearable');\n }\n this.cdr.markForCheck();\n }\n\n @Input() min: number | string;\n @Input() max: number | string;\n @Input() minLength: number;\n @Input() maxlength: number;\n @Input() step;\n @Output() blur = new EventEmitter();\n @Output() ngModelDebounceChange = new EventEmitter();\n\n @HostBinding('class')\n get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n innerValue = null;\n _disabled = null;\n _elementClass: string[] = [];\n _buttonOptions = {\n show: false,\n showOnFocus: false,\n focusSet: false,\n checkFocusOut: (target: any, element: any) => true,\n text: 'Save'\n };\n listenFunc: (...params) => any;\n globalListenFunc: (...params) => any;\n\n\n @Output() searchHandler = new EventEmitter<any>();\n @Output() buttonHandler = new EventEmitter<any>();\n\n @ContentChild('prefix', { static: false }) prefixIcon: ElementRef;\n @ContentChild('suffix', { static: false }) suffixIcon: ElementRef;\n\n @HostBinding('tabindex') tabindex = -1;\n onChangeCallback: (_: any) => void = noop;\n onTouchedCallback: () => void = noop;\n onChange: (value: any) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n set(val: string) {\n this._elementClass = val.split(' ');\n }\n\n public get value(): string | number {\n return this.innerValue;\n }\n\n public set value(v: string | number) {\n if (v !== this.innerValue) {\n this.innerValue = this.type === 'number' ? +v : v;\n this.onChangeCallback(this.innerValue);\n }\n this.cdr.markForCheck();\n }\n\n\n constructor(private elementRef: ElementRef,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n if (this.clearable) {\n this._elementClass.push('clearable');\n }\n if (this.prefixIcon) {\n this._elementClass.push('with-prefix');\n }\n if (this.suffixIcon) {\n this._elementClass.push('with-suffix');\n }\n if (this.type === 'search') {\n this._elementClass.push('search-type');\n }\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n writeValue(value: number | string) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.updateChanges();\n this.cdr.markForCheck();\n }\n }\n\n updateChanges() {\n this.onChange(this.value);\n }\n\n setDisabledState(isDisabled: boolean) {\n if (isDisabled) {\n this._elementClass.push('disabled');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'disabled');\n }\n this._disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onSearchClicked($event: any) {\n this.searchHandler.emit($event);\n }\n\n onButtonClicked($event: any) {\n this.buttonHandler.emit($event);\n this._buttonOptions.focusSet = false;\n this.cdr.markForCheck();\n }\n\n ngOnDestroy(): void {\n if (this.listenFunc) {\n this.listenFunc();\n this.globalListenFunc();\n }\n }\n\n onClear($event) {\n $event.preventDefault();\n $event.stopPropagation();\n this.value = null;\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nconst SELECT_HOST_ATTRIBUTES = [\n 'no-left-border',\n 'no-left-border-radius',\n 'no-right-border',\n 'no-right-border-radius',\n];\n\n@Component({\n selector: 'dr-select',\n templateUrl: './dr-select.component.html',\n styleUrls: ['./dr-select.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: DrSelectComponent,\n multi: true\n }]\n})\nexport class DrSelectComponent implements ControlValueAccessor {\n\n @Input() className: string;\n @Input() items: Array<any> = [];\n @Input() addTag: boolean | ((term: string) => any | Promise<any>);\n @Input() appendTo = 'body';\n @Input() bindLabel: string;\n @Input() bindValue: string;\n @Input() clearable: boolean;\n @Input() searchable: boolean;\n @Input() searchFn: (term: string, item: any) => boolean;\n @Input() multiple: boolean;\n @Input() hideSelected: boolean;\n @Input() placeholder: string;\n @Input() loading: boolean;\n @Input() readonly: boolean;\n @Input() disabled = false;\n @Input() groupBy = null;\n @Input() optionWithDescription = false;\n @Input() id: string;\n @Input() keyDownFn: ($event: KeyboardEvent) => boolean = () => true;\n @Input() selectedItem: any;\n\n @Input() set textView(val: boolean) {\n this.asTextView = val;\n }\n\n @Input() autofocus: boolean;\n @Input() isOpen: boolean;\n @Output() change: EventEmitter<any> = new EventEmitter<any>();\n @Output() open: EventEmitter<any> = new EventEmitter<any>();\n\n @ContentChild('labelTemplate') labelTemplate: TemplateRef<any>;\n @ContentChild('optionTemplate') optionTemplate: TemplateRef<any>;\n @ContentChild('optionHeaderTemplate') optionHeaderTemplate: TemplateRef<any>;\n @ContentChild('optionFooterTemplate') optionFooterTemplate: TemplateRef<any>;\n @HostBinding('class.textView') asTextView = false;\n\n constructor(private elementRef: ElementRef<HTMLElement>) {\n for (const attr of SELECT_HOST_ATTRIBUTES) {\n if (this.hasHostAttributes(attr)) {\n (this.getHostElement()).classList.add(attr);\n }\n }\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: any): void {\n this.selectedItem = value;\n this.onChange(this.selectedItem);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n\n if (fn && this.selectedItem) {\n this.onChange(this.selectedItem);\n }\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n private getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private hasHostAttributes(...attributes: string[]): boolean {\n return attributes.some(attribute => this.getHostElement().hasAttribute(attribute));\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'dr-avatar',\n templateUrl: 'dr-avatar.component.html',\n styleUrls: ['dr-avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrAvatarComponent {\n @Input() set users(users: any[] | any) {\n if (users) {\n this.parsedUsers = Array.isArray(users) ? users : [users];\n this.parsedUsers.forEach((user, index) => {\n if (!user.colorNumber) {\n user.colorNumber = index % 5;\n }\n });\n }\n }\n\n @Input() warning = false;\n @Input() showUnassigned = false;\n @Output() userClicked: EventEmitter<any> = new EventEmitter<any>();\n parsedUsers: any[] = [];\n\n constructor() {\n }\n\n getFirstUsers(): any[] {\n return this.parsedUsers.slice(0, 2);\n }\n\n getLastUsers(): any[] {\n if (this.parsedUsers.length > 2) {\n return this.parsedUsers.slice(2, this.parsedUsers.length - 1);\n }\n return [];\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'drAvatar'\n})\nexport class DrAvatarPipe implements PipeTransform {\n\n transform(item: any, type: string = 'full'): string {\n if (type === 'initials') {\n const email = item.email ? item.email[0] : '';\n return (item.first_name && item.last_name ? (item.first_name[0] + item.last_name[0]) : email).toUpperCase();\n }\n\n return item.first_name && item.last_name ? (item.first_name + ' ' + item.last_name) : item.email;\n }\n}\n","import { animate, style, transition } from '@angular/animations';\n\nexport const POPUP_POSITIONS = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -8\n },\n 'top-left': {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8\n },\n 'top-right': {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -8\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 7\n },\n 'bottom-left': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 7\n },\n 'bottom-right': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 7\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -8\n },\n 'left-top': {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -8\n },\n 'left-bottom': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -8\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 8\n },\n 'right-top': {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 8\n },\n 'right-bottom': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 8\n }\n};\n\nexport const POPUP_ANIMATION = [\n transition(':enter', [\n style({ opacity: 0 }),\n animate(150, style({ opacity: 1 })),\n ]),\n transition(':leave', [\n animate(150, style({ opacity: 0 })),\n ]),\n];\n","import { Component, HostListener, Input, OnInit, TemplateRef } from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { BehaviorSubject } from 'rxjs';\n\ntype TooltipOptions = {\n withoutContainerStyles?: boolean;\n withoutArrow?: boolean;\n};\n\n@Component({\n selector: 'dr-tooltip',\n templateUrl: './dr-tooltip.component.html',\n styleUrls: ['./dr-tooltip.component.scss'],\n animations: [\n trigger('tooltip', POPUP_ANIMATION),\n ],\n})\nexport class TooltipComponent implements OnInit {\n\n @Input() content;\n @Input() contentContext;\n @Input() position;\n @Input() options: TooltipOptions;\n @Input() class: string;\n isContentTemplate = false;\n\n public isMouseOn$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor() {\n }\n\n ngOnInit(): void {\n this.isContentTemplate = this.content instanceof TemplateRef;\n }\n\n @HostListener('mouseenter')\n setMouseOn() {\n this.isMouseOn$.next(true);\n }\n\n @HostListener('mouseleave')\n unsetMouseOn() {\n this.isMouseOn$.next(false);\n }\n\n}\n","import { ComponentRef, Directive, ElementRef, HostListener, Input, OnDestroy } from '@angular/core';\nimport { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport { Subscription } from 'rxjs';\nimport { skip } from 'rxjs/operators';\n\n@Directive({\n selector: '[drTooltip]'\n})\nexport class DrTooltipDirective implements OnDestroy {\n\n @Input('drTooltip')\n content: any;\n @Input('drTooltipContext')\n contentContext = {};\n @Input('drTooltipPosition')\n position = 'top';\n @Input('drTooltipClass')\n class = '';\n\n // is used for preserve tooltip from being hidden for N milliseconds\n @Input() drTooltipMousleaveTimeout = 0;\n\n @Input()\n set drTooltipOptions(options: any) {\n if (options?.indent) {\n const position = POPUP_POSITIONS[this.position];\n if (position.offsetY) {\n position.offsetY = position.offsetY < 0 ? -options.indent : options.indent;\n }\n if (position.offsetX) {\n position.offsetX = position.offsetX < 0 ? -options.indent : options.indent;\n }\n }\n this.options = options;\n }\n\n @Input('drTooltipShow')\n set showTooltip(value: boolean) {\n this.manualHandling = true;\n if (value) {\n this.renderTooltip();\n } else {\n this.destroyTooltip();\n }\n }\n\n private overlayRef: OverlayRef;\n private tooltipRef: ComponentRef<TooltipComponent>;\n\n private options;\n private manualHandling: boolean;\n private tooltipMouseOnSubscription: Subscription;\n private mouseleaveTimer: ReturnType<typeof setTimeout>;\n\n constructor(private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef) {\n }\n\n ngOnDestroy(): void {\n if (!this.overlayRef) return null;\n\n if (this.overlayRef.hasAttached()) {\n this.hide();\n }\n // TODO: Temporary solution. line 162 doesn't stop function execution\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n\n @HostListener('mouseenter')\n show() {\n if (this.manualHandling || this.overlayRef) return;\n\n this.renderTooltip();\n }\n\n @HostListener('mouseleave')\n hide() {\n if (this.manualHandling || !this.tooltipRef || this.tooltipRef?.instance.isMouseOn$.getValue()) return;\n\n // if this timeout value is set - then preserve\n // tooltip from being hidden N milliseconds and not hiding it\n // in case mouse is pointed on tooltip\n if (this.drTooltipMousleaveTimeout) {\n\n if (this.mouseleaveTimer) {\n clearTimeout(this.mouseleaveTimer);\n }\n\n this.mouseleaveTimer = setTimeout(() => {\n if (this.tooltipRef && !this.tooltipRef?.instance.isMouseOn$.getValue()) {\n this.destroyTooltip();\n }\n }, this.drTooltipMousleaveTimeout);\n } else {\n this.destroyTooltip();\n }\n }\n\n private createOverlay(): void {\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef).withPositions([POPUP_POSITIONS[this.position]]);\n\n this.overlayRef = this.overlay.create({ positionStrategy });\n }\n\n private renderTooltip(): void {\n this.createOverlay();\n if (!this.overlayRef?.hasAttached() && this.content) {\n this.tooltipRef = this.overlayRef.attach(new ComponentPortal(TooltipComponent));\n this.tooltipRef.instance.content = this.content;\n this.tooltipRef.instance.contentContext = this.contentContext;\n this.tooltipRef.instance.position = this.position;\n this.tooltipRef.instance.options = this.options;\n this.tooltipRef.instance.class = this.class + ' ' + this.position;\n\n this.tooltipMouseOnSubscription = this.tooltipRef.instance.isMouseOn$.pipe(skip(1)).subscribe((isMouseOn: boolean) => {\n if (!isMouseOn) {\n this.destroyTooltip();\n }\n });\n }\n }\n\n private destroyTooltip(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.overlayRef = null;\n this.tooltipRef = null;\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-toggle',\n templateUrl: './dr-toggle.component.html',\n styleUrls: ['./dr-toggle.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrToggleComponent implements ControlValueAccessor, AfterViewInit {\n _disabled = false;\n _elementClass: string[] = [];\n\n @Input()\n toggleTitle: any;\n @Input()\n toggleTitleRight: boolean;\n @Input()\n successType: boolean;\n @Input()\n checkedStatus: boolean;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n @Output() checkedChange = new EventEmitter();\n\n @HostBinding('class') get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n if (this.toggleTitleRight) {\n this._elementClass.push('toggle-label-alignment');\n }\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue() {\n this.checkedStatus = !this.checkedStatus;\n this.onChange(this.checkedStatus);\n this.checkedChange.emit(this.checkedStatus);\n this.onTouched();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-toggle-button',\n templateUrl: './dr-toggle-button.component.html',\n styleUrls: ['./dr-toggle-button.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrToggleButtonComponent), multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\n\nexport class DrToggleButtonComponent implements ControlValueAccessor {\n _disabled = false;\n\n @Input() items: string[] | any[];\n @Input() bindLabel: string | null = null;\n @Input() bindValue: string | null = null;\n @Input() selectedValue: boolean;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: any) {\n this.selectedValue = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue(item) {\n this.selectedValue = item[this.bindValue] || item;\n this.onChange(this.selectedValue);\n this.onTouched();\n this.cdr.markForCheck();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ISpinnerOptions } from '../models/spinnerOptions';\n\n@Component({\n selector: 'dr-spinner',\n templateUrl: './dr-spinner.component.html',\n styleUrls: ['./dr-spinner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrSpinnerComponent {\n\n private _options: ISpinnerOptions;\n\n public set options(data: ISpinnerOptions) {\n this._options ||= data;\n }\n\n public get options(): ISpinnerOptions {\n return this._options;\n }\n}\n","export enum SpinnerType {\n LOGO = 'logo',\n CIRCLE = 'circle',\n}\n\nexport enum SpinnerSize {\n SMALL = 'small',\n MEDIUM = 'medium',\n BIG = 'big',\n GIANT = 'giant',\n}\n\nexport interface ISpinnerOptions extends DOMRect {\n spinnerType?: SpinnerType;\n spinnerSize?: SpinnerSize;\n}\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { SpinnerSize, SpinnerType } from '../models/spinnerOptions';\n\n@Directive({\n selector: '[drSpinner]'\n})\nexport class DrSpinnerDirective implements OnChanges, OnDestroy {\n\n @ViewChild(DrSpinnerComponent, { static: true, read: ViewContainerRef }) contentCmpRef;\n @Input() drSpinner;\n @Input() drSpinnerSize: SpinnerSize = SpinnerSize.MEDIUM;\n @Input() drSpinnerType: SpinnerType = SpinnerType.LOGO;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private el: ElementRef,\n private rdr: Renderer2,\n @Inject(DOCUMENT) private _document: any) {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const show = changes.drSpinner.currentValue;\n const options = this.el.nativeElement.getBoundingClientRect();\n if (this.contentCmpRef && !show) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n } else if (this.drSpinner) {\n this.showSpinner({ ...options, spinnerSize: this.drSpinnerSize, spinnerType: this.drSpinnerType });\n }\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n\n private showSpinner(options) {\n const componentFactory: ComponentFactory<DrSpinnerComponent> = this.componentFactoryResolver.resolveComponentFactory(DrSpinnerComponent);\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\n this.rdr.appendChild(this.el.nativeElement, this.contentCmpRef.location.nativeElement);\n this.contentCmpRef.instance.options = options;\n }\n}\n","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\n\ntype ButtonType = 'primary' | 'secondary' | 'danger' | 'primary-icon' |\n 'secondary-icon' | 'icon' | 'primary-square' | 'ghost' | 'link-btn' | 'text-link' | 'simple-text' |\n 'split-primary-first' | 'split-primary-last' | 'split-secondary-first' | 'split-secondary-last' | 'dropdown';\n\n@Component({\n selector: 'dr-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss']\n})\nexport class DrButtonComponent {\n\n _disabled = null;\n _isLoading = false;\n _elementClass: string[] = [];\n\n @Input() title: string;\n @Input() theme: ButtonType = 'primary';\n @Input() icon: string;\n @Input() iconAfterLabel: string;\n @Input() isBold = false;\n @Input() iconColor: string;\n\n @Input() set disabled(value) {\n if (value) {\n this._elementClass.push('disabled');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'disabled');\n }\n this._disabled = value;\n }\n\n @Input() set isLoading(value) {\n if (value) {\n this._elementClass.push('loading');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'loading');\n }\n this._isLoading = !!value;\n }\n\n @Output() click = new EventEmitter();\n\n @HostBinding('class')\n get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n set(val: string) {\n this._elementClass = val.split(' ');\n }\n\n constructor() {\n }\n\n public onClick($event) {\n $event.preventDefault();\n $event.stopPropagation();\n this.click.emit($event);\n }\n}\n\n// Examples:\n/*\n<dr-button [icon]=\"'dr-icon-arrow-down'\">hello</dr-button>\n<dr-button [icon]=\"'dr-icon-refresh'\" [theme]=\"'primary-icon'\"></dr-button>\n<dr-button [icon]=\"'dr-icon-refresh'\" [isDisabled]=\"true\" [theme]=\"'primary-icon'\"></dr-button>\n<dr-button [theme]=\"'secondary'\" [icon]=\"'dr-icon-excel'\" [iconColor]=\"'#03A678'\"></dr-button>\n\n<dr-button [icon]=\"'dr-icon-refresh'\" [theme]=\"'secondary-icon'\"></dr-button>\n<dr-button [icon]=\"'dr-icon-share'\" [isDisabled]=\"true\" [theme]=\"'secondary-icon'\"></dr-button>\n\n<dr-button [icon]=\"'dr-icon-share'\" [theme]=\"'icon'\"></dr-button>\n<dr-button [icon]=\"'dr-icon-share'\" [isDisabled]=\"true\" [theme]=\"'icon'\"></dr-button>\n\n<dr-button [isDisabled]=\"false\" [icon]=\"'dr-icon-refresh'\">Primary</dr-button>\n<dr-button [isDisabled]=\"false\" >Primary</dr-button>\n<dr-button [isDisabled]=\"false\" [icon]=\"'dr-icon-refresh'\" [theme]=\"'secondary'\">Secondary</dr-button>\n<dr-button [isDisabled]=\"false\" [icon]=\"'dr-icon-refresh'\" [theme]=\"'ghost'\">Ghost</dr-button>\n<dr-button [isDisabled]=\"false\" [theme]=\"'text-link'\">Text Link</dr-button>\n*/\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { DrPopoverComponent } from './dr-popover.component';\n\nexport class DrPopoverRef<T = any> {\n\n componentRef: ComponentRef<DrPopoverComponent<T>>;\n\n protected onClose$: Subject<any> = new Subject();\n // FIXME: this decision was made because of the incompatible rxjs version\n /**\n * Correct type is @type {Observable<any>}\n */\n readonly onClose: any = this.onClose$.asObservable();\n\n readonly onBackdropClick: Observable<MouseEvent>;\n\n constructor(private overlayRef: OverlayRef) {\n this.onBackdropClick = this.overlayRef.backdropClick();\n }\n\n close(res?: any): void {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.onClose$.next(res);\n this.onClose$.complete();\n }\n}\n","import { POPUP_POSITIONS } from './constants';\nimport { ElPosition } from './dropdown';\nimport { ElementRef } from '@angular/core';\nimport { OverlayConfig } from '@angular/cdk/overlay';\n\nexport { DrPopoverRef } from '../dr-popover/dr-popover-ref';\n\nexport interface Point {\n readonly x: number;\n readonly y: number;\n}\n\nexport interface IPopoverManualClosing {\n enabled: boolean;\n}\n\nexport interface IDrPopoverComponentModel {\n hostRef: ElementRef | HTMLElement | Point;\n position?: ElPosition;\n contentContext?: any;\n class?: string;\n overlayConfig?: DrPopoverConfig;\n manualClosing?: IPopoverManualClosing;\n targetElement?: HTMLElement;\n alignment?: DrPopoverAlignment;\n}\n\nexport interface DrPopoverConfig extends OverlayConfig {\n closeOnBackdropClick?: boolean;\n}\n\nexport type DrPopoverAlignment = 'host';\n\nexport enum DrPopoverAlignmentDimension {\n Width = 'width',\n Height = 'height',\n}\n\nexport const DEFAULT_CONFIG: DrPopoverConfig = {\n hasBackdrop: false,\n closeOnBackdropClick: false,\n backdropClass: 'dr-popover-transparent-backdrop',\n};\n\nexport const DEFAULT_MODEL: Partial<IDrPopoverComponentModel> = {\n position: 'bottom',\n class: '',\n overlayConfig: {},\n manualClosing: { enabled: false },\n};\n\nexport const getAlignmentDimension = (position: string): DrPopoverAlignmentDimension => {\n if (!POPUP_POSITIONS[position]) return DrPopoverAlignmentDimension.Width;\n if (position?.includes('left') || position?.includes('right')) {\n return DrPopoverAlignmentDimension.Height;\n }\n return DrPopoverAlignmentDimension.Width;\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverAlignment, getAlignmentDimension, IPopoverManualClosing, Point } from '../models/popover';\n\n@Component({\n selector: 'dr-popover',\n templateUrl: './dr-popover.component.html',\n styleUrls: ['./dr-popover.component.scss'],\n animations: [\n trigger('popover', POPUP_ANIMATION),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrPopoverComponent<T> implements OnInit {\n\n @Input() content: TemplateRef<any> | Type<T>;\n @Input() contentContext: any;\n @Input() class = '';\n @Input() hostRef: ElementRef<unknown> | HTMLElement | Point;\n @Input() manualClosing: IPopoverManualClosing;\n @Input() alignment: DrPopoverAlignment;\n @Input() position: string;\n\n @ViewChild('popoverContainer', { read: ElementRef, static: true }) popoverContainer: ElementRef<HTMLElement>;\n isContentTemplate = false;\n componentRef: ComponentRef<T>;\n\n @HostBinding('style.width') width: string;\n @HostBinding('style.height') height: string;\n\n @HostBinding('@popover') public popover = true;\n\n @HostListener('document:mouseup', ['$event'])\n clickOutside(e): void {\n const isTargetHost = this.hostRef instanceof ElementRef && (this.hostRef.nativeElement === e.target || (this.hostRef.nativeElement as HTMLElement).contains(e.target));\n const isTargetInPopover = this.elementRef.nativeElement.contains(e.target);\n const isTargetInDatepicker = e.target.closest('mat-datepicker-popup');\n const isTargetInSelect = e.target.closest('ng-dropdown-panel');\n const isTargetInDatepickerContent = e.target.closest('mat-datepicker-content');\n\n if (!isTargetHost\n && !isTargetInPopover\n && !isTargetInDatepicker\n && !isTargetInSelect\n && !isTargetInDatepickerContent\n && !this.manualClosing.enabled\n ) {\n this.popoverRef.close();\n }\n }\n\n constructor(\n private cdr: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef,\n private popoverRef: DrPopoverRef<T>,\n ) {\n }\n\n ngOnInit(): void {\n this.isContentTemplate = this.content instanceof TemplateRef;\n\n if (!this.isContentTemplate) {\n this.componentRef = this.viewContainerRef.createComponent(this.componentFactoryResolver.resolveComponentFactory(this.content as Type<T>));\n Object.assign(this.componentRef.instance, this.contentContext);\n this.popoverContainer.nativeElement.appendChild(this.componentRef.location.nativeElement);\n }\n if (this.alignment === 'host') {\n this[getAlignmentDimension(this.position)] = '100%';\n }\n\n this.cdr.detectChanges();\n }\n\n}\n","import { first } from 'rxjs/operators';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverComponent } from './dr-popover.component';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, Injectable, Injector, StaticProvider, TemplateRef, Type } from '@angular/core';\nimport { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport {\n DEFAULT_CONFIG,\n DEFAULT_MODEL,\n getAlignmentDimension,\n IDrPopoverComponentModel,\n Point\n} from '../models/popover';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DrPopoverService {\n\n constructor(\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private injector: Injector,\n ) {\n }\n\n open<T>(content: Type<T> | TemplateRef<HTMLElement>, popoverModel: IDrPopoverComponentModel): DrPopoverRef<T> {\n if (!content) return;\n\n const model = { ...DEFAULT_MODEL, ...popoverModel };\n\n const overlayRef = this.createOverlay(model);\n\n const popoverRef = new DrPopoverRef<T>(overlayRef);\n\n this.attachOverlayContainer(content, model, overlayRef, popoverRef);\n\n this.registerListeners(model, overlayRef, popoverRef);\n\n return popoverRef;\n }\n\n private attachOverlayContainer<T>(\n content: Type<T> | TemplateRef<HTMLElement>,\n { contentContext, position, class: elementClass, manualClosing, hostRef, alignment }: IDrPopoverComponentModel,\n overlayRef: OverlayRef,\n popoverRef: DrPopoverRef<T>\n ): void {\n const componentPortal = new ComponentPortal<DrPopoverComponent<T>>(DrPopoverComponent, null, this.createInjector(popoverRef));\n const contentRef = overlayRef.attach<DrPopoverComponent<T>>(componentPortal);\n\n popoverRef.componentRef = contentRef;\n\n contentRef.instance.content = content;\n contentRef.instance.contentContext = { ...contentContext, closePopover: popoverRef.close.bind(popoverRef) };\n contentRef.instance.class = elementClass + ' ' + position;\n contentRef.instance.manualClosing = manualClosing;\n contentRef.instance.hostRef = hostRef;\n contentRef.instance.alignment = alignment;\n contentRef.instance.position = position;\n }\n\n private createOverlay(popoverModel: IDrPopoverComponentModel): OverlayRef {\n const overlayConfig = this.getOverlayConfig(popoverModel);\n return this.overlay.create(overlayConfig);\n }\n\n private getOverlayConfig(popoverModel: IDrPopoverComponentModel): OverlayConfig {\n if (!POPUP_POSITIONS[popoverModel.position]) throw new Error(`DrPopover does not support the '${ popoverModel?.position }' position!`);\n\n const config = { ...DEFAULT_CONFIG, ...popoverModel.overlayConfig || {} };\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(popoverModel.hostRef).withPositions([POPUP_POSITIONS[popoverModel.position]]);\n\n const overlayConfig = new OverlayConfig({\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy,\n ...config,\n });\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n overlayConfig[alignmentDimension] = hostElement.getBoundingClientRect()[alignmentDimension];\n }\n\n return overlayConfig;\n }\n\n private createInjector<T>(popoverRef: DrPopoverRef<T>): Injector {\n const injectionTokens: StaticProvider[] = [\n { provide: DrPopoverRef, useValue: popoverRef },\n ];\n\n return Injector.create({ providers: injectionTokens, parent: this.injector });\n }\n\n private registerListeners<T>(popoverModel: IDrPopoverComponentModel, overlayRef: OverlayRef, popoverRef: DrPopoverRef<T>): void {\n const config = popoverModel.overlayConfig || {};\n const targetElement = popoverModel.targetElement;\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n if (config?.closeOnBackdropClick && config?.hasBackdrop) {\n overlayRef.backdropClick().subscribe(() => popoverRef.close());\n }\n\n if (targetElement) {\n targetElement.addEventListener('mouseup', () => popoverRef.close(), { once: true });\n }\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n const resizeObserver = new ResizeObserver(entries => {\n entries.forEach(host => overlayRef.updateSize({ [alignmentDimension]: host.target.getBoundingClientRect()[alignmentDimension] }));\n });\n resizeObserver.observe(hostElement);\n popoverRef.onClose.pipe(first()).subscribe(() => resizeObserver.unobserve(hostElement));\n }\n }\n\n private getHostElement<T>(hostRef: Point | HTMLElement | ElementRef<T>): HTMLElement {\n if (!hostRef || (<Point>hostRef).x) return null;\n if ((<ElementRef>hostRef).nativeElement) return (<ElementRef>hostRef).nativeElement;\n return <HTMLElement>hostRef;\n }\n\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport { OverlayConfig } from '@angular/cdk/overlay';\nimport { first } from 'rxjs/operators';\nimport { ElPosition } from './../models/dropdown';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverService } from './dr-popover.service';\nimport { DrPopoverAlignment, IPopoverManualClosing } from '../models/popover';\n\n@Directive({\n selector: '[drPopover]'\n})\nexport class DrPopoverDirective<T> implements OnDestroy {\n\n @Input('drPopover') content: TemplateRef<any> | Type<T>;\n\n @Input('drPopoverContext') contentContext: any = {};\n\n @Input('drPopoverPosition') position: ElPosition = 'bottom';\n\n @Input('drPopoverClass') class = '';\n\n @Input('drPopoverOverlayConfig') overlayConfig: OverlayConfig = {};\n\n @Input('drPopoverManualClosing') manualClosing: IPopoverManualClosing = { enabled: false };\n\n @Input('drPopoverAlignment') alignment: DrPopoverAlignment;\n\n @Input('drPopoverDisabled') disabled: boolean;\n\n // eslint-disable-next-line\n @Output('drPopoverClose') popoverClose = new EventEmitter<any>();\n\n // eslint-disable-next-line\n @Output('drPopoverShowStateChange') showStateChange = new EventEmitter<{ isShown: boolean }>();\n\n private popoverRef: DrPopoverRef<T>;\n\n constructor(private elementRef: ElementRef,\n private drPopoverService: DrPopoverService,\n ) {\n }\n\n @HostListener('click')\n togglePopover(): void {\n if (this.disabled) return;\n\n if (this.popoverRef) {\n this.closePopover();\n } else {\n this.renderPopover();\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n }\n }\n\n closePopover(res?: any): void {\n if (this.popoverRef) {\n this.popoverRef.close(res);\n this.popoverRef = null;\n }\n }\n\n private renderPopover(): void {\n const popoverRef = this.popoverRef = this.drPopoverService.open(this.content, {\n hostRef: this.elementRef,\n overlayConfig: this.overlayConfig,\n class: this.class,\n manualClosing: this.manualClosing,\n position: this.position,\n contentContext: this.contentContext,\n alignment: this.alignment,\n });\n\n popoverRef.onClose.pipe(first()).subscribe((res) => {\n this.closePopover();\n this.popoverClose.emit(res);\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n });\n }\n\n ngOnDestroy(): void {\n this.closePopover();\n }\n}\n","import { ComponentRef, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { IDropdownAction } from '../models/dropdown';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DrDropdownService {\n\n actionItem = new Subject<IDropdownAction<unknown>>();\n protected menuInView: ComponentRef<DrDropdownComponent>;\n\n constructor() {\n }\n\n set addMenu(item: ComponentRef<DrDropdownComponent>) {\n this.menuInView = item;\n }\n\n destroy() {\n if (this.menuInView) {\n this.menuInView.destroy();\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';\nimport { ElPosition, IDropdown, IDropdownActionIcon, IDropdownCoordinate, IDropdownItem } from '../models/dropdown';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@Component({\n selector: 'dr-dropdown',\n templateUrl: './dr-dropdown.component.html',\n styleUrls: ['./dr-dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrDropdownComponent {\n\n @ViewChild('listMenu') viewMenu: HTMLElement;\n @ViewChild('menuContainer') menuContainer: HTMLElement;\n option: any;\n position: ElPosition | IDropdownCoordinate = 'left';\n drDropdownInHover: boolean;\n list: IDropdownItem<unknown>[];\n containerClass: string;\n public wasHovered = false;\n private firstInit: boolean;\n\n constructor(protected menuService: DrDropdownService, private cdr: ChangeDetectorRef) {\n }\n\n @Input() set options(data: IDropdown<IDropdownItem<any>>) {\n if (data) {\n this.option = data.option;\n this.position = data.position;\n this.drDropdownInHover = data.drDropdownInHover;\n this.containerClass = data.class;\n this.list = data.list || [];\n this.list.forEach(item => {\n if (item.children?.length) {\n item.childOptions = {\n list: item.children,\n class: item?.childOptions?.class || '',\n position: 'child'\n };\n }\n });\n this.cdr.markForCheck();\n }\n }\n\n onMouseEnter(): void {\n this.wasHovered = true;\n }\n\n onMouseLeave(): void {\n if (this.drDropdownInHover) this.menuService.destroy();\n }\n\n onClickedOutside(): void {\n if (this.firstInit) {\n this.menuService.destroy();\n } else {\n this.firstInit = true;\n }\n }\n\n hide(): void {\n this.menuService.destroy();\n }\n\n disabled(act: IDropdownItem<unknown> | IDropdownActionIcon<any>): boolean {\n if (!act.disabled) {\n return false;\n }\n if (typeof act.disabled === 'boolean') {\n return act.disabled;\n } else {\n return act.disabled(act.data);\n }\n }\n\n selected(act: IDropdownItem<unknown>): boolean {\n if (!act.selected) {\n return false;\n }\n if (typeof act.selected === 'boolean') {\n return act.selected;\n } else {\n return act.selected(act.data);\n }\n }\n\n tooltipToShow(act: IDropdownItem<unknown>): string {\n if (act.toolTipIfDisabled && !this.disabled(act)) return '';\n return act.toolTip;\n }\n\n tooltipPosition(widthMoreRight: boolean) {\n return widthMoreRight ? 'right' : 'left';\n }\n\n action(act: IDropdownItem<any>) {\n if (!this.disabled(act)) {\n if (act.action) {\n act.action(act.data);\n } else {\n this.menuService.actionItem.next({ event: act.event || act.title || 'default', data: act.data });\n }\n this.hide();\n }\n }\n\n onActionIconClick($event, actionIcon: IDropdownActionIcon<any>, data: any) {\n $event.stopPropagation();\n if (!this.disabled(actionIcon)) {\n actionIcon.action(data);\n this.hide();\n }\n }\n}\n\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ElPosition, IDropdown, IDropdownItem } from '../models/dropdown';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@Directive({\n selector: '[drDropdown]'\n})\nexport class DrDropdownDirective<T> implements OnDestroy {\n\n @Input() position: ElPosition = 'left';\n @Input() drDropdown: IDropdownItem<T>[];\n @Input() drDropdownClass: string;\n @Input() drDropdownInHover: boolean;\n @ViewChild(DrDropdownComponent, { static: true, read: ViewContainerRef }) contentCmpRef;\n\n private readonly mouseleaveTimeout = 200;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private service: DrDropdownService,\n private el: ElementRef,\n @Inject(DOCUMENT) private _document: any) {\n }\n\n @HostListener('mouseenter') elementHover() {\n if (!this.drDropdownInHover) return;\n this.openDropdown();\n }\n\n @HostListener('click') elementClick() {\n this.openDropdown();\n }\n\n @HostListener('mouseleave') leaveDropdownTriggerElement() {\n if (this.drDropdownInHover) {\n setTimeout(_ => {\n if (this.contentCmpRef && !this.contentCmpRef.instance.wasHovered) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n }\n }, this.mouseleaveTimeout);\n }\n }\n\n @HostListener('document:mouseup', ['$event']) documentClick(e) {\n this.closeDropdown(e);\n }\n\n private openDropdown(): void {\n const option = this.el.nativeElement.getBoundingClientRect();\n this._document.querySelectorAll('dr-dropdown').forEach(item => item.remove());\n if (this.contentCmpRef && this.contentCmpRef.destroyCbs) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n } else {\n this.service.destroy();\n this.showMenu({\n option,\n drDropdownInHover: this.drDropdownInHover,\n position: this.position,\n list: this.drDropdown,\n class: this.drDropdownClass\n });\n }\n }\n\n private closeDropdown(e): void {\n\n if (!this.contentCmpRef) {\n return;\n }\n\n const clickTarget = e.target;\n const triggerElement = this.el.nativeElement;\n const dropdownElement = this.contentCmpRef.location.nativeElement;\n const isClickTriggerElement = triggerElement.contains(clickTarget) || triggerElement === clickTarget;\n const isClickDropdownContents = dropdownElement.contains(clickTarget);\n\n if (!isClickTriggerElement && !isClickDropdownContents) {\n const elems = this._document.querySelectorAll('dr-dropdown');\n setTimeout(() => elems.forEach(item => item.remove()), 100);\n }\n }\n\n private showMenu(options: IDropdown<T>) {\n const componentFactory: ComponentFactory<DrDropdownComponent> = this.componentFactoryResolver.resolveComponentFactory(DrDropdownComponent);\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\n this.service.addMenu = this.contentCmpRef;\n this._document.querySelector('dr-layout').appendChild(this.contentCmpRef.location.nativeElement);\n this.contentCmpRef.instance.options = options;\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { ElPosition, IDropdownCoordinate } from '../models/dropdown';\n\n@Directive({\n selector: '[drDropdownPosition]',\n exportAs: 'dropdownPosition'\n})\nexport class DrDropdownPositionDirective implements OnInit {\n\n @Input() drDropdownPosition;\n @Input() position: ElPosition | IDropdownCoordinate = 'left';\n\n widthMoreRight: boolean;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n }\n\n ngOnInit(): void {\n setTimeout(this.calculatePosition.bind(this), 1);\n }\n\n calculatePosition() {\n let xDifference = 0;\n let defaultDelta = 10;\n let defaultPadding = 0;\n const originalPosition = this.position;\n\n if (this.position === 'child') {\n defaultDelta = 0;\n defaultPadding = 10;\n xDifference = this.el.nativeElement.parentElement.parentElement.offsetWidth - this.el.nativeElement.offsetWidth;\n const parentRect = this.el.nativeElement.parentElement.parentElement.getBoundingClientRect();\n\n this.position = {\n x: this.el.nativeElement.offsetWidth,\n y: this.el.nativeElement.parentElement.parentElement.offsetTop - 9,\n clientX: parentRect.x + this.el.nativeElement.parentElement.parentElement.offsetWidth,\n clientY: parentRect.y\n };\n }\n\n if (typeof this.position === 'string') {\n this.renderer.setStyle(this.el.nativeElement, 'top',\n this.position === 'bottom' ?\n this.drDropdownPosition.y - this.drDropdownPosition.height + 'px' :\n this.drDropdownPosition.y + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'left',\n this.position === 'right' ?\n this.drDropdownPosition.x + this.drDropdownPosition.width + 'px' :\n this.drDropdownPosition.x + 'px');\n const menuHeight = this.el.nativeElement.offsetHeight;\n const heightMoreWindowBottom = menuHeight + this.drDropdownPosition.y > window.innerHeight;\n const heightMoreWindowTop = menuHeight - this.drDropdownPosition.y + this.drDropdownPosition.height / 2 > 48; // header height;\n const widthMoreWindowRight = this.drDropdownPosition.x + 250 > window.innerWidth;\n\n const spaceBetweenElAndRightBorder = window.innerWidth - (this.drDropdownPosition.x + this.el.nativeElement.offsetWidth);\n this.widthMoreRight = this.drDropdownPosition.x < spaceBetweenElAndRightBorder;\n\n if (heightMoreWindowBottom) {\n this.position = 'top';\n }\n if (heightMoreWindowBottom && widthMoreWindowRight && !heightMoreWindowTop || this.position === 'top-left') {\n this.position = 'top-left';\n this.renderer.setStyle(this.el.nativeElement, 'transform',\n 'translate(-100%, calc(-100% + ' + this.drDropdownPosition.height + 'px))');\n }\n if (heightMoreWindowTop && heightMoreWindowBottom) {\n this.position = 'left-center';\n }\n if (this.position === 'bottom-left') {\n this.renderer.setStyle(\n this.el.nativeElement,\n 'transform',\n `translate(calc(-100% + ${ this.drDropdownPosition.width }px), ${ this.drDropdownPosition.height + 8 }px)`\n );\n }\n const className = this.position === 'top' ? 'content-top'\n : this.position === 'top-left' ? 'content-top-left'\n : this.position === 'bottom' ? 'content-bottom'\n : this.position === 'bottom-left' ? 'content-bottom-left'\n : this.position === 'left' ? 'content-left'\n : this.position === 'left-center' ? 'content-left-center'\n : this.position === 'right' ? 'content-right'\n : this.position === 'bottom-right' ? 'content-bottom-right' : '';\n this.renderer.addClass(this.el.nativeElement, className);\n this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');\n } else {\n const defaultChildPadding = 3;\n const widthMoreWindowRight = originalPosition !== 'child'\n ? window.innerWidth - (this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding)\n : window.innerWidth - this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding;\n\n const widthMoreWindowBottom = originalPosition !== 'child'\n ? window.innerHeight - (this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding)\n : window.innerHeight - this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding;\n\n const spaceRightAmount = window.innerWidth - (this.position.clientX + this.el.nativeElement.offsetWidth + defaultPadding);\n this.widthMoreRight = !(widthMoreWindowRight < 0);\n\n let calculatedHorizantallyPos = widthMoreWindowRight < 0\n ? -this.position.x + -defaultChildPadding\n : this.position.x + defaultChildPadding + xDifference;\n\n if (spaceRightAmount <= 0 && originalPosition !== 'child') {\n calculatedHorizantallyPos -= this.el.nativeElement.offsetWidth;\n }\n\n const deltaHeight = widthMoreWindowBottom < 0 ? widthMoreWindowBottom : defaultDelta;\n\n this.renderer.setStyle(this.el.nativeElement, 'top', (this.position.y + deltaHeight) + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'left', (calculatedHorizantallyPos) + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IDropdownItem } from '../models/dropdown';\n\n@Pipe({\n name: 'drDropdownItemShowPipe'\n})\nexport class DrDropdownItemShowPipe<T> implements PipeTransform {\n transform(arr: IDropdownItem<T>[]): IDropdownItem<T>[] {\n return arr.filter(item => item.show ? item.show(item.data) : true);\n }\n}\n","import { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'dr-tab',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `\n})\nexport class DrTabComponent implements OnInit {\n @Input() label: string;\n @Input() disabled: boolean;\n @ViewChild(TemplateRef) public contentTemplate: TemplateRef<any>;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, ContentChildren, EventEmitter, Input, Output, QueryList, } from '@angular/core';\nimport { DrTabComponent } from './dr-tab.component';\n\n@Component({\n selector: 'dr-tabs',\n templateUrl: './dr-tabs.component.html',\n styleUrls: ['./dr-tabs.component.scss'],\n})\nexport class DrTabsComponent {\n\n @Input() selectedTab = 0;\n @Input() withRadio: boolean;\n @Input() vertical: boolean;\n @Input() noBodyPadding = false;\n @Output() selectedTabChange: EventEmitter<any> = new EventEmitter<any>();\n @ContentChildren(DrTabComponent) public tabsContentList: QueryList<DrTabComponent>;\n\n constructor() {\n }\n\n selectedIndexChange($event) {\n this.selectedTab = $event;\n this.selectedTabChange.emit($event);\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'dr-accordion',\n template: '<ng-content select=\"dr-accordion-item\"></ng-content>',\n styleUrls: ['./accordion.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionComponent {\n static ngAcceptInputType_multi: any;\n openCloseItems = new Subject<boolean>();\n\n /**\n * Allow multiple items to be expanded at the same time.\n */\n @Input('multi')\n get multi(): boolean {\n return this.multiValue;\n }\n\n set multi(val: boolean) {\n this.multiValue = !!val;\n }\n\n private multiValue = false;\n\n /**\n * Opens all enabled accordion items.\n */\n openAll() {\n if (this.multi) {\n this.openCloseItems.next(false);\n }\n }\n\n /**\n * Closes all enabled accordion items.\n */\n closeAll() {\n this.openCloseItems.next(true);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Host,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrAccordionComponent } from './accordion.component';\n\n@Component({\n selector: 'dr-accordion-item',\n styleUrls: ['./accordion-item.component.scss'],\n template: `\n <ng-content select=\"dr-accordion-item-header\"></ng-content>\n <ng-content select=\"dr-accordion-item-body\"></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemComponent implements OnInit, OnChanges, OnDestroy {\n\n /**\n * Item is collapse (`true` by default)\n *\n * @type {boolean}\n */\n @Input('collapsed')\n @HostBinding('class.collapsed')\n get collapsed(): boolean {\n return this.collapsedValue;\n }\n\n set collapsed(val: boolean) {\n this.collapsedValue = !!val;\n this.collapsedChange.emit(this.collapsedValue);\n this.invalidate();\n }\n\n static ngAcceptInputType_collapsed: any;\n\n /**\n * Item is expanded (`false` by default)\n */\n @Input('expanded')\n @HostBinding('class.expanded')\n get expanded(): boolean {\n return !this.collapsed;\n }\n\n set expanded(val: boolean) {\n this.collapsedValue = !val;\n }\n\n static ngAcceptInputType_expanded: any;\n\n /**\n * Item is disabled and cannot be opened.\n *\n * @type {boolean}\n */\n @Input('disabled')\n @HostBinding('class.disabled')\n get disabled(): boolean {\n return this.disabledValue;\n }\n\n set disabled(val: boolean) {\n this.disabledValue = !!val;\n this.invalidate();\n }\n\n static ngAcceptInputType_disabled: any;\n\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n */\n @Output() collapsedChange = new EventEmitter<boolean>();\n\n accordionItemInvalidate = new Subject<boolean>();\n\n private collapsedValue = true;\n private disabledValue = false;\n private destroy$ = new Subject<void>();\n\n constructor(@Host() private accordion: DrAccordionComponent, private cd: ChangeDetectorRef) {\n }\n\n /**\n * Open/close the item\n */\n toggle() {\n if (!this.disabled) {\n // we need this temporary variable as `openCloseItems.next` will change current value we need to save\n const willSet = !this.collapsed;\n\n if (!this.accordion.multi) {\n this.accordion.openCloseItems.next(true);\n }\n this.collapsed = willSet;\n }\n }\n\n /**\n * Open the item.\n */\n open() {\n if (!this.disabled) {\n this.collapsed = false;\n }\n }\n\n /**\n * Collapse the item.\n */\n close() {\n if (!this.disabled) {\n this.collapsed = true;\n }\n }\n\n ngOnInit() {\n this.accordion.openCloseItems.pipe(takeUntil(this.destroy$)).subscribe(collapsed => {\n if (!this.disabled) {\n this.collapsed = collapsed;\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.accordionItemInvalidate.next(true);\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n this.accordionItemInvalidate.complete();\n }\n\n private invalidate() {\n this.accordionItemInvalidate.next(true);\n this.cd.markForCheck();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Host,\n HostBinding,\n HostListener,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\n\n@Component({\n selector: 'dr-accordion-item-header',\n styleUrls: ['./accordion-item-header.component.scss'],\n template: `\n <ng-content select=\"dr-accordion-item-title\"></ng-content>\n <ng-content select=\"dr-accordion-item-description\"></ng-content>\n <ng-content></ng-content>\n <i class=\"dr-icon-arrow-down expansion-indicator\"\n [@expansionIndicator]=\"state\"\n *ngIf=\"!disabled\">\n </i>\n `,\n animations: [\n trigger('expansionIndicator', [\n state(\n 'expanded',\n style({\n transform: 'rotate(180deg)',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemHeaderComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n @HostBinding('class.accordion-item-header-collapsed')\n get isCollapsed(): boolean {\n return this.accordionItem.collapsed;\n }\n\n @HostBinding('class.accordion-item-header-expanded')\n @HostBinding('attr.aria-expanded')\n get expanded(): boolean {\n return !this.accordionItem.collapsed;\n }\n\n @HostBinding('attr.tabindex')\n get tabbable(): string {\n return this.accordionItem.disabled ? '-1' : '0';\n }\n\n @HostBinding('attr.aria-disabled')\n get disabled(): boolean {\n return this.accordionItem.disabled;\n }\n\n @HostListener('click')\n @HostListener('keydown.space')\n @HostListener('keydown.enter')\n toggle() {\n this.accordionItem.toggle();\n }\n\n get state(): string {\n if (this.isCollapsed) {\n return 'collapsed';\n }\n return 'expanded';\n }\n\n constructor(@Host() private accordionItem: DrAccordionItemComponent, private cd: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Host, OnDestroy, OnInit, } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\n\nconst accordionItemBodyTrigger = trigger('accordionItemBody', [\n state(\n 'collapsed',\n style({\n overflow: 'hidden',\n visibility: 'hidden',\n height: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n visibility: 'visible',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n]);\n\n@Component({\n selector: 'dr-accordion-item-body',\n template: `\n <div [@accordionItemBody]=\"{ value: state }\">\n <div class=\"item-body\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n styleUrls: ['./accordion-item-body.component.scss'],\n animations: [accordionItemBodyTrigger],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemBodyComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n constructor(@Host() private accordionItem: DrAccordionItemComponent, private cd: ChangeDetectorRef) {\n }\n\n get state(): string {\n return this.accordionItem.collapsed ? 'collapsed' : 'expanded';\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout',\n styleUrls: ['./dr-layout.component.scss'],\n templateUrl: './dr-layout.component.html',\n})\nexport class DrLayoutComponent {\n constructor() {\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-header',\n template: `\n <nav>\n <ng-content></ng-content>\n </nav>\n `,\n})\nexport class DrLayoutHeaderComponent {\n constructor() {\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-body',\n template: '<ng-content></ng-content>',\n})\nexport class DrLayoutBodyComponent {\n constructor() {\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Component({\n templateUrl: 'dr-error.component.html',\n selector: 'dr-error',\n styleUrls: ['dr-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class DrErrorComponent implements OnDestroy {\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n private destroyed$ = new Subject<void>();\n public _control: FormControl;\n @Input() set control(value: FormControl) {\n if (value) {\n this._control = value;\n this.cdr.markForCheck();\n this._control.valueChanges.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n }\n\n @Input() label = 'Field error';\n\n\n get errorString() {\n if (this._control.hasError('required')) {\n return 'Field is required!';\n }\n\n return this._control.errors?.errorString || null;\n }\n\n get isWarning() {\n return this._control.errors?.isWarning;\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentFactoryResolver,\n HostBinding,\n Inject,\n OnDestroy,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { DataProp, SizeModal } from '../../interfaces/dialog-data';\nimport * as _ from 'lodash';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { catchError, takeUntil } from 'rxjs/operators';\nimport { DialogService } from '../../services/dialog.service';\n\n@Component({\n selector: 'dr-dialog-wrapper',\n templateUrl: './dialog-wrapper.component.html',\n styleUrls: ['./dialog-wrapper.component.scss'],\n})\nexport class DialogWrapperComponent implements AfterViewInit, OnDestroy {\n\n @ViewChild('content', { read: ViewContainerRef }) content: ViewContainerRef;\n\n @HostBinding('class') class: SizeModal = this.dialogData?.theme?.noThemeSizeClass ? null : this.dialogData?.theme?.themeSize || 'medium-modal';\n childComponent: any;\n isLoading: boolean;\n saving$ = new BehaviorSubject(false);\n destroy$: Subject<any> = new Subject();\n\n constructor(public dialogRef: MatDialogRef<DialogWrapperComponent>,\n private dialogService: DialogService,\n private cdr: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp) {\n }\n\n ngAfterViewInit(): Error {\n if (!this.dialogData.child) {\n return new Error('Expected componentTypeChild');\n }\n const componentFactory: ComponentFactory<any> = this.componentFactoryResolver.resolveComponentFactory(this.dialogData.child);\n this.childComponent = this.content.createComponent(componentFactory).instance;\n this.childComponent.closeDialog = this.closeDialog.bind(this);\n this.childComponent.onAcceptDialog = this.onAcceptDialog.bind(this);\n\n // pass data to component child\n if (this.dialogData.childData) {\n _.assign(this.childComponent, this.dialogData.childData);\n }\n // call component child init func - looks like double init\n // if (this.childComponent.ngOnInit) {\n // this.childComponent.ngOnInit();\n // }\n this.cdr.detectChanges();\n }\n\n closeDialog(data?: any) {\n this.dialogRef.close(data || false);\n }\n\n onDecline() {\n this.dialogRef.close(undefined);\n }\n\n onAcceptDialog(data?: any) {\n if (!this.childComponent) {\n this.dialogRef.close(data || true);\n return;\n }\n const funcName = this.dialogData.acceptButton.functions;\n if (this.childComponent[funcName]) this.childComponent[funcName]();\n const loadFuncName = this.dialogData.acceptButton.loading;\n if (this.childComponent[loadFuncName]) this.isLoading = this.childComponent[loadFuncName]();\n\n if (this.dialogData.confirmFn) {\n this.saving$.next(true);\n this.dialogData.confirmFn().pipe(takeUntil(this.destroy$), catchError(error => this.dialogService.throwErr(error, this.saving$))).subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(data || true);\n });\n }\n\n if (this.childComponent && !this.childComponent[funcName]) {\n this.dialogRef.close(data || true);\n return;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.complete();\n }\n}\n","import { Component, HostBinding, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { DataProp } from '../../interfaces/dialog-data';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { catchError, takeUntil } from 'rxjs/operators';\nimport { DialogService } from '../../services/dialog.service';\n\n@Component({\n selector: 'dr-dialog-modal-wrapper',\n templateUrl: './dialog-modal-wrapper.component.html',\n styleUrls: ['./dialog-modal-wrapper.component.scss'],\n\n})\nexport class DialogModalWrapperComponent implements OnInit, OnDestroy {\n @HostBinding('class') class = this?.dialogData?.theme?.themeSize;\n form: FormGroup;\n saving$ = new BehaviorSubject(false);\n isLoading = false;\n showServerErrorMessage = false;\n destroy$: Subject<any> = new Subject();\n\n constructor(\n public dialogRef: MatDialogRef<DialogModalWrapperComponent>,\n private dialogService: DialogService,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp,\n ) {\n }\n\n ngOnInit(): void {\n if (this.dialogData.fields) {\n this.form = new FormGroup(\n this.dialogData.fields.reduce((accumulator, currentValue) => {\n const currentFormControl = {};\n currentFormControl[currentValue.name] = new FormControl(currentValue.default || null, currentValue.validators || []);\n return Object.assign(accumulator, currentFormControl);\n }, {})\n );\n }\n }\n\n onAccept() {\n if (!this.dialogData.confirmFn) return this.dialogRef.close(this.form.value || true);\n\n this.isLoading = true;\n this.saving$.next(true);\n this.dialogData.confirmFn(this.form.value).pipe(\n takeUntil(this.destroy$),\n catchError((err) => {\n this.showServerErrorMessage = true;\n this.isLoading = false;\n return this.dialogService.throwErr(err, this.saving$);\n })\n ).subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(this.form.value || true);\n });\n }\n\n footerAction(): void {\n this.dialogData.footerTemplateData.action(this.form.value);\n }\n\n closeDialog() {\n this.dialogRef.close(false);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.complete();\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ConfirmDialogData, DataProp, DialogData, DialogTheme } from '../interfaces/dialog-data';\nimport { DialogWrapperComponent } from '../components/dialog-wrapper/dialog-wrapper.component';\nimport { DialogModalWrapperComponent } from '../components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nconst DEFAULT_PANE_CLASS_NAME = 'wrapper-dialog';\n\nconst DEFAULT_CONFIRM_THEME: DialogTheme = { themeSize: 'small-modal' };\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogService {\n\n private wrapperComponent: MatDialogRef<any>;\n\n constructor(\n private dialog: MatDialog,\n ) {\n }\n\n /**\n * Function to open modal with custom form\n */\n openDialogWrapper<T, D = any, R = any>(\n componentTypeChild: ComponentType<T>,\n dialogData: DialogData<T>,\n componentTypeWrapper?: ComponentType<D>,\n ) {\n if (!componentTypeWrapper) componentTypeWrapper = (DialogWrapperComponent as any);\n\n dialogData.data.child = componentTypeChild;\n\n if (dialogData.panelClass instanceof Array) {\n dialogData.panelClass.push(DEFAULT_PANE_CLASS_NAME);\n } else {\n dialogData.panelClass = [dialogData.panelClass || '', DEFAULT_PANE_CLASS_NAME];\n }\n\n this.wrapperComponent = this.openDialog<D, R, T>(componentTypeWrapper, dialogData);\n return this.wrapperComponent;\n }\n\n /**\n * Function to open confirmation modal\n */\n openConfirmDialog<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n dialogData.data.theme.isConfirmation = true;\n return this.openDialog<DialogWrapperComponent, R, ConfirmDialogData>(DialogWrapperComponent, dialogData);\n }\n\n /**\n * Function to open confirmation modal with inputs\n */\n openConfirmDialogModal<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogModalWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n return this.openDialog<DialogModalWrapperComponent, R, ConfirmDialogData>(DialogModalWrapperComponent, dialogData);\n }\n\n close(params?: any): void {\n this.wrapperComponent.close(params);\n }\n\n changeDialogThemeSize(theme: string): void {\n this.wrapperComponent.componentInstance.class = theme;\n }\n\n private openDialog<WrapperType, ReturnType = any, D = any>(componentType: ComponentType<WrapperType>, dialogData: DialogData<D>): MatDialogRef<WrapperType, ReturnType> {\n return this.dialog.open<WrapperType, DataProp<D>, ReturnType>(componentType, dialogData);\n }\n\n throwErr(err: Error, load?: Subject<any> | BehaviorSubject<any>): Observable<any> {\n if (load) {\n load.next(false);\n }\n throw err;\n }\n}\n","export enum TooltipPosition {\n TOP = 'top',\n BOTTOM = 'bottom',\n LEFT = 'left',\n RIGHT = 'right',\n TOP_RIGHT = 'top-right',\n TOP_LEFT = 'top-left',\n BOTTOM_RIGHT = 'bottom-right',\n BOTTOM_LEFT = 'bottom-left',\n RIGHT_TOP = 'right-top',\n RIGHT_BOTTOM = 'right-bottom',\n LEFT_TOP = 'left-top',\n LEFT_BOTTOM = 'left-bottom',\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\n\n// Data Obj for openDialogWrapper()\nexport interface DialogData<T = any> {\n data: {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n subtitle?: string;\n content?: any;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n child?: ComponentType<T>;\n childData?: Partial<T>;\n theme?: {\n themeSize?: SizeModal;\n type?: 'successful';\n contentNoPadding?: boolean;\n isConfirmation?: boolean;\n noThemeSizeClass?: boolean;\n };\n confirmFn?: any;\n fields?: ModalFormField[];\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n };\n panelClass?: string | string[];\n disableClose?: boolean;\n maxWidth?: number | string;\n maxHeight?: number | string;\n}\n\n// Data Obj for openConfirmDialog()\nexport interface ConfirmDialogData {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n content?: string;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n hideCloseBtn?: boolean;\n confirmFn?: (response?: any) => Observable<any>;\n fields?: ModalFormField[];\n footerTemplateData?: FooterTemplateData;\n}\n\n// Data Obj for openConfirmDialogModal()\nexport interface ConfirmDialogModalData extends ConfirmDialogData {\n confirmFn?: any;\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n fields?: ModalFormField[];\n}\n\nexport interface FooterTemplateData {\n label: string;\n icon?: string;\n action: (objToSave?: any) => any;\n}\n\nexport interface ModalFormField {\n name: string;\n type: 'input' | 'select';\n label?: string;\n isLabelFullWidth?: boolean;\n items?: any[];\n items$?: Observable<any[]> | Observable<any>;\n default?: any;\n placeholder?: string;\n bindLabel?: string;\n bindValue?: string;\n validators?: any[];\n}\n\nexport type SizeModal =\n 'small-modal'\n | 'medium-modal'\n | 'medium-large-modal'\n | 'large-modal'\n | 'xl-modal'\n | 'xl-custom-modal';\n\nexport type DataProp<T = any> = DialogData<T>['data'];\n\nexport type DialogTheme = DataProp['theme'];\n\nexport type DialogFooterButton = {\n label?: string;\n loadingLabel?: string;\n functions?: any;\n loading?: any;\n theme?: any;\n};\n\nexport enum DIALOG_SIZE {\n SMALL = 'small-modal',\n MEDIUM = 'medium-modal',\n MEDIUM_LARGE = 'medium-large-modal',\n LARGE = 'large-modal',\n X_LARGE = 'xl-modal',\n X_CUSTOM_LARGE = 'xl-custom-modal',\n}\n\nexport enum DIALOG_BUTTON_LABEL {\n SAVE = 'Save',\n CANCEL = 'Cancel',\n CLOSE = 'Close',\n}\n\nexport enum DIALOG_FIELD_TYPE {\n INPUT = 'input',\n SELECT = 'select',\n}\n","import { Directive, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\nimport { NgModel } from '@angular/forms';\n\n@Directive({\n selector: '[ngModelDebounceChange]'\n})\nexport class DrModelDebounceChangeDirective implements OnDestroy, OnInit {\n private subscription: Subscription;\n\n @Input() debounce = 200;\n @Output() ngModelDebounceChange = new EventEmitter<any>();\n\n constructor(private ngModel: NgModel) {\n }\n\n ngOnInit(): void {\n this.subscription = this.ngModel.control.valueChanges.pipe(\n skip(1),\n debounceTime(this.debounce),\n distinctUntilChanged()\n ).subscribe(value => this.ngModelDebounceChange.emit(value));\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","export enum DateFromats {\n MAT_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy',\n DATE_INPUT_FORMAT = 'YYYY/MM/DD',\n YEAR_FORMAT = 'yyyy',\n MONTH_YEAR_FORMAT = 'MM/yyyy',\n QUARTER_FORMAT = 'Q/yyyy',\n WEEK_FORMAT = 'W/yyyy'\n}\n\nexport interface DateParse {\n dateInput: string;\n}\n\nexport type DateDisplay = DateParse & {\n monthYearLabel?: string;\n dateA11yLabel?: string;\n monthYearA11yLabel?: string;\n quarterYearA11yLabel?: string;\n yearLabel?: string;\n quarterYearLabel?: string;\n};\n\nexport class CustomDateFormat {\n private _parse: DateParse = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n };\n private _display: DateDisplay = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMM YYYY',\n quarterYearLabel: 'Q/YYYY',\n yearLabel: 'YYYY'\n };\n\n set parse(parse: DateParse) {\n this._parse = Object.assign({}, this._parse, parse);\n }\n\n get parse(): DateParse {\n return this._parse;\n }\n\n set display(display: DateDisplay) {\n this._display = Object.assign({}, this._display, display);\n }\n\n get display(): DateDisplay {\n return this._display;\n }\n\n updateDateFormat(parse: DateParse, display?: DateDisplay) {\n this.parse = parse;\n if (!display) {\n display = parse;\n }\n this.display = display;\n }\n}\n\nexport interface IDatePickerFormatConfig {\n day?: string;\n month?: string;\n year?: string;\n quarter?: string;\n week?: string;\n}\n\nexport enum DatePickerPeriodPosition {\n END_OF_PERIOD,\n MIDDLE_OF_PERIOD,\n START_OF_PERIOD,\n DEFAULT\n}\n\nexport enum TimeframeOption {\n DAY = 'day',\n MONTH = 'month',\n QUARTER = 'quarter',\n WEEK = 'week',\n YEAR = 'year',\n}\n\nexport enum CalendarView {\n FOR_DAYS = 'month',\n FOR_MONTHS = 'year',\n FOR_QUARTERS = 'none',\n FOR_YEARS = 'multi-year',\n}\n\nexport type TTimeframeOption = TimeframeOption;\nexport type TCalendarView = CalendarView;\n","export const IMAGE_TYPES = ['image/png', 'image/jpeg', 'image/gif'];\n\nexport interface IChatSignUpRequest { userName: string; email: string; password: string }\nexport interface IChatSignInRequest { email: string; password: string }\nexport interface IChatCreateConversationRequest { title: string }\nexport interface IChatConversation { id: string; title: string }\nexport interface IChatAccount {\n kind: 'user' | 'bot';\n id: string;\n name: string;\n email?: string;\n}\n\nexport enum CHAT_MESSAGE_TYPE {\n TEXT = 'text',\n RICH_TEXT = 'rich-text',\n IMAGE = 'image',\n DOWNLOAD_FILE = 'download-file',\n MAILTO = 'mailto',\n EMBED = 'embed',\n WIDGET = 'widget',\n INPUT = 'input',\n CODE = 'code',\n}\n\nexport interface IChatMessageBase {\n id: string;\n kind: string | CHAT_MESSAGE_TYPE;\n seq: number;\n conversationId: string;\n reply: boolean;\n senderId: string;\n parentId?: string;\n}\n\nexport interface IChatTextMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.TEXT;\n text?: string;\n}\n\nexport interface IChatRichTextMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.RICH_TEXT;\n paragraphs?: IChatRichTextParagraph[];\n}\n\nexport interface IChatRichTextParagraph {\n kind: string | CHAT_MESSAGE_TYPE;\n value: string;\n}\n\nexport interface IChatImageMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.IMAGE;\n url?: string;\n label?: string;\n}\nexport interface IChatDownloadFileMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.DOWNLOAD_FILE;\n url?: string;\n label?: string;\n}\n\nexport interface IChatMailtoMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.MAILTO;\n subject?: string;\n body?: string;\n}\n\nexport interface IChatEmbedMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.EMBED;\n url?: string;\n}\n\nexport interface IChatInputMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.INPUT;\n form?: any;\n}\n\nexport type IChatMessage = IChatMessageBase & IChatTextMessage & IChatRichTextMessage & IChatImageMessage &\n IChatDownloadFileMessage & IChatMailtoMessage & IChatEmbedMessage & IChatInputMessage;\n\n\nexport interface IChatMessageFileIconPreview {\n url: string;\n icon: string;\n}\n\nexport interface IChatMessageFileImagePreview {\n url: string;\n type: string;\n}\n\nexport type IChatMessageFile = IChatMessageFileIconPreview | IChatMessageFileImagePreview;\n\nexport class ChatMessage implements IChatMessageBase, IChatTextMessage, IChatRichTextMessage, IChatImageMessage,\n IChatDownloadFileMessage, IChatMailtoMessage, IChatEmbedMessage, IChatInputMessage {\n id: string;\n kind: string | CHAT_MESSAGE_TYPE;\n seq: number;\n conversationId: string;\n reply: boolean;\n senderId: string;\n parentId?: string;\n text?: string;\n paragraphs?: IChatRichTextParagraph[];\n url?: string;\n label?: string;\n subject?: string;\n body?: any;\n form?: any;\n parameters?: any;\n\n constructor(obj: any, user: IChatAccount) {\n this.id = obj?.id;\n this.kind = obj?.kind;\n this.seq = obj?.seq;\n this.conversationId = obj?.conversationId;\n this.reply = obj?.senderId !== user.id;\n this.senderId = obj?.senderId;\n this.parentId = obj?.parentId;\n this.text = obj?.text || obj.body;\n this.paragraphs = obj?.paragraphs;\n this.url = obj?.url;\n this.label = obj?.label;\n this.subject = obj?.subject;\n this.body = obj?.body;\n this.form = obj?.form;\n this.parameters = obj?.parameters;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AnyTagComponent, DateTagComponent } from './date-tag.component';\nimport { DayTagComponent } from './day-tag/day-tag.component';\nimport { WeekTagComponent } from './week-tag/week-tag.component';\nimport { MonthTagComponent } from './month-tag/month-tag.component';\nimport { QuarterTagComponent } from './quarter-tag/quarter-tag.component';\nimport { YearTagComponent } from './year-tag/year-tag.component';\nimport { ForecastTagComponent } from './forecast-tag/forecast-tag.component';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateModule } from '@angular/material-moment-adapter';\nimport { CommonModule } from '@angular/common';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\n\nexport const components = [DateTagComponent,\n DayTagComponent,\n WeekTagComponent,\n MonthTagComponent,\n QuarterTagComponent,\n AnyTagComponent,\n YearTagComponent,\n ForecastTagComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n MatNativeDateModule,\n MatDatepickerModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule,\n MatMomentDateModule,\n MatSelectModule\n ],\n exports: components,\n providers: [\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }\n ],\n declarations: components,\n})\n\nexport class DateTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\nimport { ListTagComponent } from './list-tag.component';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatMomentDateModule,\n MatSelectModule,\n MatButtonToggleModule,\n ],\n exports: [ListTagComponent],\n providers: [],\n declarations: [\n ListTagComponent\n ],\n})\n\nexport class ListTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTagComponent } from './dr-tag.component';\nimport { ListTagModule } from '../list-tags/list-tag.module';\nimport { DateTagModule } from '../date-tags/date-tag.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n DateTagModule,\n ListTagModule\n ],\n exports: [DrTagComponent],\n providers: [],\n declarations: [\n DrTagComponent\n ],\n})\n\nexport class DrTagModule {\n}\n","import { TimeframeOption } from '../models/datePicker';\n\nexport class DrSharedUtils {\n /**\n * Get timeframe (day, year, month, quarter) based on passed format\n *\n * @param format - date format string. Examples: MM/DD/YYYY, Q/YYYY\n */\n public static getTimeframeByDateFormat(format: string): TimeframeOption {\n const defaultFrame = TimeframeOption.DAY;\n\n if (!format) {\n return defaultFrame;\n }\n\n const lowerCaseFormat = format.toLowerCase();\n switch (true) {\n case lowerCaseFormat.includes('q'):\n return TimeframeOption.QUARTER;\n case lowerCaseFormat.includes('d'):\n return TimeframeOption.DAY;\n case lowerCaseFormat.includes('w'):\n return TimeframeOption.WEEK;\n case lowerCaseFormat.includes('m'):\n return TimeframeOption.MONTH;\n case lowerCaseFormat.includes('y'):\n return TimeframeOption.YEAR;\n default:\n return defaultFrame;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatCalendar, MatDatepicker } from '@angular/material/datepicker';\nimport { Moment } from 'moment';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { DateFromats, IDatePickerFormatConfig, TimeframeOption, TTimeframeOption } from '../../../models/datePicker';\nimport { DrSharedUtils } from '../../../utils/dr-shared-utils';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class DrDatePickerService {\n isTimeframeSelectionEnabled = false;\n timeframe: TTimeframeOption = TimeframeOption.DAY;\n format$ = new BehaviorSubject<string>(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n updatedQuarter$ = new Subject<Moment>();\n datePickerInstance: MatDatepicker<any>;\n availableTimeframes = [\n TimeframeOption.DAY,\n TimeframeOption.WEEK,\n TimeframeOption.MONTH,\n TimeframeOption.QUARTER,\n TimeframeOption.YEAR\n ];\n\n public formatConfig: IDatePickerFormatConfig = {\n day: DateFromats.MAT_DEFAULT_DATE_FORMAT,\n month: DateFromats.MONTH_YEAR_FORMAT,\n year: DateFromats.YEAR_FORMAT,\n quarter: DateFromats.QUARTER_FORMAT,\n week: DateFromats.WEEK_FORMAT\n };\n public calendarInstance: MatCalendar<any>;\n\n public fiscalYearMonthsModifier = 0;\n\n getDisplayPrefix() {\n const formatCached = this.format$.getValue();\n switch (true) {\n case formatCached?.includes('Q'):\n return 'Q';\n case formatCached?.includes('W'):\n return 'W';\n default:\n return '';\n }\n }\n\n getTimeframe(format: string) {\n return DrSharedUtils.getTimeframeByDateFormat(format);\n }\n\n getConfiguredFormat(timeframe: TTimeframeOption) {\n return this.formatConfig[timeframe];\n }\n\n updateTimeframeAndFormat(format: string): void {\n const normalizedFormat = this.normalizeValue(format || this.format$.getValue());\n this.timeframe = this.getTimeframe(normalizedFormat);\n this.format$.next(this.getConfiguredFormat(this.timeframe));\n }\n\n normalizeValue(value) {\n return value.replace(/d/g, 'D');\n }\n\n /**\n * Get quarter number for date according to fiscal year\n *\n * @param date\n */\n public getQuarterAccordingToFiscalYear(date: Moment): number {\n let fiscalMonth = this.fiscalYearMonthsModifier;\n const dateMonth = date.month();\n if (dateMonth < fiscalMonth) {\n fiscalMonth -= 12;\n }\n return Math.trunc((date.month() - fiscalMonth) / 3) + 1;\n }\n\n /**\n * Sets date to end of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setEndOfQuarter(date: Moment, quarterNumber: number): void {\n date\n .subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + quarterNumber * 3 - 1, 'M')\n .endOf('month');\n }\n\n /**\n * Sets date to start of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setStartOfQuarter(date: Moment, quarterNumber: number): void {\n date\n .subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + (quarterNumber - 1) * 3, 'M');\n }\n\n /**\n * Sets date to end of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setEndOfCurrentQuarter(date: Moment): void {\n this.setEndOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * Sets date to start of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setStartOfCurrentQuarter(date: Moment): void {\n this.setStartOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * If date selection on this timeframe depends on Fiscal Year\n *\n * @param timeframe\n */\n public isTimeframeDependingOnFY(timeframe: TimeframeOption) {\n return _.includes([TimeframeOption.QUARTER, TimeframeOption.YEAR], timeframe);\n }\n\n /**\n * Subtract from date fiscal year shift months count\n *\n * @param date\n */\n public subtractFiscalYearMonthsFromDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date, true);\n }\n\n /**\n * Add to date fiscal year shift months count\n *\n * @param date\n */\n public addFiscalYearMonthsToDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date);\n }\n\n /**\n * Add or subtract depending on isRevert paremeter Fiscal year month shift\n *\n * @param date\n * @param isSubtract\n */\n private getDateModifiedByFiscalMonths(date: Moment, isSubtract = false): Moment {\n return date ? _.cloneDeep(date)[isSubtract ? 'subtract' : 'add'](this.fiscalYearMonthsModifier, 'month') : date;\n }\n}\n","import { ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef, Component, Inject, OnInit } from \"@angular/core\";\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MatCalendar, MatCalendarView } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { CalendarView, CustomDateFormat, TCalendarView, TimeframeOption } from '../../../models/datePicker';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport * as _ from 'lodash';\n\nconst moment = require('moment');\n\nexport interface ITimeframeOption {\n timeframe: TimeframeOption;\n title: string;\n value: TCalendarView;\n format: string;\n periodLabel: () => string;\n}\n\n@Component({\n selector: 'dr-date-picker_custom-header.component',\n templateUrl: 'dr-date-picker_custom-header.component.html',\n styleUrls: ['./dr-date-picker_custom-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class DrDatePickerCustomHeaderComponent<Moment> implements OnDestroy, OnInit {\n private _destroyed = new Subject<void>();\n quarters = [1, 2, 3, 4];\n selectedQuarter = 1;\n timeframeOptions: ITimeframeOption[] = [{\n timeframe: TimeframeOption.DAY,\n title: 'Day',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.day,\n periodLabel: () => this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase()\n }, {\n timeframe: TimeframeOption.WEEK,\n title: 'Week',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.week,\n periodLabel: () => this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase()\n }, {\n timeframe: TimeframeOption.MONTH,\n title: 'Month',\n value: CalendarView.FOR_MONTHS,\n format: this.datePickerService.formatConfig.month,\n periodLabel: () => String(moment(this._calendar.activeDate).utc().year())\n }, {\n timeframe: TimeframeOption.QUARTER,\n title: 'Quarter',\n value: CalendarView.FOR_QUARTERS,\n format: this.datePickerService.formatConfig.quarter,\n periodLabel: () => String(moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate)).utc().year())\n }, {\n timeframe: TimeframeOption.YEAR,\n title: 'Year',\n value: CalendarView.FOR_YEARS,\n format: this.datePickerService.formatConfig.year,\n periodLabel: () => {\n const currentYear = moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate)).utc().year();\n const startPeriod = Math.floor(currentYear / 24) * 24;\n return startPeriod + '-' + (startPeriod + 23);\n }\n }];\n\n pagingSetup = {\n [CalendarView.FOR_MONTHS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_QUARTERS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_DAYS]: (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\n [CalendarView.FOR_YEARS]: (forward) => this.pagingDateChange('addCalendarYears', 24, forward)\n };\n\n selectedTimeframe: TCalendarView = CalendarView.FOR_DAYS;\n timeframeSelection = false;\n periodMonthLabel = '';\n periodYearLabel = '';\n\n public readonly calendarView = CalendarView;\n\n constructor(private _calendar: MatCalendar<any>,\n private _dateAdapter: DateAdapter<Moment>,\n @Inject(MAT_DATE_FORMATS) private _dateFormats: CustomDateFormat,\n private cdr: ChangeDetectorRef,\n public datePickerService: DrDatePickerService) {\n\n _calendar.stateChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());\n this.datePickerService.format$.pipe(takeUntil(this._destroyed)).subscribe(value => {\n this.selectedTimeframe = this.timeframeOptions.filter(option => option.format === value)[0].value;\n _calendar.currentView = this.selectedTimeframe as MatCalendarView;\n this.setPeriodLabels();\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n });\n\n _calendar.viewChanged.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this.setPeriodLabels();\n if (_calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n });\n\n this.datePickerService.calendarInstance = _calendar;\n }\n\n ngOnInit() {\n setTimeout(() => {\n if (this._calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n })\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n setPeriodLabels() {\n const currentTimeframeOption = this.timeframeOptions.filter(option => option.value === this._calendar.currentView)[0];\n const fullPeriodLabel = currentTimeframeOption.periodLabel();\n if (this._calendar.currentView === CalendarView.FOR_DAYS) {\n this.periodMonthLabel = fullPeriodLabel.slice(0, 3);\n this.periodYearLabel = fullPeriodLabel.slice(4);\n } else {\n this.periodMonthLabel = '';\n this.periodYearLabel = fullPeriodLabel;\n }\n this.cdr.markForCheck();\n }\n\n setTimeframe() {\n this.timeframeSelection = false;\n this._calendar.currentView = this.selectedTimeframe as MatCalendarView;\n const chosenTimeframeOption = this.timeframeOptions.filter(option => option.value === this.selectedTimeframe)[0];\n this.datePickerService.updateTimeframeAndFormat(chosenTimeframeOption.format);\n\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n }\n\n get currentViewIsQuarter() {\n return ![CalendarView.FOR_DAYS, CalendarView.FOR_MONTHS, CalendarView.FOR_YEARS].includes(this._calendar.currentView as CalendarView);\n }\n\n switchViewOnClickOnPeriodLabel(view: CalendarView.FOR_MONTHS | CalendarView.FOR_YEARS) {\n this._calendar.currentView = view;\n }\n\n onSelectQuarter(quarterNumber: number) {\n this.selectedQuarter = quarterNumber;\n this.datePickerService.setEndOfQuarter(this._calendar.activeDate, quarterNumber);\n this.datePickerService.updatedQuarter$.next(this._calendar.activeDate);\n this.datePickerService.datePickerInstance.close();\n }\n\n pagingClicked(forward) {\n if (this.pagingSetup[this._calendar.currentView]) {\n this.pagingSetup[this._calendar.currentView](forward);\n }\n }\n\n pagingDateChange(actionCall: string, amount: number, forward: boolean) {\n this._calendar.activeDate = this._dateAdapter[actionCall](this._calendar.activeDate, forward ? amount : -amount);\n this.setPeriodLabels();\n }\n\n transformDateInMultiyearViewAccordingToFY() {\n const multuYearView = this._calendar.multiYearView as any;\n multuYearView._activeDate = this.datePickerService.subtractFiscalYearMonthsFromDate(multuYearView._activeDate);\n multuYearView._selectedYear = multuYearView._activeDate.year();\n multuYearView._init();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CalendarView, DatePickerPeriodPosition, TimeframeOption } from '../../../models/datePicker';\nimport { Moment } from 'moment';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrDatePickerCustomHeaderComponent } from '../dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { MatCalendarView } from '@angular/material/datepicker';\nimport * as _ from 'lodash';\n\nconst moment = require('moment');\nconst noop = () => {\n};\n\n@Component({\n selector: 'dr-date-picker',\n templateUrl: './dr-date-picker.component.html',\n styleUrls: ['./dr-date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true },\n { provide: DrDatePickerService }\n ],\n})\nexport class DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n\n @Input() set format(value) {\n this.datePickerService.updateTimeframeAndFormat(value);\n }\n\n @Input() set min(minDate: number) {\n this._min = moment.unix(minDate).utc();\n }\n\n @Input() set max(maxDate: number) {\n this._max = moment.unix(maxDate).utc();\n }\n\n // Whether to transform date, taking end, start, middle of preiod (i.e. set middle of month if timeframe='month')\n @Input() periodPosition: DatePickerPeriodPosition = DatePickerPeriodPosition.DEFAULT;\n\n @Input() placeholder = 'Select';\n\n @Input() fiscalYearMonthsModifier = 0;\n\n @ViewChild('datePicker') public datePicker: any;\n\n public calendarViewsTimeframeMapping: any = {\n year: 'multi-year',\n month: 'year',\n quarter: 'none',\n day: 'month',\n };\n\n public customHeader = DrDatePickerCustomHeaderComponent;\n public readonly = true;\n public _min: Moment;\n public _max: Moment;\n public readonly timeframeOption = TimeframeOption;\n\n public get value(): Moment {\n return this.innerValue;\n }\n\n public set value(v: Moment) {\n if (v !== this.innerValue) {\n this.setValueFromMoment(v);\n }\n this.cdr.markForCheck();\n }\n\n protected innerValue: Moment = null;\n protected destroyed$ = new Subject<void>();\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService\n ) {\n datePickerService.updatedQuarter$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.setValueFromMoment(value);\n });\n }\n\n ngAfterViewInit(): void {\n this.datePickerService.fiscalYearMonthsModifier = this.fiscalYearMonthsModifier;\n this.datePickerService.datePickerInstance = this.datePicker;\n this.datePicker.startView = this.calendarViewsTimeframeMapping[this.datePickerService.timeframe];\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n /**\n * Updating component inner value according to datepicker timeframe (day, month etc.)\n * and date position in period (start, end, middle)\n */\n tryToNormalaizeTimeframe(): void {\n const timeframe = this.datePickerService.timeframe;\n switch (this.periodPosition) {\n case DatePickerPeriodPosition.START_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setStartOfCurrentQuarter(this.innerValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setStartOfQuarter(this.innerValue, 1);\n } else {\n this.innerValue.startOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.END_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setEndOfCurrentQuarter(this.innerValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setEndOfQuarter(this.innerValue, 4);\n } else {\n this.innerValue.endOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.MIDDLE_OF_PERIOD:\n let endOfPeriod: Moment;\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n endOfPeriod = this.innerValue.clone();\n this.datePickerService.setStartOfCurrentQuarter(this.innerValue);\n this.datePickerService.setEndOfCurrentQuarter(endOfPeriod);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n endOfPeriod = this.innerValue.clone();\n this.datePickerService.setStartOfQuarter(this.innerValue, 1);\n this.datePickerService.setEndOfQuarter(endOfPeriod, 4);\n } else {\n this.innerValue.startOf(timeframe);\n endOfPeriod = this.innerValue.clone().endOf(timeframe);\n }\n const diff = endOfPeriod.diff(this.innerValue, 'seconds');\n this.innerValue.add(diff / 2 + 1, 'seconds');\n break;\n default:\n this.innerValue.startOf(timeframe);\n break;\n }\n }\n\n public chosenPeriodHandler(chosenDate: Moment, timeframe: TimeframeOption) {\n\n if (timeframe === TimeframeOption.YEAR) {\n chosenDate = this.datePickerService.addFiscalYearMonthsToDate(chosenDate);\n }\n\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER && timeframe === TimeframeOption.YEAR) {\n this.datePickerService.calendarInstance.currentView = CalendarView.FOR_QUARTERS as MatCalendarView;\n this.datePickerService.calendarInstance.activeDate = chosenDate;\n this.cdr.detectChanges();\n } else if (this.datePickerService.timeframe === timeframe) {\n this.setValueFromMoment(chosenDate);\n this.datePicker.close();\n }\n }\n\n /**\n * Setting value from outside of component via ngModel or formControl updates\n */\n public writeValue(value: number): void {\n this.innerValue = value ? moment.unix(value).utc() : value;\n if (this.innerValue) {\n this.tryToNormalaizeTimeframe();\n }\n this.cdr.markForCheck();\n }\n\n public onTouchedCallback: () => void = noop;\n public onChangeCallback: (_: any) => void = noop;\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n /**\n * Set inner value from Moment and propagate\n *\n * @param momentDate\n */\n protected setValueFromMoment(momentDate: Moment) {\n this.setValue(momentDate.unix());\n }\n\n /**\n * Set inner value from timestamp and propagate\n *\n * @param timestamp\n */\n protected setValue(timestamp: number): void {\n this.writeValue(timestamp);\n this.onChangeCallback(this.innerValue.unix());\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output\n} from '@angular/core';\nimport { DrDatePickerComponent } from '../dr-date-picker/dr-date-picker.component';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IDatePickerFormatConfig, TimeframeOption } from '../../../models/datePicker';\nimport { takeUntil } from 'rxjs/operators';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'dr-date-picker-with-timeframe',\n templateUrl: './dr-date-picker-with-timeframe.component.html',\n styleUrls: ['./dr-date-picker-with-timeframe.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerWithTimeframeComponent, multi: true },\n { provide: DrDatePickerService }\n ],\n})\nexport class DrDatePickerWithTimeframeComponent extends DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnInit {\n\n @HostBinding('class.dr-date-picker-on-dashboard') get isDashboardClassDisplayed(): boolean {\n return this.isDashboardDatepicker;\n };\n\n @Input() isDashboardDatepicker = false;\n\n @Input() set dateFormatConfig(value: IDatePickerFormatConfig) {\n if (value) {\n this.datePickerService.formatConfig = { ...this.datePickerService.formatConfig, ...value };\n this.cdr.markForCheck();\n }\n }\n\n @Input() canSelectTimeframe = true;\n\n @Input() set availableTimeframes(value: TimeframeOption[]) {\n if (value && value.length) {\n this.datePickerService.availableTimeframes = value;\n }\n }\n\n // eslint-disable-next-line\n @Output() onChangeFormat = new EventEmitter<string>();\n\n public readonly pagingSetup = {\n [TimeframeOption.YEAR]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [TimeframeOption.QUARTER]: (forward) => this.pagingDateChange('addCalendarMonths', 3, forward),\n [TimeframeOption.MONTH]: (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\n [TimeframeOption.DAY]: (forward) => this.pagingDateChange('addCalendarDays', 1, forward),\n [TimeframeOption.WEEK]: (forward) => this.pagingDateChange('addCalendarDays', 7, forward)\n };\n\n public get displayedFormattedValue(): string {\n if (!this.value) {\n return this.placeholder;\n }\n\n let displayValue = _.cloneDeep(this.value);\n if (this.datePickerService.isTimeframeDependingOnFY(this.datePickerService.timeframe)) {\n displayValue = this.datePickerService.subtractFiscalYearMonthsFromDate(displayValue);\n }\n\n const formatCached = this.datePickerService.format$.getValue();\n return this.datePickerService.getDisplayPrefix() + displayValue.format(formatCached);\n }\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService\n ) {\n super(cdr, dateAdapter, datePickerService);\n datePickerService.isTimeframeSelectionEnabled = true;\n\n datePickerService.format$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.onChangeFormat.emit(datePickerService.normalizeValue(value));\n });\n }\n\n ngOnInit() {\n this.datePickerService.isTimeframeSelectionEnabled = this.canSelectTimeframe;\n this.cdr.markForCheck();\n }\n\n pagingClicked(forward: boolean): void {\n if (this.pagingSetup[this.datePickerService.timeframe]) {\n this.pagingSetup[this.datePickerService.timeframe](forward);\n }\n this.datePicker.close();\n }\n\n pagingDateChange(actionCall: string, amount: number, forward: boolean) {\n const newValue = this.dateAdapter[actionCall](this.innerValue, forward ? amount : -amount);\n this.setValueFromMoment(newValue);\n }\n}\n","import { Directive, Inject, Input, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { CustomDateFormat, DateDisplay, DateParse } from '../../../models/datePicker';\n\n@Directive({\n selector: '[drDatePickerFormat]',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter\n },\n {\n provide: MAT_DATE_FORMATS,\n useClass: CustomDateFormat\n }\n ]\n})\nexport class DrDatePickerFormatDirective {\n @Input() public configDateParse: DateParse;\n @Input() public configDateDisplay: DateDisplay;\n\n @Input('drDatePickerFormat')\n set datePickerFormat(format: string) {\n if (this.configDateParse) {\n this.matDateFormat.updateDateFormat(\n this.configDateParse,\n this.configDateDisplay\n );\n } else {\n this.matDateFormat.updateDateFormat({ dateInput: format });\n }\n const value = this.ngControl.value;\n this.ngControl.valueAccessor?.writeValue(value);\n }\n\n constructor(\n @Inject(MAT_DATE_FORMATS) public matDateFormat: CustomDateFormat,\n @Optional() private ngControl: NgControl\n ) {\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TimeframeOption } from '../../models/datePicker';\nimport { ITimeframeOption } from './dr-date-picker_custom-header/dr-date-picker_custom-header.component';\n\n@Pipe({\n name: 'drShowTimeframePipe'\n})\nexport class DrShowTimeframePipe implements PipeTransform {\n transform(arr: ITimeframeOption[], showOptions: TimeframeOption[]): ITimeframeOption[] {\n return arr.filter(item => showOptions.includes(item.timeframe));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { DrInputComponent } from './dr-input/dr-input.component';\nimport { DrSelectComponent } from './dr-select/dr-select.component';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { RadioButtonComponent } from './radio-button/radio-button.component';\nimport { RadioGroupComponent } from './radio-button/radio-group.component';\nimport { DrToggleComponent } from './dr-toggle/dr-toggle.component';\nimport { DrButtonComponent } from './button/button.component';\n\nimport { MatCalendar, MatDatepickerModule } from '@angular/material/datepicker';\nimport { DrDatePickerComponent } from './date-pickers/dr-date-picker/dr-date-picker.component';\nimport { DrDatePickerWithTimeframeComponent } from './date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nimport { DrDatePickerFormatDirective } from './date-pickers/directives/dr-date-picker-format.directive';\nimport { DrToggleButtonComponent } from './dr-toggle-button/dr-toggle-button.component';\nimport { DrModelDebounceChangeDirective } from './dr-model-debounce-change.directive';\nimport { DrDatePickerCustomHeaderComponent } from './date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { DrShowTimeframePipe } from './date-pickers/dr-show-timeframe.pipe';\n\n// !!! Please do not use such approach in other places\n// Hard fix for 'none' calendar view selection\nMatCalendar.prototype.focusActiveCell = function() {\n this._getCurrentViewComponent()?._focusActiveCell(false);\n};\n\nconst components = [\n DrButtonComponent,\n RadioButtonComponent,\n RadioGroupComponent,\n CheckboxComponent,\n DrInputComponent,\n DrSelectComponent,\n DrToggleComponent,\n DrToggleButtonComponent,\n DrDatePickerComponent,\n DrDatePickerWithTimeframeComponent,\n DrDatePickerFormatDirective,\n DrDatePickerCustomHeaderComponent,\n DrModelDebounceChangeDirective,\n DrShowTimeframePipe\n];\n\n@NgModule({\n declarations: components,\n exports: components,\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgSelectModule,\n MatDatepickerModule\n ]\n})\n\nexport class DrInputsModule {\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TooltipInfoContext } from '../../interfaces/tooltip-component-context';\n\n@Component({\n selector: 'dr-tooltip-info',\n templateUrl: './tooltip-info.component.html',\n styleUrls: ['./tooltip-info.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipInfoComponent {\n\n @Input() data: TooltipInfoContext;\n @Input() useDescriptionAsHTML: boolean;\n\n constructor() {\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TooltipInfoContext } from '../../interfaces/tooltip-component-context';\n\n@Component({\n selector: 'dr-tooltip-info-simple',\n templateUrl: './tooltip-info-simple.component.html',\n styleUrls: ['./tooltip-info-simple.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipInfoSimpleComponent {\n\n @Input() context: TooltipInfoContext;\n\n constructor() {\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'dr-tooltip-no-body',\n templateUrl: './tooltip-no-body.component.html',\n styleUrls: ['./tooltip-no-body.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipNoBodyComponent implements OnInit {\n\n @Input() context: any;\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dr-tooltip-process-default',\n template: `\n <div class=\"container\" [innerHTML]=\"text\"></div>\n `,\n styles: [`\n .container {\n width: auto;\n max-width: 388px;\n text-align: start;\n font-size: 14px;\n line-height: 22px;\n padding: 10px 12px;\n color: #151B3F;\n background-color: #FFF;\n border-radius: 8px;\n box-shadow: 0px 4px 8px 1px rgba(0, 0, 0, 0.25);\n border: 1px solid #C3C4CE;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipProcessDefaultComponent {\n\n @Input() text: string;\n\n constructor() {\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DrTooltipDirective } from './dr-tooltip.directive';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { CommonModule } from '@angular/common';\nimport { TooltipInfoComponent } from './components/tooltip-info/tooltip-info.component';\nimport { TooltipInfoSimpleComponent } from './components/tooltip-info-simple/tooltip-info-simple.component';\nimport { TooltipNoBodyComponent } from './components/tooltip-no-body/tooltip-no-body.component';\nimport { TooltipProcessDefaultComponent } from './components/tooltip-process-default/tooltip-process-default.component';\n\nconst TOOLTIP_COMPONENTS = [\n TooltipInfoComponent,\n TooltipInfoSimpleComponent,\n TooltipNoBodyComponent,\n TooltipProcessDefaultComponent\n];\n\n@NgModule({\n imports: [\n CommonModule\n ],\n exports: [\n TooltipComponent,\n DrTooltipDirective,\n ...TOOLTIP_COMPONENTS\n ],\n providers: [],\n declarations: [\n TooltipComponent,\n DrTooltipDirective,\n ...TOOLTIP_COMPONENTS\n ],\n})\n\nexport class DrTooltipModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrAvatarComponent } from './dr-avatar.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { CommonModule } from '@angular/common';\nimport { DrAvatarPipe } from './dr-avatar.pipe';\n\n@NgModule({\n declarations: [\n DrAvatarComponent,\n DrAvatarPipe\n ],\n exports: [\n DrAvatarComponent,\n DrAvatarPipe\n ],\n imports: [\n MatTooltipModule,\n DrTooltipModule,\n CommonModule\n ]\n})\n\nexport class DrAvatarModule {\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { DrSpinnerDirective } from './dr-spinner.directive';\n\nconst components = [DrSpinnerComponent];\nconst directives = [DrSpinnerDirective];\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [...components, ...directives],\n declarations: [...components, ...directives]\n})\n\nexport class DrSpinnerModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrPopoverDirective } from './dr-popover.directive';\nimport { CommonModule } from '@angular/common';\nimport { DrPopoverComponent } from './dr-popover.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [\n DrPopoverDirective,\n DrPopoverComponent,\n ],\n providers: [],\n declarations: [\n DrPopoverDirective,\n DrPopoverComponent,\n ],\n})\n\nexport class DrPopoverModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrDropdownPositionDirective } from './dr-dropdown-position.directive';\nimport { DrDropdownDirective } from './dr-dropdown.directive';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { CommonModule } from '@angular/common';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrDropdownItemShowPipe } from './dr-dropdown-item-show.pipe';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@NgModule({\n imports: [\n CommonModule,\n DrTooltipModule,\n ],\n declarations: [\n DrDropdownDirective,\n DrDropdownPositionDirective,\n DrDropdownComponent,\n DrDropdownItemShowPipe,\n ],\n exports: [\n DrDropdownDirective,\n DrDropdownPositionDirective,\n DrDropdownComponent,\n DrDropdownItemShowPipe,\n ],\n providers: [\n DrDropdownService,\n ],\n})\n\nexport class DrDropdownModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTabsComponent } from './dr-tabs.component';\nimport { DrTabComponent } from './dr-tab.component';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [\n CommonModule,\n MatTabsModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule\n ],\n exports: [\n DrTabsComponent,\n DrTabComponent\n ],\n providers: [],\n declarations: [\n DrTabsComponent,\n DrTabComponent\n ],\n})\n\nexport class DrTabsModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrAccordionComponent } from './accordion.component';\nimport { DrAccordionItemComponent } from './accordion-item.component';\nimport { DrAccordionItemHeaderComponent } from './accordion-item-header.component';\nimport { DrAccordionItemBodyComponent } from './accordion-item-body.component';\n\nconst DR_ACCORDION_COMPONENTS = [\n DrAccordionComponent,\n DrAccordionItemComponent,\n DrAccordionItemHeaderComponent,\n DrAccordionItemBodyComponent,\n];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...DR_ACCORDION_COMPONENTS],\n declarations: [...DR_ACCORDION_COMPONENTS],\n providers: [],\n})\nexport class DrAccordionModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrLayoutComponent } from './dr-layout.component';\nimport { CommonModule } from '@angular/common';\nimport { DrLayoutHeaderComponent } from './dr-layout-header.component';\nimport { DrLayoutBodyComponent } from './dr-layout-body.component';\n\nconst components = [\n DrLayoutComponent,\n DrLayoutHeaderComponent,\n DrLayoutBodyComponent\n];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...components],\n declarations: [...components],\n})\n\nexport class DrLayoutModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { DrErrorComponent } from './dr-error.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n DrTooltipModule\n ],\n exports: [DrErrorComponent],\n providers: [],\n declarations: [\n DrErrorComponent\n ],\n})\n\nexport class DrErrorModule {\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { Step } from './interfaces/stepper';\n\n@Component({\n selector: 'dr-stepper',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class StepperComponent {\n\n @Input() steps: Step[];\n @Input() currentStep: Step;\n @Input() withoutConnectors = false;\n @Input() hiddenNames = false;\n @Input() inlineLabels = false;\n @Input() disabled = false;\n @Input() hiddenIndex = false;\n @Output() stepChange: EventEmitter<Step> = new EventEmitter<Step>();\n @ViewChild('stepper', { read: ElementRef }) public stepper: ElementRef<any>;\n\n constructor() {\n }\n\n selectStep(step: Step): void {\n if (step !== this.currentStep && !this.disabled) {\n this.stepChange.emit(step);\n }\n }\n\n getWidth(step: Step): string {\n if (this.withoutConnectors) return '0%';\n if (step.completed) return '100%';\n if (step.index === 0 || this.steps[step.index - 1].completed) return `${ (step?.completedTasks / step?.requiredTasks * 100) || 0 }%`;\n return '0%';\n }\n\n public scrollLeft(): void {\n this.stepper.nativeElement.scrollLeft -= 80;\n }\n\n public scrollRight(): void {\n this.stepper.nativeElement.scrollLeft += 80;\n }\n\n public roundWidth(width: number): number {\n return Math.round(width);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StepperComponent } from './stepper.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n declarations: [StepperComponent],\n imports: [\n CommonModule,\n DrTooltipModule\n ],\n exports: [StepperComponent]\n})\nexport class DrStepperModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogWrapperComponent } from './components/dialog-wrapper/dialog-wrapper.component';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { DialogModalWrapperComponent } from './components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nimport { DialogService } from './services/dialog.service';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n declarations: [DialogWrapperComponent, DialogModalWrapperComponent],\n imports: [\n CommonModule,\n MatDialogModule,\n DrInputsModule,\n ReactiveFormsModule,\n DrTooltipModule\n ],\n exports: [DialogWrapperComponent, DialogModalWrapperComponent],\n providers: [\n { provide: MatDialogRef, useValue: {} },\n { provide: MAT_DIALOG_DATA, useValue: {} },\n DialogService\n ]\n})\nexport class DrDialogModule {\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IMAGE_TYPES } from '../../models/chat';\n\n@Component({\n selector: 'dr-chat-form',\n templateUrl: 'chat-form.component.html',\n styleUrls: ['./chat-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatFormComponent {\n inputFocus = false;\n inputHover = false;\n\n droppedFiles: any[] = [];\n\n /**\n * Predefined message text\n *\n * @type {string}\n */\n @Input() message = '';\n\n /**\n * Message placeholder text\n *\n * @type {string}\n */\n @Input() messagePlaceholder = 'Type a message';\n\n /**\n * Show send button\n *\n * @type {boolean}\n */\n @Input() dropFiles = false;\n\n /**\n * File drop placeholder text\n *\n * @type {string}\n */\n @Input() dropFilePlaceholder = 'Drop file to send';\n\n /**\n *\n * @type {EventEmitter<{ message: string, files: File[] }>}\n */\n @Output() send = new EventEmitter<{ message: string; files: File[] }>();\n\n /**\n * Emits when message input value has been changed\n *\n * @type {EventEmitter<string>}\n */\n\n @Output() inputChange = new EventEmitter<string>();\n\n @HostBinding('class.file-over') fileOver = false;\n\n constructor(protected cdr: ChangeDetectorRef, protected domSanitizer: DomSanitizer) {\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: any) {\n if (this.dropFiles) {\n event.preventDefault();\n event.stopPropagation();\n\n this.fileOver = false;\n if (event.dataTransfer?.files) {\n for (const file of event.dataTransfer.files) {\n const res = file;\n\n if (IMAGE_TYPES.includes(file.type)) {\n const fr = new FileReader();\n fr.onload = (e: any) => {\n res.src = e.target.result;\n res.urlStyle = this.domSanitizer.bypassSecurityTrustStyle(`url(${ res.src })`);\n this.cdr.detectChanges();\n };\n\n fr.readAsDataURL(file);\n }\n this.droppedFiles.push(res);\n }\n }\n }\n }\n\n removeFile(file) {\n const index = this.droppedFiles.indexOf(file);\n if (index >= 0) {\n this.droppedFiles.splice(index, 1);\n }\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = true;\n }\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = false;\n }\n }\n\n sendMessage() {\n if (this.droppedFiles.length || String(this.message).trim().length) {\n this.send.emit({ message: this.message, files: this.droppedFiles });\n this.message = '';\n this.droppedFiles = [];\n this.cdr.markForCheck();\n }\n }\n\n onModelChange(value: string): void {\n this.inputChange.emit(value);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DrChatCustomMessageDirective } from './chat-custom-message.directive';\n\n/**\n * `DrCustomMessageService` is used to store instances of `DrChatCustomMessageDirective`s which\n * were provided in the chat component.\n */\n@Injectable()\nexport class DrChatCustomMessageService {\n protected readonly customMessages = new Map<string, DrChatCustomMessageDirective>();\n\n register(type: string, instance: DrChatCustomMessageDirective): void {\n this.customMessages.set(type, instance);\n }\n\n unregister(type: string): boolean {\n return this.customMessages.delete(type);\n }\n\n getInstance(type: string): DrChatCustomMessageDirective | undefined {\n return this.customMessages.get(type);\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, TemplateRef } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CHAT_MESSAGE_TYPE, IChatMessage } from '../../models/chat';\nimport { DrChatCustomMessageDirective } from './dr-chat-message-custom/chat-custom-message.directive';\nimport { DrChatCustomMessageService } from './dr-chat-message-custom/chat-custom-message.service';\n\n@Component({\n selector: 'dr-chat-message',\n templateUrl: 'chat-message.component.html',\n styleUrls: ['./chat-message.component.scss'],\n animations: [\n trigger('flyInOut', [\n state('in', style({ transform: 'translateX(0)' })),\n transition('void => *', [style({ transform: 'translateX(-100%)' }), animate(80)]),\n transition('* => void', [animate(80, style({ transform: 'translateX(100%)' }))]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageComponent {\n\n MESSAGE_TYPE = CHAT_MESSAGE_TYPE;\n MESSAGE_TYPE_CUSTOM = CHAT_MESSAGE_TYPE.EMBED;\n\n @HostBinding('@flyInOut')\n get flyInOut() {\n return true;\n }\n\n @HostBinding('class.not-reply')\n get notReply() {\n return !this.reply;\n }\n\n /**\n * Determines if a message is a reply\n */\n @Input()\n @HostBinding('class.reply')\n get reply(): boolean {\n return this._reply;\n }\n\n set reply(value: boolean) {\n this._reply = !!value;\n }\n\n protected _reply = false;\n\n @Input() type: string;\n\n /**\n * Message\n *\n * @type {IChatMessage}\n */\n @Input() message: IChatMessage;\n\n /**\n * Data which will be set as custom message template context\n *\n * @type {any}\n */\n @Input() customMessageData: any;\n\n public customMessage: boolean;\n\n constructor(private customMessageService: DrChatCustomMessageService) {\n }\n\n public getTemplate(): TemplateRef<any> {\n this.customMessage = true;\n const customMessage = this.getCustomMessage(this.type);\n return customMessage.templateRef;\n }\n\n public getTemplateContext(): { $implicit: any; isReply: boolean } {\n return { $implicit: this.customMessageData, isReply: this.reply };\n }\n\n protected getCustomMessage(type: string): DrChatCustomMessageDirective {\n const customMessageDirective = this.customMessageService.getInstance(type);\n\n if (!customMessageDirective) {\n throw new Error(\n `dr-chat: Can't find template for custom type '${ type }'. ` +\n `Make sure you provide it in the chat component with *drCustomMessage='${ type }'.`,\n );\n }\n\n return customMessageDirective;\n }\n}\n","import {\n Component,\n Input,\n ViewChild,\n ElementRef,\n ContentChildren,\n QueryList,\n AfterViewInit,\n ContentChild,\n ChangeDetectorRef, Output, EventEmitter,\n} from '@angular/core';\n\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatCustomMessageService } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.service';\n\n@Component({\n selector: 'dr-chat',\n styleUrls: ['./chat.component.scss'],\n templateUrl: 'chat.component.html',\n providers: [DrChatCustomMessageService]\n})\nexport class DrChatComponent implements AfterViewInit {\n @Input() title: string;\n\n @Input() showClearButton = true;\n\n @Input() noMessagesPlaceholder = 'No messages yet.';\n\n /**\n * Scroll chat to the bottom of the list when a new message arrives\n */\n @Input()\n get scrollBottom(): boolean {\n return this._scrollBottom;\n }\n\n set scrollBottom(value: boolean) {\n this._scrollBottom = !!value;\n }\n\n protected _scrollBottom = true;\n\n @ViewChild('messagesContainer') messagesContainer: ElementRef;\n @ContentChildren(DrChatMessageComponent) messages: QueryList<DrChatMessageComponent>;\n @ContentChild(DrChatFormComponent) chatForm: DrChatFormComponent;\n @Output() clear: EventEmitter<any> = new EventEmitter<any>();\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit() {\n this.messages.changes.subscribe(messages => {\n this.messages = messages;\n this.updateView();\n });\n\n this.updateView();\n }\n\n updateView() {\n if (this.scrollBottom) {\n this.scrollListBottom();\n }\n }\n\n scrollListBottom() {\n setTimeout(() => {\n this.messagesContainer.nativeElement.scrollTo({ top: this.messagesContainer.nativeElement.scrollHeight, behavior: 'smooth' });\n this.cdr.markForCheck();\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IChatTextMessage } from '../../../models/chat';\n\n/**\n * Chat text message component.\n */\n@Component({\n selector: 'dr-chat-message-text',\n templateUrl: 'chat-message-text.component.html',\n styleUrls: ['./chat-message-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageTextComponent {\n /**\n * Message sender\n *\n * @type {IChatTextMessage}\n */\n @Input() message: IChatTextMessage;\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IChatRichTextMessage } from '../../../models/chat';\n\n/**\n * Chat rich-text message component.\n */\n@Component({\n selector: 'dr-chat-message-rich-text',\n templateUrl: 'chat-message-rich-text.component.html',\n styleUrls: ['./chat-message-rich-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageRichTextComponent {\n /**\n * Message sender\n *\n * @type {IChatRichTextMessage}\n */\n @Input() message: IChatRichTextMessage;\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n IChatDownloadFileMessage,\n IChatImageMessage,\n IChatMessageFile,\n IChatMessageFileImagePreview,\n IMAGE_TYPES\n} from '../../../models/chat';\n\n/**\n * Chat message component.\n */\n@Component({\n selector: 'dr-chat-message-file',\n templateUrl: 'chat-message-file.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageFileComponent {\n\n readyFiles: any[];\n\n /**\n * Message with file\n *\n * @type {IChatDownloadFileMessage | IChatImageMessage}\n */\n @Input() message: IChatDownloadFileMessage | IChatImageMessage;\n\n /**\n * Message file path\n *\n * @type {Date}\n */\n @Input()\n set files(files: IChatMessageFile[]) {\n this.readyFiles = (files || []).map((file: any) => {\n const isImage = this.isImage(file);\n return {\n ...file,\n urlStyle: isImage && this.domSanitizer.bypassSecurityTrustStyle(`url(${ file.url })`),\n isImage,\n };\n });\n this.cd.detectChanges();\n }\n\n constructor(protected cd: ChangeDetectorRef, protected domSanitizer: DomSanitizer) {\n }\n\n\n isImage(file: IChatMessageFile): boolean {\n const type = (file as IChatMessageFileImagePreview).type;\n if (type) {\n return IMAGE_TYPES.includes(type);\n }\n return false;\n }\n}\n","import { Directive, Input, OnDestroy, OnInit, TemplateRef } from '@angular/core';\n\nimport { DrChatCustomMessageService } from './chat-custom-message.service';\n\nconst throwCustomMessageTypeIsRequired = () => {\n throw new Error('[drCustomMessage]: custom message type is required.');\n};\n\n@Directive({\n selector: `[drCustomMessage]`,\n})\nexport class DrChatCustomMessageDirective implements OnInit, OnDestroy {\n /**\n * Defines a message type which should rendered with the custom message template.\n *\n * @type {string}\n */\n @Input()\n get drCustomMessage(): string {\n return this._type;\n }\n set drCustomMessage(value: string) {\n this._type = value;\n }\n protected _type: string;\n\n get type(): string {\n return this._type;\n }\n\n constructor(public templateRef: TemplateRef<any>,\n protected customMessageService: DrChatCustomMessageService) {}\n\n ngOnInit() {\n if (!this._type) {\n throwCustomMessageTypeIsRequired();\n }\n this.customMessageService.register(this.type, this);\n }\n\n ngOnDestroy() {\n this.customMessageService.unregister(this.type);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrAvatarModule } from '../dr-avatar/dr-avatar.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { DrChatComponent } from './chat.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageTextComponent } from './dr-chat-message/dr-chat-message-text/chat-message-text.component';\nimport { DrChatMessageRichTextComponent } from './dr-chat-message/dr-chat-message-rich-text/chat-message-rich-text.component';\nimport { DrChatMessageFileComponent } from './dr-chat-message/dr-chat-message-file/chat-message-file.component';\nimport { DrChatCustomMessageDirective } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\n\n\nconst DR_CHAT_COMPONENTS = [\n DrChatComponent,\n DrChatMessageComponent,\n DrChatFormComponent,\n DrChatMessageTextComponent,\n DrChatMessageFileComponent,\n DrChatMessageRichTextComponent,\n];\n\nconst DR_CHAT_DIRECTIVES = [DrChatCustomMessageDirective];\n\n\n@NgModule({\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n DrAvatarModule,\n DrInputsModule\n ],\n declarations: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n exports: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n})\nexport class DrChatModule {\n}\n","/* components */\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/date-tags/forecast-tag/forecast-tag.component';\nexport * from './lib/date-tags/month-tag/month-tag.component';\nexport * from './lib/date-tags/quarter-tag/quarter-tag.component';\nexport * from './lib/date-tags/week-tag/week-tag.component';\nexport * from './lib/date-tags/year-tag/year-tag.component';\nexport * from './lib/dr-tags/dr-tag.component';\nexport * from './lib/list-tags/list-tag.component';\nexport * from './lib/date-tags/day-tag/day-tag.component';\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/dr-inputs/radio-button/radio-button.component';\nexport * from './lib/dr-inputs/radio-button/radio-group.component';\nexport * from './lib/dr-inputs/checkbox/checkbox.component';\nexport * from './lib/dr-inputs/dr-input/dr-input.component';\nexport * from './lib/dr-inputs/dr-select/dr-select.component';\nexport * from './lib/dr-avatar/dr-avatar.component';\nexport * from './lib/dr-avatar/dr-avatar.pipe';\nexport * from './lib/dr-tooltip/dr-tooltip.component';\nexport * from './lib/dr-tooltip/dr-tooltip.directive';\nexport * from './lib/dr-inputs/dr-toggle/dr-toggle.component';\nexport * from './lib/dr-inputs/dr-toggle-button/dr-toggle-button.component';\nexport * from './lib/dr-spinner/dr-spinner.component';\nexport * from './lib/dr-spinner/dr-spinner.directive';\nexport * from './lib/dr-inputs/button/button.component';\n\nexport * from './lib/dr-popover/dr-popover.directive';\nexport * from './lib/dr-popover/dr-popover.component';\nexport * from './lib/dr-popover/dr-popover.service';\n\nexport * from './lib/dr-dropdown/dr-dropdown.directive';\nexport * from './lib/dr-dropdown/dr-dropdown-position.directive';\nexport * from './lib/dr-dropdown/dr-dropdown.component';\nexport * from './lib/dr-dropdown/dr-dropdown.service';\nexport * from './lib/dr-dropdown/dr-dropdown-item-show.pipe';\nexport * from './lib/dr-tabs/dr-tabs.component';\nexport * from './lib/dr-tabs/dr-tab.component';\n\nexport * from './lib/dr-accordion/accordion.component';\nexport * from './lib/dr-accordion/accordion-item.component';\nexport * from './lib/dr-accordion/accordion-item-header.component';\nexport * from './lib/dr-accordion/accordion-item-body.component';\n\nexport * from './lib/dr-layout/dr-layout.component';\nexport * from './lib/dr-layout/dr-layout-header.component';\nexport * from './lib/dr-layout/dr-layout-body.component';\n\nexport * from './lib/dr-error/dr-error.component';\n\nexport * from './lib/dr-dialog/services/dialog.service';\n\n/* enums */\nexport { TooltipPosition } from './lib/dr-tooltip/enums/tooltip-position.enum';\n\n/* interfaces & types */\nexport { TooltipInfoContext } from './lib/dr-tooltip/interfaces/tooltip-component-context';\nexport { Step } from './lib/stepper/interfaces/stepper';\nexport * from './lib/dr-dialog/interfaces/dialog-data';\n\n/* directives */\nexport * from './lib/dr-inputs/dr-model-debounce-change.directive';\n\n/* models */\nexport * from './lib/models/datePicker';\nexport { TAG_TYPES, ITag, IDateTag, IListTag, ITagForServer } from './lib/models/serverTags';\nexport { ISpinnerOptions, SpinnerType, SpinnerSize } from './lib/models/spinnerOptions';\nexport {\n ElPosition,\n IDropdown,\n IDropdownItem,\n IDropdownActionIcon,\n IDropdownCoordinate,\n IDropdownCallEvent,\n IDropdownAction\n} from './lib/models/dropdown';\nexport {\n DrPopoverRef,\n IDrPopoverComponentModel,\n Point,\n DrPopoverConfig,\n IPopoverManualClosing,\n DrPopoverAlignment,\n DrPopoverAlignmentDimension,\n} from './lib/models/popover';\nexport { IValidationError } from './lib/models/validationError';\nexport * from './lib/models/chat';\n\n/* modules */\nexport { DateTagModule } from './lib/date-tags/date-tag.module';\nexport { ListTagModule } from './lib/list-tags/list-tag.module';\nexport { DrTagModule } from './lib/dr-tags/dr-tag.module';\nexport { DrInputsModule } from './lib/dr-inputs/dr-inputs.module';\nexport { DrTooltipModule } from './lib/dr-tooltip/dr-tooltip.module';\nexport { DrAvatarModule } from './lib/dr-avatar/dr-avatar.module';\nexport { DrSpinnerModule } from './lib/dr-spinner/dr-spinner.module';\nexport { DrPopoverModule } from './lib/dr-popover/dr-popover.module';\nexport { DrDropdownModule } from './lib/dr-dropdown/dr-dropdown.module';\nexport { DrTabsModule } from './lib/dr-tabs/dr-tabs.module';\nexport { DrAccordionModule } from './lib/dr-accordion/accordion.module';\nexport { DrSharedUtils } from './lib/utils/dr-shared-utils';\nexport { DrLayoutModule } from './lib/dr-layout/dr-layout.module';\nexport { DrErrorModule } from './lib/dr-error/dr-error.module';\nexport { DrStepperModule } from './lib/stepper/stepper.module';\nexport { DrDialogModule } from './lib/dr-dialog/dialog.module';\nexport { DrChatModule } from './lib/dr-chat/chat.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {components as ɵa} from './lib/date-tags/date-tag.module';\nexport {DrChatComponent as ɵp} from './lib/dr-chat/chat.component';\nexport {DrChatFormComponent as ɵs} from './lib/dr-chat/dr-chat-form/chat-form.component';\nexport {DrChatMessageComponent as ɵr} from './lib/dr-chat/dr-chat-message/chat-message.component';\nexport {DrChatCustomMessageDirective as ɵw} from './lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\nexport {DrChatCustomMessageService as ɵq} from './lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service';\nexport {DrChatMessageFileComponent as ɵu} from './lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component';\nexport {DrChatMessageRichTextComponent as ɵv} from './lib/dr-chat/dr-chat-message/dr-chat-message-rich-text/chat-message-rich-text.component';\nexport {DrChatMessageTextComponent as ɵt} from './lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component';\nexport {DialogModalWrapperComponent as ɵo} from './lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nexport {DialogWrapperComponent as ɵn} from './lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component';\nexport {DrDatePickerFormatDirective as ɵf} from './lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive';\nexport {DrDatePickerWithTimeframeComponent as ɵe} from './lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nexport {DrDatePickerComponent as ɵc} from './lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component';\nexport {DrDatePickerCustomHeaderComponent as ɵg} from './lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nexport {DrShowTimeframePipe as ɵh} from './lib/dr-inputs/date-pickers/dr-show-timeframe.pipe';\nexport {DrDatePickerService as ɵd} from './lib/dr-inputs/date-pickers/services/dr-date-picker.service';\nexport {TooltipInfoSimpleComponent as ɵj} from './lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component';\nexport {TooltipInfoComponent as ɵi} from './lib/dr-tooltip/components/tooltip-info/tooltip-info.component';\nexport {TooltipNoBodyComponent as ɵk} from './lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component';\nexport {TooltipProcessDefaultComponent as ɵl} from './lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component';\nexport {POPUP_ANIMATION as ɵb} from './lib/models/constants';\nexport {StepperComponent as ɵm} from './lib/stepper/stepper.component';"],"names":["EventEmitter","Component","ViewEncapsulation","Input","Output","moment","FormControl","DateAdapter","MomentDateAdapter","MAT_DATE_LOCALE","MAT_MOMENT_DATE_ADAPTER_OPTIONS","MAT_DATE_FORMATS","momentImported","NG_VALUE_ACCESSOR","ChangeDetectionStrategy","ChangeDetectorRef","Subject","startWith","switchMap","from","takeUntil","merge","isPlatformBrowser","fromEvent","filter","forwardRef","ElementRef","Inject","PLATFORM_ID","DOCUMENT","ContentChildren","noop","Renderer2","HostBinding","ContentChild","Pipe","transition","style","animate","BehaviorSubject","TemplateRef","trigger","HostListener","ComponentPortal","skip","Directive","Overlay","OverlayPositionBuilder","SpinnerType","SpinnerSize","ComponentFactoryResolver","ViewContainerRef","ViewChild","DrPopoverAlignmentDimension","OverlayConfig","Injector","first","Injectable","Host","state","_","catchError","MatDialogRef","MAT_DIALOG_DATA","FormGroup","MatDialog","TooltipPosition","DIALOG_SIZE","DIALOG_BUTTON_LABEL","DIALOG_FIELD_TYPE","debounceTime","distinctUntilChanged","NgModel","DateFromats","DatePickerPeriodPosition","TimeframeOption","CalendarView","CHAT_MESSAGE_TYPE","components","NgModule","CommonModule","MatNativeDateModule","MatDatepickerModule","FormsModule","MatFormFieldModule","ReactiveFormsModule","MatInputModule","MatMomentDateModule","MatSelectModule","MatButtonToggleModule","MatCalendar","NgControl","Optional","NgSelectModule","MatTooltipModule","MatTabsModule","ɵ0","MatDialogModule","DomSanitizer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGA;AAOA,QAAA,gBAAA,kBAAA,YAAA;IAUI,IAAA,SAAA,gBAAA,GAAA;IATS,QAAA,IAAI,CAAA,IAAA,GAAuB,SAAS,CAAC;IACrC,QAAA,IAAU,CAAA,UAAA,GAAU,EAAE,CAAC;IACvB,QAAA,IAAY,CAAA,YAAA,GAAuB,SAAS,CAAC;IAC7C,QAAA,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;IAGxB,QAAA,IAAA,CAAA,YAAY,GAA2B,IAAIA,eAAY,EAAY,CAAC;SAI7E;QAED,gBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,IAAI,EAAA;YAAvB,IAKC,KAAA,GAAA,IAAA,CAAA;IAJG,QAAA,UAAU,CAAC,YAAA;IACP,YAAA,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;IACjC,YAAA,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aAChC,EAAE,GAAG,CAAC,CAAC;SACX,CAAA;;;;IAxBJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAsC,EAAA,ihDAAA;IACtC,gBAAA,QAAQ,EAAE,UAAU;oBAEpB,aAAa,EAAEC,oBAAiB,CAAC,IAAI;;IACxC,aAAA,EAAA,EAAA;;;;uBAEIC,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;uCACLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;+BACLC,SAAM,EAAA,CAAA;;AAkBX,QAAA,eAAA,kBAAA,YAAA;IAMI,IAAA,SAAA,eAAA,GAAA;IALU,QAAA,IAAA,CAAA,UAAU,GAA2B,IAAIJ,eAAY,EAAY,CAAC;IACnE,QAAA,IAAI,CAAA,IAAA,GAAuB,SAAS,CAAC;IACrC,QAAA,IAAY,CAAA,YAAA,GAAuB,SAAS,CAAC;YACtD,IAAA,CAAA,OAAO,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;SAG7B;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;SAC5C,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;SACC,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;SACC,CAAA;QAED,eAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,KAAY,EAAA;IAC3B,QAAA,IAAM,KAAK,GAAuC,KAAK,CAAC,MAAM,CAAC;IAC/D,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACtC,CAAA;QAED,eAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAK,EAAA;;SAErB,CAAA;;;;IAhCJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,EAAE;IACZ,gBAAA,QAAQ,EAAE,SAAS;IACtB,aAAA,EAAA,EAAA;;;;6BAEIG,SAAM,EAAA,CAAA;uBACND,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;;;ICtCV;;;;;;;;;;;;;IAagF;IAChF;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC,EAAA;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,EAAA,EAAI,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;IACtG,IAAA,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEc,SAAA,SAAS,CAAC,CAAC,EAAE,CAAC,EAAA;IAC1B,IAAA,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;IACrC,QAAA,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;IAC9F,IAAA,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IACvC,IAAA,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,YAAA;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAA;IAC3C,QAAA,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IACjD,YAAA,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;IAChF,SAAA;IACD,QAAA,OAAO,CAAC,CAAC;IACb,KAAC,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;IAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;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;IAC1E,gBAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzB,SAAA;IACL,IAAA,OAAO,CAAC,CAAC;IACb,CAAC;IAEK,SAAU,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAA;IACpD,IAAA,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;IAAE,QAAA,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;IAC1H,QAAA,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;IAAE,YAAA,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAAE,gBAAA,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;IAClJ,IAAA,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;IAEe,SAAA,OAAO,CAAC,UAAU,EAAE,SAAS,EAAA;IACzC,IAAA,OAAO,UAAU,MAAM,EAAE,GAAG,EAAA,EAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;IAEe,SAAA,UAAU,CAAC,WAAW,EAAE,aAAa,EAAA;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;IAEK,SAAU,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAA;IACvD,IAAA,SAAS,KAAK,CAAC,KAAK,EAAA,EAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAA,EAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAC5G,IAAA,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAA;IACrD,QAAA,SAAS,SAAS,CAAC,KAAK,EAAA,EAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IAAE,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,SAAA,EAAE;IAC3F,QAAA,SAAS,QAAQ,CAAC,KAAK,EAAA,EAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAAE,SAAA;IAAC,QAAA,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAAE,SAAA,EAAE;IAC9F,QAAA,SAAS,IAAI,CAAC,MAAM,EAAA,EAAI,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;IAC9G,QAAA,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1E,KAAC,CAAC,CAAC;IACP,CAAC;IAEe,SAAA,WAAW,CAAC,OAAO,EAAE,IAAI,EAAA;IACrC,IAAA,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,YAAA,EAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAAE,YAAA,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,YAAA,EAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,OAAO,UAAU,CAAC,EAAI,EAAA,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE,EAAA;IACZ,QAAA,IAAI,CAAC;IAAE,YAAA,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IAC9D,QAAA,OAAO,CAAC;gBAAE,IAAI;IACV,gBAAA,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;IAAE,oBAAA,OAAO,CAAC,CAAC;IAC7J,gBAAA,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;IAAE,oBAAA,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACxC,gBAAA,QAAQ,EAAE,CAAC,CAAC,CAAC;IACT,oBAAA,KAAK,CAAC,CAAC;IAAC,oBAAA,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;IAC9B,oBAAA,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAAC,wBAAA,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxD,oBAAA,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;IAAC,wBAAA,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAAC,wBAAA,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;IACjD,oBAAA,KAAK,CAAC;IAAE,wBAAA,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAAC,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;IACjD,oBAAA;IACI,wBAAA,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;IAAE,yBAAA;IAC5G,wBAAA,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;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;IAAE,yBAAA;IACtF,wBAAA,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;IAAE,yBAAA;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;IAAE,4BAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAAC,4BAAA,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;IAAE,yBAAA;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;IAAE,4BAAA,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACtB,wBAAA,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;IAC9B,iBAAA;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC9B,aAAA;IAAC,YAAA,OAAO,CAAC,EAAE;IAAE,gBAAA,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;IAAE,aAAA;IAAS,oBAAA;IAAE,gBAAA,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAAE,aAAA;IAC1D,QAAA,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAAE,YAAA,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,EAAA;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,YAAA,EAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAA;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;IAEa,SAAA,YAAY,CAAC,CAAC,EAAE,CAAC,EAAA;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;IAAE,QAAA,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAAE,YAAA,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;IAEK,SAAU,QAAQ,CAAC,CAAC,EAAA;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;IAC9E,IAAA,IAAI,CAAC;IAAE,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,IAAA,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;IAC1C,YAAA,IAAI,EAAE,YAAA;IACF,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IACnC,gBAAA,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;IACF,IAAA,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;IAEe,SAAA,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA;IACvB,IAAA,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3D,IAAA,IAAI,CAAC,CAAC;IAAE,QAAA,OAAO,CAAC,CAAC;IACjB,IAAA,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;IAAE,YAAA,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9E,KAAA;IACD,IAAA,OAAO,KAAK,EAAE;IAAE,QAAA,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IAAE,KAAA;IAC/B,YAAA;YACJ,IAAI;IACA,YAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;IAAE,gBAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpD,SAAA;IACO,gBAAA;IAAE,YAAA,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;IAAE,SAAA;IACpC,KAAA;IACD,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ,GAAA;IACpB,IAAA,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IAC9C,QAAA,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc,GAAA;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;IAAE,QAAA,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;IACpB,IAAA,OAAO,CAAC,CAAC;IACb,CAAC;IAEe,SAAA,aAAa,CAAC,EAAE,EAAE,IAAI,EAAA;QAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;YAC7D,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,IAAA,OAAO,EAAE,CAAC;IACd,CAAC;IAEK,SAAU,OAAO,CAAC,CAAC,EAAA;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,EAAA;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IACvF,IAAA,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAC9D,IAAA,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,YAAc,EAAA,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAI,EAAA,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;IAC1I,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAAE,KAAA;IAAC,IAAA,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAAE,KAAA,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,EAAA,EAAI,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;IACxH,IAAA,SAAS,OAAO,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IAClD,IAAA,SAAS,MAAM,CAAC,KAAK,EAAA,EAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IAClD,IAAA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAA,EAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;IAAE,QAAA,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;IAEK,SAAU,gBAAgB,CAAC,CAAC,EAAA;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,IAAA,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,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC5I,IAAA,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAI,EAAA,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;IAEK,SAAU,aAAa,CAAC,CAAC,EAAA;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACnC,IAAA,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,YAAA,EAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,EAAI,EAAA,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAA,EAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAI,EAAA,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;IAChK,IAAA,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,EAAI,EAAA,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;IAEe,SAAA,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAA;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;IAAE,QAAA,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAAE,KAAA;IAAM,SAAA;IAAE,QAAA,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;IAAE,KAAA;IAC/G,IAAA,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAA;IACnD,IAAA,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,EAAA;IACd,IAAA,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;IAEI,SAAU,YAAY,CAAC,GAAG,EAAA;IAC5B,IAAA,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;IAAE,QAAA,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;IAAE,YAAA,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAAE,gBAAA,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACzI,IAAA,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAChC,IAAA,OAAO,MAAM,CAAC;IAClB,CAAC;IAEK,SAAU,eAAe,CAAC,GAAG,EAAA;IAC/B,IAAA,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;IAEK,SAAU,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA;IAC3D,IAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;IAAE,QAAA,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;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;IACnL,IAAA,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;IAEK,SAAU,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAAA;QAClE,IAAI,IAAI,KAAK,GAAG;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;IACxE,IAAA,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;IAAE,QAAA,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;IAAE,QAAA,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;IAClL,IAAA,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;;ICrOA;IACA,IAAME,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAOjC,QAAA,oBAAA,kBAAA,UAAA,MAAA,EAAA;QAA0C,SAAe,CAAA,oBAAA,EAAA,MAAA,CAAA,CAAA;IAqBrD,IAAA,SAAA,oBAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IApBQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;IAChC,QAAA,KAAa,CAAA,aAAA,GAAuB,SAAS,CAAC;YAE9C,KAAA,CAAA,YAAY,GAAU;IAClB,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;IAC3B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;IAC3B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;IAC3B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;IAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;IAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;IAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;IAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;IAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;IAC1B,YAAA,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;IAC1B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;IAC5B,YAAA,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;aAC/B,CAAC;IAiIF,QAAA,KAAA,CAAA,UAAU,GAAG,UAAC,IAAI,EAAA;gBACd,IAAM,YAAY,GAAGA,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,YAAA,KAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,SAAS,EAAA;oBAC7B,IAAM,MAAM,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAEtC,OAAO,MAAM,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,YAAY,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IACxG,aAAC,CAAC,CAAC;IAEH,YAAA,OAAO,MAAM,CAAC;IAClB,SAAC,CAAC;;SAxID;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAChD,SAAA;IACD,QAAA,IAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;IAC/D,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC;IACtD,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;IACvF,QAAA,IAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;IAEnG,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,uBAAuB,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;YAEvF,IAAI,CAAC,OAAO,CAAC,IAAI,GAAGA,QAAM,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAEvE,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;;YAAA,IAYC,KAAA,GAAA,IAAA,CAAA;oCAXc,WAAW,EAAA;IAClB,YAAA,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;IAE5B,YAAA,MAAA,CAAK,UAAU,CAAC,OAAO,CAAC,UAAA,SAAS,EAAA;oBAC7B,IAAM,MAAM,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAEtC,IAAI,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,WAAW,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,KAAI,CAAC,OAAO,CAAC,IAAI,EAAE;IACvF,oBAAA,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;IAC9B,iBAAA;IACL,aAAC,CAAC,CAAC;;;;IATP,YAAA,KAA0B,IAAA,EAAA,GAAA,QAAA,CAAA,IAAI,CAAC,YAAY,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAtC,gBAAA,IAAM,WAAW,GAAA,EAAA,CAAA,KAAA,CAAA;4BAAX,WAAW,CAAA,CAAA;IAUrB,aAAA;;;;;;;;;SACJ,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IAC1B,SAAA;SACJ,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,sBAAsB,GAAtB,UAAuB,OAAO,EAAE,uBAAuB,EAAA;YACnD,IAAM,UAAU,GAAG,EAAE,CAAC;YAEtB,KAAK,IAAI,CAAC,GAAG,uBAAuB,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;IAC/C,YAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,SAAA;YAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAuB,EAAE,CAAC,EAAE,EAAE;IAC9C,YAAA,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,SAAA;IAED,QAAA,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;SACzD,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,UAAsB,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAA;IACpE,QAAA,IAAI,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YAExC,IAAI,CAAC,gBAAgB,EAAE;IACnB,YAAA,IAAI,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,uBAAuB,IAAI,uBAAuB,KAAK,CAAC,EAAE;oBACpF,WAAW,IAAI,CAAC,CAAC;IACpB,aAAA;IACJ,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,uBAAuB,IAAI,uBAAuB,KAAK,CAAC,EAAE;oBACnF,WAAW,IAAI,CAAC,CAAC;IACpB,aAAA;IACJ,SAAA;IAED,QAAA,OAAO,WAAW,CAAC;SACtB,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,yBAAyB,GAAzB,UAA0B,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAA;YACtE,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,QAAA,IAAI,KAAK,EAAE;gBACP,IAAM,OAAO,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;gBAEvC,IAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IACnF,YAAA,IAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;gBAEnG,KAAK,GAAG,CAAC,YAAY,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,GAAG,YAAY,CAAC,GAAG,IAAI,GAAG,WAAW,GAAG,GAAG,CAAC;IACrF,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;SAChB,CAAA;QAED,oBAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,KAA8C,EAAA;YAChE,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B,CAAA;QAED,oBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,KAAY,EAAA;YAC/B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;IACI,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC;IACjC,QAAA,IAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAEpD,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;IAG7C,YAAA,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,YAAA,IAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,CAAC;IAC/D,YAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC;gBACtD,IAAI,uBAAuB,KAAK,CAAC,EAAE;oBAC/B,IAAI,CAAC,gBAAgB,EACjB;IAAC,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,uBAAuB,CAAC,CAAC;IAAC,iBAAA;IAEhE,qBAAA;IAAC,oBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,uBAAuB,CAAC,CAAC;IAAC,iBAAA;IACtE,aAAA;IAED,YAAA,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC;gBACrC,KAAK,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,uBAAuB,EAAE,gBAAgB,CAAC,CAAC;IACnG,SAAA;IAED,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAA,KAAK,EAAE,YAAY;IACnB,YAAA,KAAK,EAAA,KAAA;IACL,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;aACzC,CAAC;IAEF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;;KAlJL,CAA0C,eAAe;;IALxD,IAAA,EAAA,IAAA,EAAAJ,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAA0C,EAAA,isBAAA;IAC1C,gBAAA,QAAQ,EAAE,cAAc;IAC3B,aAAA,EAAA,EAAA;;;;uCAGIE,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;;;ICRV;IACA,IAAME,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAM,aAAa,GAAG;IAClB,IAAA,KAAK,EAAE;IACH,QAAA,SAAS,EAAE,YAAY;IAC1B,KAAA;IACD,IAAA,OAAO,EAAE;IACL,QAAA,SAAS,EAAE,WAAW;IACtB,QAAA,cAAc,EAAE,WAAW;IAC3B,QAAA,aAAa,EAAE,IAAI;IACnB,QAAA,kBAAkB,EAAE,WAAW;IAClC,KAAA;KACJ,CAAC;eAW6C,aAAa,CAAA;AAI5D,QAAA,iBAAA,kBAAA,UAAA,MAAA,EAAA;QAAuC,SAAe,CAAA,iBAAA,EAAA,MAAA,CAAA,CAAA;IAKlD,IAAA,SAAA,iBAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IANQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;YAEhC,KAAA,CAAA,IAAI,GAAG,IAAIC,iBAAW,CAACD,QAAM,EAAE,CAAC,CAAC;IA2CjC,QAAA,KAAA,CAAA,UAAU,GAAG,UAAC,IAAI,EAAA;IACd,YAAA,IAAM,YAAY,GAAGA,QAAM,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,YAAA,KAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,SAAS,EAAA;oBAC7B,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAExC,OAAO,MAAM,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,YAAY,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,YAAY,CAAC,KAAK,EAAE,CAAC,CAAC;IAC5G,aAAC,CAAC,CAAC;IAEH,YAAA,OAAO,MAAM,CAAC;IAClB,SAAC,CAAC;;SAlDD;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAGA,QAAM,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC7E,YAAA,IAAI,CAAC,IAAI,GAAG,IAAIC,iBAAW,CAACD,QAAM,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;IACjE,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,GAAGA,QAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5D,SAAA;SACJ,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAChC,SAAA;SACJ,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAK,EAAA;YAClB,IAAM,UAAU,GAAWA,QAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,QAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IAC3C,YAAA,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC;IACrC,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;aAClC,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC9B,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,UAAmB,eAAuB,EAAE,UAAiC,EAAA;IACzE,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAEpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEvC,UAAU,CAAC,KAAK,EAAE,CAAC;SACtB,CAAA;;KA5CL,CAAuC,eAAe;;IAbrD,IAAA,EAAA,IAAA,EAAAJ,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAuC,EAAA,qnBAAA;IACvC,gBAAA,QAAQ,EAAE,WAAW;IACrB,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEM,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC3B,wBAAA,IAAI,EAAE,CAACC,oBAAe,EAAEC,qDAA+B,CAAC;IAC3D,qBAAA;IACD,oBAAA,EAAE,OAAO,EAAEC,qBAAgB,EAAE,QAAQ,MAAe,EAAE;IACzD,iBAAA;IACJ,aAAA,EAAA,EAAA;;;;6BAGIR,QAAK,EAAA,CAAA;;;IChCV;IACA,IAAME,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAMjC,QAAA,mBAAA,kBAAA,UAAA,MAAA,EAAA;QAAyC,SAAe,CAAA,mBAAA,EAAA,MAAA,CAAA,CAAA;IAKpD,IAAA,SAAA,mBAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IANQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;IAChC,QAAA,KAAa,CAAA,aAAA,GAAG,CAAC,CAAC;IAClB,QAAA,KAAQ,CAAA,QAAA,GAAU,EAAE,CAAC;IAmFrB,QAAA,KAAA,CAAA,UAAU,GAAG,UAAC,IAAI,EAAA;gBACd,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,YAAA,KAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,SAAS,EAAA;oBAC7B,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBACxC,IAAM,WAAW,GAAGA,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE5C,gBAAA,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,WAAW,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,KAAK,EAAE,KAAK,WAAW,CAAC,KAAK,EAAE,EAAE;IACpF,oBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;wBACpB,MAAM,GAAG,KAAK,CAAC;IAClB,iBAAA;IACL,aAAC,CAAC,CAAC;IAEH,YAAA,OAAO,MAAM,CAAC;IAClB,SAAC,CAAC;;SA7FD;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;;YACI,IAAI,CAAC,QAAQ,EAAE,CAAC;IAChB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;;gBAEzC,KAAsB,IAAA,KAAA,QAAA,CAAA,IAAI,CAAC,QAAQ,CAAA,gBAAA,EAAE,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAhC,gBAAA,IAAM,OAAO,GAAA,EAAA,CAAA,KAAA,CAAA;IACd,gBAAA,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;oBAExB,IAAI,OAAO,CAAC,UAAU,EAAE;IACpB,oBAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC;IACnC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACxC,iBAAA;IAED,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,aAAA;;;;;;;;;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACzB,SAAA;SACJ,CAAA;QAED,mBAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,KAAsB,EAAA;IACtC,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACtC,CAAA;QAED,mBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAK,EAAA;YAClB,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;YACpC,IAAM,UAAU,GAAWA,QAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;gBAC3C,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IAClD,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;aAClC,CAAC;IACF,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YACI,IAAM,mBAAmB,GAAG,CAAC,CAAC;YAC9B,IAAM,kBAAkB,GAAG,CAAC,CAAC;IAC7B,QAAA,IAAM,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;YAC3B,IAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAClD,IAAI,YAAY,GAAG,WAAW,CAAC;IAC/B,QAAA,IAAI,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,YAAY,EAAE;IACnB,YAAA,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3C,SAAA;IAED,QAAA,IAAI,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,YAAY,CAAC,GAAG,UAAU,CAAC,GAAG,kBAAkB,CAAC;YACtG,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IAC3C,QAAA,IAAI,CAAC,CAAC;IAAC,QAAA,IAAI,SAAS,CAAC;YACrB,IAAM,SAAS,GAAU,EAAE,CAAC;IAC5B,QAAA,KAAK,CAAC,GAAG,CAAC,GAAG,mBAAmB,EAAE,CAAC,IAAI,YAAY,EAAE,CAAC,EAAE,EAAE;IACtD,YAAA,QAAQ,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;IAClC,YAAA,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrB,YAAA,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/C,YAAA,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAC3C,SAAS,CAAC,IAAI,CAAC;oBACX,KAAK,EAAE,SAAS,GAAG,IAAI;IACvB,gBAAA,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC;IACtC,gBAAA,UAAU,GAAG,CAAC,KAAK,CAAC,CAAC;IACxB,aAAA,CAAC,CAAC;IACN,SAAA;IACD,QAAA,OAAO,SAAS,CAAC;SACpB,CAAA;QAEO,mBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,SAAS,EAAA;IAC7B,QAAA,IAAM,IAAI,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;SACjF,CAAA;QAEO,mBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,IAAI,EAAA;IACxB,QAAA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YAClD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAC9D,CAAA;;KApFL,CAAyC,eAAe;;IAJvD,IAAA,EAAA,IAAA,EAAAJ,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAyC,EAAA,+XAAA;IACzC,gBAAA,QAAQ,EAAE,aAAa;IAC1B,aAAA,EAAA,EAAA;;;;6BAEIE,QAAK,EAAA,CAAA;;;ICNV;IACA,IAAME,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAM,YAAY,GAAG;IACjB,IAAA,KAAK,EAAE;IACH,QAAA,SAAS,EAAE,SAAS;IACvB,KAAA;IACD,IAAA,OAAO,EAAE;IACL,QAAA,SAAS,EAAE,iBAAiB;IAC5B,QAAA,cAAc,EAAE,WAAW;IAC3B,QAAA,aAAa,EAAE,IAAI;IACnB,QAAA,kBAAkB,EAAE,WAAW;IAClC,KAAA;KACJ,CAAC;eAW6C,YAAY,CAAA;AAG3D,QAAA,gBAAA,kBAAA,UAAA,MAAA,EAAA;QAAsC,SAAe,CAAA,gBAAA,EAAA,MAAA,CAAA,CAAA;IAMjD,IAAA,SAAA,gBAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IAPQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;YAEhC,KAAA,CAAA,IAAI,GAAG,IAAIC,iBAAW,CAACD,QAAM,EAAE,CAAC,CAAC;IACjC,QAAA,KAAa,CAAA,aAAA,GAAG,EAAE,CAAC;IAuCnB,QAAA,KAAA,CAAA,UAAU,GAAG,UAAC,IAAI,EAAA;IACd,YAAA,IAAM,YAAY,GAAGA,QAAM,CAAC,IAAI,CAAC,CAAC;gBAClC,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,YAAA,KAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,SAAS,EAAA;oBAC7B,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAExC,OAAO,MAAM,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,YAAY,CAAC,IAAI,EAAE,IAAI,QAAQ,CAAC,IAAI,EAAE,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;IAC1G,aAAC,CAAC,CAAC;IAEH,YAAA,OAAO,MAAM,CAAC;IAClB,SAAC,CAAC;;SA9CD;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,QAAQ,EAAE,CAAC;IAEhB,QAAA,IAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAEzB,QAAA,IAAM,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,IAAI,kBAAkB,GAAG,QAAQ,CAAC;YAClC,IAAM,kBAAkB,GAAG,KAAK,CAAC;YACjC,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,kBAAkB,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,kBAAkB,IAAI,IAAI,CAAC;IACxE,SAAA;IAED,QAAA,IAAM,YAAY,GAAG,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC;YAClD,IAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAC1D,QAAA,IAAM,UAAU,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAC9C,QAAA,IAAM,OAAO,GAAO,UAAW,GAAA,IAAA,GAAM,UAAa,CAAC;IACnD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC;IAC5B,QAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC;IAC7B,QAAA,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;SACvC,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACtB,SAAA;SACJ,CAAA;QAED,gBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,aAAa,EAAA;YAC3B,IAAM,IAAI,GAAGA,QAAM,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1C,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;SAC/B,CAAA;QAeD,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAK,EAAA;IAClB,QAAA,IAAI,IAAI,CAAC;IACT,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAChC,IAAI,KAAK,GAAG,aAAa,EAAE;IACvB,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1B,SAAA;IAAM,aAAA;gBACH,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;IACjC,SAAA;IAED,QAAA,IAAM,UAAU,GAAWA,QAAM,CAAC,IAAI,CAAC,CAAC;IACxC,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IAC3C,YAAA,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;IAC9B,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;aAClC,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;QAEO,gBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,IAAI,EAAA;IACrB,QAAA,OAAO,GAAG,GAAG,IAAI,CAAC,GAAG,CAACA,QAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC5C,GAAG,GAAGA,QAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;SACjC,CAAA;QAEO,gBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,IAAI,EAAA;YACxB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACrF,CAAA;QAEO,gBAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,IAAI,EAAA;YAClB,IAAM,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/B,IAAI,GAAG,KAAK,CAAC,EAAE;IACX,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAClC,SAAA;IACD,QAAA,OAAO,IAAI,CAAC;SACf,CAAA;QAEO,gBAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,IAAU,EAAA;IAClC,QAAA,OAAO,IAAI,CAAC,GAAG,CAACA,QAAM,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;SAC9C,CAAA;IAEO,IAAA,gBAAA,CAAA,SAAA,CAAA,GAAG,GAAH,UAAI,CAAC,EAAE,KAAK,EAAE,CAAO,EAAA;IAAP,QAAA,IAAA,CAAA,KAAA,KAAA,CAAA,EAAA,EAAA,CAAO,GAAA,GAAA,CAAA,EAAA;IACzB,QAAA,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;IACb,QAAA,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IACX,QAAA,OAAO,CAAC,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;SAC9E,CAAA;;KArGL,CAAsC,eAAe;;IAZpD,IAAA,EAAA,IAAA,EAAAJ,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAsC,EAAA,wmBAAA;IACtC,gBAAA,QAAQ,EAAE,UAAU;IACpB,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEM,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC3B,wBAAA,IAAI,EAAE,CAACC,oBAAe,EAAEC,qDAA+B,CAAC;IAC3D,qBAAA;IACD,oBAAA,EAAE,OAAO,EAAEC,qBAAgB,EAAE,QAAQ,MAAc,EAAE;IACxD,iBAAA;IACJ,aAAA,EAAA,EAAA;;;;6BAEIR,QAAK,EAAA,CAAA;;;IC3BV;IACA,IAAME,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAM,YAAY,GAAG;IACjB,IAAA,KAAK,EAAE;IACH,QAAA,SAAS,EAAE,MAAM;IACpB,KAAA;IACD,IAAA,OAAO,EAAE;IACL,QAAA,SAAS,EAAE,MAAM;IACjB,QAAA,cAAc,EAAE,WAAW;IAC3B,QAAA,aAAa,EAAE,IAAI;IACnB,QAAA,kBAAkB,EAAE,WAAW;IAClC,KAAA;KACJ,CAAC;eAW6C,YAAY,CAAA;AAI3D,QAAA,gBAAA,kBAAA,UAAA,MAAA,EAAA;QAAsC,SAAe,CAAA,gBAAA,EAAA,MAAA,CAAA,CAAA;IAKjD,IAAA,SAAA,gBAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IANQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;YAEhC,KAAA,CAAA,IAAI,GAAG,IAAIC,iBAAW,CAACD,QAAM,EAAE,CAAC,CAAC;IAiDjC,QAAA,KAAA,CAAA,UAAU,GAAG,UAAC,IAAI,EAAA;gBACd,IAAM,gBAAgB,GAAGA,QAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7C,IAAI,MAAM,GAAG,IAAI,CAAC;IAElB,YAAA,KAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,SAAS,EAAA;oBAC7B,IAAM,QAAQ,GAAGA,QAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAExC,OAAO,MAAM,GAAG,EAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,gBAAgB,CAAC,CAAC;IAC5D,aAAC,CAAC,CAAC;IAEH,YAAA,OAAO,MAAM,CAAC;IAClB,SAAC,CAAC;;SAxDD;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAGA,QAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACpF,YAAA,IAAI,CAAC,IAAI,GAAG,IAAIC,iBAAW,CAACD,QAAM,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC;IACjE,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,GAAGA,QAAM,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACzD,SAAA;SACJ,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC;IACtB,SAAA;SACJ,CAAA;QAED,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAK,EAAA;IAClB,QAAA,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAM,IAAI,GAAGA,QAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,QAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAChB,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7B,IAAM,UAAU,GAAWA,QAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,QAAA,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpB,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;IAC3C,YAAA,KAAK,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;IAChC,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;aAClC,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,cAAsB,EAAE,UAAiC,EAAA;IACvE,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC;IAEtC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;YACpC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAEvC,UAAU,CAAC,KAAK,EAAE,CAAC;SACtB,CAAA;;KAlDL,CAAsC,eAAe;;IAbpD,IAAA,EAAA,IAAA,EAAAJ,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAsC,EAAA,0qBAAA;IACtC,gBAAA,QAAQ,EAAE,UAAU;IACpB,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEM,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC3B,wBAAA,IAAI,EAAE,CAACC,oBAAe,EAAEC,qDAA+B,CAAC;IAC3D,qBAAA;IACD,oBAAA,EAAE,OAAO,EAAEC,qBAAgB,EAAE,QAAQ,MAAc,EAAE;IACxD,iBAAA;IACJ,aAAA,EAAA,EAAA;;;;6BAGIR,QAAK,EAAA,CAAA;;;AC3BV,QAAA,cAAA,kBAAA,YAAA;IAUI,IAAA,SAAA,cAAA,GAAA;IAJU,QAAA,IAAA,CAAA,SAAS,GAAgC,IAAIH,eAAY,EAAiB,CAAC;YAKjF,IAAI,CAAC,WAAW,GAAG;IACf,YAAA,EAAE,EAAE,CAAC;IACL,YAAA,KAAK,EAAE,SAAS;IAChB,YAAA,IAAI,EAAE,EAAE;aACX,CAAC;SACL;IAED,IAAA,cAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE;gBAClF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC;IAC5D,SAAA;SACJ,CAAA;QAED,cAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,KAAe,EAAA;IACzB,QAAA,IAAM,WAAW,GAAkB;IAC/B,YAAA,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;IACrB,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;gBACzB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;aACvB,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACpC,CAAA;QAED,cAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,KAAe,EAAA;IACzB,QAAA,IAAM,WAAW,GAAkB;IAC/B,YAAA,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;IACrB,YAAA,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI;gBACzB,KAAK,EAAE,KAAK,CAAC,KAAK;aACrB,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACpC,CAAA;;;;IAnDJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAoC,EAAA,0qBAAA;IACpC,gBAAA,QAAQ,EAAE,QAAQ;oBAElB,aAAa,EAAEC,oBAAiB,CAAC,IAAI;;IACxC,aAAA,EAAA,EAAA;;;;4BAGIC,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;uCACLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;4BACLC,SAAM,EAAA,CAAA;;;ICVX,IAAMC,QAAM,GAAGO,yBAAc,CAAC;AAS9B,QAAA,gBAAA,kBAAA,YAAA;IAMI,IAAA,SAAA,gBAAA,GAAA;IAJS,QAAA,IAAY,CAAA,YAAA,GAAG,EAAE,CAAC;IAEjB,QAAA,IAAA,CAAA,SAAS,GAA2B,IAAIZ,eAAY,EAAY,CAAC;SAG1E;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC5C,CAAA;QAED,gBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,KAA8C,EAAA;IAC7D,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SACtC,CAAA;QAED,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAK,EAAA;IAClB,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnB,QAAA,IAAI,KAAK,IAAI,KAAK,KAAK,EAAE,EAAE;IACvB,YAAA,IAAM,SAAS,GAAa;oBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,gBAAA,KAAK,EAAA,KAAA;iBACR,CAAC;IACF,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,SAAA;SACJ,CAAA;;;;IAjCJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAsC,EAAA,uqBAAA;IACtC,gBAAA,QAAQ,EAAE,UAAU;oBAEpB,aAAa,EAAEC,oBAAiB,CAAC,IAAI;;IACxC,aAAA,EAAA,EAAA;;;;yBAGIC,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;4BACLC,SAAM,EAAA,CAAA;;;ICbX;IACA,IAAMC,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEjC,IAAM,WAAW,GAAG;IAChB,IAAA,KAAK,EAAE;IACH,QAAA,SAAS,EAAE,YAAY;IAC1B,KAAA;IACD,IAAA,OAAO,EAAE;IACL,QAAA,SAAS,EAAE,YAAY;IACvB,QAAA,cAAc,EAAE,WAAW;IAC3B,QAAA,aAAa,EAAE,IAAI;IACnB,QAAA,kBAAkB,EAAE,WAAW;IAClC,KAAA;KACJ,CAAC;eAW6C,WAAW,CAAA;AAI1D,QAAA,eAAA,kBAAA,UAAA,MAAA,EAAA;QAAqC,SAAe,CAAA,eAAA,EAAA,MAAA,CAAA,CAAA;IAKhD,IAAA,SAAA,eAAA,GAAA;IAAA,QAAA,IAAA,KAAA,GACI,iBAAO,IACV,IAAA,CAAA;IANQ,QAAA,KAAU,CAAA,UAAA,GAAU,EAAE,CAAC;YAEhC,KAAA,CAAA,IAAI,GAAG,IAAIC,iBAAW,CAACD,QAAM,EAAE,CAAC,CAAC;IAqCjC,QAAA,KAAA,CAAA,UAAU,GAAG,UAAC,IAAI,EAAA;gBACd,IAAM,YAAY,GAAGA,QAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;gBACzC,IAAI,MAAM,GAAG,IAAI,CAAC;gBAElB,KAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,SAAS,IAAI,OAAA,MAAM,GAAG,EAAE,SAAS,KAAK,YAAY,CAAC,CAAtC,EAAsC,CAAC,CAAC;IAE7E,YAAA,OAAO,MAAM,CAAC;IAClB,SAAC,CAAC;;SAxCD;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAM,uBAAuB,GAAGA,QAAM,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACjE,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,GAAGA,QAAM,CAACA,QAAM,EAAE,CAAC,OAAO,EAAE,GAAG,uBAAuB,CAAC,CAAC;YACzE,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,OAAO,CAAC,IAAI,GAAGA,QAAM,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;gBACrE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,SAAA;SACJ,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;IACZ,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACrB,SAAA;SACJ,CAAA;QAED,eAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,KAAK,EAAA;YAClB,IAAM,IAAI,GAAGA,QAAM,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,QAAA,IAAM,SAAS,GAAa;gBACxB,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,YAAA,KAAK,EAAE,IAAI;gBACX,KAAK,EAAEA,QAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;IAC7C,YAAA,MAAM,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;aAClC,CAAC;IACF,QAAA,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpC,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;QAED,eAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,aAAa,EAAA;IAC3B,QAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;SACxC,CAAA;;KAtCL,CAAqC,eAAe;;IAbnD,IAAA,EAAA,IAAA,EAAAJ,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAqC,EAAA,umBAAA;IACrC,gBAAA,QAAQ,EAAE,SAAS;IACnB,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEM,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC3B,wBAAA,IAAI,EAAE,CAACC,oBAAe,EAAEC,qDAA+B,CAAC;IAC3D,qBAAA;IACD,oBAAA,EAAE,OAAO,EAAEC,qBAAgB,EAAE,QAAQ,MAAa,EAAE;IACvD,iBAAA;IACJ,aAAA,EAAA,EAAA;;;;6BAGIR,QAAK,EAAA,CAAA;;;ACnBV,QAAA,oBAAA,kBAAA,YAAA;IA2BI,IAAA,SAAA,oBAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAxBhC,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAIH,eAAY,EAAE,CAAC;IAWtD,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAQ1B,QAAA,IAAA,CAAA,QAAQ,IAAS,UAAA,SAAS,EAAA;IAC1B,SAAC,CAAC,CAAC;YACH,IAAS,CAAA,SAAA,GAAQ,YAAA;IACjB,SAAC,CAAC;SAGD;IAvBD,IAAA,MAAA,CAAA,cAAA,CACI,oBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,SAAS,CAAC;aACzB;IAED,QAAA,GAAA,EAAA,UAAa,QAAiB,EAAA;IAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;aAC7B;;;IAJA,KAAA,CAAA,CAAA;IAUD,IAAA,MAAA,CAAA,cAAA,CAAI,oBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB;;;IAAA,KAAA,CAAA,CAAA;QAUD,oBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAE,EAAA;IACf,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,oBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAE,EAAA;IAChB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,oBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAU,EAAA;IACjB,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;IACxB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,oBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAAK,EAAA;IACd,QAAA,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE;IACtB,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC;IAChC,SAAA;SACJ,CAAA;QAED,oBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,KAAK,EAAA;IACd,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACrC,CAAA;QAED,oBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,IAAY,EAAA;IACjB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,oBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;IACI,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;;;;IA1EJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,iBAAiB;IAC3B,gBAAA,QAA4C,EAAA,2VAAA;IAE5C,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEY,uBAAiB;IAC1B,wBAAA,WAAW,EAAE,oBAAoB;IACjC,wBAAA,KAAK,EAAE,IAAI;IACd,qBAAA;IACJ,iBAAA;oBACD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAfiCC,oBAAiB,EAAA;;;uBAiB9CZ,QAAK,EAAA,CAAA;IACL,IAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,OAAO,EAAA,EAAA,CAAA;8BACbC,SAAM,EAAA,CAAA;2BAEND,QAAK,EAAA,CAAA;;;ACaV,QAAA,mBAAA,kBAAA,YAAA;IAgCI,IAAA,SAAA,mBAAA,CACc,WAAoC,EACf,UAAU,EACb,QAAQ,EAAA;IAF1B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAyB;IACf,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAA;IACb,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAA;IAI9B,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIa,YAAO,EAAQ,CAAC;IAO/B,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAIhB,eAAY,EAAE,CAAC;IACpD,QAAA,IAAA,CAAA,QAAQ,GAAG,UAAC,KAAU,EAAA;IAChC,SAAC,CAAC;YACQ,IAAS,CAAA,SAAA,GAAG,YAAA;IACtB,SAAC,CAAC;SAbD;IAnCD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IADT,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB;IAED,QAAA,GAAA,EAAA,UAAU,KAAU,EAAA;IAChB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACpB,IAAI,CAAC,YAAY,EAAE,CAAC;aACvB;;;IALA,KAAA,CAAA,CAAA;IAOD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAI,CAAA,SAAA,EAAA,MAAA,EAAA;IADR,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,KAAK,CAAC;aACrB;IAED,QAAA,GAAA,EAAA,UAAS,IAAY,EAAA;IACjB,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;;;IALA,KAAA,CAAA,CAAA;IAOD,IAAA,MAAA,CAAA,cAAA,CACI,mBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,SAAS,CAAC;aACzB;IAED,QAAA,GAAA,EAAA,UAAa,QAAiB,EAAA;IAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC;gBAC5B,IAAI,CAAC,cAAc,EAAE,CAAC;aACzB;;;IALA,KAAA,CAAA,CAAA;IA2BD,IAAA,mBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;YAAA,IAiBC,KAAA,GAAA,IAAA,CAAA;;;;;;YAXG,IAAI,CAAC,WAAW,EAAE,CAAC;IAEnB,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CACpBiB,mBAAS,CAAC,IAAI,CAAC,MAAM,CAAC;;;;;IAKtB,QAAAC,mBAAS,CAAC,UAAC,MAAuC,EAAK,EAAA,OAAAC,SAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA,EAAA,CAAC,EACrFC,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC3B,CAAC,SAAS,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,0BAA0B,EAAE,CAAjC,EAAiC,CAAC,CAAC;SACxD,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;QAED,mBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,mBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,mBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAU,EAAA;IACjB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;SACtB,CAAA;QAED,mBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,UAAmB,EAAA;IAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;SAC9B,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,0BAA0B,GAA1B,YAAA;YACN,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,4BAA4B,EAAE,CAAC;YACpC,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAChC,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YAAA,IAIT,KAAA,GAAA,IAAA,CAAA;YAHG,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAC,KAA2B,IAAK,OAAA,KAAK,CAAC,QAAQ,CAAC,KAAI,CAAC,IAAI,CAAC,CAAzB,EAAyB,CAAC,CAAC;IACnF,SAAA;SACJ,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YAAA,IAIT,KAAA,GAAA,IAAA,CAAA;IAHG,QAAA,IAAI,CAAC,2BAA2B,CAAC,UAAC,KAA2B,EAAA;IACzD,YAAA,KAAK,CAAC,UAAU,GAAG,KAAI,CAAC,KAAK,CAAC;IAClC,SAAC,CAAC,CAAC;SACN,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;YAAA,IAIT,KAAA,GAAA,IAAA,CAAA;IAHG,QAAA,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,WAAW,EAAE;IACtC,YAAA,IAAI,CAAC,2BAA2B,CAAC,UAAC,KAA2B,IAAK,OAAA,KAAK,CAAC,QAAQ,GAAG,KAAI,CAAC,QAAQ,CAA9B,EAA8B,CAAC,CAAC;IACrG,SAAA;SACJ,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,4BAA4B,GAA5B,YAAA;YAAA,IAgBT,KAAA,GAAA,IAAA,CAAA;YAfG,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;gBACrC,OAAO;IACV,SAAA;IAED,QAAAC,UAAK,wCAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAC,KAA2B,EAAK,EAAA,OAAA,KAAK,CAAC,WAAW,GAAA,CAAC,IAAE,IAAI,CAC9ED,mBAAS,CACLC,UAAK,CACD,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,IAAI,CAAC,QAAQ,CAChB,CACJ,CACJ,CAAC,SAAS,CAAC,UAAC,KAAU,EAAA;IACnB,YAAA,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IACvB,YAAA,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/B,SAAC,CAAC,CAAC;SACN,CAAA;QAES,mBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,KAAU,EAAA;IAC/B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,QAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;SACxB,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,qBAAqB,GAArB,YAAA;YAAA,IAqBT,KAAA,GAAA,IAAA,CAAA;IApBG,QAAA,IAAM,WAAW,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;YACxD,IAAI,CAACC,wBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,WAAW,EAAE;gBACpD,OAAO;IACV,SAAA;IAED,QAAA,IAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;YACnDC,cAAS,CAAQ,WAAW,EAAE,SAAS,CAAC,CAAC,IAAI,CACzCC,gBAAM,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,CAA1C,EAA0C,CAAC,EAC3DN,mBAAS,CAAC,YAAM,EAAA,OAAAG,UAAK,CACjBE,cAAS,CAAQ,KAAI,CAAC,QAAQ,EAAE,SAAS,CAAC,EAC1CA,cAAS,CAAQ,KAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAC3C,GAAA,CAAC,EACFC,gBAAM,CAAC,UAAA,KAAK,EAAA,EAAI,OAAA,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAc,CAAC,GAAA,CAAC,EAC5DJ,mBAAS,CACLC,UAAK,CACD,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,IAAI,CAAC,QAAQ,CAChB,CACJ,CACJ,CAAC,SAAS,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,SAAS,EAAE,CAAA,EAAA,CAAC,CAAC;SACvC,CAAA;QAES,mBAA2B,CAAA,SAAA,CAAA,2BAAA,GAA3B,UAA4B,QAAwC,EAAA;YAC1E,IAAI,IAAI,CAAC,MAAM,EAAE;IACb,YAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,UAAC,KAAK,EAAA;oBACtB,QAAQ,CAAC,KAAK,CAAC,CAAC;oBAChB,KAAK,CAAC,aAAa,EAAE,CAAC;IAC1B,aAAC,CAAC,CAAC;IACN,SAAA;SACJ,CAAA;IAES,IAAA,mBAAA,CAAA,SAAA,CAAA,4BAA4B,GAA5B,YAAA;IACN,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAC,KAAK,EAAA,EAAK,OAAA,KAAK,CAAC,UAAU,CAAhB,EAAgB,CAAC,CAAC;IACnE,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC;YACvE,IAAI,YAAY,IAAI,cAAc,IAAI,YAAY,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;IACrE,YAAA,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IACnC,SAAA;SACJ,CAAA;;;;IAjMJ,IAAA,EAAA,IAAA,EAAApB,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,gBAAgB;IAC1B,gBAAA,QAAQ,EAAE,gEAC6C;IACvD,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEY,uBAAiB;4BAC1B,WAAW,EAAEY,aAAU,CAAC,YAAA,EAAM,OAAA,mBAAmB,CAAA,EAAA,CAAC;IAClD,wBAAA,KAAK,EAAE,IAAI;IACd,qBAAA;IACJ,iBAAA;oBACD,eAAe,EAAEX,0BAAuB,CAAC,MAAM;IAClD,aAAA,EAAA,EAAA;;;gBA5BGY,aAAU,EAAA;IA+DL,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,SAAM,SAACC,cAAW,EAAA,EAAA,CAAA,EAAA;IAClB,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAD,SAAM,SAACE,eAAQ,EAAA,EAAA,CAAA,EAAA;;;wBAjCnB1B,QAAK,EAAA,CAAA;uBAULA,QAAK,EAAA,CAAA;2BAULA,QAAK,EAAA,CAAA;IAsBL,IAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAA2B,kBAAe,SAAC,oBAAoB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,EAAA,CAAA;8BAE3D1B,SAAM,EAAA,CAAA;;;ACpEX,QAAA,iBAAA,kBAAA,YAAA;IAuBI,IAAA,SAAA,iBAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IArBjC,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IACjB,QAAA,IAAI,CAAA,IAAA,GAAiB,EAAE,CAAC;IAYzB,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;IACrB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIJ,eAAY,EAAE,CAAC;YAE7C,IAAQ,CAAA,QAAA,GAA6B,YAAA;IACrC,SAAC,CAAC;YACF,IAAS,CAAA,SAAA,GAAe,YAAA;IACxB,SAAC,CAAC;SAGD;IAnBD,IAAA,MAAA,CAAA,cAAA,CACI,iBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IADjB,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,cAAc,CAAC;aAC9B;IAED,QAAA,GAAA,EAAA,UAAkB,KAAc,EAAA;IAC5B,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC;IAC9B,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IALA,KAAA,CAAA,CAAA;QAkBD,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAc,EAAA;IACrB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,iBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAkB,UAAmB,EAAA;IACjC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;SAC9B,CAAA;QAED,iBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,KAAK,EAAA;IACV,QAAA,IAAM,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC;IACjD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAClC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;YACzC,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB,CAAA;;;;IA3DJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,aAAa;IACvB,gBAAA,QAAwC,EAAA,qZAAA;IAExC,gBAAA,SAAS,EAAE;wBACP,EAAE,OAAO,EAAEY,uBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE;IAC9E,iBAAA;oBACD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAXiCC,oBAAiB,EAAA;;;gCAa9CZ,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;gCAELA,QAAK,EAAA,CAAA;gCAWLC,SAAM,EAAA,CAAA;;;ACCX,QAAA,gBAAA,kBAAA,YAAA;IAuGI,IAAA,SAAA,gBAAA,CAAoB,UAAsB,EACtB,QAAmB,EACnB,GAAsB,EAAA;IAFtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IACtB,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IACnB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAxG1C,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;IA6BV,QAAA,IAAI,CAAA,IAAA,GAAG,QAAQ,CAAC;IAEhB,QAAA,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;IACjB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IAiBhB,QAAA,IAAA,CAAA,IAAI,GAAG,IAAIJ,eAAY,EAAE,CAAC;IAC1B,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAIA,eAAY,EAAE,CAAC;IAOrD,QAAA,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;IAClB,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;IACjB,QAAA,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;YAC7B,IAAA,CAAA,cAAc,GAAG;IACb,YAAA,IAAI,EAAE,KAAK;IACX,YAAA,WAAW,EAAE,KAAK;IAClB,YAAA,QAAQ,EAAE,KAAK;gBACf,aAAa,EAAE,UAAC,MAAW,EAAE,OAAY,EAAK,EAAA,OAAA,IAAI,CAAA,EAAA;IAClD,YAAA,IAAI,EAAE,MAAM;aACf,CAAC;IAKQ,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIA,eAAY,EAAO,CAAC;IACxC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAIA,eAAY,EAAO,CAAC;IAKzB,QAAA,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC,CAAC;IACvC,QAAA,IAAgB,CAAA,gBAAA,GAAqB+B,SAAI,CAAC;IAC1C,QAAA,IAAiB,CAAA,iBAAA,GAAeA,SAAI,CAAC;YACrC,IAAQ,CAAA,QAAA,GAAyB,YAAA;IACjC,SAAC,CAAC;YACF,IAAS,CAAA,SAAA,GAAe,YAAA;IACxB,SAAC,CAAC;SAsBD;IAvGD,IAAA,MAAA,CAAA,cAAA,CAAa,gBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAArB,QAAA,GAAA,EAAA,UAAsB,KAAK,EAAA;IACvB,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAChC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,gBAAa,CAAA,SAAA,EAAA,eAAA,EAAA;IAA1B,QAAA,GAAA,EAAA,UAA2B,KAAK,EAAA;gBAAhC,IAqBC,KAAA,GAAA,IAAA,CAAA;;IApBG,YAAA,IAAI,KAAK,EAAE;oBACP,IAAI,CAAC,cAAc,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,cAAc,CAAA,EAAK,KAAK,CAAE,CAAC;oBAC3D,IAAI,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAI,MAAI,CAAA,EAAA,GAAA,IAAI,CAAC,cAAc,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,CAAA,EAAE;IAC/D,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,iBAAA;IACJ,aAAA;IACD,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;IACjC,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,OAAO,EAAE,UAAC,KAAK,EAAA;IACjF,oBAAA,KAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;IACpC,oBAAA,KAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,iBAAC,CAAC,CAAC;IACH,gBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,UAAA,KAAK,EAAA;wBACnE,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,KAAI,CAAC,UAAU,CAAC,aAAa,EAAE;IAC3D,wBAAA,IAAI,KAAI,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;IAChF,4BAAA,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC/B,yBAAA;IACJ,qBAAA;IACL,iBAAC,CAAC,CAAC;IACN,aAAA;IACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IAAA,KAAA,CAAA,CAAA;IAOD,IAAA,MAAA,CAAA,cAAA,CAAa,gBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAtB,QAAA,GAAA,EAAA,UAAuB,GAAG,EAAA;IACtB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;gBACxB,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,aAAA;IAAM,iBAAA;IACH,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,KAAK,WAAW,CAApB,EAAoB,CAAC,CAAC;IAChF,aAAA;IACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,MAAA,CAAA,cAAA,CACI,gBAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IADhB,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvC;;;IAAA,KAAA,CAAA,CAAA;QA8BD,gBAAG,CAAA,SAAA,CAAA,GAAA,GAAH,UAAI,GAAW,EAAA;YACX,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACvC,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAW,gBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,UAAU,CAAC;aAC1B;IAED,QAAA,GAAA,EAAA,UAAiB,CAAkB,EAAA;IAC/B,YAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;IACvB,gBAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAClD,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1C,aAAA;IACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IARA,KAAA,CAAA,CAAA;IAgBD,IAAA,gBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACI,IAAI,IAAI,CAAC,SAAS,EAAE;IAChB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACxC,SAAA;YACD,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,SAAA;YACD,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,SAAA;IACD,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;IACxB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC1C,SAAA;SACJ,CAAA;QAED,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;SAC9B,CAAA;QAED,gBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAC/B,CAAA;QAED,gBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAsB,EAAA;IAC7B,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,UAAU,EAAE;IAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;gBACxB,IAAI,CAAC,aAAa,EAAE,CAAC;IACrB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7B,CAAA;QAED,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,UAAmB,EAAA;IAChC,QAAA,IAAI,UAAU,EAAE;IACZ,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,KAAK,UAAU,CAAnB,EAAmB,CAAC,CAAC;IAC/E,SAAA;IACD,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;IAC5B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,gBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,MAAW,EAAA;IACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACnC,CAAA;QAED,gBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,MAAW,EAAA;IACvB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAChC,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,KAAK,CAAC;IACrC,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACI,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;QAED,gBAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,MAAM,EAAA;YACV,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;SACrB,CAAA;;;;IAzLJ,IAAA,EAAA,IAAA,EAAA9B,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,UAAU;IACpB,gBAAA,QAAwC,EAAA,y7BAAA;IAExC,gBAAA,SAAS,EAAE,CAAC;IACR,wBAAA,OAAO,EAAEY,uBAAiB;4BAC1B,WAAW,EAAEY,aAAU,CAAC,YAAA,EAAM,OAAA,gBAAgB,CAAA,EAAA,CAAC;IAC/C,wBAAA,KAAK,EAAE,IAAI;yBACd,CAAC;oBACF,eAAe,EAAEX,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAtBGY,aAAU,EAAA;gBAOVM,YAAS,EAAA;gBAVTjB,oBAAiB,EAAA;;;2BA6BhBZ,QAAK,EAAA,CAAA;gCAILA,QAAK,EAAA,CAAA;uBAuBLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;4BAELA,QAAK,EAAA,CAAA;sBAULA,QAAK,EAAA,CAAA;sBACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;uBACLC,SAAM,EAAA,CAAA;wCACNA,SAAM,EAAA,CAAA;IAEN,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA6B,cAAW,SAAC,OAAO,EAAA,EAAA,CAAA;gCAmBnB7B,SAAM,EAAA,CAAA;gCACNA,SAAM,EAAA,CAAA;IAEN,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA8B,eAAY,SAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAA,EAAA,CAAA;IACxC,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAA,EAAA,CAAA;IAExC,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAD,cAAW,SAAC,UAAU,EAAA,EAAA,CAAA;;;IC/F3B,IAAM,sBAAsB,GAAG;QAC3B,gBAAgB;QAChB,uBAAuB;QACvB,iBAAiB;QACjB,wBAAwB;KAC3B,CAAC;AAYF,QAAA,iBAAA,kBAAA,YAAA;IAsCI,IAAA,SAAA,iBAAA,CAAoB,UAAmC,EAAA;;IAAnC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAyB;IAnC9C,QAAA,IAAK,CAAA,KAAA,GAAe,EAAE,CAAC;IAEvB,QAAA,IAAQ,CAAA,QAAA,GAAG,MAAM,CAAC;IAWlB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IACjB,QAAA,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;IACf,QAAA,IAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;YAE9B,IAAA,CAAA,SAAS,GAAuC,YAAA,EAAM,OAAA,IAAI,CAAA,EAAA,CAAC;IAS1D,QAAA,IAAA,CAAA,MAAM,GAAsB,IAAIjC,eAAY,EAAO,CAAC;IACpD,QAAA,IAAA,CAAA,IAAI,GAAsB,IAAIA,eAAY,EAAO,CAAC;IAM7B,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;YAUlD,IAAQ,CAAA,QAAA,GAA6B,YAAA;IACrC,SAAC,CAAC;YACF,IAAS,CAAA,SAAA,GAAe,YAAA;IACxB,SAAC,CAAC;;IAVE,YAAA,KAAmB,IAAA,wBAAA,GAAA,QAAA,CAAA,sBAAsB,CAAA,8DAAA,EAAE,CAAA,0BAAA,CAAA,IAAA,EAAA,0BAAA,GAAA,wBAAA,CAAA,IAAA,EAAA,EAAA;IAAtC,gBAAA,IAAM,IAAI,GAAA,0BAAA,CAAA,KAAA,CAAA;IACX,gBAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;IAC9B,oBAAA,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/C,iBAAA;IACJ,aAAA;;;;;;;;;SACJ;IArBD,IAAA,MAAA,CAAA,cAAA,CAAa,iBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAArB,QAAA,GAAA,EAAA,UAAsB,GAAY,EAAA;IAC9B,YAAA,IAAI,CAAC,UAAU,GAAG,GAAG,CAAC;aACzB;;;IAAA,KAAA,CAAA,CAAA;QA0BD,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAU,EAAA;IACjB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACpC,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;IAEnB,QAAA,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,EAAE;IACzB,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACpC,SAAA;SACJ,CAAA;QAED,iBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,UAAmB,EAAA;IAChC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;SAC9B,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;IACJ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;SACxC,CAAA;IAEO,IAAA,iBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YAAA,IAEP,KAAA,GAAA,IAAA,CAAA;YAFyB,IAAuB,UAAA,GAAA,EAAA,CAAA;iBAAvB,IAAuB,EAAA,GAAA,CAAA,EAAvB,EAAuB,GAAA,SAAA,CAAA,MAAA,EAAvB,EAAuB,EAAA,EAAA;gBAAvB,UAAuB,CAAA,EAAA,CAAA,GAAA,SAAA,CAAA,EAAA,CAAA,CAAA;;YAC7C,OAAO,UAAU,CAAC,IAAI,CAAC,UAAA,SAAS,EAAA,EAAI,OAAA,KAAI,CAAC,cAAc,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAA7C,EAA6C,CAAC,CAAC;SACtF,CAAA;;;;IAxFJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,WAAW;IACrB,gBAAA,QAAyC,EAAA,2wEAAA;IAEzC,gBAAA,SAAS,EAAE,CAAC;IACR,wBAAA,OAAO,EAAEY,uBAAiB;IAC1B,wBAAA,WAAW,EAAE,iBAAiB;IAC9B,wBAAA,KAAK,EAAE,IAAI;yBACd,CAAC;;IACL,aAAA,EAAA,EAAA;;;gBAzBGa,aAAU,EAAA;;;4BA4BTvB,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;yBACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;wCACLA,QAAK,EAAA,CAAA;qBACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;2BAELA,QAAK,EAAA,CAAA;4BAILA,QAAK,EAAA,CAAA;yBACLA,QAAK,EAAA,CAAA;yBACLC,SAAM,EAAA,CAAA;uBACNA,SAAM,EAAA,CAAA;IAEN,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA8B,eAAY,SAAC,eAAe,EAAA,EAAA,CAAA;IAC5B,IAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,gBAAgB,EAAA,EAAA,CAAA;IAC7B,IAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,sBAAsB,EAAA,EAAA,CAAA;IACnC,IAAA,oBAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,sBAAsB,EAAA,EAAA,CAAA;IACnC,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAD,cAAW,SAAC,gBAAgB,EAAA,EAAA,CAAA;;;ACzDjC,QAAA,iBAAA,kBAAA,YAAA;IAiBI,IAAA,SAAA,iBAAA,GAAA;IALS,QAAA,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;IAChB,QAAA,IAAc,CAAA,cAAA,GAAG,KAAK,CAAC;IACtB,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAIjC,eAAY,EAAO,CAAC;IACnE,QAAA,IAAW,CAAA,WAAA,GAAU,EAAE,CAAC;SAGvB;IAjBD,IAAA,MAAA,CAAA,cAAA,CAAa,iBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAlB,QAAA,GAAA,EAAA,UAAmB,KAAkB,EAAA;IACjC,YAAA,IAAI,KAAK,EAAE;IACP,gBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;oBAC1D,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK,EAAA;IACjC,oBAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;IACnB,wBAAA,IAAI,CAAC,WAAW,GAAG,KAAK,GAAG,CAAC,CAAC;IAChC,qBAAA;IACL,iBAAC,CAAC,CAAC;IACN,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAUD,IAAA,iBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YACI,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACvC,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;IAC7B,YAAA,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjE,SAAA;IACD,QAAA,OAAO,EAAE,CAAC;SACb,CAAA;;;;IAnCJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,WAAW;IACrB,gBAAA,QAAuC,EAAA,+qCAAA;oBAEvC,eAAe,EAAEa,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;;wBAEIX,QAAK,EAAA,CAAA;0BAWLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;8BACLC,SAAM,EAAA,CAAA;;;ACjBX,QAAA,YAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,YAAA,GAAA;;IAEI,IAAA,YAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,IAAS,EAAE,IAAqB,EAAA;IAArB,QAAA,IAAA,IAAA,KAAA,KAAA,CAAA,EAAA,EAAA,IAAqB,GAAA,MAAA,CAAA,EAAA;YACtC,IAAI,IAAI,KAAK,UAAU,EAAE;IACrB,YAAA,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;IAC9C,YAAA,OAAO,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,WAAW,EAAE,CAAC;IAC/G,SAAA;YAED,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC;SACpG,CAAA;;;;IAZJ,IAAA,EAAA,IAAA,EAAA+B,OAAI,EAAC,IAAA,EAAA,CAAA;IACF,gBAAA,IAAI,EAAE,UAAU;IACnB,aAAA,EAAA,EAAA;;;ICFM,IAAM,eAAe,GAAG;IAC3B,IAAA,GAAG,EAAE;IACD,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,UAAU,EAAE;IACR,QAAA,OAAO,EAAE,OAAO;IAChB,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,OAAO;IACjB,QAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,WAAW,EAAE;IACT,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,MAAM,EAAE;IACJ,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;IACD,IAAA,aAAa,EAAE;IACX,QAAA,OAAO,EAAE,OAAO;IAChB,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,OAAO;IACjB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;IACD,IAAA,cAAc,EAAE;IACZ,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;IACD,IAAA,IAAI,EAAE;IACF,QAAA,OAAO,EAAE,OAAO;IAChB,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,UAAU,EAAE;IACR,QAAA,OAAO,EAAE,OAAO;IAChB,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,aAAa,EAAE;IACX,QAAA,OAAO,EAAE,OAAO;IAChB,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,CAAC,CAAC;IACd,KAAA;IACD,IAAA,KAAK,EAAE;IACH,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,OAAO;IACjB,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;IACD,IAAA,WAAW,EAAE;IACT,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,QAAQ,EAAE,OAAO;IACjB,QAAA,QAAQ,EAAE,KAAK;IACf,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;IACD,IAAA,cAAc,EAAE;IACZ,QAAA,OAAO,EAAE,KAAK;IACd,QAAA,OAAO,EAAE,QAAQ;IACjB,QAAA,QAAQ,EAAE,OAAO;IACjB,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,OAAO,EAAE,CAAC;IACb,KAAA;KACJ,CAAC;AAEW,QAAA,eAAe,GAAG;QAC3BC,qBAAU,CAAC,QAAQ,EAAE;IACjB,QAAAC,gBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACrBC,kBAAO,CAAC,GAAG,EAAED,gBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;SACtC,CAAC;QACFD,qBAAU,CAAC,QAAQ,EAAE;YACjBE,kBAAO,CAAC,GAAG,EAAED,gBAAK,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;SACtC,CAAC;;;AC9EN,QAAA,gBAAA,kBAAA,YAAA;IAWI,IAAA,SAAA,gBAAA,GAAA;IAJA,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;YAEnB,IAAA,CAAA,UAAU,GAA6B,IAAIE,oBAAe,CAAU,KAAK,CAAC,CAAC;SAGjF;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,YAAYC,cAAW,CAAC;SAChE,CAAA;IAGD,IAAA,gBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC9B,CAAA;IAGD,IAAA,gBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC/B,CAAA;;;;IAlCJ,IAAA,EAAA,IAAA,EAAAvC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,YAAY;IACtB,gBAAA,QAA0C,EAAA,2eAAA;IAE1C,gBAAA,UAAU,EAAE;IACR,oBAAAwC,kBAAO,CAAC,SAAS,EAAE,eAAe,CAAC;IACtC,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;;0BAGItC,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;IAYL,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAuC,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;IAKzB,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;;;AC9B9B,QAAA,kBAAA,kBAAA,YAAA;IA8CI,IAAA,SAAA,kBAAA,CAAoB,OAAgB,EAChB,sBAA8C,EAC9C,UAAsB,EAAA;IAFtB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;IAChB,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;IAC9C,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IA3C1C,QAAA,IAAc,CAAA,cAAA,GAAG,EAAE,CAAC;IAEpB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IAEjB,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;;IAGF,QAAA,IAAyB,CAAA,yBAAA,GAAG,CAAC,CAAC;SAqCtC;IAnCD,IAAA,MAAA,CAAA,cAAA,CACI,kBAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IADpB,QAAA,GAAA,EAAA,UACqB,OAAY,EAAA;IAC7B,YAAA,IAAI,OAAO,KAAP,IAAA,IAAA,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAE;oBACjB,IAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBAChD,IAAI,QAAQ,CAAC,OAAO,EAAE;wBAClB,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9E,iBAAA;oBACD,IAAI,QAAQ,CAAC,OAAO,EAAE;wBAClB,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9E,iBAAA;IACJ,aAAA;IACD,YAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;aAC1B;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,kBAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IADf,QAAA,GAAA,EAAA,UACgB,KAAc,EAAA;IAC1B,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC3B,YAAA,IAAI,KAAK,EAAE;oBACP,IAAI,CAAC,aAAa,EAAE,CAAC;IACxB,aAAA;IAAM,iBAAA;oBACH,IAAI,CAAC,cAAc,EAAE,CAAC;IACzB,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAeD,IAAA,kBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACI,IAAI,CAAC,IAAI,CAAC,UAAU;IAAE,YAAA,OAAO,IAAI,CAAC;IAElC,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,EAAE;gBAC/B,IAAI,CAAC,IAAI,EAAE,CAAC;IACf,SAAA;;YAED,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC7B,SAAA;YAED,IAAI,IAAI,CAAC,0BAA0B,EAAE;IACjC,YAAA,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC;IACjD,SAAA;SACJ,CAAA;IAGD,IAAA,kBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;IACI,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,UAAU;gBAAE,OAAO;YAEnD,IAAI,CAAC,aAAa,EAAE,CAAC;SACxB,CAAA;IAGD,IAAA,kBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;YAAA,IAoBC,KAAA,GAAA,IAAA,CAAA;;IAnBG,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,UAAU,KAAI,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,0CAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAA;gBAAE,OAAO;;;;YAKvG,IAAI,IAAI,CAAC,yBAAyB,EAAE;gBAEhC,IAAI,IAAI,CAAC,eAAe,EAAE;IACtB,gBAAA,YAAY,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACtC,aAAA;IAED,YAAA,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC,YAAA;;IAC9B,gBAAA,IAAI,KAAI,CAAC,UAAU,IAAI,EAAC,MAAA,KAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAA,EAAE;wBACrE,KAAI,CAAC,cAAc,EAAE,CAAC;IACzB,iBAAA;IACL,aAAC,EAAE,IAAI,CAAC,yBAAyB,CAAC,CAAC;IACtC,SAAA;IAAM,aAAA;gBACH,IAAI,CAAC,cAAc,EAAE,CAAC;IACzB,SAAA;SACJ,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YACJ,IAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE1I,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAA,gBAAA,EAAE,CAAC,CAAC;SAC/D,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YAAA,IAgBP,KAAA,GAAA,IAAA,CAAA;;YAfG,IAAI,CAAC,aAAa,EAAE,CAAC;IACrB,QAAA,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,WAAW,EAAE,CAAA,IAAI,IAAI,CAAC,OAAO,EAAE;IACjD,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAIC,sBAAe,CAAC,gBAAgB,CAAC,CAAC,CAAC;gBAChF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;gBAChD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;gBAC9D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;IAChD,YAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAElE,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAACC,cAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,SAAkB,EAAA;oBAC7G,IAAI,CAAC,SAAS,EAAE;wBACZ,KAAI,CAAC,cAAc,EAAE,CAAC;IACzB,iBAAA;IACL,aAAC,CAAC,CAAC;IACN,SAAA;SACJ,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,cAAc,GAAd,YAAA;YACJ,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC7B,SAAA;IACD,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IACvB,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAEvB,IAAI,IAAI,CAAC,0BAA0B,EAAE;IACjC,YAAA,IAAI,CAAC,0BAA0B,CAAC,WAAW,EAAE,CAAC;IACjD,SAAA;SACJ,CAAA;;;;IAtIJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,aAAa;IAC1B,aAAA,EAAA,EAAA;;;gBATQC,UAAO,EAAA;gBAAEC,yBAAsB,EAAA;gBADNrB,aAAU,EAAA;;;IAavC,IAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAAvB,QAAK,SAAC,WAAW,EAAA,EAAA,CAAA;IAEjB,IAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,kBAAkB,EAAA,EAAA,CAAA;IAExB,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,mBAAmB,EAAA,EAAA,CAAA;IAEzB,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,gBAAgB,EAAA,EAAA,CAAA;4CAItBA,QAAK,EAAA,CAAA;mCAELA,QAAK,EAAA,CAAA;IAcL,IAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,eAAe,EAAA,EAAA,CAAA;IAuCrB,IAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAAuC,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;IAOzB,IAAA,IAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;;;AChE9B,QAAA,iBAAA,kBAAA,YAAA;IAuBI,IAAA,SAAA,iBAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAtB1C,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAClB,QAAA,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;IAenB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI1C,eAAY,EAAE,CAAC;YAe7C,IAAQ,CAAA,QAAA,GAA6B,YAAA;IACrC,SAAC,CAAC;YACF,IAAS,CAAA,SAAA,GAAe,YAAA;IACxB,SAAC,CAAC;SAXD;IAXD,IAAA,MAAA,CAAA,cAAA,CAAa,iBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAArB,QAAA,GAAA,EAAA,UAAsB,KAAc,EAAA;IAChC,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAChC;;;IAAA,KAAA,CAAA,CAAA;IAID,IAAA,MAAA,CAAA,cAAA,CAA0B,iBAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAAtC,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvC;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,iBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACI,IAAI,IAAI,CAAC,gBAAgB,EAAE;IACvB,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACrD,SAAA;SACJ,CAAA;QAOD,iBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAc,EAAA;IACrB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,iBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,iBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAkB,UAAmB,EAAA;IACjC,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;SAC/B,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC;IACzC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC5C,IAAI,CAAC,SAAS,EAAE,CAAC;SACpB,CAAA;;;;IApEJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,WAAW;IACrB,gBAAA,QAAyC,EAAA,knBAAA;IAEzC,gBAAA,SAAS,EAAE;wBACP,EAAE,OAAO,EAAEY,uBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,KAAK,EAAE,IAAI,EAAE;IAC9E,iBAAA;oBACD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAjBGC,oBAAiB,EAAA;;;8BAsBhBZ,QAAK,EAAA,CAAA;mCAELA,QAAK,EAAA,CAAA;8BAELA,QAAK,EAAA,CAAA;gCAELA,QAAK,EAAA,CAAA;2BAGLA,QAAK,EAAA,CAAA;gCAILC,SAAM,EAAA,CAAA;IAEN,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA6B,cAAW,SAAC,OAAO,EAAA,EAAA,CAAA;;;AC1BxB,QAAA,uBAAA,kBAAA,YAAA;IAYI,IAAA,SAAA,uBAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAX1C,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAGT,QAAA,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAC;IAChC,QAAA,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAC;YAUzC,IAAQ,CAAA,QAAA,GAA6B,YAAA;IACrC,SAAC,CAAC;YACF,IAAS,CAAA,SAAA,GAAe,YAAA;IACxB,SAAC,CAAC;SALD;IALD,IAAA,MAAA,CAAA,cAAA,CAAa,uBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAArB,QAAA,GAAA,EAAA,UAAsB,KAAc,EAAA;IAChC,YAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;aAChC;;;IAAA,KAAA,CAAA,CAAA;QAUD,uBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAU,EAAA;IACjB,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC3B,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,uBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IACpB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACtB,CAAA;QAED,uBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IACrB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;SACvB,CAAA;QAED,uBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAkB,UAAmB,EAAA;IACjC,QAAA,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;SAC/B,CAAA;QAED,uBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,IAAI,EAAA;YACT,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IAClD,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,CAAC,SAAS,EAAE,CAAC;IACjB,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;;;;IArDJ,IAAA,EAAA,IAAA,EAAAhC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,kBAAkB;IAC5B,gBAAA,QAAgD,EAAA,wVAAA;IAEhD,gBAAA,SAAS,EAAE;IACP,oBAAA,EAAE,OAAO,EAAEY,uBAAiB,EAAE,WAAW,EAAEY,aAAU,CAAC,YAAA,EAAM,OAAA,uBAAuB,GAAA,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;IACtG,iBAAA;oBACD,eAAe,EAAEX,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAXiCC,oBAAiB,EAAA;;;wBAiB9CZ,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;2BAELA,QAAK,EAAA,CAAA;;;ACbV,QAAA,kBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,kBAAA,GAAA;;IAII,IAAA,MAAA,CAAA,cAAA,CAAW,kBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAIlB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,QAAQ,CAAC;aACxB;IAND,QAAA,GAAA,EAAA,UAAmB,IAAqB,EAAA;gBACpC,IAAI,CAAC,QAAQ,KAAb,IAAI,CAAC,QAAQ,GAAK,IAAI,CAAC,CAAA;aAC1B;;;IAAA,KAAA,CAAA,CAAA;;;;IAZJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,YAAY;IACtB,gBAAA,QAA0C,EAAA,4NAAA;oBAE1C,eAAe,EAAEa,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;ACRWkC,iCAGX;IAHD,CAAA,UAAY,WAAW,EAAA;IACnB,IAAA,WAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACrB,CAAC,EAHWA,mBAAW,KAAXA,mBAAW,GAGtB,EAAA,CAAA,CAAA,CAAA;AAEWC,iCAKX;IALD,CAAA,UAAY,WAAW,EAAA;IACnB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,WAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;IACX,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACnB,CAAC,EALWA,mBAAW,KAAXA,mBAAW,GAKtB,EAAA,CAAA,CAAA;;ACWD,QAAA,kBAAA,kBAAA,YAAA;QAOI,SAAoB,kBAAA,CAAA,wBAAkD,EAClD,gBAAkC,EAClC,EAAc,EACd,GAAc,EACI,SAAc,EAAA;IAJhC,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;IAClD,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;IAClC,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;IACd,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAW;IACI,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;IAP3C,QAAA,IAAA,CAAA,aAAa,GAAgBA,mBAAW,CAAC,MAAM,CAAC;IAChD,QAAA,IAAA,CAAA,aAAa,GAAgBD,mBAAW,CAAC,IAAI,CAAC;SAOtD;QAED,kBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;IAC9B,QAAA,IAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,YAAY,CAAC;YAC5C,IAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;IAC9D,QAAA,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,EAAE;IAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC7B,SAAA;iBAAM,IAAI,IAAI,CAAC,SAAS,EAAE;IACvB,YAAA,IAAI,CAAC,WAAW,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAM,OAAO,CAAA,EAAA,EAAE,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,IAAI,CAAC,aAAa,IAAG,CAAC;IACtG,SAAA;SACJ,CAAA;IAEM,IAAA,kBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACH,IAAI,IAAI,CAAC,aAAa,EAAE;IACpB,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAChC,SAAA;SACJ,CAAA;QAEO,kBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAO,EAAA;YACvB,IAAM,gBAAgB,GAAyC,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,CAAC;YACzI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;IAC7E,QAAA,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACvF,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;SACjD,CAAA;;;;IAvCJ,IAAA,EAAA,IAAA,EAAAH,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,aAAa;IAC1B,aAAA,EAAA,EAAA;;;gBAlBGK,2BAAwB,EAAA;gBAUxBC,mBAAgB,EAAA;gBARhBzB,aAAU,EAAA;gBAKVM,YAAS,EAAA;IAuBI,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAL,SAAM,SAACE,eAAQ,EAAA,EAAA,CAAA,EAAA;;;gCAT3BuB,YAAS,EAAA,IAAA,EAAA,CAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAED,mBAAgB,EAAE,EAAA,EAAA,CAAA;4BACtEhD,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;;;ACfV,QAAA,iBAAA,kBAAA,YAAA;IA0CI,IAAA,SAAA,iBAAA,GAAA;IAxCA,QAAA,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;IACjB,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;IACnB,QAAA,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;IAGpB,QAAA,IAAK,CAAA,KAAA,GAAe,SAAS,CAAC;IAG9B,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;IAqBd,QAAA,IAAA,CAAA,KAAK,GAAG,IAAIH,eAAY,EAAE,CAAC;SAYpC;IA9BD,IAAA,MAAA,CAAA,cAAA,CAAa,iBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAArB,QAAA,GAAA,EAAA,UAAsB,KAAK,EAAA;IACvB,YAAA,IAAI,KAAK,EAAE;IACP,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvC,aAAA;IAAM,iBAAA;IACH,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,KAAK,UAAU,CAAnB,EAAmB,CAAC,CAAC;IAC/E,aAAA;IACD,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;aAC1B;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,iBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAtB,QAAA,GAAA,EAAA,UAAuB,KAAK,EAAA;IACxB,YAAA,IAAI,KAAK,EAAE;IACP,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtC,aAAA;IAAM,iBAAA;IACH,gBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,KAAK,SAAS,CAAlB,EAAkB,CAAC,CAAC;IAC9E,aAAA;IACD,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC;aAC7B;;;IAAA,KAAA,CAAA,CAAA;IAID,IAAA,MAAA,CAAA,cAAA,CACI,iBAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IADhB,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACvC;;;IAAA,KAAA,CAAA,CAAA;QAED,iBAAG,CAAA,SAAA,CAAA,GAAA,GAAH,UAAI,GAAW,EAAA;YACX,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACvC,CAAA;QAKM,iBAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,MAAM,EAAA;YACjB,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC3B,CAAA;;;;IAtDJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,WAAW;IACrB,gBAAA,QAAsC,EAAA,ktBAAA;;IAEzC,aAAA,EAAA,EAAA;;;;wBAOIE,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;uBACLA,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;yBACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;2BAELA,QAAK,EAAA,CAAA;4BASLA,QAAK,EAAA,CAAA;wBASLC,SAAM,EAAA,CAAA;IAEN,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA6B,cAAW,SAAC,OAAO,EAAA,EAAA,CAAA;;IAmBxB;IACA;;;;;;;;;;;;;;;;;IAiBE;;AC5EF,QAAA,YAAA,kBAAA,YAAA;IAaI,IAAA,SAAA,YAAA,CAAoB,UAAsB,EAAA;IAAtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IAThC,QAAA,IAAA,CAAA,QAAQ,GAAiB,IAAIjB,YAAO,EAAE,CAAC;;IAEjD;;IAEG;YACM,IAAA,CAAA,OAAO,GAAQ,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAKjD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;SAC1D;QAED,YAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,GAAS,EAAA;IACX,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC1B,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;QACJ,OAAA,YAAA,CAAA;IAAA,CAAA,EAAA;;ACKWqC,iDAGX;IAHD,CAAA,UAAY,2BAA2B,EAAA;IACnC,IAAA,2BAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,2BAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACrB,CAAC,EAHWA,mCAA2B,KAA3BA,mCAA2B,GAGtC,EAAA,CAAA,CAAA,CAAA;IAEM,IAAM,cAAc,GAAoB;IAC3C,IAAA,WAAW,EAAE,KAAK;IAClB,IAAA,oBAAoB,EAAE,KAAK;IAC3B,IAAA,aAAa,EAAE,iCAAiC;KACnD,CAAC;IAEK,IAAM,aAAa,GAAsC;IAC5D,IAAA,QAAQ,EAAE,QAAQ;IAClB,IAAA,KAAK,EAAE,EAAE;IACT,IAAA,aAAa,EAAE,EAAE;IACjB,IAAA,aAAa,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;KACpC,CAAC;IAEK,IAAM,qBAAqB,GAAG,UAAC,QAAgB,EAAA;IAClD,IAAA,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;YAAE,OAAOA,mCAA2B,CAAC,KAAK,CAAC;QACzE,IAAI,CAAA,QAAQ,KAAR,IAAA,IAAA,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC,MAAM,CAAC,MAAI,QAAQ,KAAA,IAAA,IAAR,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAR,QAAQ,CAAE,QAAQ,CAAC,OAAO,CAAC,CAAA,EAAE;YAC3D,OAAOA,mCAA2B,CAAC,MAAM,CAAC;IAC7C,KAAA;QACD,OAAOA,mCAA2B,CAAC,KAAK,CAAC;IAC7C,CAAC;;AC3BD,QAAA,kBAAA,kBAAA,YAAA;QAsCI,SACY,kBAAA,CAAA,GAAsB,EACtB,wBAAkD,EAClD,gBAAkC,EAClC,UAAsB,EACtB,UAA2B,EAAA;IAJ3B,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IACtB,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;IAClD,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;IAClC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IACtB,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAiB;IAvC9B,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;IAOpB,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;IAMM,QAAA,IAAO,CAAA,OAAA,GAAG,IAAI,CAAC;SA4B9C;QAzBD,kBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,CAAC,EAAA;IACV,QAAA,IAAM,YAAY,GAAG,IAAI,CAAC,OAAO,YAAY3B,aAAU,KAAK,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,CAAC,MAAM,IAAK,IAAI,CAAC,OAAO,CAAC,aAA6B,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IACvK,QAAA,IAAM,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC3E,IAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YACtE,IAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YAC/D,IAAM,2BAA2B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAE/E,QAAA,IAAI,CAAC,YAAY;IACV,eAAA,CAAC,iBAAiB;IAClB,eAAA,CAAC,oBAAoB;IACrB,eAAA,CAAC,gBAAgB;IACjB,eAAA,CAAC,2BAA2B;IAC5B,eAAA,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAChC;IACE,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAWD,IAAA,kBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,OAAO,YAAYc,cAAW,CAAC;IAE7D,QAAA,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBACzB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,IAAI,CAAC,OAAkB,CAAC,CAAC,CAAC;IAC1I,YAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/D,YAAA,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAC7F,SAAA;IACD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,EAAE;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC;IACvD,SAAA;IAED,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC5B,CAAA;;;;IArEJ,IAAA,EAAA,IAAA,EAAAvC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,YAAY;IACtB,gBAAA,QAA0C,EAAA,6OAAA;IAE1C,gBAAA,UAAU,EAAE;IACR,oBAAAwC,kBAAO,CAAC,SAAS,EAAE,eAAe,CAAC;IACtC,iBAAA;oBACD,eAAe,EAAE3B,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBA3BGC,oBAAiB,EAAA;gBAEjBmC,2BAAwB,EAAA;gBAUxBC,mBAAgB,EAAA;gBARhBzB,aAAU,EAAA;gBAYL,YAAY,EAAA;;;0BAchBvB,QAAK,EAAA,CAAA;iCACLA,QAAK,EAAA,CAAA;wBACLA,QAAK,EAAA,CAAA;0BACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;mCAELiD,YAAS,EAAA,IAAA,EAAA,CAAC,kBAAkB,EAAE,EAAE,IAAI,EAAE1B,aAAU,EAAE,MAAM,EAAE,IAAI,EAAE,EAAA,EAAA,CAAA;IAIhE,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAAO,cAAW,SAAC,aAAa,EAAA,EAAA,CAAA;IACzB,IAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,cAAc,EAAA,EAAA,CAAA;IAE1B,IAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,UAAU,EAAA,EAAA,CAAA;IAEtB,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAS,eAAY,EAAC,IAAA,EAAA,CAAA,kBAAkB,EAAE,CAAC,QAAQ,CAAC,EAAA,EAAA,CAAA;;;AC/BhD,QAAA,gBAAA,kBAAA,YAAA;IAEI,IAAA,SAAA,gBAAA,CACY,OAAgB,EAChB,sBAA8C,EAC9C,QAAkB,EAAA;IAFlB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;IAChB,QAAA,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAAwB;IAC9C,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;SAE7B;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,UAAQ,OAA2C,EAAE,YAAsC,EAAA;IACvF,QAAA,IAAI,CAAC,OAAO;gBAAE,OAAO;IAErB,QAAA,IAAM,KAAK,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,aAAa,CAAK,EAAA,YAAY,CAAE,CAAC;YAEpD,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE7C,QAAA,IAAM,UAAU,GAAG,IAAI,YAAY,CAAI,UAAU,CAAC,CAAC;YAEnD,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;YAEpE,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEtD,QAAA,OAAO,UAAU,CAAC;SACrB,CAAA;QAEO,gBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UACJ,OAA2C,EAC3C,EAA8G,EAC9G,UAAsB,EACtB,UAA2B,EAAA;IAFzB,QAAA,IAAA,cAAc,GAAA,EAAA,CAAA,cAAA,EAAE,QAAQ,GAAA,EAAA,CAAA,QAAA,EAAS,YAAY,GAAA,EAAA,CAAA,KAAA,EAAE,aAAa,mBAAA,EAAE,OAAO,GAAA,EAAA,CAAA,OAAA,EAAE,SAAS,GAAA,EAAA,CAAA,SAAA,CAAA;IAIlF,QAAA,IAAM,eAAe,GAAG,IAAIC,sBAAe,CAAwB,kBAAkB,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;YAC9H,IAAM,UAAU,GAAG,UAAU,CAAC,MAAM,CAAwB,eAAe,CAAC,CAAC;IAE7E,QAAA,UAAU,CAAC,YAAY,GAAG,UAAU,CAAC;IAErC,QAAA,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IACtC,QAAA,UAAU,CAAC,QAAQ,CAAC,cAAc,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,cAAc,KAAE,YAAY,EAAE,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAE,CAAC;YAC5G,UAAU,CAAC,QAAQ,CAAC,KAAK,GAAG,YAAY,GAAG,GAAG,GAAG,QAAQ,CAAC;IAC1D,QAAA,UAAU,CAAC,QAAQ,CAAC,aAAa,GAAG,aAAa,CAAC;IAClD,QAAA,UAAU,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;IACtC,QAAA,UAAU,CAAC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IAC1C,QAAA,UAAU,CAAC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAC3C,CAAA;QAEO,gBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,YAAsC,EAAA;YACxD,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;YAC1D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SAC7C,CAAA;QAEO,gBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,YAAsC,EAAA;IAC3D,QAAA,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC;gBAAE,MAAM,IAAI,KAAK,CAAC,kCAAoC,IAAA,YAAY,KAAA,IAAA,IAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,QAAS,CAAa,GAAA,aAAA,CAAC,CAAC;YAEvI,IAAM,MAAM,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,cAAc,CAAK,EAAA,YAAY,CAAC,aAAa,IAAI,EAAE,CAAE,CAAC;YAC1E,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YAE9D,IAAM,gBAAgB,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAEvJ,QAAA,IAAM,aAAa,GAAG,IAAIW,gBAAa,iBACnC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,EAAE,EACpD,gBAAgB,EAAA,gBAAA,EACb,EAAA,MAAM,EACX,CAAC;IAEH,QAAA,IAAI,YAAY,CAAC,SAAS,KAAK,MAAM,IAAI,WAAW,EAAE;gBAClD,IAAM,kBAAkB,GAAG,qBAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;gBACxE,aAAa,CAAC,kBAAkB,CAAC,GAAG,WAAW,CAAC,qBAAqB,EAAE,CAAC,kBAAkB,CAAC,CAAC;IAC/F,SAAA;IAED,QAAA,OAAO,aAAa,CAAC;SACxB,CAAA;QAEO,gBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAkB,UAA2B,EAAA;IACjD,QAAA,IAAM,eAAe,GAAqB;IACtC,YAAA,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE;aAClD,CAAC;IAEF,QAAA,OAAOC,WAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;SACjF,CAAA;IAEO,IAAA,gBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAqB,YAAsC,EAAE,UAAsB,EAAE,UAA2B,EAAA;IACpH,QAAA,IAAM,MAAM,GAAG,YAAY,CAAC,aAAa,IAAI,EAAE,CAAC;IAChD,QAAA,IAAM,aAAa,GAAG,YAAY,CAAC,aAAa,CAAC;YACjD,IAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAE9D,QAAA,IAAI,CAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,oBAAoB,MAAI,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,WAAW,CAAA,EAAE;IACrD,YAAA,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,YAAA,EAAM,OAAA,UAAU,CAAC,KAAK,EAAE,CAAlB,EAAkB,CAAC,CAAC;IAClE,SAAA;IAED,QAAA,IAAI,aAAa,EAAE;gBACf,aAAa,CAAC,gBAAgB,CAAC,SAAS,EAAE,YAAM,EAAA,OAAA,UAAU,CAAC,KAAK,EAAE,CAAlB,EAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;IACvF,SAAA;IAED,QAAA,IAAI,YAAY,CAAC,SAAS,KAAK,MAAM,IAAI,WAAW,EAAE;gBAClD,IAAM,oBAAkB,GAAG,qBAAqB,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACxE,YAAA,IAAM,gBAAc,GAAG,IAAI,cAAc,CAAC,UAAA,OAAO,EAAA;IAC7C,gBAAA,OAAO,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;;IAAI,oBAAA,OAAA,UAAU,CAAC,UAAU,EAAG,EAAA,GAAA,EAAA,EAAA,EAAA,CAAC,oBAAkB,CAAG,GAAA,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC,oBAAkB,CAAC,EAAG,EAAA,EAAA,CAAA;IAAxG,iBAAwG,CAAC,CAAC;IACtI,aAAC,CAAC,CAAC;IACH,YAAA,gBAAc,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;gBACpC,UAAU,CAAC,OAAO,CAAC,IAAI,CAACC,eAAK,EAAE,CAAC,CAAC,SAAS,CAAC,cAAM,OAAA,gBAAc,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA,EAAA,CAAC,CAAC;IAC3F,SAAA;SACJ,CAAA;QAEO,gBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAkB,OAA4C,EAAA;IAClE,QAAA,IAAI,CAAC,OAAO,IAAY,OAAQ,CAAC,CAAC;IAAE,YAAA,OAAO,IAAI,CAAC;YAChD,IAAiB,OAAQ,CAAC,aAAa;gBAAE,OAAoB,OAAQ,CAAC,aAAa,CAAC;IACpF,QAAA,OAAoB,OAAO,CAAC;SAC/B,CAAA;;;;;IA9GJ,IAAA,EAAA,IAAA,EAAAC,aAAU,EAAC,IAAA,EAAA,CAAA;IACR,gBAAA,UAAU,EAAE,MAAM;IACrB,aAAA,EAAA,EAAA;;;gBAZQX,UAAO,EAAA;gBAAiBC,yBAAsB,EAAA;gBADtBQ,WAAQ,EAAA;;;ACiBzC,QAAA,kBAAA,kBAAA,YAAA;QA0BI,SAAoB,kBAAA,CAAA,UAAsB,EACtB,gBAAkC,EAAA;IADlC,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;IACtB,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;IAvB3B,QAAA,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;IAExB,QAAA,IAAQ,CAAA,QAAA,GAAe,QAAQ,CAAC;IAEnC,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;IAEH,QAAA,IAAa,CAAA,aAAA,GAAkB,EAAE,CAAC;YAElC,IAAA,CAAA,aAAa,GAA0B,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;;IAOjE,QAAA,IAAA,CAAA,YAAY,GAAG,IAAIvD,eAAY,EAAO,CAAC;;IAG7B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAIA,eAAY,EAAwB,CAAC;SAO9F;IAGD,IAAA,kBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YACI,IAAI,IAAI,CAAC,QAAQ;gBAAE,OAAO;YAE1B,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,YAAY,EAAE,CAAC;IACvB,SAAA;IAAM,aAAA;gBACH,IAAI,CAAC,aAAa,EAAE,CAAC;IACrB,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7D,SAAA;SACJ,CAAA;QAED,kBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,GAAS,EAAA;YAClB,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;IAC1B,SAAA;SACJ,CAAA;IAEO,IAAA,kBAAA,CAAA,SAAA,CAAA,aAAa,GAAb,YAAA;YAAA,IAgBP,KAAA,GAAA,IAAA,CAAA;IAfG,QAAA,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBAC1E,OAAO,EAAE,IAAI,CAAC,UAAU;gBACxB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,cAAc,EAAE,IAAI,CAAC,cAAc;gBACnC,SAAS,EAAE,IAAI,CAAC,SAAS;IAC5B,SAAA,CAAC,CAAC;IAEH,QAAA,UAAU,CAAC,OAAO,CAAC,IAAI,CAACwD,eAAK,EAAE,CAAC,CAAC,SAAS,CAAC,UAAC,GAAG,EAAA;gBAC3C,KAAI,CAAC,YAAY,EAAE,CAAC;IACpB,YAAA,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5B,YAAA,KAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9D,SAAC,CAAC,CAAC;SACN,CAAA;IAED,IAAA,kBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACI,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAA;;;;IAzEJ,IAAA,EAAA,IAAA,EAAAX,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,aAAa;IAC1B,aAAA,EAAA,EAAA;;;gBAlBGnB,aAAU,EAAA;gBAaL,gBAAgB,EAAA;;;IAQpB,IAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAAvB,QAAK,SAAC,WAAW,EAAA,EAAA,CAAA;IAEjB,IAAA,cAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,kBAAkB,EAAA,EAAA,CAAA;IAExB,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,mBAAmB,EAAA,EAAA,CAAA;IAEzB,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,gBAAgB,EAAA,EAAA,CAAA;IAEtB,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,wBAAwB,EAAA,EAAA,CAAA;IAE9B,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,wBAAwB,EAAA,EAAA,CAAA;IAE9B,IAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,oBAAoB,EAAA,EAAA,CAAA;IAE1B,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,mBAAmB,EAAA,EAAA,CAAA;IAGzB,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,SAAM,SAAC,gBAAgB,EAAA,EAAA,CAAA;IAGvB,IAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,SAAM,SAAC,0BAA0B,EAAA,EAAA,CAAA;IASjC,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAsC,eAAY,SAAC,OAAO,EAAA,EAAA,CAAA;;;AC5CzB,QAAA,iBAAA,kBAAA,YAAA;IAKI,IAAA,SAAA,iBAAA,GAAA;IAHA,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI1B,YAAO,EAA4B,CAAC;SAIpD;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,iBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAAX,QAAA,GAAA,EAAA,UAAY,IAAuC,EAAA;IAC/C,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;aAC1B;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,iBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;YACI,IAAI,IAAI,CAAC,UAAU,EAAE;IACjB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IAC7B,SAAA;SACJ,CAAA;;;;;IAnBJ,IAAA,EAAA,IAAA,EAAAyC,aAAU,EAAC,IAAA,EAAA,CAAA;IACR,gBAAA,UAAU,EAAE,MAAM;IACrB,aAAA,EAAA,EAAA;;;;ACGD,QAAA,mBAAA,kBAAA,YAAA;QAYI,SAAsB,mBAAA,CAAA,WAA8B,EAAU,GAAsB,EAAA;IAA9D,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAmB;IAAU,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAPpF,QAAA,IAAQ,CAAA,QAAA,GAAqC,MAAM,CAAC;IAI7C,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;SAIzB;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,mBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAApB,QAAA,GAAA,EAAA,UAAqB,IAAmC,EAAA;IACpD,YAAA,IAAI,IAAI,EAAE;IACN,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC1B,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC9B,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;IAChD,gBAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC;oBACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAC5B,gBAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA;;wBAClB,IAAI,MAAA,IAAI,CAAC,QAAQ,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,EAAE;4BACvB,IAAI,CAAC,YAAY,GAAG;gCAChB,IAAI,EAAE,IAAI,CAAC,QAAQ;gCACnB,KAAK,EAAE,CAAA,CAAA,EAAA,GAAA,IAAI,KAAJ,IAAA,IAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,YAAY,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,KAAI,EAAE;IACtC,4BAAA,QAAQ,EAAE,OAAO;6BACpB,CAAC;IACL,qBAAA;IACL,iBAAC,CAAC,CAAC;IACH,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC3B,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;SAC1B,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACI,IAAI,IAAI,CAAC,iBAAiB;IAAE,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SAC1D,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YACI,IAAI,IAAI,CAAC,SAAS,EAAE;IAChB,YAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IAC9B,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACzB,SAAA;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;IACI,QAAA,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;SAC9B,CAAA;QAED,mBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,GAAsD,EAAA;IAC3D,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;IACf,YAAA,OAAO,KAAK,CAAC;IAChB,SAAA;IACD,QAAA,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE;gBACnC,OAAO,GAAG,CAAC,QAAQ,CAAC;IACvB,SAAA;IAAM,aAAA;gBACH,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,SAAA;SACJ,CAAA;QAED,mBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,GAA2B,EAAA;IAChC,QAAA,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;IACf,YAAA,OAAO,KAAK,CAAC;IAChB,SAAA;IACD,QAAA,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE;gBACnC,OAAO,GAAG,CAAC,QAAQ,CAAC;IACvB,SAAA;IAAM,aAAA;gBACH,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,SAAA;SACJ,CAAA;QAED,mBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,GAA2B,EAAA;YACrC,IAAI,GAAG,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;IAAE,YAAA,OAAO,EAAE,CAAC;YAC5D,OAAO,GAAG,CAAC,OAAO,CAAC;SACtB,CAAA;QAED,mBAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,cAAuB,EAAA;YACnC,OAAO,cAAc,GAAG,OAAO,GAAG,MAAM,CAAC;SAC5C,CAAA;QAED,mBAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,GAAuB,EAAA;IAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gBACrB,IAAI,GAAG,CAAC,MAAM,EAAE;IACZ,gBAAA,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxB,aAAA;IAAM,iBAAA;oBACH,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,IAAI,SAAS,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACpG,aAAA;gBACD,IAAI,CAAC,IAAI,EAAE,CAAC;IACf,SAAA;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,MAAM,EAAE,UAAoC,EAAE,IAAS,EAAA;YACrE,MAAM,CAAC,eAAe,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;IAC5B,YAAA,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBACxB,IAAI,CAAC,IAAI,EAAE,CAAC;IACf,SAAA;SACJ,CAAA;;;;IA7GJ,IAAA,EAAA,IAAA,EAAAxD,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,aAAa;IACvB,gBAAA,QAA2C,EAAA,mhDAAA;oBAE3C,eAAe,EAAEa,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAPQ,iBAAiB,EAAA;gBAFQC,oBAAiB,EAAA;;;IAY9C,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAqC,YAAS,SAAC,UAAU,EAAA,EAAA,CAAA;IACpB,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,YAAS,SAAC,eAAe,EAAA,EAAA,CAAA;0BAYzBjD,QAAK,EAAA,CAAA;;;ACLV,QAAA,mBAAA,kBAAA,YAAA;QAUI,SAAoB,mBAAA,CAAA,wBAAkD,EAClD,gBAAkC,EAClC,OAA0B,EAC1B,EAAc,EACI,SAAc,EAAA;IAJhC,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;IAClD,QAAA,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;IAClC,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAmB;IAC1B,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;IACI,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAK;IAZ3C,QAAA,IAAQ,CAAA,QAAA,GAAe,MAAM,CAAC;IAMtB,QAAA,IAAiB,CAAA,iBAAA,GAAG,GAAG,CAAC;SAOxC;IAE2B,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACxB,IAAI,CAAC,IAAI,CAAC,iBAAiB;gBAAE,OAAO;YACpC,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAA;IAEsB,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACnB,IAAI,CAAC,YAAY,EAAE,CAAC;SACvB,CAAA;IAE2B,IAAA,mBAAA,CAAA,SAAA,CAAA,2BAA2B,GAA3B,YAAA;YAAA,IAS3B,KAAA,GAAA,IAAA,CAAA;YARG,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBACxB,UAAU,CAAC,UAAA,CAAC,EAAA;IACR,gBAAA,IAAI,KAAI,CAAC,aAAa,IAAI,CAAC,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,UAAU,EAAE;IAC/D,oBAAA,KAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAC7B,oBAAA,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC7B,iBAAA;IACL,aAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9B,SAAA;SACJ,CAAA;QAE6C,mBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,CAAC,EAAA;IACzD,QAAA,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;SACzB,CAAA;IAEO,IAAA,mBAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YACJ,IAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;YAC7D,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAA,IAAI,EAAA,EAAI,OAAA,IAAI,CAAC,MAAM,EAAE,CAAA,EAAA,CAAC,CAAC;YAC9E,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;IACrD,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAC7B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC7B,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACvB,IAAI,CAAC,QAAQ,CAAC;IACV,gBAAA,MAAM,EAAA,MAAA;oBACN,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;oBACzC,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,IAAI,EAAE,IAAI,CAAC,UAAU;oBACrB,KAAK,EAAE,IAAI,CAAC,eAAe;IAC9B,aAAA,CAAC,CAAC;IACN,SAAA;SACJ,CAAA;QAEO,mBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,CAAC,EAAA;IAEnB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACrB,OAAO;IACV,SAAA;IAED,QAAA,IAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,QAAA,IAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;YAC7C,IAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC;IAClE,QAAA,IAAM,qBAAqB,GAAG,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,cAAc,KAAK,WAAW,CAAC;YACrG,IAAM,uBAAuB,GAAG,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAEtE,QAAA,IAAI,CAAC,qBAAqB,IAAI,CAAC,uBAAuB,EAAE;gBACpD,IAAM,OAAK,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC,CAAC;gBAC7D,UAAU,CAAC,cAAM,OAAA,OAAK,CAAC,OAAO,CAAC,UAAA,IAAI,EAAI,EAAA,OAAA,IAAI,CAAC,MAAM,EAAE,CAAA,EAAA,CAAC,GAAA,EAAE,GAAG,CAAC,CAAC;IAC/D,SAAA;SACJ,CAAA;QAEO,mBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,OAAqB,EAAA;YAClC,IAAM,gBAAgB,GAA0C,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,mBAAmB,CAAC,CAAC;YAC3I,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;YAC7E,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;IAC1C,QAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACjG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;SACjD,CAAA;IAEM,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACH,IAAI,IAAI,CAAC,aAAa,EAAE;IACpB,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;IAChC,SAAA;SACJ,CAAA;;;;IA5FJ,IAAA,EAAA,IAAA,EAAA0C,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,cAAc;IAC3B,aAAA,EAAA,EAAA;;;gBAjBGK,2BAAwB,EAAA;gBAQxBC,mBAAgB,EAAA;gBAKX,iBAAiB,EAAA;gBAXtBzB,aAAU,EAAA;IA8BG,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAC,SAAM,SAACE,eAAQ,EAAA,EAAA,CAAA,EAAA;;;2BAZ3B1B,QAAK,EAAA,CAAA;6BACLA,QAAK,EAAA,CAAA;kCACLA,QAAK,EAAA,CAAA;oCACLA,QAAK,EAAA,CAAA;gCACLiD,YAAS,EAAA,IAAA,EAAA,CAAC,mBAAmB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAED,mBAAgB,EAAE,EAAA,EAAA,CAAA;IAWvE,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAT,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;IAKzB,IAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,OAAO,EAAA,EAAA,CAAA;IAIpB,IAAA,2BAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,YAAY,EAAA,EAAA,CAAA;IAWzB,IAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,EAAC,IAAA,EAAA,CAAA,kBAAkB,EAAE,CAAC,QAAQ,CAAC,EAAA,EAAA,CAAA;;;AClDhD,QAAA,2BAAA,kBAAA,YAAA;QAOI,SAAoB,2BAAA,CAAA,EAAc,EAAU,QAAmB,EAAA;IAA3C,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;IAAU,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;IAJtD,QAAA,IAAQ,CAAA,QAAA,GAAqC,MAAM,CAAC;SAK5D;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;SACpD,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,YAAA;YACI,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,IAAI,YAAY,GAAG,EAAE,CAAC;YACtB,IAAI,cAAc,GAAG,CAAC,CAAC;IACvB,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC;IAEvC,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;gBAC3B,YAAY,GAAG,CAAC,CAAC;gBACjB,cAAc,GAAG,EAAE,CAAC;gBACpB,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC;IAChH,YAAA,IAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,qBAAqB,EAAE,CAAC;gBAE7F,IAAI,CAAC,QAAQ,GAAG;IACZ,gBAAA,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW;IACpC,gBAAA,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,SAAS,GAAG,CAAC;IAClE,gBAAA,OAAO,EAAE,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW;oBACrF,OAAO,EAAE,UAAU,CAAC,CAAC;iBACxB,CAAC;IACL,SAAA;IAED,QAAA,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,EAAE;IACnC,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAC/C,IAAI,CAAC,QAAQ,KAAK,QAAQ;IACtB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,IAAI;IACjE,gBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1C,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAChD,IAAI,CAAC,QAAQ,KAAK,OAAO;IACrB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,IAAI;IAChE,gBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;gBAC1C,IAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,CAAC;IACtD,YAAA,IAAM,sBAAsB,GAAG,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC3F,IAAM,mBAAmB,GAAG,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,GAAG,EAAE,CAAC;IAC7G,YAAA,IAAM,oBAAoB,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC;gBAEjF,IAAM,4BAA4B,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;gBACzH,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,4BAA4B,CAAC;IAE/E,YAAA,IAAI,sBAAsB,EAAE;IACxB,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACzB,aAAA;IACD,YAAA,IAAI,sBAAsB,IAAI,oBAAoB,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU,EAAE;IACxG,gBAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;oBAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,WAAW,EACrD,gCAAgC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACnF,aAAA;gBACD,IAAI,mBAAmB,IAAI,sBAAsB,EAAE;IAC/C,gBAAA,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC;IACjC,aAAA;IACD,YAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,aAAa,EAAE;IACjC,gBAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAClB,IAAI,CAAC,EAAE,CAAC,aAAa,EACrB,WAAW,EACX,yBAAA,GAA2B,IAAI,CAAC,kBAAkB,CAAC,KAAM,GAAA,OAAA,IAAS,IAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAE,CAAA,GAAA,KAAK,CAC7G,CAAC;IACL,aAAA;gBACD,IAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,KAAK,KAAK,GAAG,aAAa;sBACnD,IAAI,CAAC,QAAQ,KAAK,UAAU,GAAG,kBAAkB;0BAC7C,IAAI,CAAC,QAAQ,KAAK,QAAQ,GAAG,gBAAgB;8BACzC,IAAI,CAAC,QAAQ,KAAK,aAAa,GAAG,qBAAqB;kCACnD,IAAI,CAAC,QAAQ,KAAK,MAAM,GAAG,cAAc;sCACrC,IAAI,CAAC,QAAQ,KAAK,aAAa,GAAG,qBAAqB;0CACnD,IAAI,CAAC,QAAQ,KAAK,OAAO,GAAG,eAAe;IACzC,0CAAE,IAAI,CAAC,QAAQ,KAAK,cAAc,GAAG,sBAAsB,GAAG,EAAE,CAAC;IAC7F,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;IACzD,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACrE,SAAA;IAAM,aAAA;gBACH,IAAM,mBAAmB,GAAG,CAAC,CAAC;IAC9B,YAAA,IAAM,oBAAoB,GAAG,gBAAgB,KAAK,OAAO;sBACnD,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,cAAc,CAAC;sBAChG,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,cAAc,CAAC;IAErG,YAAA,IAAM,qBAAqB,GAAG,gBAAgB,KAAK,OAAO;sBACpD,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,GAAG,cAAc,CAAC;sBAClG,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,YAAY,GAAG,cAAc,CAAC;gBAEvG,IAAM,gBAAgB,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,GAAG,cAAc,CAAC,CAAC;gBAC1H,IAAI,CAAC,cAAc,GAAG,EAAE,oBAAoB,GAAG,CAAC,CAAC,CAAC;IAElD,YAAA,IAAI,yBAAyB,GAAG,oBAAoB,GAAG,CAAC;sBAClD,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,mBAAmB;sBACvC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,mBAAmB,GAAG,WAAW,CAAC;IAE1D,YAAA,IAAI,gBAAgB,IAAI,CAAC,IAAI,gBAAgB,KAAK,OAAO,EAAE;oBACvD,yBAAyB,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC;IAClE,aAAA;IAED,YAAA,IAAM,WAAW,GAAG,qBAAqB,GAAG,CAAC,GAAG,qBAAqB,GAAG,YAAY,CAAC;gBAErF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,WAAW,IAAI,IAAI,CAAC,CAAC;IAC7F,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,yBAAyB,IAAI,IAAI,CAAC,CAAC;IAC1F,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACrE,SAAA;SACJ,CAAA;;;;IA9GJ,IAAA,EAAA,IAAA,EAAAG,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,sBAAsB;IAChC,gBAAA,QAAQ,EAAE,kBAAkB;IAC/B,aAAA,EAAA,EAAA;;;gBANmBnB,aAAU,EAAA;gBAAiBM,YAAS,EAAA;;;qCASnD7B,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;;;ACJV,QAAA,sBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,sBAAA,GAAA;;QACI,sBAAS,CAAA,SAAA,CAAA,SAAA,GAAT,UAAU,GAAuB,EAAA;IAC7B,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,UAAA,IAAI,EAAI,EAAA,OAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAvC,EAAuC,CAAC,CAAC;SACtE,CAAA;;;;IANJ,IAAA,EAAA,IAAA,EAAAgC,OAAI,EAAC,IAAA,EAAA,CAAA;IACF,gBAAA,IAAI,EAAE,wBAAwB;IACjC,aAAA,EAAA,EAAA;;;ACKD,QAAA,cAAA,kBAAA,YAAA;IAKI,IAAA,SAAA,cAAA,GAAA;SACC;IAED,IAAA,cAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;SACC,CAAA;;;;IAjBJ,IAAA,EAAA,IAAA,EAAAlC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,QAAQ;IAClB,gBAAA,QAAQ,EAAE,8FAIT;IACJ,aAAA,EAAA,EAAA;;;;wBAEIE,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;IACL,IAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAAiD,YAAS,SAACZ,cAAW,EAAA,EAAA,CAAA;;;ACL1B,QAAA,eAAA,kBAAA,YAAA;IASI,IAAA,SAAA,eAAA,GAAA;IAPS,QAAA,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;IAGhB,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;IACrB,QAAA,IAAA,CAAA,iBAAiB,GAAsB,IAAIxC,eAAY,EAAO,CAAC;SAIxE;QAED,eAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,MAAM,EAAA;IACtB,QAAA,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC;IAC1B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvC,CAAA;;;;IApBJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,SAAS;IACnB,gBAAA,QAAuC,EAAA,q5BAAA;;IAE1C,aAAA,EAAA,EAAA;;;;8BAGIE,QAAK,EAAA,CAAA;4BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;gCACLA,QAAK,EAAA,CAAA;oCACLC,SAAM,EAAA,CAAA;IACN,IAAA,eAAA,EAAA,CAAA,EAAA,IAAA,EAAA0B,kBAAe,SAAC,cAAc,EAAA,EAAA,CAAA;;;ACNnC,QAAA,oBAAA,kBAAA,YAAA;IANA,IAAA,SAAA,oBAAA,GAAA;IAQI,QAAA,IAAA,CAAA,cAAc,GAAG,IAAId,YAAO,EAAW,CAAC;IAchC,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;SAiB9B;IA1BG,IAAA,MAAA,CAAA,cAAA,CACI,oBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAJT;;IAEG;IACH,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,UAAU,CAAC;aAC1B;IAED,QAAA,GAAA,EAAA,UAAU,GAAY,EAAA;IAClB,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,GAAG,CAAC;aAC3B;;;IAJA,KAAA,CAAA,CAAA;IAQD;;IAEG;IACH,IAAA,oBAAA,CAAA,SAAA,CAAA,OAAO,GAAP,YAAA;YACI,IAAI,IAAI,CAAC,KAAK,EAAE;IACZ,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnC,SAAA;SACJ,CAAA;IAED;;IAEG;IACH,IAAA,oBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClC,CAAA;;;;IAtCJ,IAAA,EAAA,IAAA,EAAAf,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,cAAc;IACxB,gBAAA,QAAQ,EAAE,sDAAsD;oBAEhE,eAAe,EAAEa,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;IAQI,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAAX,QAAK,SAAC,OAAO,EAAA,EAAA,CAAA;;;ACWlB,QAAA,wBAAA,kBAAA,YAAA;QAkEI,SAA4B,wBAAA,CAAA,SAA+B,EAAU,EAAqB,EAAA;IAA9D,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAsB;IAAU,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;IAZ1F;;;IAGG;IACO,QAAA,IAAA,CAAA,eAAe,GAAG,IAAIH,eAAY,EAAW,CAAC;IAExD,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAIgB,YAAO,EAAW,CAAC;IAEzC,QAAA,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;IACtB,QAAA,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;IACtB,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIA,YAAO,EAAQ,CAAC;SAGtC;IA5DD,IAAA,MAAA,CAAA,cAAA,CAEI,wBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAPb;;;;IAIG;IACH,QAAA,GAAA,EAAA,YAAA;gBAGI,OAAO,IAAI,CAAC,cAAc,CAAC;aAC9B;IAED,QAAA,GAAA,EAAA,UAAc,GAAY,EAAA;IACtB,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,GAAG,CAAC;gBAC5B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gBAC/C,IAAI,CAAC,UAAU,EAAE,CAAC;aACrB;;;IANA,KAAA,CAAA,CAAA;IAaD,IAAA,MAAA,CAAA,cAAA,CAEI,wBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IALZ;;IAEG;IACH,QAAA,GAAA,EAAA,YAAA;IAGI,YAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;aAC1B;IAED,QAAA,GAAA,EAAA,UAAa,GAAY,EAAA;IACrB,YAAA,IAAI,CAAC,cAAc,GAAG,CAAC,GAAG,CAAC;aAC9B;;;IAJA,KAAA,CAAA,CAAA;IAaD,IAAA,MAAA,CAAA,cAAA,CAEI,wBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAPZ;;;;IAIG;IACH,QAAA,GAAA,EAAA,YAAA;gBAGI,OAAO,IAAI,CAAC,aAAa,CAAC;aAC7B;IAED,QAAA,GAAA,EAAA,UAAa,GAAY,EAAA;IACrB,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC;gBAC3B,IAAI,CAAC,UAAU,EAAE,CAAC;aACrB;;;IALA,KAAA,CAAA,CAAA;IAwBD;;IAEG;IACH,IAAA,wBAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;;IAEhB,YAAA,IAAM,OAAO,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;IAEhC,YAAA,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;oBACvB,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,aAAA;IACD,YAAA,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IAC5B,SAAA;SACJ,CAAA;IAED;;IAEG;IACH,IAAA,wBAAA,CAAA,SAAA,CAAA,IAAI,GAAJ,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IAC1B,SAAA;SACJ,CAAA;IAED;;IAEG;IACH,IAAA,wBAAA,CAAA,SAAA,CAAA,KAAK,GAAL,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAChB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACzB,SAAA;SACJ,CAAA;IAED,IAAA,wBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;IALG,QAAA,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAACI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,SAAS,EAAA;IAC5E,YAAA,IAAI,CAAC,KAAI,CAAC,QAAQ,EAAE;IAChB,gBAAA,KAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC9B,aAAA;IACL,SAAC,CAAC,CAAC;SACN,CAAA;QAED,wBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,OAAsB,EAAA;IAC9B,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC3C,CAAA;IAED,IAAA,wBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACzB,QAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE,CAAC;SAC3C,CAAA;IAEO,IAAA,wBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;IACJ,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxC,QAAA,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;SAC1B,CAAA;;;;IApIJ,IAAA,EAAA,IAAA,EAAAnB,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,mBAAmB;IAE7B,gBAAA,QAAQ,EAAE,oJAGT;oBACD,eAAe,EAAEa,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;IAVQ,IAAA,EAAA,IAAA,EAAA,oBAAoB,uBA6EZ4C,OAAI,EAAA,CAAA,EAAA;gBA3FjB3C,oBAAiB,EAAA;;;QAgChB,SAAA,EAAA,CAAA,EAAA,IAAA,EAAAZ,QAAK,EAAC,IAAA,EAAA,CAAA,WAAW,EACjB,EAAA,EAAA,EAAA,IAAA,EAAA8B,cAAW,SAAC,iBAAiB,EAAA,EAAA,CAAA;QAgB7B,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA9B,QAAK,EAAC,IAAA,EAAA,CAAA,UAAU,EAChB,EAAA,EAAA,EAAA,IAAA,EAAA8B,cAAW,SAAC,gBAAgB,EAAA,EAAA,CAAA;QAgB5B,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA9B,QAAK,EAAC,IAAA,EAAA,CAAA,UAAU,EAChB,EAAA,EAAA,EAAA,IAAA,EAAA8B,cAAW,SAAC,gBAAgB,EAAA,EAAA,CAAA;kCAgB5B7B,SAAM,EAAA,CAAA;;;AC5CX,QAAA,8BAAA,kBAAA,YAAA;QAsCI,SAA4B,8BAAA,CAAA,aAAuC,EAAU,EAAqB,EAAA;IAAtE,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAA0B;IAAU,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;IArC1F,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAIY,YAAO,EAAQ,CAAC;SAsCtC;IApCD,IAAA,MAAA,CAAA,cAAA,CACI,8BAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IADf,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;aACvC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAEI,8BAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IAFZ,QAAA,GAAA,EAAA,YAAA;IAGI,YAAA,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;aACxC;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,8BAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,GAAG,GAAG,CAAC;aACnD;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,8BAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;aACtC;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,8BAAA,CAAA,SAAA,CAAA,MAAM,GAAN,YAAA;IACI,QAAA,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;SAC/B,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,8BAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;gBACI,IAAI,IAAI,CAAC,WAAW,EAAE;IAClB,gBAAA,OAAO,WAAW,CAAC;IACtB,aAAA;IACD,YAAA,OAAO,UAAU,CAAC;aACrB;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,8BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAEC,KAAA,GAAA,IAAA,CAAA;IADG,QAAA,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAACI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,YAAA,EAAM,OAAA,KAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAA,EAAA,CAAC,CAAC;SACrH,CAAA;IAED,IAAA,8BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;;;;IA1EJ,IAAA,EAAA,IAAA,EAAAnB,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,0BAA0B;IAEpC,gBAAA,QAAQ,EAAE,qVAQT;IACD,gBAAA,UAAU,EAAE;wBACRwC,kBAAO,CAAC,oBAAoB,EAAE;IAC1B,wBAAAkB,gBAAK,CACD,UAAU,EACVtB,gBAAK,CAAC;IACF,4BAAA,SAAS,EAAE,gBAAgB;IAC9B,yBAAA,CAAC,CACL;IACD,wBAAAD,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,eAAe,CAAC,CAAC;IAC7D,wBAAAF,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,gBAAgB,CAAC,CAAC;yBACjE,CAAC;IACL,iBAAA;oBACD,eAAe,EAAExB,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;IA3BQ,IAAA,EAAA,IAAA,EAAA,wBAAwB,uBAkEhB4C,OAAI,EAAA,CAAA,EAAA;gBA7EjB3C,oBAAiB,EAAA;;;IA0ChB,IAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAAkB,cAAW,SAAC,uCAAuC,EAAA,EAAA,CAAA;QAKnD,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,EAAC,IAAA,EAAA,CAAA,sCAAsC,EAClD,EAAA,EAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,oBAAoB,EAAA,EAAA,CAAA;IAKhC,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,eAAe,EAAA,EAAA,CAAA;IAK3B,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,oBAAoB,EAAA,EAAA,CAAA;yBAKhCS,eAAY,EAAA,IAAA,EAAA,CAAC,OAAO,EACpB,EAAA,EAAA,EAAA,IAAA,EAAAA,eAAY,SAAC,eAAe,EAAA,EAAA,EAAA,EAAA,IAAA,EAC5BA,eAAY,EAAA,IAAA,EAAA,CAAC,eAAe,EAAA,EAAA,CAAA;;;IC7DjC,IAAM,wBAAwB,GAAGD,kBAAO,CAAC,mBAAmB,EAAE;IAC1D,IAAAkB,gBAAK,CACD,WAAW,EACXtB,gBAAK,CAAC;IACF,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,UAAU,EAAE,QAAQ;IACpB,QAAA,MAAM,EAAE,CAAC;IACZ,KAAA,CAAC,CACL;IACD,IAAAsB,gBAAK,CACD,UAAU,EACVtB,gBAAK,CAAC;IACF,QAAA,QAAQ,EAAE,QAAQ;IAClB,QAAA,UAAU,EAAE,SAAS;IACxB,KAAA,CAAC,CACL;IACD,IAAAD,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,eAAe,CAAC,CAAC;IAC7D,IAAAF,qBAAU,CAAC,uBAAuB,EAAEE,kBAAO,CAAC,gBAAgB,CAAC,CAAC;IACjE,CAAA,CAAC,CAAC;AAeH,QAAA,4BAAA,kBAAA,YAAA;QAGI,SAA4B,4BAAA,CAAA,aAAuC,EAAU,EAAqB,EAAA;IAAtE,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAA0B;IAAU,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;IAF1F,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAItB,YAAO,EAAQ,CAAC;SAGtC;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,4BAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAT,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;aAClE;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,4BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAEC,KAAA,GAAA,IAAA,CAAA;IADG,QAAA,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,IAAI,CAACI,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,YAAA,EAAM,OAAA,KAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAA,EAAA,CAAC,CAAC;SACrH,CAAA;IAED,IAAA,4BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;;;;IA9BJ,IAAA,EAAA,IAAA,EAAAnB,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,wBAAwB;IAClC,gBAAA,QAAQ,EAAE,uLAMT;oBAED,UAAU,EAAE,CAAC,wBAAwB,CAAC;oBACtC,eAAe,EAAEa,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;IAlCQ,IAAA,EAAA,IAAA,EAAA,wBAAwB,uBAsChB4C,OAAI,EAAA,CAAA,EAAA;gBA1Ca3C,oBAAiB,EAAA;;;ACOnD,QAAA,iBAAA,kBAAA,YAAA;IACI,IAAA,SAAA,iBAAA,GAAA;SACC;;;;IAPJ,IAAA,EAAA,IAAA,EAAAd,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,WAAW;IAErB,gBAAA,QAAyC,EAAA,qUAAA;;IAC5C,aAAA,EAAA,EAAA;;;;ACID,QAAA,uBAAA,kBAAA,YAAA;IACI,IAAA,SAAA,uBAAA,GAAA;SACC;;;;IAVJ,IAAA,EAAA,IAAA,EAAAA,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,kBAAkB;IAC5B,gBAAA,QAAQ,EAAE,8EAIT;IACJ,aAAA,EAAA,EAAA;;;;ACHD,QAAA,qBAAA,kBAAA,YAAA;IACI,IAAA,SAAA,qBAAA,GAAA;SACC;;;;IANJ,IAAA,EAAA,IAAA,EAAAA,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,gBAAgB;IAC1B,gBAAA,QAAQ,EAAE,2BAA2B;IACxC,aAAA,EAAA,EAAA;;;;ACOD,QAAA,gBAAA,kBAAA,YAAA;IAEI,IAAA,SAAA,gBAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAGlC,QAAA,IAAA,CAAA,UAAU,GAAG,IAAIe,YAAO,EAAQ,CAAC;IAYhC,QAAA,IAAK,CAAA,KAAA,GAAG,aAAa,CAAC;SAd9B;IAID,IAAA,MAAA,CAAA,cAAA,CAAa,gBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAApB,QAAA,GAAA,EAAA,UAAqB,KAAkB,EAAA;gBAAvC,IAQC,KAAA,GAAA,IAAA,CAAA;IAPG,YAAA,IAAI,KAAK,EAAE;IACP,gBAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACtB,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IACxB,gBAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAACI,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,YAAA;IAClE,oBAAA,KAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,iBAAC,CAAC,CAAC;IACN,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,MAAA,CAAA,cAAA,CAAI,gBAAW,CAAA,SAAA,EAAA,aAAA,EAAA;IAAf,QAAA,GAAA,EAAA,YAAA;;gBACI,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;IACpC,gBAAA,OAAO,oBAAoB,CAAC;IAC/B,aAAA;IAED,YAAA,OAAO,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,KAAI,IAAI,CAAC;aACpD;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,gBAAS,CAAA,SAAA,EAAA,WAAA,EAAA;IAAb,QAAA,GAAA,EAAA,YAAA;;gBACI,OAAO,CAAA,EAAA,GAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC;aAC1C;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,gBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;SAC9B,CAAA;;;;IA1CJ,IAAA,EAAA,IAAA,EAAAnB,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAsC,EAAA,6PAAA;IACtC,gBAAA,QAAQ,EAAE,UAAU;oBAEpB,eAAe,EAAEa,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAViCC,oBAAiB,EAAA;;;0BAmB9CZ,QAAK,EAAA,CAAA;wBAULA,QAAK,EAAA,CAAA;;;ACLV,QAAA,sBAAA,kBAAA,YAAA;QAUI,SAAmB,sBAAA,CAAA,SAA+C,EAC9C,aAA4B,EAC5B,GAAsB,EACtB,wBAAkD,EAC1B,UAAoB,EAAA;;IAJ7C,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAsC;IAC9C,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;IAC5B,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IACtB,QAAA,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;IAC1B,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAU;YAV1C,IAAA,CAAA,KAAK,GAAc,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,gBAAgB,IAAG,IAAI,GAAG,CAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,KAAI,cAAc,CAAC;YAG/I,IAAA,CAAA,OAAO,GAAG,IAAIoC,oBAAe,CAAC,KAAK,CAAC,CAAC;IACrC,QAAA,IAAA,CAAA,QAAQ,GAAiB,IAAIvB,YAAO,EAAE,CAAC;SAOtC;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IACxB,YAAA,OAAO,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACnD,SAAA;IACD,QAAA,IAAM,gBAAgB,GAA0B,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC7H,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CAAC;IAC9E,QAAA,IAAI,CAAC,cAAc,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9D,QAAA,IAAI,CAAC,cAAc,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;IAGpE,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;IAC3B,YAAA4C,YAAC,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC5D,SAAA;;;;;IAKD,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;SAC5B,CAAA;QAED,sBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,IAAU,EAAA;YAClB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,CAAC;SACvC,CAAA;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,YAAA;IACI,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;SACnC,CAAA;QAED,sBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,IAAU,EAAA;YAAzB,IAsBC,KAAA,GAAA,IAAA,CAAA;IArBG,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBACtB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;gBACnC,OAAO;IACV,SAAA;YACD,IAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC;IACxD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;IAAE,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnE,IAAM,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC;IAC1D,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;IAE5F,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE;IAC3B,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,YAAA,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,IAAI,CAACxC,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAEyC,oBAAU,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAI,CAAC,OAAO,CAAC,CAAhD,EAAgD,CAAC,CAAC,CAAC,SAAS,CAAC,YAAA;IACxI,gBAAA,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBACzB,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;IACvC,aAAC,CAAC,CAAC;IACN,SAAA;YAED,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE;gBACvD,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;gBACnC,OAAO;IACV,SAAA;SACJ,CAAA;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;;;;IA7EJ,IAAA,EAAA,IAAA,EAAA5D,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,mBAAmB;IAC7B,gBAAA,QAA8C,EAAA,6jFAAA;;IAEjD,aAAA,EAAA,EAAA;;;gBAXyB6D,iBAAY,EAAA;gBAK7B,aAAa,EAAA;gBAflB/C,oBAAiB,EAAA;gBAGjBmC,2BAAwB,EAAA;IAiCX,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAvB,SAAM,SAACoC,oBAAe,EAAA,EAAA,CAAA,EAAA;;;IAZlC,IAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAAX,YAAS,SAAC,SAAS,EAAE,EAAE,IAAI,EAAED,mBAAgB,EAAE,EAAA,EAAA,CAAA;IAE/C,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAAlB,cAAW,SAAC,OAAO,EAAA,EAAA,CAAA;;;ACdxB,QAAA,2BAAA,kBAAA,YAAA;IAQI,IAAA,SAAA,2BAAA,CACW,SAAoD,EACnD,aAA4B,EACJ,UAAoB,EAAA;;IAF7C,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAA2C;IACnD,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;IACJ,QAAA,IAAU,CAAA,UAAA,GAAV,UAAU,CAAU;IAVlC,QAAA,IAAA,CAAA,KAAK,GAAG,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,SAAS,CAAC;YAEjE,IAAA,CAAA,OAAO,GAAG,IAAIM,oBAAe,CAAC,KAAK,CAAC,CAAC;IACrC,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAClB,QAAA,IAAsB,CAAA,sBAAA,GAAG,KAAK,CAAC;IAC/B,QAAA,IAAA,CAAA,QAAQ,GAAiB,IAAIvB,YAAO,EAAE,CAAC;SAOtC;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;IACxB,YAAA,IAAI,CAAC,IAAI,GAAG,IAAIgD,eAAS,CACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,UAAC,WAAW,EAAE,YAAY,EAAA;oBACpD,IAAM,kBAAkB,GAAG,EAAE,CAAC;oBAC9B,kBAAkB,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI1D,iBAAW,CAAC,YAAY,CAAC,OAAO,IAAI,IAAI,EAAE,YAAY,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;oBACrH,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;IAC1D,aAAC,EAAE,EAAE,CAAC,CACT,CAAC;IACL,SAAA;SACJ,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAgBC,KAAA,GAAA,IAAA,CAAA;IAfG,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS;IAAE,YAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;IAErF,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACtB,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAC3Cc,mBAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,EACxByC,oBAAU,CAAC,UAAC,GAAG,EAAA;IACX,YAAA,KAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC;IACnC,YAAA,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC;IACvB,YAAA,OAAO,KAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAI,CAAC,OAAO,CAAC,CAAC;IAC1D,SAAC,CAAC,CACL,CAAC,SAAS,CAAC,YAAA;IACR,YAAA,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,YAAA,KAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;IAClD,SAAC,CAAC,CAAC;SACN,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC9D,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC/B,CAAA;IAED,IAAA,2BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC5B,CAAA;;;;IA9DJ,IAAA,EAAA,IAAA,EAAA5D,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,yBAAyB;IACnC,gBAAA,QAAoD,EAAA,qjHAAA;;IAGvD,aAAA,EAAA,EAAA;;;gBAXyB6D,iBAAY,EAAA;gBAI7B,aAAa,EAAA;IAmBb,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAnC,SAAM,SAACoC,oBAAe,EAAA,EAAA,CAAA,EAAA;;;IAV1B,IAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA9B,cAAW,SAAC,OAAO,EAAA,EAAA,CAAA;;;ICPxB,IAAM,uBAAuB,GAAG,gBAAgB,CAAC;IAEjD,IAAM,qBAAqB,GAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;AAKxE,QAAA,aAAA,kBAAA,YAAA;IAII,IAAA,SAAA,aAAA,CACY,MAAiB,EAAA;IAAjB,QAAA,IAAM,CAAA,MAAA,GAAN,MAAM,CAAW;SAE5B;IAED;;IAEG;IACH,IAAA,aAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UACI,kBAAoC,EACpC,UAAyB,EACzB,oBAAuC,EAAA;IAEvC,QAAA,IAAI,CAAC,oBAAoB;gBAAE,oBAAoB,GAAI,sBAA8B,CAAC;IAElF,QAAA,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,kBAAkB,CAAC;IAE3C,QAAA,IAAI,UAAU,CAAC,UAAU,YAAY,KAAK,EAAE;IACxC,YAAA,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACvD,SAAA;IAAM,aAAA;IACH,YAAA,UAAU,CAAC,UAAU,GAAG,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,EAAE,uBAAuB,CAAC,CAAC;IAClF,SAAA;YAED,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAU,oBAAoB,EAAE,UAAU,CAAC,CAAC;YACnF,OAAO,IAAI,CAAC,gBAAgB,CAAC;SAChC,CAAA;IAED;;IAEG;QACH,aAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAA2B,iBAAoC,EAAA;YAC3D,IAAM,UAAU,GAAe,EAAE,UAAU,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACnF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACvD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK;IAAE,YAAA,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC;YAC1E,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,IAAI,CAAC;YAC5C,OAAO,IAAI,CAAC,UAAU,CAA+C,sBAAsB,EAAE,UAAU,CAAC,CAAC;SAC5G,CAAA;IAED;;IAEG;QACH,aAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAgC,iBAAoC,EAAA;YAChE,IAAM,UAAU,GAAe,EAAE,UAAU,EAAE,uBAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACnF,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACvD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK;IAAE,YAAA,UAAU,CAAC,IAAI,CAAC,KAAK,GAAG,qBAAqB,CAAC;YAC1E,OAAO,IAAI,CAAC,UAAU,CAAoD,2BAA2B,EAAE,UAAU,CAAC,CAAC;SACtH,CAAA;QAED,aAAK,CAAA,SAAA,CAAA,KAAA,GAAL,UAAM,MAAY,EAAA;IACd,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;SACvC,CAAA;QAED,aAAqB,CAAA,SAAA,CAAA,qBAAA,GAArB,UAAsB,KAAa,EAAA;YAC/B,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;SACzD,CAAA;IAEO,IAAA,aAAA,CAAA,SAAA,CAAA,UAAU,GAAV,UAAmD,aAAyC,EAAE,UAAyB,EAAA;YAC3H,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAuC,aAAa,EAAE,UAAU,CAAC,CAAC;SAC5F,CAAA;IAED,IAAA,aAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,GAAU,EAAE,IAA0C,EAAA;IAC3D,QAAA,IAAI,IAAI,EAAE;IACN,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,SAAA;IACD,QAAA,MAAM,GAAG,CAAC;SACb,CAAA;;;;;IAxEJ,IAAA,EAAA,IAAA,EAAAwB,aAAU,EAAC,IAAA,EAAA,CAAA;IACR,gBAAA,UAAU,EAAE,MAAM;IACrB,aAAA,EAAA,EAAA;;;gBAZQQ,cAAS,EAAA;;;ACFNC,qCAaX;IAbD,CAAA,UAAY,eAAe,EAAA;IACvB,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;IACX,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IACvB,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC3B,IAAA,eAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IACvB,IAAA,eAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;IAC7B,IAAA,eAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;IACrB,IAAA,eAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;IAC/B,CAAC,EAbWA,uBAAe,KAAfA,uBAAe,GAa1B,EAAA,CAAA,CAAA;;ACkGWC,iCAOX;IAPD,CAAA,UAAY,WAAW,EAAA;IACnB,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,aAAqB,CAAA;IACrB,IAAA,WAAA,CAAA,QAAA,CAAA,GAAA,cAAuB,CAAA;IACvB,IAAA,WAAA,CAAA,cAAA,CAAA,GAAA,oBAAmC,CAAA;IACnC,IAAA,WAAA,CAAA,OAAA,CAAA,GAAA,aAAqB,CAAA;IACrB,IAAA,WAAA,CAAA,SAAA,CAAA,GAAA,UAAoB,CAAA;IACpB,IAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,iBAAkC,CAAA;IACtC,CAAC,EAPWA,mBAAW,KAAXA,mBAAW,GAOtB,EAAA,CAAA,CAAA,CAAA;AAEWC,yCAIX;IAJD,CAAA,UAAY,mBAAmB,EAAA;IAC3B,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,mBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACnB,CAAC,EAJWA,2BAAmB,KAAnBA,2BAAmB,GAI9B,EAAA,CAAA,CAAA,CAAA;AAEWC,uCAGX;IAHD,CAAA,UAAY,iBAAiB,EAAA;IACzB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACrB,CAAC,EAHWA,yBAAiB,KAAjBA,yBAAiB,GAG5B,EAAA,CAAA,CAAA;;ACzHD,QAAA,8BAAA,kBAAA,YAAA;IAMI,IAAA,SAAA,8BAAA,CAAoB,OAAgB,EAAA;IAAhB,QAAA,IAAO,CAAA,OAAA,GAAP,OAAO,CAAS;IAH3B,QAAA,IAAQ,CAAA,QAAA,GAAG,GAAG,CAAC;IACd,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAIrE,eAAY,EAAO,CAAC;SAGzD;IAED,IAAA,8BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;YALG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CACtD4C,cAAI,CAAC,CAAC,CAAC,EACP0B,sBAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAC3BC,8BAAoB,EAAE,CACzB,CAAC,SAAS,CAAC,UAAA,KAAK,EAAI,EAAA,OAAA,KAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,EAAA,CAAC,CAAC;SAChE,CAAA;IAED,IAAA,8BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SACnC,CAAA;;;;IAtBJ,IAAA,EAAA,IAAA,EAAA1B,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,yBAAyB;IACtC,aAAA,EAAA,EAAA;;;gBAJQ2B,aAAO,EAAA;;;2BAQXrE,QAAK,EAAA,CAAA;wCACLC,SAAM,EAAA,CAAA;;;ACZCqE,iCAOX;IAPD,CAAA,UAAY,WAAW,EAAA;IACnB,IAAA,WAAA,CAAA,yBAAA,CAAA,GAAA,YAAsC,CAAA;IACtC,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,YAAgC,CAAA;IAChC,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,MAAoB,CAAA;IACpB,IAAA,WAAA,CAAA,mBAAA,CAAA,GAAA,SAA6B,CAAA;IAC7B,IAAA,WAAA,CAAA,gBAAA,CAAA,GAAA,QAAyB,CAAA;IACzB,IAAA,WAAA,CAAA,aAAA,CAAA,GAAA,QAAsB,CAAA;IAC1B,CAAC,EAPWA,mBAAW,KAAXA,mBAAW,GAOtB,EAAA,CAAA,CAAA,CAAA;AAeD,QAAA,gBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,gBAAA,GAAA;YACY,IAAA,CAAA,MAAM,GAAc;gBACxB,SAAS,EAAEA,mBAAW,CAAC,iBAAiB;aAC3C,CAAC;YACM,IAAA,CAAA,QAAQ,GAAgB;gBAC5B,SAAS,EAAEA,mBAAW,CAAC,iBAAiB;IACxC,YAAA,cAAc,EAAE,UAAU;IAC1B,YAAA,aAAa,EAAE,IAAI;IACnB,YAAA,kBAAkB,EAAE,UAAU;IAC9B,YAAA,gBAAgB,EAAE,QAAQ;IAC1B,YAAA,SAAS,EAAE,MAAM;aACpB,CAAC;SAyBL;IAvBG,IAAA,MAAA,CAAA,cAAA,CAAI,gBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAIT,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB;IAND,QAAA,GAAA,EAAA,UAAU,KAAgB,EAAA;IACtB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aACvD;;;IAAA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAI,gBAAO,CAAA,SAAA,EAAA,SAAA,EAAA;IAIX,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,QAAQ,CAAC;aACxB;IAND,QAAA,GAAA,EAAA,UAAY,OAAoB,EAAA;IAC5B,YAAA,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;aAC7D;;;IAAA,KAAA,CAAA,CAAA;IAMD,IAAA,gBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,KAAgB,EAAE,OAAqB,EAAA;IACpD,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACnB,IAAI,CAAC,OAAO,EAAE;gBACV,OAAO,GAAG,KAAK,CAAC;IACnB,SAAA;IACD,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;SAC1B,CAAA;QACJ,OAAA,gBAAA,CAAA;IAAA,CAAA,EAAA,EAAA;AAUWC,8CAKX;IALD,CAAA,UAAY,wBAAwB,EAAA;QAChC,wBAAA,CAAA,wBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAa,CAAA;QACb,wBAAA,CAAA,wBAAA,CAAA,kBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,kBAAgB,CAAA;QAChB,wBAAA,CAAA,wBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAe,CAAA;QACf,wBAAA,CAAA,wBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;IACX,CAAC,EALWA,gCAAwB,KAAxBA,gCAAwB,GAKnC,EAAA,CAAA,CAAA,CAAA;AAEWC,qCAMX;IAND,CAAA,UAAY,eAAe,EAAA;IACvB,IAAA,eAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;IACX,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;IACnB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACjB,CAAC,EANWA,uBAAe,KAAfA,uBAAe,GAM1B,EAAA,CAAA,CAAA,CAAA;AAEWC,kCAKX;IALD,CAAA,UAAY,YAAY,EAAA;IACpB,IAAA,YAAA,CAAA,UAAA,CAAA,GAAA,OAAkB,CAAA;IAClB,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,MAAmB,CAAA;IACnB,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,MAAqB,CAAA;IACrB,IAAA,YAAA,CAAA,WAAA,CAAA,GAAA,YAAwB,CAAA;IAC5B,CAAC,EALWA,oBAAY,KAAZA,oBAAY,GAKvB,EAAA,CAAA,CAAA;;ACxFY,QAAA,WAAW,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE;AAaxDC,uCAUX;IAVD,CAAA,UAAY,iBAAiB,EAAA;IACzB,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACb,IAAA,iBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;IACvB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,iBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;IAC/B,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;IACjB,IAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;IACf,IAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;IACjB,CAAC,EAVWA,yBAAiB,KAAjBA,yBAAiB,GAU5B,EAAA,CAAA,CAAA,CAAA;AAsED,QAAA,WAAA,kBAAA,YAAA;QAkBI,SAAY,WAAA,CAAA,GAAQ,EAAE,IAAkB,EAAA;YACpC,IAAI,CAAC,EAAE,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,EAAE,CAAC;YAClB,IAAI,CAAC,IAAI,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,CAAC;YACtB,IAAI,CAAC,GAAG,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,GAAG,CAAC;YACpB,IAAI,CAAC,cAAc,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,cAAc,CAAC;IAC1C,QAAA,IAAI,CAAC,KAAK,GAAG,CAAA,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,QAAQ,MAAK,IAAI,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,QAAQ,CAAC;YAC9B,IAAI,CAAC,QAAQ,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,QAAQ,CAAC;IAC9B,QAAA,IAAI,CAAC,IAAI,GAAG,CAAA,GAAG,KAAH,IAAA,IAAA,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,KAAI,GAAG,CAAC,IAAI,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,UAAU,CAAC;YAClC,IAAI,CAAC,GAAG,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,GAAG,CAAC;YACpB,IAAI,CAAC,KAAK,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,KAAK,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,OAAO,CAAC;YAC5B,IAAI,CAAC,IAAI,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,IAAI,CAAC;YACtB,IAAI,CAAC,UAAU,GAAG,GAAG,KAAA,IAAA,IAAH,GAAG,KAAH,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,GAAG,CAAE,UAAU,CAAC;SACrC;QACJ,OAAA,WAAA,CAAA;IAAA,CAAA,EAAA;;AC/GM,QAAMC,YAAU,GAAG,CAAC,gBAAgB;QACvC,eAAe;QACf,gBAAgB;QAChB,iBAAiB;QACjB,mBAAmB;QACnB,eAAe;QACf,gBAAgB;IAChB,IAAA,oBAAoB,EAAE;eAgBoC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;AAK9E,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;;;;;IAnBC,IAAA,EAAA,IAAA,EAAAC,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZC,wBAAmB;wBACnBC,8BAAmB;wBACnBC,iBAAW;wBACXC,4BAAkB;wBAClBC,yBAAmB;wBACnBC,oBAAc;wBACdC,yCAAmB;wBACnBC,sBAAe;IAClB,iBAAA;IACD,gBAAA,OAAO,EAAEV,YAAU;IACnB,gBAAA,SAAS,EAAE;IACP,oBAAA,EAAE,OAAO,EAAEpE,qDAA+B,EAAE,QAAQ,MAAkB,EAAE;IAC3E,iBAAA;IACD,gBAAA,YAAY,EAAEoE,YAAU;IAC3B,aAAA,EAAA,EAAA;;;AChBD,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;;;;;IAjBC,IAAA,EAAA,IAAA,EAAAC,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZG,iBAAW;wBACXC,4BAAkB;wBAClBC,yBAAmB;wBACnBE,yCAAmB;wBACnBC,sBAAe;wBACfC,kCAAqB;IACxB,iBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC3B,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,gBAAgB;IACnB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACLD,QAAA,WAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,WAAA,GAAA;;;;;IAbC,IAAA,EAAA,IAAA,EAAAV,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZ,aAAa;wBACb,aAAa;IAChB,iBAAA;oBACD,OAAO,EAAE,CAAC,cAAc,CAAC;IACzB,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,cAAc;IACjB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;AChBD,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;SA6BC;IA5BG;;;;IAIG;QACW,aAAwB,CAAA,wBAAA,GAA/B,UAAgC,MAAc,EAAA;IACjD,QAAA,IAAM,YAAY,GAAGL,uBAAe,CAAC,GAAG,CAAC;YAEzC,IAAI,CAAC,MAAM,EAAE;IACT,YAAA,OAAO,YAAY,CAAC;IACvB,SAAA;IAED,QAAA,IAAM,eAAe,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;IAC7C,QAAA,QAAQ,IAAI;IACR,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9B,OAAOA,uBAAe,CAAC,OAAO,CAAC;IACnC,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9B,OAAOA,uBAAe,CAAC,GAAG,CAAC;IAC/B,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9B,OAAOA,uBAAe,CAAC,IAAI,CAAC;IAChC,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9B,OAAOA,uBAAe,CAAC,KAAK,CAAC;IACjC,YAAA,KAAK,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAC9B,OAAOA,uBAAe,CAAC,IAAI,CAAC;IAChC,YAAA;IACI,gBAAA,OAAO,YAAY,CAAC;IAC3B,SAAA;SACJ,CAAA;QACJ,OAAA,aAAA,CAAA;IAAA,CAAA,EAAA;;ACtBD,QAAA,mBAAA,kBAAA,YAAA;IADA,IAAA,SAAA,mBAAA,GAAA;IAEI,QAAA,IAA2B,CAAA,2BAAA,GAAG,KAAK,CAAC;IACpC,QAAA,IAAA,CAAA,SAAS,GAAqBA,uBAAe,CAAC,GAAG,CAAC;YAClD,IAAO,CAAA,OAAA,GAAG,IAAIpC,oBAAe,CAASkC,mBAAW,CAAC,uBAAuB,CAAC,CAAC;IAC3E,QAAA,IAAA,CAAA,eAAe,GAAG,IAAIzD,YAAO,EAAU,CAAC;YAExC,IAAA,CAAA,mBAAmB,GAAG;IAClB,YAAA2D,uBAAe,CAAC,GAAG;IACnB,YAAAA,uBAAe,CAAC,IAAI;IACpB,YAAAA,uBAAe,CAAC,KAAK;IACrB,YAAAA,uBAAe,CAAC,OAAO;IACvB,YAAAA,uBAAe,CAAC,IAAI;aACvB,CAAC;YAEK,IAAA,CAAA,YAAY,GAA4B;gBAC3C,GAAG,EAAEF,mBAAW,CAAC,uBAAuB;gBACxC,KAAK,EAAEA,mBAAW,CAAC,iBAAiB;gBACpC,IAAI,EAAEA,mBAAW,CAAC,WAAW;gBAC7B,OAAO,EAAEA,mBAAW,CAAC,cAAc;gBACnC,IAAI,EAAEA,mBAAW,CAAC,WAAW;aAChC,CAAC;IAGK,QAAA,IAAwB,CAAA,wBAAA,GAAG,CAAC,CAAC;SA+HvC;IA7HG,IAAA,mBAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YACI,IAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC7C,QAAA,QAAQ,IAAI;gBACR,KAAK,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,QAAQ,CAAC,GAAG,CAAC;IAC5B,gBAAA,OAAO,GAAG,CAAC;gBACf,KAAK,YAAY,aAAZ,YAAY,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAZ,YAAY,CAAE,QAAQ,CAAC,GAAG,CAAC;IAC5B,gBAAA,OAAO,GAAG,CAAC;IACf,YAAA;IACI,gBAAA,OAAO,EAAE,CAAC;IACjB,SAAA;SACJ,CAAA;QAED,mBAAY,CAAA,SAAA,CAAA,YAAA,GAAZ,UAAa,MAAc,EAAA;IACvB,QAAA,OAAO,aAAa,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;SACzD,CAAA;QAED,mBAAmB,CAAA,SAAA,CAAA,mBAAA,GAAnB,UAAoB,SAA2B,EAAA;IAC3C,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;SACvC,CAAA;QAED,mBAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,MAAc,EAAA;IACnC,QAAA,IAAM,gBAAgB,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;YAChF,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACrD,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SAC/D,CAAA;QAED,mBAAc,CAAA,SAAA,CAAA,cAAA,GAAd,UAAe,KAAK,EAAA;YAChB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;SACnC,CAAA;IAED;;;;IAIG;QACI,mBAA+B,CAAA,SAAA,CAAA,+BAAA,GAA/B,UAAgC,IAAY,EAAA;IAC/C,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,wBAAwB,CAAC;IAChD,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,SAAS,GAAG,WAAW,EAAE;gBACzB,WAAW,IAAI,EAAE,CAAC;IACrB,SAAA;IACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,WAAW,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;SAC3D,CAAA;IAED;;;;;IAKG;IACI,IAAA,mBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,UAAgB,IAAY,EAAE,aAAqB,EAAA;YACtD,IAAI;IACC,aAAA,QAAQ,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;iBAC5C,OAAO,CAAC,MAAM,CAAC;IACf,aAAA,GAAG,CAAC,IAAI,CAAC,wBAAwB,GAAG,aAAa,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC;iBAC/D,KAAK,CAAC,OAAO,CAAC,CAAC;SACvB,CAAA;IAED;;;;;IAKG;IACI,IAAA,mBAAA,CAAA,SAAA,CAAA,iBAAiB,GAAjB,UAAkB,IAAY,EAAE,aAAqB,EAAA;YACxD,IAAI;IACC,aAAA,QAAQ,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,CAAC;iBAC5C,OAAO,CAAC,MAAM,CAAC;IACf,aAAA,GAAG,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;SAC1E,CAAA;IAED;;;;IAIG;QACI,mBAAsB,CAAA,SAAA,CAAA,sBAAA,GAAtB,UAAuB,IAAY,EAAA;IACtC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;SAC1E,CAAA;IAED;;;;IAIG;QACI,mBAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,IAAY,EAAA;IACxC,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,+BAA+B,CAAC,IAAI,CAAC,CAAC,CAAC;SAC5E,CAAA;IAED;;;;IAIG;QACI,mBAAwB,CAAA,SAAA,CAAA,wBAAA,GAAxB,UAAyB,SAA0B,EAAA;IACtD,QAAA,OAAOb,YAAC,CAAC,QAAQ,CAAC,CAACe,uBAAe,CAAC,OAAO,EAAEA,uBAAe,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC;SACjF,CAAA;IAED;;;;IAIG;QACI,mBAAgC,CAAA,SAAA,CAAA,gCAAA,GAAhC,UAAiC,IAAY,EAAA;YAChD,OAAO,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACzD,CAAA;IAED;;;;IAIG;QACI,mBAAyB,CAAA,SAAA,CAAA,yBAAA,GAAzB,UAA0B,IAAY,EAAA;IACzC,QAAA,OAAO,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,CAAC;SACnD,CAAA;IAED;;;;;IAKG;IACK,IAAA,mBAAA,CAAA,SAAA,CAAA,6BAA6B,GAA7B,UAA8B,IAAY,EAAE,UAAkB,EAAA;IAAlB,QAAA,IAAA,UAAA,KAAA,KAAA,CAAA,EAAA,EAAA,UAAkB,GAAA,KAAA,CAAA,EAAA;IAClE,QAAA,OAAO,IAAI,GAAGf,YAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,UAAU,GAAG,UAAU,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,wBAAwB,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;SACnH,CAAA;;;;gBAtJJH,aAAU,EAAA;;;ICCX,IAAMpD,QAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAiBjC,QAAA,iCAAA,kBAAA,YAAA;QAsDI,SAAoB,iCAAA,CAAA,SAA2B,EAC3B,YAAiC,EACP,YAA8B,EACxD,GAAsB,EACvB,iBAAsC,EAAA;;YAJzD,IAwBC,KAAA,GAAA,IAAA,CAAA;IAxBmB,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;IAC3B,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAqB;IACP,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAkB;IACxD,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IACvB,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAqB;IAzDjD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAIW,YAAO,EAAQ,CAAC;IACzC,QAAA,IAAQ,CAAA,QAAA,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,QAAA,IAAe,CAAA,eAAA,GAAG,CAAC,CAAC;YACpB,IAAA,CAAA,gBAAgB,GAAuB,CAAC;oBACpC,SAAS,EAAE2D,uBAAe,CAAC,GAAG;IAC9B,gBAAA,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAEC,oBAAY,CAAC,QAAQ;IAC5B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG;oBAC/C,WAAW,EAAE,YAAM,EAAA,OAAA,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,EAAE,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,iBAAiB,EAAE,CAAA,EAAA;iBACvI,EAAE;oBACC,SAAS,EAAED,uBAAe,CAAC,IAAI;IAC/B,gBAAA,KAAK,EAAE,MAAM;oBACb,KAAK,EAAEC,oBAAY,CAAC,QAAQ;IAC5B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI;oBAChD,WAAW,EAAE,YAAM,EAAA,OAAA,KAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,EAAE,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,iBAAiB,EAAE,CAAA,EAAA;iBACvI,EAAE;oBACC,SAAS,EAAED,uBAAe,CAAC,KAAK;IAChC,gBAAA,KAAK,EAAE,OAAO;oBACd,KAAK,EAAEC,oBAAY,CAAC,UAAU;IAC9B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,KAAK;oBACjD,WAAW,EAAE,cAAM,OAAA,MAAM,CAACvE,QAAM,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA,EAAA;iBAC5E,EAAE;oBACC,SAAS,EAAEsE,uBAAe,CAAC,OAAO;IAClC,gBAAA,KAAK,EAAE,SAAS;oBAChB,KAAK,EAAEC,oBAAY,CAAC,YAAY;IAChC,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,OAAO;IACnD,gBAAA,WAAW,EAAE,YAAA,EAAM,OAAA,MAAM,CAACvE,QAAM,CAAC,KAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAA,EAAA;iBACrI,EAAE;oBACC,SAAS,EAAEsE,uBAAe,CAAC,IAAI;IAC/B,gBAAA,KAAK,EAAE,MAAM;oBACb,KAAK,EAAEC,oBAAY,CAAC,SAAS;IAC7B,gBAAA,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,IAAI;IAChD,gBAAA,WAAW,EAAE,YAAA;wBACT,IAAM,WAAW,GAAGvE,QAAM,CAAC,KAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC;IAC5H,oBAAA,IAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;wBACtD,OAAO,WAAW,GAAG,GAAG,IAAI,WAAW,GAAG,EAAE,CAAC,CAAC;qBACjD;IACJ,aAAA,CAAC,CAAC;IAEH,QAAA,IAAA,CAAA,WAAW,IAAA,EAAA,GAAA,EAAA;IACP,YAAA,EAAA,CAACuE,oBAAY,CAAC,UAAU,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IAC7F,YAAA,EAAA,CAACA,oBAAY,CAAC,YAAY,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IAC/F,YAAA,EAAA,CAACA,oBAAY,CAAC,QAAQ,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IAC5F,YAAA,EAAA,CAACA,oBAAY,CAAC,SAAS,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,EAAE,EAAE,OAAO,CAAC,GAAA;mBAChG,CAAC;IAEF,QAAA,IAAA,CAAA,iBAAiB,GAAkBA,oBAAY,CAAC,QAAQ,CAAC;IACzD,QAAA,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;IAC3B,QAAA,IAAgB,CAAA,gBAAA,GAAG,EAAE,CAAC;IACtB,QAAA,IAAe,CAAA,eAAA,GAAG,EAAE,CAAC;IAEL,QAAA,IAAY,CAAA,YAAA,GAAGA,oBAAY,CAAC;YAQxC,SAAS,CAAC,YAAY,CAAC,IAAI,CAACxD,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,YAAM,EAAA,OAAA,KAAI,CAAC,eAAe,EAAE,CAAA,EAAA,CAAC,CAAC;IAChG,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAACA,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAA,KAAK,EAAA;gBAC3E,KAAI,CAAC,iBAAiB,GAAG,KAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAA,MAAM,EAAI,EAAA,OAAA,MAAM,CAAC,MAAM,KAAK,KAAK,CAAvB,EAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAClG,YAAA,SAAS,CAAC,WAAW,GAAG,KAAI,CAAC,iBAAoC,CAAC;gBAClE,KAAI,CAAC,eAAe,EAAE,CAAC;IACvB,YAAA,IAAI,KAAI,CAAC,iBAAiB,KAAKwD,oBAAY,CAAC,YAAY,EAAE;IACtD,gBAAA,KAAI,CAAC,eAAe,GAAG,KAAI,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,KAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC5G,aAAA;IACL,SAAC,CAAC,CAAC;IAEH,QAAA,SAAS,CAAC,WAAW,CAAC,IAAI,CAACxD,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,YAAA;gBAC7D,KAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,SAAS,CAAC,aAAa,EAAE;oBACzB,KAAI,CAAC,yCAAyC,EAAE,CAAC;IACpD,aAAA;IACL,SAAC,CAAC,CAAC;IAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,SAAS,CAAC;SACvD;IAED,IAAA,iCAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YAAA,IAMC,KAAA,GAAA,IAAA,CAAA;IALG,QAAA,UAAU,CAAC,YAAA;IACP,YAAA,IAAI,KAAI,CAAC,SAAS,CAAC,aAAa,EAAE;oBAC9B,KAAI,CAAC,yCAAyC,EAAE,CAAC;IACpD,aAAA;IACL,SAAC,CAAC,CAAA;SACL,CAAA;IAED,IAAA,iCAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;SAC9B,CAAA;IAED,IAAA,iCAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YAAA,IAWC,KAAA,GAAA,IAAA,CAAA;YAVG,IAAM,sBAAsB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAA,MAAM,EAAA,EAAI,OAAA,MAAM,CAAC,KAAK,KAAK,KAAI,CAAC,SAAS,CAAC,WAAW,CAA3C,EAA2C,CAAC,CAAC,CAAC,CAAC,CAAC;IACtH,QAAA,IAAM,eAAe,GAAG,sBAAsB,CAAC,WAAW,EAAE,CAAC;YAC7D,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,KAAKwD,oBAAY,CAAC,QAAQ,EAAE;gBACtD,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACpD,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnD,SAAA;IAAM,aAAA;IACH,YAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;IAC3B,YAAA,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IAC1C,SAAA;IACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,iCAAA,CAAA,SAAA,CAAA,YAAY,GAAZ,YAAA;YAAA,IASC,KAAA,GAAA,IAAA,CAAA;IARG,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAoC,CAAC;YACvE,IAAM,qBAAqB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,UAAA,MAAM,EAAI,EAAA,OAAA,MAAM,CAAC,KAAK,KAAK,KAAI,CAAC,iBAAiB,CAAvC,EAAuC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjH,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IAE9E,QAAA,IAAI,IAAI,CAAC,iBAAiB,KAAKA,oBAAY,CAAC,YAAY,EAAE;IACtD,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC5G,SAAA;SACJ,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAI,iCAAoB,CAAA,SAAA,EAAA,sBAAA,EAAA;IAAxB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,CAAC,CAACA,oBAAY,CAAC,QAAQ,EAAEA,oBAAY,CAAC,UAAU,EAAEA,oBAAY,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,WAA2B,CAAC,CAAC;aACzI;;;IAAA,KAAA,CAAA,CAAA;QAED,iCAA8B,CAAA,SAAA,CAAA,8BAAA,GAA9B,UAA+B,IAAsD,EAAA;IACjF,QAAA,IAAI,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC;SACrC,CAAA;QAED,iCAAe,CAAA,SAAA,CAAA,eAAA,GAAf,UAAgB,aAAqB,EAAA;IACjC,QAAA,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC;IACrC,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IACjF,QAAA,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IACvE,QAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;SACrD,CAAA;QAED,iCAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,OAAO,EAAA;YACjB,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE;IAC9C,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC;IACzD,SAAA;SACJ,CAAA;IAED,IAAA,iCAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,UAAkB,EAAE,MAAc,EAAE,OAAgB,EAAA;IACjE,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;YACjH,IAAI,CAAC,eAAe,EAAE,CAAC;SAC1B,CAAA;IAED,IAAA,iCAAA,CAAA,SAAA,CAAA,yCAAyC,GAAzC,YAAA;IACI,QAAA,IAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,aAAoB,CAAC;IAC1D,QAAA,aAAa,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;YAC/G,aAAa,CAAC,aAAa,GAAG,aAAa,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YAC/D,aAAa,CAAC,KAAK,EAAE,CAAC;SACzB,CAAA;;;;IA3JJ,IAAA,EAAA,IAAA,EAAA3E,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,wCAAwC;IAClD,gBAAA,QAA0D,EAAA,69CAAA;oBAE1D,eAAe,EAAEa,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBArBQ4E,sBAAW,EAAA;gBACXnF,gBAAW,EAAA;gBACG,gBAAgB,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EA6EtBoB,SAAM,EAAA,IAAA,EAAA,CAAChB,qBAAgB,EAAA,EAAA,CAAA,EAAA;gBAlFKI,oBAAiB,EAAA;gBAMrD,mBAAmB,EAAA;;;ICc5B,IAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAM,IAAI,GAAG,YAAA;IACb,CAAC,CAAC;;AAYF,QAAA,qBAAA,kBAAA,YAAA;IAkDI,IAAA,SAAA,qBAAA,CACc,GAAsB,EACtB,WAA6B,EAChC,iBAAsC,EAAA;YAHjD,IAQC,KAAA,GAAA,IAAA,CAAA;IAPa,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IACtB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;IAChC,QAAA,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAqB;;IAtCxC,QAAA,IAAA,CAAA,cAAc,GAA6B2D,gCAAwB,CAAC,OAAO,CAAC;IAE5E,QAAA,IAAW,CAAA,WAAA,GAAG,QAAQ,CAAC;IAEvB,QAAA,IAAwB,CAAA,wBAAA,GAAG,CAAC,CAAC;YAI/B,IAAA,CAAA,6BAA6B,GAAQ;IACxC,YAAA,IAAI,EAAE,YAAY;IAClB,YAAA,KAAK,EAAE,MAAM;IACb,YAAA,OAAO,EAAE,MAAM;IACf,YAAA,GAAG,EAAE,OAAO;aACf,CAAC;IAEK,QAAA,IAAY,CAAA,YAAA,GAAG,iCAAiC,CAAC;IACjD,QAAA,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;IAGP,QAAA,IAAe,CAAA,eAAA,GAAGC,uBAAe,CAAC;IAaxC,QAAA,IAAU,CAAA,UAAA,GAAW,IAAI,CAAC;IAC1B,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI3D,YAAO,EAAQ,CAAC;IAkGpC,QAAA,IAAiB,CAAA,iBAAA,GAAe,IAAI,CAAC;IACrC,QAAA,IAAgB,CAAA,gBAAA,GAAqB,IAAI,CAAC;IA5F7C,QAAA,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAACI,mBAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IAC/E,YAAA,KAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;IACnC,SAAC,CAAC,CAAC;SACN;IAxDD,IAAA,MAAA,CAAA,cAAA,CAAa,qBAAM,CAAA,SAAA,EAAA,QAAA,EAAA;IAAnB,QAAA,GAAA,EAAA,UAAoB,KAAK,EAAA;IACrB,YAAA,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,KAAK,CAAC,CAAC;aAC1D;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,qBAAG,CAAA,SAAA,EAAA,KAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,UAAiB,OAAe,EAAA;IAC5B,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;aAC1C;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CAAa,qBAAG,CAAA,SAAA,EAAA,KAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,UAAiB,OAAe,EAAA;IAC5B,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;aAC1C;;;IAAA,KAAA,CAAA,CAAA;IAwBD,IAAA,MAAA,CAAA,cAAA,CAAW,qBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IAAhB,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,UAAU,CAAC;aAC1B;IAED,QAAA,GAAA,EAAA,UAAiB,CAAS,EAAA;IACtB,YAAA,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,EAAE;IACvB,gBAAA,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC9B,aAAA;IACD,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;aAC3B;;;IAPA,KAAA,CAAA,CAAA;IAsBD,IAAA,qBAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YACI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAChF,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC;IAC5D,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;SACpG,CAAA;IAED,IAAA,qBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACvB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;SAC9B,CAAA;IAED;;;IAGG;IACH,IAAA,qBAAA,CAAA,SAAA,CAAA,wBAAwB,GAAxB,YAAA;IACI,QAAA,IAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC;YACnD,QAAQ,IAAI,CAAC,cAAc;gBACvB,KAAKsD,gCAAwB,CAAC,eAAe;oBACzC,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKC,uBAAe,CAAC,OAAO,EAAE;wBAC9D,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpE,iBAAA;yBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKA,uBAAe,CAAC,IAAI,EAAE;wBAClE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAChE,iBAAA;IAAM,qBAAA;IACH,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,iBAAA;oBACD,MAAM;gBACV,KAAKD,gCAAwB,CAAC,aAAa;oBACvC,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKC,uBAAe,CAAC,OAAO,EAAE;wBAC9D,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,iBAAA;yBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKA,uBAAe,CAAC,IAAI,EAAE;wBAClE,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC9D,iBAAA;IAAM,qBAAA;IACH,oBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACpC,iBAAA;oBACD,MAAM;gBACV,KAAKD,gCAAwB,CAAC,gBAAgB;oBAC1C,IAAI,WAAmB,SAAA,CAAC;oBACxB,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKC,uBAAe,CAAC,OAAO,EAAE;IAC9D,oBAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;wBACtC,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACjE,oBAAA,IAAI,CAAC,iBAAiB,CAAC,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC9D,iBAAA;yBAAM,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKA,uBAAe,CAAC,IAAI,EAAE;IAClE,oBAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;wBACtC,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;wBAC7D,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC1D,iBAAA;IAAM,qBAAA;IACH,oBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,oBAAA,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1D,iBAAA;IACD,gBAAA,IAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAC1D,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC7C,MAAM;IACV,YAAA;IACI,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBACnC,MAAM;IACb,SAAA;SACJ,CAAA;IAEM,IAAA,qBAAA,CAAA,SAAA,CAAA,mBAAmB,GAAnB,UAAoB,UAAkB,EAAE,SAA0B,EAAA;IAErE,QAAA,IAAI,SAAS,KAAKA,uBAAe,CAAC,IAAI,EAAE;gBACpC,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC;IAC7E,SAAA;IAED,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAKA,uBAAe,CAAC,OAAO,IAAI,SAAS,KAAKA,uBAAe,CAAC,IAAI,EAAE;gBACpG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,WAAW,GAAGC,oBAAY,CAAC,YAA+B,CAAC;gBACnG,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,UAAU,GAAG,UAAU,CAAC;IAChE,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC5B,SAAA;IAAM,aAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,KAAK,SAAS,EAAE;IACvD,YAAA,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;IACpC,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAED;;IAEG;QACI,qBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAa,EAAA;YAC3B,IAAI,CAAC,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAC3D,IAAI,IAAI,CAAC,UAAU,EAAE;gBACjB,IAAI,CAAC,wBAAwB,EAAE,CAAC;IACnC,SAAA;IACD,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAKM,qBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,EAAO,EAAA;IAC3B,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAC;SAC9B,CAAA;QAEM,qBAAiB,CAAA,SAAA,CAAA,iBAAA,GAAjB,UAAkB,EAAO,EAAA;IAC5B,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC;SAC/B,CAAA;IAED;;;;IAIG;QACO,qBAAkB,CAAA,SAAA,CAAA,kBAAA,GAAlB,UAAmB,UAAkB,EAAA;YAC3C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;SACpC,CAAA;IAED;;;;IAIG;QACO,qBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,SAAiB,EAAA;IAChC,QAAA,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;SACjD,CAAA;;;;IAxLJ,IAAA,EAAA,IAAA,EAAA3E,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,gBAAgB;IAC1B,gBAAA,QAA8C,EAAA,qmBAAA;oBAE9C,eAAe,EAAEa,0BAAuB,CAAC,MAAM;IAC/C,gBAAA,SAAS,EAAE;wBACP,EAAE,OAAO,EAAED,uBAAiB,EAAE,WAAW,EAAE,qBAAqB,EAAE,KAAK,EAAE,IAAI,EAAE;wBAC/E,EAAE,OAAO,EAAE,mBAAmB,EAAE;IACnC,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;gBA9BGE,oBAAiB,EAAA;gBASZR,gBAAW,EAAA;gBACX,mBAAmB,EAAA;;;yBAuBvBJ,QAAK,EAAA,CAAA;sBAILA,QAAK,EAAA,CAAA;sBAILA,QAAK,EAAA,CAAA;iCAKLA,QAAK,EAAA,CAAA;8BAELA,QAAK,EAAA,CAAA;2CAELA,QAAK,EAAA,CAAA;IAEL,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAiD,YAAS,SAAC,YAAY,EAAA,EAAA,CAAA;;;ACzB3B,QAAA,kCAAA,kBAAA,UAAA,MAAA,EAAA;QAAwD,SAAqB,CAAA,kCAAA,EAAA,MAAA,CAAA,CAAA;IAgDzE,IAAA,SAAA,kCAAA,CACc,GAAsB,EACtB,WAA6B,EAChC,iBAAsC,EAAA;;IAHjD,QAAA,IAAA,KAAA,GAKI,kBAAM,GAAG,EAAE,WAAW,EAAE,iBAAiB,CAAC,IAM7C,IAAA,CAAA;IAVa,QAAA,KAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IACtB,QAAA,KAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;IAChC,QAAA,KAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAqB;IA7CxC,QAAA,KAAqB,CAAA,qBAAA,GAAG,KAAK,CAAC;IAS9B,QAAA,KAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;;IASzB,QAAA,KAAA,CAAA,cAAc,GAAG,IAAIpD,eAAY,EAAU,CAAC;IAEtC,QAAA,KAAA,CAAA,WAAW,IAAA,EAAA,GAAA,EAAA;IACvB,YAAA,EAAA,CAAC2E,uBAAe,CAAC,IAAI,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IAC1F,YAAA,EAAA,CAACA,uBAAe,CAAC,OAAO,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IAC9F,YAAA,EAAA,CAACA,uBAAe,CAAC,KAAK,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,mBAAmB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IAC5F,YAAA,EAAA,CAACA,uBAAe,CAAC,GAAG,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;IACxF,YAAA,EAAA,CAACA,uBAAe,CAAC,IAAI,IAAG,UAAC,OAAO,IAAK,OAAA,KAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,EAAE,OAAO,CAAC,GAAA;mBAC5F,CAAC;IAsBE,QAAA,iBAAiB,CAAC,2BAA2B,GAAG,IAAI,CAAC;IAErD,QAAA,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAACvD,mBAAS,CAAC,KAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK,EAAA;IACvE,YAAA,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACtE,SAAC,CAAC,CAAC;;SACN;IAzDD,IAAA,MAAA,CAAA,cAAA,CAAsD,kCAAyB,CAAA,SAAA,EAAA,2BAAA,EAAA;IAA/E,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,qBAAqB,CAAC;aACrC;;;IAAA,KAAA,CAAA,CAAA;QAAA,CAAC;IAIF,IAAA,MAAA,CAAA,cAAA,CAAa,kCAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IAA7B,QAAA,GAAA,EAAA,UAA8B,KAA8B,EAAA;IACxD,YAAA,IAAI,KAAK,EAAE;oBACP,IAAI,CAAC,iBAAiB,CAAC,YAAY,GAAQ,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAK,EAAA,KAAK,CAAE,CAAC;IAC3F,gBAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC3B,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAID,IAAA,MAAA,CAAA,cAAA,CAAa,kCAAmB,CAAA,SAAA,EAAA,qBAAA,EAAA;IAAhC,QAAA,GAAA,EAAA,UAAiC,KAAwB,EAAA;IACrD,YAAA,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE;IACvB,gBAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACtD,aAAA;aACJ;;;IAAA,KAAA,CAAA,CAAA;IAaD,IAAA,MAAA,CAAA,cAAA,CAAW,kCAAuB,CAAA,SAAA,EAAA,yBAAA,EAAA;IAAlC,QAAA,GAAA,EAAA,YAAA;IACI,YAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACb,OAAO,IAAI,CAAC,WAAW,CAAC;IAC3B,aAAA;gBAED,IAAI,YAAY,GAAGwC,YAAC,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3C,YAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;oBACnF,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,gCAAgC,CAAC,YAAY,CAAC,CAAC;IACxF,aAAA;gBAED,IAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC/D,YAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;aACxF;;;IAAA,KAAA,CAAA,CAAA;IAeD,IAAA,kCAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;YACI,IAAI,CAAC,iBAAiB,CAAC,2BAA2B,GAAG,IAAI,CAAC,kBAAkB,CAAC;IAC7E,QAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;SAC3B,CAAA;QAED,kCAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,OAAgB,EAAA;YAC1B,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE;IACpD,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;IAC/D,SAAA;IACD,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SAC3B,CAAA;IAED,IAAA,kCAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,UAAiB,UAAkB,EAAE,MAAc,EAAE,OAAgB,EAAA;YACjE,IAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3F,QAAA,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;SACrC,CAAA;;KA5EL,CAAwD,qBAAqB;;IAV5E,IAAA,EAAA,IAAA,EAAA3D,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,+BAA+B;IACzC,gBAAA,QAA6D,EAAA,imCAAA;oBAE7D,eAAe,EAAEa,0BAAuB,CAAC,MAAM;IAC/C,gBAAA,SAAS,EAAE;wBACP,EAAE,OAAO,EAAED,uBAAiB,EAAE,WAAW,EAAE,kCAAkC,EAAE,KAAK,EAAE,IAAI,EAAE;wBAC5F,EAAE,OAAO,EAAE,mBAAmB,EAAE;IACnC,iBAAA;;IACJ,aAAA,EAAA,EAAA;;;gBA1BGE,oBAAiB,EAAA;gBAUZR,gBAAW,EAAA;gBACX,mBAAmB,EAAA;;;IAkBvB,IAAA,yBAAA,EAAA,CAAA,EAAA,IAAA,EAAA0B,cAAW,SAAC,mCAAmC,EAAA,EAAA,CAAA;wCAI/C9B,QAAK,EAAA,CAAA;mCAELA,QAAK,EAAA,CAAA;qCAOLA,QAAK,EAAA,CAAA;sCAELA,QAAK,EAAA,CAAA;iCAOLC,SAAM,EAAA,CAAA;;;ACnCX,QAAA,2BAAA,kBAAA,YAAA;QAkBI,SACqC,2BAAA,CAAA,aAA+B,EAC5C,SAAoB,EAAA;IADP,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;IAC5C,QAAA,IAAS,CAAA,SAAA,GAAT,SAAS,CAAW;SAE3C;IAlBD,IAAA,MAAA,CAAA,cAAA,CACI,2BAAgB,CAAA,SAAA,EAAA,kBAAA,EAAA;IADpB,QAAA,GAAA,EAAA,UACqB,MAAc,EAAA;;gBAC/B,IAAI,IAAI,CAAC,eAAe,EAAE;IACtB,gBAAA,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAC/B,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,iBAAiB,CACzB,CAAC;IACL,aAAA;IAAM,iBAAA;oBACH,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9D,aAAA;IACD,YAAA,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;IACnC,YAAA,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,CAAC,aAAa,0CAAE,UAAU,CAAC,KAAK,CAAC,CAAC;aACnD;;;IAAA,KAAA,CAAA,CAAA;;;;IA7BJ,IAAA,EAAA,IAAA,EAAAyC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,sBAAsB;IAChC,gBAAA,SAAS,EAAE;IACP,oBAAA;IACI,wBAAA,OAAO,EAAEtC,gBAAW;IACpB,wBAAA,QAAQ,EAAEC,uCAAiB;IAC9B,qBAAA;IACD,oBAAA;IACI,wBAAA,OAAO,EAAEG,qBAAgB;IACzB,wBAAA,QAAQ,EAAE,gBAAgB;IAC7B,qBAAA;IACJ,iBAAA;IACJ,aAAA,EAAA,EAAA;;;gBAdQ,gBAAgB,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAkChBgB,SAAM,EAAA,IAAA,EAAA,CAAChB,qBAAgB,EAAA,EAAA,CAAA,EAAA;IArCvB,IAAA,EAAA,IAAA,EAAAgF,eAAS,uBAsCTC,WAAQ,EAAA,CAAA,EAAA;;;kCAnBZzF,QAAK,EAAA,CAAA;oCACLA,QAAK,EAAA,CAAA;IAEL,IAAA,gBAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,QAAK,SAAC,oBAAoB,EAAA,EAAA,CAAA;;;AChB/B,QAAA,mBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,mBAAA,GAAA;;IACI,IAAA,mBAAA,CAAA,SAAA,CAAA,SAAS,GAAT,UAAU,GAAuB,EAAE,WAA8B,EAAA;IAC7D,QAAA,OAAO,GAAG,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAApC,EAAoC,CAAC,CAAC;SACnE,CAAA;;;;IANJ,IAAA,EAAA,IAAA,EAAAgC,OAAI,EAAC,IAAA,EAAA,CAAA;IACF,gBAAA,IAAI,EAAE,qBAAqB;IAC9B,aAAA,EAAA,EAAA;;;ICiBD;IACA;AACAuD,0BAAW,CAAC,SAAS,CAAC,eAAe,GAAG,YAAA;;IACpC,IAAA,CAAA,EAAA,GAAA,IAAI,CAAC,wBAAwB,EAAE,0CAAE,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,IAAMZ,YAAU,GAAG;QACf,iBAAiB;QACjB,oBAAoB;QACpB,mBAAmB;QACnB,iBAAiB;QACjB,gBAAgB;QAChB,iBAAiB;QACjB,iBAAiB;QACjB,uBAAuB;QACvB,qBAAqB;QACrB,kCAAkC;QAClC,2BAA2B;QAC3B,iCAAiC;QACjC,8BAA8B;QAC9B,mBAAmB;KACtB,CAAC;AAcF,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;;;;IAZC,IAAA,EAAA,IAAA,EAAAC,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,YAAY,EAAED,YAAU;IACxB,gBAAA,OAAO,EAAEA,YAAU;IACnB,gBAAA,OAAO,EAAE;wBACLK,iBAAW;wBACXE,yBAAmB;wBACnBL,mBAAY;wBACZa,uBAAc;wBACdX,8BAAmB;IACtB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;AC/CD,QAAA,oBAAA,kBAAA,YAAA;IAKI,IAAA,SAAA,oBAAA,GAAA;SACC;;;;IAZJ,IAAA,EAAA,IAAA,EAAAjF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,iBAAiB;IAC3B,gBAAA,QAA4C,EAAA,28BAAA;oBAE5C,eAAe,EAAEa,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;;uBAGIX,QAAK,EAAA,CAAA;uCACLA,QAAK,EAAA,CAAA;;;ACHV,QAAA,0BAAA,kBAAA,YAAA;IAII,IAAA,SAAA,0BAAA,GAAA;SACC;;;;IAXJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,wBAAwB;IAClC,gBAAA,QAAmD,EAAA,mQAAA;oBAEnD,eAAe,EAAEa,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;;0BAGIX,QAAK,EAAA,CAAA;;;ACHV,QAAA,sBAAA,kBAAA,YAAA;IAII,IAAA,SAAA,sBAAA,GAAA;SACC;IAED,IAAA,sBAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;SACC,CAAA;;;;IAdJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,oBAAoB;IAC9B,gBAAA,QAA+C,EAAA,8WAAA;oBAE/C,eAAe,EAAEa,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;;0BAGIX,QAAK,EAAA,CAAA;;;ACcV,QAAA,8BAAA,kBAAA,YAAA;IAII,IAAA,SAAA,8BAAA,GAAA;SACC;;;;IA3BJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,4BAA4B;IACtC,gBAAA,QAAQ,EAAE,sEAET;oBAgBD,eAAe,EAAEa,0BAAuB,CAAC,MAAM;oBAftC,MAAA,EAAA,CAAA,0aAcR,CAAA;IAEJ,aAAA,EAAA,EAAA;;;;uBAGIX,QAAK,EAAA,CAAA;;;ICjBV,IAAM,kBAAkB,GAAG;QACvB,oBAAoB;QACpB,0BAA0B;QAC1B,sBAAsB;QACtB,8BAA8B;KACjC,CAAC;AAmBF,QAAA,eAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,eAAA,GAAA;;;;;IAjBC,IAAA,EAAA,IAAA,EAAA4E,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;IACf,iBAAA;oBACD,OAAO,EAAA,aAAA,CAAA;wBACH,gBAAgB;wBAChB,kBAAkB;IACf,iBAAA,EAAA,MAAA,CAAA,kBAAkB,CACxB,CAAA;IACD,gBAAA,SAAS,EAAE,EAAE;oBACb,YAAY,EAAA,aAAA,CAAA;wBACR,gBAAgB;wBAChB,kBAAkB;IACf,iBAAA,EAAA,MAAA,CAAA,kBAAkB,CACxB,CAAA;IACJ,aAAA,EAAA,EAAA;;;ACRD,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;;;;IAhBC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,YAAY,EAAE;wBACV,iBAAiB;wBACjB,YAAY;IACf,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACL,iBAAiB;wBACjB,YAAY;IACf,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACLe,wBAAgB;wBAChB,eAAe;wBACfd,mBAAY;IACf,iBAAA;IACJ,aAAA,EAAA,EAAA;;;IChBD,IAAMF,YAAU,GAAG,CAAC,kBAAkB,CAAC,CAAC;IACxC,IAAM,UAAU,GAAG,CAAC,kBAAkB,CAAC,CAAC;AAUxC,QAAA,eAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,eAAA,GAAA;;;;;IARC,IAAA,EAAA,IAAA,EAAAC,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;IACf,iBAAA;IACD,gBAAA,OAAO,EAAM,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAAF,YAAU,CAAK,CAAA,EAAA,MAAA,CAAA,UAAU,CAAC,CAAA;IACvC,gBAAA,YAAY,EAAM,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAAA,YAAU,CAAK,CAAA,EAAA,MAAA,CAAA,UAAU,CAAC,CAAA;IAC/C,aAAA,EAAA,EAAA;;;ACMD,QAAA,eAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,eAAA,GAAA;;;;;IAfC,IAAA,EAAA,IAAA,EAAAC,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;IACf,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACL,kBAAkB;wBAClB,kBAAkB;IACrB,iBAAA;IACD,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,kBAAkB;wBAClB,kBAAkB;IACrB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACaD,QAAA,gBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,gBAAA,GAAA;;;;;IAtBC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZ,eAAe;IAClB,iBAAA;IACD,gBAAA,YAAY,EAAE;wBACV,mBAAmB;wBACnB,2BAA2B;wBAC3B,mBAAmB;wBACnB,sBAAsB;IACzB,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACL,mBAAmB;wBACnB,2BAA2B;wBAC3B,mBAAmB;wBACnB,sBAAsB;IACzB,iBAAA;IACD,gBAAA,SAAS,EAAE;wBACP,iBAAiB;IACpB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACFD,QAAA,YAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,YAAA,GAAA;;;;;IAnBC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZe,kBAAa;wBACbZ,iBAAW;wBACXE,yBAAmB;wBACnB,cAAc;IACjB,iBAAA;IACD,gBAAA,OAAO,EAAE;wBACL,eAAe;wBACf,cAAc;IACjB,iBAAA;IACD,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,eAAe;wBACf,cAAc;IACjB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;IClBD,IAAM,uBAAuB,GAAG;QAC5B,oBAAoB;QACpB,wBAAwB;QACxB,8BAA8B;QAC9B,4BAA4B;KAC/B,CAAC;AAQF,QAAA,iBAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,iBAAA,GAAA;;;;;IANC,IAAA,EAAA,IAAA,EAAAN,WAAQ,EAAC,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAACC,mBAAY,CAAC;oBACvB,OAAO,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,uBAAuB,CAAC,CAAA;oBACrC,YAAY,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,uBAAuB,CAAC,CAAA;IAC1C,gBAAA,SAAS,EAAE,EAAE;IAChB,aAAA,EAAA,EAAA;;;ICbD,IAAM,UAAU,GAAG;QACf,iBAAiB;QACjB,uBAAuB;QACvB,qBAAqB;KACxB,CAAC;AAQF,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;;;;IANC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAACC,mBAAY,CAAC;oBACvB,OAAO,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,UAAU,CAAC,CAAA;oBACxB,YAAY,EAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAM,UAAU,CAAC,CAAA;IAChC,aAAA,EAAA,EAAA;;;ACGD,QAAA,aAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,aAAA,GAAA;;;;;IAbC,IAAA,EAAA,IAAA,EAAAD,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZG,iBAAW;wBACX,eAAe;IAClB,iBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC3B,gBAAA,SAAS,EAAE,EAAE;IACb,gBAAA,YAAY,EAAE;wBACV,gBAAgB;IACnB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACRD,QAAA,gBAAA,kBAAA,YAAA;IAYI,IAAA,SAAA,gBAAA,GAAA;IARS,QAAA,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;IAC1B,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;IACpB,QAAA,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;IACrB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;IACjB,QAAA,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;IACnB,QAAA,IAAA,CAAA,UAAU,GAAuB,IAAInF,eAAY,EAAQ,CAAC;SAInE;QAED,gBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAU,EAAA;YACjB,IAAI,IAAI,KAAK,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;IAC7C,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,SAAA;SACJ,CAAA;QAED,gBAAQ,CAAA,SAAA,CAAA,QAAA,GAAR,UAAS,IAAU,EAAA;YACf,IAAI,IAAI,CAAC,iBAAiB;IAAE,YAAA,OAAO,IAAI,CAAC;YACxC,IAAI,IAAI,CAAC,SAAS;IAAE,YAAA,OAAO,MAAM,CAAC;IAClC,QAAA,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,SAAS;gBAAE,OAAO,CAAI,CAAC,CAAA,IAAI,KAAA,IAAA,IAAJ,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,IAAI,CAAE,cAAc,KAAG,IAAI,aAAJ,IAAI,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAJ,IAAI,CAAE,aAAa,CAAA,GAAG,GAAG,KAAK,CAAE,IAAA,GAAG,CAAC;IACrI,QAAA,OAAO,IAAI,CAAC;SACf,CAAA;IAEM,IAAA,gBAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;YACH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;SAC/C,CAAA;IAEM,IAAA,gBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACH,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,IAAI,EAAE,CAAC;SAC/C,CAAA;QAEM,gBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAa,EAAA;IAC3B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC5B,CAAA;;;;IA5CJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,YAAY;IACtB,gBAAA,QAAuC,EAAA,2sHAAA;oBAEvC,eAAe,EAAEa,0BAAuB,CAAC,OAAO;;IACnD,aAAA,EAAA,EAAA;;;;wBAGIX,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;oCACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;+BACLA,QAAK,EAAA,CAAA;2BACLA,QAAK,EAAA,CAAA;8BACLA,QAAK,EAAA,CAAA;6BACLC,SAAM,EAAA,CAAA;IACN,IAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAAgD,YAAS,SAAC,SAAS,EAAE,EAAE,IAAI,EAAE1B,aAAU,EAAE,EAAA,EAAA,CAAA;;;ACN9C,QAAA,eAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,eAAA,GAAA;;;;;IARC,IAAA,EAAA,IAAA,EAAAqD,WAAQ,EAAC,IAAA,EAAA,CAAA;oBACN,YAAY,EAAE,CAAC,gBAAgB,CAAC;IAChC,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZ,eAAe;IAClB,iBAAA;oBACD,OAAO,EAAE,CAAC,gBAAgB,CAAC;IAC9B,aAAA,EAAA,EAAA;;;ICS0C,IAAAgB,IAAA,GAAA,EAAE,OACC,EAAE,CAAA;AAIhD,QAAA,cAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,cAAA,GAAA;;;;;IAhBC,IAAA,EAAA,IAAA,EAAAjB,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,YAAY,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;IACnE,gBAAA,OAAO,EAAE;wBACLC,mBAAY;wBACZiB,oBAAe;wBACf,cAAc;wBACdZ,yBAAmB;wBACnB,eAAe;IAClB,iBAAA;IACD,gBAAA,OAAO,EAAE,CAAC,sBAAsB,EAAE,2BAA2B,CAAC;IAC9D,gBAAA,SAAS,EAAE;IACP,oBAAA,EAAE,OAAO,EAAEvB,iBAAY,EAAE,QAAQ,MAAI,EAAE;IACvC,oBAAA,EAAE,OAAO,EAAEC,oBAAe,EAAE,QAAQ,IAAI,EAAE;wBAC1C,aAAa;IAChB,iBAAA;IACJ,aAAA,EAAA,EAAA;;;ACND,QAAA,mBAAA,kBAAA,YAAA;QAkDI,SAAsB,mBAAA,CAAA,GAAsB,EAAY,YAA0B,EAAA;IAA5D,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAAY,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;IAjDlF,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;IACnB,QAAA,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;IAEnB,QAAA,IAAY,CAAA,YAAA,GAAU,EAAE,CAAC;IAEzB;;;;IAIG;IACM,QAAA,IAAO,CAAA,OAAA,GAAG,EAAE,CAAC;IAEtB;;;;IAIG;IACM,QAAA,IAAkB,CAAA,kBAAA,GAAG,gBAAgB,CAAC;IAE/C;;;;IAIG;IACM,QAAA,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;IAE3B;;;;IAIG;IACM,QAAA,IAAmB,CAAA,mBAAA,GAAG,mBAAmB,CAAC;IAEnD;;;IAGG;IACO,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI/D,eAAY,EAAsC,CAAC;IAExE;;;;IAIG;IAEO,QAAA,IAAA,CAAA,WAAW,GAAG,IAAIA,eAAY,EAAU,CAAC;IAEnB,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;SAGhD;QAGD,mBAAM,CAAA,SAAA,CAAA,MAAA,GAAN,UAAO,KAAU,EAAA;;YAAjB,IAwBC,KAAA,GAAA,IAAA,CAAA;;YAvBG,IAAI,IAAI,CAAC,SAAS,EAAE;gBAChB,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;IAExB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACtB,IAAI,MAAA,KAAK,CAAC,YAAY,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,EAAE;4CAChB,IAAI,EAAA;wBACX,IAAM,GAAG,GAAG,IAAI,CAAC;wBAEjB,IAAI,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;IACjC,wBAAA,IAAM,EAAE,GAAG,IAAI,UAAU,EAAE,CAAC;IAC5B,wBAAA,EAAE,CAAC,MAAM,GAAG,UAAC,CAAM,EAAA;gCACf,GAAG,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC1B,4BAAA,GAAG,CAAC,QAAQ,GAAG,KAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,SAAQ,GAAG,CAAC,GAAI,GAAA,GAAG,CAAC,CAAC;IAC/E,4BAAA,KAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;IAC7B,yBAAC,CAAC;IAEF,wBAAA,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC1B,qBAAA;IACD,oBAAA,MAAA,CAAK,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;;;wBAbhC,KAAmB,IAAA,KAAA,QAAA,CAAA,KAAK,CAAC,YAAY,CAAC,KAAK,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA,CAAA,EAAA,CAAA,IAAA,EAAA,EAAA,GAAA,EAAA,CAAA,IAAA,EAAA,EAAA;IAAtC,wBAAA,IAAM,IAAI,GAAA,EAAA,CAAA,KAAA,CAAA;oCAAJ,IAAI,CAAA,CAAA;IAcd,qBAAA;;;;;;;;;IACJ,aAAA;IACJ,SAAA;SACJ,CAAA;QAED,mBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAI,EAAA;YACX,IAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAC9C,IAAI,KAAK,IAAI,CAAC,EAAE;gBACZ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACtC,SAAA;SACJ,CAAA;QAGD,mBAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,KAAgB,EAAA;YACvB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,SAAS,EAAE;IAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACxB,SAAA;SACJ,CAAA;QAGD,mBAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,KAAgB,EAAA;YACxB,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,SAAS,EAAE;IAChB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACzB,SAAA;SACJ,CAAA;IAED,IAAA,mBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACI,QAAA,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE;IAChE,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACpE,YAAA,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IAClB,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACvB,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;QAED,mBAAa,CAAA,SAAA,CAAA,aAAA,GAAb,UAAc,KAAa,EAAA;IACvB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAChC,CAAA;;;;IA1HJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,cAAc;IACxB,gBAAA,QAAuC,EAAA,+qCAAA;oBAEvC,eAAe,EAAEa,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAhBGC,oBAAiB,EAAA;gBAQZmF,4BAAY,EAAA;;;0BAoBhB/F,QAAK,EAAA,CAAA;qCAOLA,QAAK,EAAA,CAAA;4BAOLA,QAAK,EAAA,CAAA;sCAOLA,QAAK,EAAA,CAAA;uBAMLC,SAAM,EAAA,CAAA;8BAQNA,SAAM,EAAA,CAAA;IAEN,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA6B,cAAW,SAAC,iBAAiB,EAAA,EAAA,CAAA;IAK7B,IAAA,MAAA,EAAA,CAAA,EAAA,IAAA,EAAAS,eAAY,EAAC,IAAA,EAAA,CAAA,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAA,EAAA,CAAA;IAkC/B,IAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,EAAC,IAAA,EAAA,CAAA,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAA,EAAA,CAAA;IASnC,IAAA,WAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,eAAY,EAAC,IAAA,EAAA,CAAA,WAAW,EAAE,CAAC,QAAQ,CAAC,EAAA,EAAA,CAAA;;;IC/GzC;;;IAGG;AAEH,QAAA,0BAAA,kBAAA,YAAA;IADA,IAAA,SAAA,0BAAA,GAAA;IAEqB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,GAAG,EAAwC,CAAC;SAarF;IAXC,IAAA,0BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,UAAS,IAAY,EAAE,QAAsC,EAAA;YAC3D,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;SACzC,CAAA;QAED,0BAAU,CAAA,SAAA,CAAA,UAAA,GAAV,UAAW,IAAY,EAAA;YACrB,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SACzC,CAAA;QAED,0BAAW,CAAA,SAAA,CAAA,WAAA,GAAX,UAAY,IAAY,EAAA;YACtB,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SACtC,CAAA;;;;gBAdFe,aAAU,EAAA;;;ACWX,QAAA,sBAAA,kBAAA,YAAA;IAgDI,IAAA,SAAA,sBAAA,CAAoB,oBAAgD,EAAA;IAAhD,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAA4B;IA9CpE,QAAA,IAAY,CAAA,YAAA,GAAGoB,yBAAiB,CAAC;IACjC,QAAA,IAAA,CAAA,mBAAmB,GAAGA,yBAAiB,CAAC,KAAK,CAAC;IAyBpC,QAAA,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;SAqBxB;IA5CD,IAAA,MAAA,CAAA,cAAA,CACI,sBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,IAAI,CAAC;aACf;;;IAAA,KAAA,CAAA,CAAA;IAED,IAAA,MAAA,CAAA,cAAA,CACI,sBAAQ,CAAA,SAAA,EAAA,UAAA,EAAA;IADZ,QAAA,GAAA,EAAA,YAAA;IAEI,YAAA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;aACtB;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,MAAA,CAAA,cAAA,CAEI,sBAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IALT;;IAEG;IACH,QAAA,GAAA,EAAA,YAAA;gBAGI,OAAO,IAAI,CAAC,MAAM,CAAC;aACtB;IAED,QAAA,GAAA,EAAA,UAAU,KAAc,EAAA;IACpB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC;aACzB;;;IAJA,KAAA,CAAA,CAAA;IA6BM,IAAA,sBAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;IACH,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,IAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvD,OAAO,aAAa,CAAC,WAAW,CAAC;SACpC,CAAA;IAEM,IAAA,sBAAA,CAAA,SAAA,CAAA,kBAAkB,GAAlB,YAAA;IACH,QAAA,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;SACrE,CAAA;QAES,sBAAgB,CAAA,SAAA,CAAA,gBAAA,GAAhB,UAAiB,IAAY,EAAA;YACnC,IAAM,sBAAsB,GAAG,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YAE3E,IAAI,CAAC,sBAAsB,EAAE;IACzB,YAAA,MAAM,IAAI,KAAK,CACX,gDAAA,GAAkD,IAAK,GAAK,KAAA;IAC5D,iBAAA,wEAAA,GAA0E,IAAK,GAAA,IAAI,CAAA,CACtF,CAAC;IACL,SAAA;IAED,QAAA,OAAO,sBAAsB,CAAC;SACjC,CAAA;;;;IArFJ,IAAA,EAAA,IAAA,EAAA5E,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,iBAAiB;IAC3B,gBAAA,QAA0C,EAAA,ksBAAA;IAE1C,gBAAA,UAAU,EAAE;wBACRwC,kBAAO,CAAC,UAAU,EAAE;4BAChBkB,gBAAK,CAAC,IAAI,EAAEtB,gBAAK,CAAC,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;IAClD,wBAAAD,qBAAU,CAAC,WAAW,EAAE,CAACC,gBAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,EAAEC,kBAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IACjF,wBAAAF,qBAAU,CAAC,WAAW,EAAE,CAACE,kBAAO,CAAC,EAAE,EAAED,gBAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC;yBACnF,CAAC;IACL,iBAAA;oBACD,eAAe,EAAEvB,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;gBAdQ,0BAA0B,EAAA;;;IAoB9B,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAmB,cAAW,SAAC,WAAW,EAAA,EAAA,CAAA;IAKvB,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAA,cAAW,SAAC,iBAAiB,EAAA,EAAA,CAAA;wBAQ7B9B,QAAK,EAAA,EAAA,EAAA,IAAA,EACL8B,cAAW,EAAA,IAAA,EAAA,CAAC,aAAa,EAAA,EAAA,CAAA;uBAWzB9B,QAAK,EAAA,CAAA;0BAOLA,QAAK,EAAA,CAAA;oCAOLA,QAAK,EAAA,CAAA;;;ACzCV,QAAA,eAAA,kBAAA,YAAA;IA0BI,IAAA,SAAA,eAAA,CAAoB,GAAsB,EAAA;IAAtB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;IAvBjC,QAAA,IAAe,CAAA,eAAA,GAAG,IAAI,CAAC;IAEvB,QAAA,IAAqB,CAAA,qBAAA,GAAG,kBAAkB,CAAC;IAc1C,QAAA,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;IAKrB,QAAA,IAAA,CAAA,KAAK,GAAsB,IAAIH,eAAY,EAAO,CAAC;SAG5D;IAjBD,IAAA,MAAA,CAAA,cAAA,CACI,eAAY,CAAA,SAAA,EAAA,cAAA,EAAA;IAJhB;;IAEG;IACH,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,aAAa,CAAC;aAC7B;IAED,QAAA,GAAA,EAAA,UAAiB,KAAc,EAAA;IAC3B,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC;aAChC;;;IAJA,KAAA,CAAA,CAAA;IAgBD,IAAA,eAAA,CAAA,SAAA,CAAA,eAAe,GAAf,YAAA;YAAA,IAOC,KAAA,GAAA,IAAA,CAAA;YANG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,UAAA,QAAQ,EAAA;IACpC,YAAA,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACzB,KAAI,CAAC,UAAU,EAAE,CAAC;IACtB,SAAC,CAAC,CAAC;YAEH,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,UAAU,GAAV,YAAA;YACI,IAAI,IAAI,CAAC,YAAY,EAAE;gBACnB,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAC3B,SAAA;SACJ,CAAA;IAED,IAAA,eAAA,CAAA,SAAA,CAAA,gBAAgB,GAAhB,YAAA;YAAA,IAKC,KAAA,GAAA,IAAA,CAAA;IAJG,QAAA,UAAU,CAAC,YAAA;gBACP,KAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,KAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9H,YAAA,KAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;IAC5B,SAAC,CAAC,CAAC;SACN,CAAA;;;;IAvDJ,IAAA,EAAA,IAAA,EAAAC,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,SAAS;IAEnB,gBAAA,QAAkC,EAAA,yoBAAA;oBAClC,SAAS,EAAE,CAAC,0BAA0B,CAAC;;IAC1C,aAAA,EAAA,EAAA;;;gBAZGc,oBAAiB,EAAA;;;wBAchBZ,QAAK,EAAA,CAAA;kCAELA,QAAK,EAAA,CAAA;wCAELA,QAAK,EAAA,CAAA;+BAKLA,QAAK,EAAA,CAAA;IAWL,IAAA,iBAAA,EAAA,CAAA,EAAA,IAAA,EAAAiD,YAAS,SAAC,mBAAmB,EAAA,EAAA,CAAA;IAC7B,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAtB,kBAAe,SAAC,sBAAsB,EAAA,EAAA,CAAA;IACtC,IAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAAI,eAAY,SAAC,mBAAmB,EAAA,EAAA,CAAA;wBAChC9B,SAAM,EAAA,CAAA;;;IC3CX;;IAEG;AAOH,QAAA,0BAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,0BAAA,GAAA;;;;;IANC,IAAA,EAAA,IAAA,EAAAH,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,sBAAsB;IAChC,gBAAA,QAA+C,EAAA,kEAAA;oBAE/C,eAAe,EAAEa,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;0BAOIX,QAAK,EAAA,CAAA;;;ICfV;;IAEG;AAOH,QAAA,8BAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,8BAAA,GAAA;;;;;IANC,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,2BAA2B;IACrC,gBAAA,QAAoD,EAAA,gOAAA;oBAEpD,eAAe,EAAEa,0BAAuB,CAAC,MAAM;;IAClD,aAAA,EAAA,EAAA;;;0BAOIX,QAAK,EAAA,CAAA;;;ICRV;;IAEG;AAMH,QAAA,0BAAA,kBAAA,YAAA;QA6BI,SAAsB,0BAAA,CAAA,EAAqB,EAAY,YAA0B,EAAA;IAA3D,QAAA,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;IAAY,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;SAChF;IAdD,IAAA,MAAA,CAAA,cAAA,CACI,0BAAK,CAAA,SAAA,EAAA,OAAA,EAAA;IANT;;;;IAIG;IACH,QAAA,GAAA,EAAA,UACU,KAAyB,EAAA;gBADnC,IAWC,KAAA,GAAA,IAAA,CAAA;IATG,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,KAAK,IAAI,EAAE,EAAE,GAAG,CAAC,UAAC,IAAS,EAAA;oBAC1C,IAAM,OAAO,GAAG,KAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,gBAAA,OACO,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAA,IAAI,KACP,QAAQ,EAAE,OAAO,IAAI,KAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,SAAQ,IAAI,CAAC,GAAI,GAAA,GAAG,CAAC,EACrF,OAAO,EAAA,OAAA,EACT,CAAA,CAAA;IACN,aAAC,CAAC,CAAC;IACH,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;aAC3B;;;IAAA,KAAA,CAAA,CAAA;QAMD,0BAAO,CAAA,SAAA,CAAA,OAAA,GAAP,UAAQ,IAAsB,EAAA;IAC1B,QAAA,IAAM,IAAI,GAAI,IAAqC,CAAC,IAAI,CAAC;IACzD,QAAA,IAAI,IAAI,EAAE;IACN,YAAA,OAAO,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,SAAA;IACD,QAAA,OAAO,KAAK,CAAC;SAChB,CAAA;;;;IA5CJ,IAAA,EAAA,IAAA,EAAAF,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,sBAAsB;IAChC,gBAAA,QAA+C,EAAA,kTAAA;oBAC/C,eAAe,EAAEa,0BAAuB,CAAC,MAAM;IAClD,aAAA,EAAA,EAAA;;;gBAjBiCC,oBAAiB,EAAA;gBAC1CmF,4BAAY,EAAA;;;0BA0BhB/F,QAAK,EAAA,CAAA;wBAOLA,QAAK,EAAA,CAAA;;;IC9BV,IAAM,gCAAgC,GAAG,YAAA;IACrC,IAAA,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAC;IAC3E,CAAC,CAAC;;AAKF,QAAA,4BAAA,kBAAA,YAAA;QAmBI,SAAmB,4BAAA,CAAA,WAA6B,EAC1B,oBAAgD,EAAA;IADnD,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;IAC1B,QAAA,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAA4B;SAAI;IAd1E,IAAA,MAAA,CAAA,cAAA,CACI,4BAAe,CAAA,SAAA,EAAA,iBAAA,EAAA;IANnB;;;;IAIG;IACH,QAAA,GAAA,EAAA,YAAA;gBAEI,OAAO,IAAI,CAAC,KAAK,CAAC;aACrB;IACD,QAAA,GAAA,EAAA,UAAoB,KAAa,EAAA;IAC7B,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;aACtB;;;IAHA,KAAA,CAAA,CAAA;IAMD,IAAA,MAAA,CAAA,cAAA,CAAI,4BAAI,CAAA,SAAA,EAAA,MAAA,EAAA;IAAR,QAAA,GAAA,EAAA,YAAA;gBACI,OAAO,IAAI,CAAC,KAAK,CAAC;aACrB;;;IAAA,KAAA,CAAA,CAAA;IAKD,IAAA,4BAAA,CAAA,SAAA,CAAA,QAAQ,GAAR,YAAA;IACI,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;IACb,YAAA,gCAAgC,EAAE,CAAC;IACtC,SAAA;YACD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACvD,CAAA;IAED,IAAA,4BAAA,CAAA,SAAA,CAAA,WAAW,GAAX,YAAA;YACI,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACnD,CAAA;;;;IAlCJ,IAAA,EAAA,IAAA,EAAA0C,YAAS,EAAC,IAAA,EAAA,CAAA;IACP,gBAAA,QAAQ,EAAE,mBAAmB;IAChC,aAAA,EAAA,EAAA;;;gBAV6CL,cAAW,EAAA;gBAEhD,0BAA0B,EAAA;;;kCAe9BrC,QAAK,EAAA,CAAA;;;ICFV,IAAM,kBAAkB,GAAG;QACvB,eAAe;QACf,sBAAsB;QACtB,mBAAmB;QACnB,0BAA0B;QAC1B,0BAA0B;QAC1B,8BAA8B;KACjC,CAAC;IAEF,IAAM,kBAAkB,GAAG,CAAC,4BAA4B,CAAC,CAAC;AAc1D,QAAA,YAAA,kBAAA,YAAA;IAAA,IAAA,SAAA,YAAA,GAAA;;;;;IAXC,IAAA,EAAA,IAAA,EAAA4E,WAAQ,EAAC,IAAA,EAAA,CAAA;IACN,gBAAA,OAAO,EAAE;wBACLI,iBAAW;wBACXE,yBAAmB;wBACnBL,mBAAY;wBACZ,cAAc;wBACd,cAAc;IACjB,iBAAA;IACD,gBAAA,YAAY,EAAM,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,kBAAkB,CAAK,CAAA,EAAA,MAAA,CAAA,kBAAkB,CAAC,CAAA;IAC5D,gBAAA,OAAO,EAAM,aAAA,CAAA,aAAA,CAAA,EAAA,EAAA,MAAA,CAAA,kBAAkB,CAAK,CAAA,EAAA,MAAA,CAAA,kBAAkB,CAAC,CAAA;IAC1D,aAAA,EAAA,EAAA;;;ICrCD;;ICAA;;IAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"datarailsshared-datarailsshared.umd.js","sources":["../../../projects/datarailsshared/src/lib/date-tags/date-tag.component.ts","../../../node_modules/tslib/tslib.es6.js","../../../projects/datarailsshared/src/lib/date-tags/forecast-tag/forecast-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/month-tag/month-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/quarter-tag/quarter-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/week-tag/week-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/year-tag/year-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.component.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.component.ts","../../../projects/datarailsshared/src/lib/date-tags/day-tag/day-tag.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-button.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/radio-button/radio-group.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/checkbox/checkbox.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-input/dr-input.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-select/dr-select.component.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.component.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.pipe.ts","../../../projects/datarailsshared/src/lib/models/constants.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle/dr-toggle.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.component.ts","../../../projects/datarailsshared/src/lib/models/spinnerOptions.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/button/button.component.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover-ref.ts","../../../projects/datarailsshared/src/lib/models/popover.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.component.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.service.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.service.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.component.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-position.directive.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown-item-show.pipe.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tab.component.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-header.component.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion-item-body.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-header.component.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout-body.component.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component.ts","../../../projects/datarailsshared/src/lib/dr-dialog/services/dialog.service.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/enums/tooltip-position.enum.ts","../../../projects/datarailsshared/src/lib/dr-dialog/interfaces/dialog-data.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-model-debounce-change.directive.ts","../../../projects/datarailsshared/src/lib/models/datePicker.ts","../../../projects/datarailsshared/src/lib/models/chat.ts","../../../projects/datarailsshared/src/lib/date-tags/date-tag.module.ts","../../../projects/datarailsshared/src/lib/list-tags/list-tag.module.ts","../../../projects/datarailsshared/src/lib/dr-tags/dr-tag.module.ts","../../../projects/datarailsshared/src/lib/utils/dr-shared-utils.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/services/dr-date-picker.service.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive.ts","../../../projects/datarailsshared/src/lib/dr-inputs/date-pickers/dr-show-timeframe.pipe.ts","../../../projects/datarailsshared/src/lib/dr-inputs/dr-inputs.module.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info/tooltip-info.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component.ts","../../../projects/datarailsshared/src/lib/dr-tooltip/dr-tooltip.module.ts","../../../projects/datarailsshared/src/lib/dr-avatar/dr-avatar.module.ts","../../../projects/datarailsshared/src/lib/dr-spinner/dr-spinner.module.ts","../../../projects/datarailsshared/src/lib/dr-popover/dr-popover.module.ts","../../../projects/datarailsshared/src/lib/dr-dropdown/dr-dropdown.module.ts","../../../projects/datarailsshared/src/lib/dr-tabs/dr-tabs.module.ts","../../../projects/datarailsshared/src/lib/dr-accordion/accordion.module.ts","../../../projects/datarailsshared/src/lib/dr-layout/dr-layout.module.ts","../../../projects/datarailsshared/src/lib/dr-error/dr-error.module.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.component.ts","../../../projects/datarailsshared/src/lib/stepper/stepper.module.ts","../../../projects/datarailsshared/src/lib/dr-dialog/dialog.module.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-form/chat-form.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/chat-message.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-rich-text/chat-message-rich-text.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component.ts","../../../projects/datarailsshared/src/lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive.ts","../../../projects/datarailsshared/src/lib/dr-chat/chat.module.ts","../../../projects/datarailsshared/src/public-api.ts","../../../projects/datarailsshared/src/datarailsshared-datarailsshared.ts"],"sourcesContent":["import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IDateTag } from '../models/serverTags';\n\n// import {*} from \"\"\n@Component({\n templateUrl: 'date-tag.component.html',\n selector: 'date-tag',\n styleUrls: ['date-tag.component.css', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\nexport class DateTagComponent {\n @Input() name: string | undefined = undefined;\n @Input() lockedDate: any[] = [];\n @Input() defaultValue: number | undefined = undefined;\n @Input() dateTypeChosen: any = {};\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Output() selectedDate: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n\n\n constructor() {\n }\n\n changeSelectedDate(date) {\n setTimeout(() => {\n console.log('change date', date);\n this.selectedDate.emit(date);\n }, 300);\n }\n}\n\n@Component({\n template: ``,\n selector: 'any-tag'\n})\nexport class AnyTagComponent implements OnInit {\n @Output() dateChange: EventEmitter<IDateTag> = new EventEmitter<IDateTag>();\n @Input() name: string | undefined = undefined;\n @Input() defaultValue: number | undefined = undefined;\n dateObj = { date: undefined };\n\n constructor() {\n }\n\n ngOnInit() {\n this.initDate();\n this.initName();\n this.chosenTagHandler(this.dateObj.date);\n }\n\n initDate() {\n }\n\n initName() {\n }\n\n changeInputHandler(event: Event) {\n const input: HTMLInputElement = <HTMLInputElement>event.target;\n this.chosenTagHandler(input.value);\n }\n\n chosenTagHandler(value) {\n // need implement in all tags\n }\n}\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) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\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 { Component, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { MatSelectChange } from '@angular/material/select';\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\n// @ts-ignore\nconst moment = require('moment');\n\n@Component({\n templateUrl: 'forecast-tag.component.html',\n selector: 'forecast-tag',\n})\n\nexport class ForecastTagComponent extends AnyTagComponent {\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Input() lockedDate: any[] = [];\n forecastValue: number | undefined = undefined;\n\n forecastTags: any[] = [\n { value: 0, label: '0+12' },\n { value: 1, label: '1+11' },\n { value: 2, label: '2+10' },\n { value: 3, label: '3+9' },\n { value: 4, label: '4+8' },\n { value: 5, label: '5+7' },\n { value: 6, label: '6+6' },\n { value: 7, label: '7+5' },\n { value: 8, label: '8+4' },\n { value: 9, label: '9+3' },\n { value: 10, label: '10+2' },\n { value: 11, label: '11+1' }\n ];\n\n constructor() {\n super();\n }\n\n initDate() {\n let dateVal = new Date();\n if (this.defaultValue) {\n dateVal = new Date(this.defaultValue * 1000);\n }\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n const fiscal_year_back = this.fiscalYearBack || false;\n this.forecastValue = this.getFiscalMonthFromDate(dateVal, fiscal_year_starts_from) - 1;\n const fiscal_year = this.getFiscalYearFromDate(dateVal, fiscal_year_starts_from, fiscal_year_back);\n\n console.log('test', dateVal, fiscal_year_starts_from, this.forecastValue, fiscal_year);\n\n this.dateObj.date = moment(new Date(fiscal_year, 0, 1)).format('YYYY');\n\n this.updateLockedDate();\n }\n\n updateLockedDate() {\n for (const forecastTag of this.forecastTags) {\n forecastTag.disable = false;\n\n this.lockedDate.forEach(timestamp => {\n const locked = moment.unix(timestamp);\n\n if (locked.month() - 1 === forecastTag.value && +locked.year() + 1 === +this.dateObj.date) {\n forecastTag.disable = true;\n }\n });\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Forecast';\n }\n }\n\n getFiscalMonthFromDate(dateObj, fiscal_year_starts_from) {\n const all_months = [];\n\n for (let i = fiscal_year_starts_from; i < 13; i++) {\n all_months.push(i);\n }\n\n for (let i = 1; i < fiscal_year_starts_from; i++) {\n all_months.push(i);\n }\n\n return all_months.indexOf(dateObj.getMonth() + 1) + 1;\n }\n\n getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back) {\n let fiscal_year = dateObj.getFullYear();\n\n if (!fiscal_year_back) {\n if (dateObj.getMonth() + 1 >= fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year += 1;\n }\n } else {\n if (dateObj.getMonth() + 1 < fiscal_year_starts_from && fiscal_year_starts_from !== 1) {\n fiscal_year -= 1;\n }\n }\n\n return fiscal_year;\n }\n\n getForecastLabelFromValue(value, fiscal_year_starts_from, fiscal_year_back) {\n let label = '';\n if (value) {\n const dateObj = new Date(value * 1000);\n\n const fiscal_month = this.getFiscalMonthFromDate(dateObj, fiscal_year_starts_from);\n const fiscal_year = this.getFiscalYearFromDate(dateObj, fiscal_year_starts_from, fiscal_year_back);\n\n label = (fiscal_month - 1) + '+' + (13 - fiscal_month) + ' (' + fiscal_year + ')';\n }\n return label;\n }\n\n changeTagInputHandler(event: MatSelectChange | MatButtonToggleChange) {\n this.chosenTagHandler();\n }\n\n changeYearInputHandler(event: Event) {\n this.updateLockedDate();\n this.chosenTagHandler();\n }\n\n chosenTagHandler() {\n const month = this.forecastValue;\n const year = Number.parseInt(this.dateObj.date, 10);\n\n let timeStampVal = 0;\n let label = '';\n\n if (!Number.isNaN(month) && !Number.isNaN(year)) {\n\n\n const date = new Date(year, month, 1, 12, 0, 0, 0);\n const fiscal_year_starts_from = this.fiscalYearStartsFrom || 1;\n const fiscal_year_back = this.fiscalYearBack || false;\n if (fiscal_year_starts_from !== 1) {\n if (!fiscal_year_back)\n {date.setMonth(date.getMonth() - 13 + fiscal_year_starts_from);}\n else\n {date.setMonth(date.getMonth() - 1 + fiscal_year_starts_from);}\n }\n\n timeStampVal = date.getTime() / 1000;\n label = this.getForecastLabelFromValue(timeStampVal, fiscal_year_starts_from, fiscal_year_back);\n }\n\n const resultTag: IDateTag = {\n name: this.name,\n value: timeStampVal,\n label,\n locked: !this.dateFilter(timeStampVal)\n };\n\n this.dateChange.emit(resultTag);\n }\n\n dateFilter = (date) => {\n const forecastDate = moment.unix(date);\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const locked = moment.unix(timestamp);\n\n return status = !(locked.month() === forecastDate.month() && locked.year() === forecastDate.year());\n });\n\n return status;\n };\n}\n","import { Component, Input } from '@angular/core';\nimport { Moment } from 'moment';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { FormControl } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n// @ts-ignore\nconst moment = require('moment');\n\nconst MONTH_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'MMMM YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'month-tag.component.html',\n selector: 'month-tag',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: MONTH_FORMATS },\n ],\n})\n\nexport class MonthTagComponent extends AnyTagComponent {\n @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n\n constructor() {\n super();\n }\n\n initDate() {\n if (this.defaultValue) {\n this.dateObj.date = moment(this.defaultValue * 1000).utc().format('YYYY-MM');\n this.date = new FormControl(moment(this.defaultValue * 1000));\n } else {\n this.dateObj.date = moment(new Date()).format('YYYY-MM');\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Month and Year';\n }\n }\n\n chosenTagHandler(value) {\n const resultDate: Moment = moment.utc(value);\n resultDate.hour(12);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format('X'), 10),\n label: resultDate.format('MMMM YYYY'),\n locked: !this.dateFilter(value)\n };\n console.log(resultTag, value);\n this.dateChange.emit(resultTag);\n }\n\n chosenMonthHandler(normalizedMonth: Moment, datepicker: MatDatepicker<Moment>) {\n this.date.setValue(normalizedMonth);\n this.dateObj.date = this.date.value;\n\n this.chosenTagHandler(this.date.value);\n\n datepicker.close();\n }\n\n dateFilter = (date) => {\n const calendarDate = moment(date);\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n\n return status = !(lockDate.year() === calendarDate.year() && lockDate.month() === calendarDate.month());\n });\n\n return status;\n };\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { Moment } from 'moment';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { MatSelectChange } from '@angular/material/select';\n// @ts-ignore\nconst moment = require('moment');\n\n@Component({\n templateUrl: 'quarter-tag.component.html',\n selector: 'quarter-tag',\n})\nexport class QuarterTagComponent extends AnyTagComponent implements OnInit {\n @Input() lockedDate: any[] = [];\n selectedValue = 0;\n quarters: any[] = [];\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.initName();\n this.quarters = this.getQuarterOptions();\n\n for (const quarter of this.quarters) {\n quarter.disable = false;\n\n if (quarter.isSelected) {\n this.selectedValue = quarter.value;\n this.chosenTagHandler(quarter.value);\n }\n\n this.dateFilter(quarter);\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Quarter';\n }\n }\n\n changeSelectHandler(event: MatSelectChange) {\n this.chosenTagHandler(event.value);\n }\n\n chosenTagHandler(value) {\n const date = new Date(value * 1000);\n const resultDate: Moment = moment.utc(date);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format('X'), 10),\n label: this.getQuarterLabel(resultDate.toString()),\n locked: !this.dateFilter(value)\n };\n this.dateChange.emit(resultTag);\n }\n\n getQuarterOptions() {\n const quartersBeforeToday = 8;\n const quartersAfterToday = 8;\n const dateNow = new Date();\n const dateNowUnix = this.getUTCTimestamp(dateNow);\n let defaultValue = dateNowUnix;\n let tempDate = new Date();\n if (this.defaultValue) {\n defaultValue = this.defaultValue * 1000;\n }\n\n let afterDefault = Math.round(Math.abs(dateNowUnix - defaultValue) / 7776000000) + quartersAfterToday;\n afterDefault = Math.min(afterDefault, 100);\n let i; let tempValue;\n const to_return: any[] = [];\n for (i = 0 - quartersBeforeToday; i <= afterDefault; i++) {\n tempDate = new Date(defaultValue);\n tempDate.setDate(15);\n tempDate.setMonth(tempDate.getMonth() + 3 * i);\n tempValue = this.getUTCTimestamp(tempDate);\n to_return.push({\n value: tempValue / 1000,\n label: this.getQuarterLabel(tempValue),\n isSelected: (i === 0),\n });\n }\n return to_return;\n }\n\n private getQuarterLabel(timeValue) {\n const date = new Date(timeValue);\n return 'Q' + Math.floor((date.getMonth() / 3) + 1) + ' ' + date.getFullYear();\n }\n\n private getUTCTimestamp(date) {\n const month = Math.floor(date.getMonth() / 3) * 3;\n return Date.UTC(date.getFullYear(), month, 1, 12, 0, 0, 0);\n }\n\n dateFilter = (date) => {\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n const quarterDate = moment.unix(date.value);\n\n if (lockDate.year() === quarterDate.year() && lockDate.month() === quarterDate.month()) {\n date.disable = true;\n status = false;\n }\n });\n\n return status;\n };\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { Moment } from 'moment';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { FormControl } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n// @ts-ignore\nconst moment = require('moment');\n\nconst WEEK_FORMATS = {\n parse: {\n dateInput: 'WW-YYYY',\n },\n display: {\n dateInput: '[Week] WW, YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'week-tag.component.html',\n selector: 'week-tag',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: WEEK_FORMATS },\n ],\n})\nexport class WeekTagComponent extends AnyTagComponent implements OnInit {\n @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n selectedValue = '';\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n this.initName();\n\n const now = new Date();\n now.setHours(0, 0, 0, 0);\n\n const dateUnix = this.getUTCTimestamp(this.getMonday(now));\n let default_value_time = dateUnix;\n const one_day_in_seconds = 86400;\n if (this.defaultValue) {\n default_value_time = (this.defaultValue + one_day_in_seconds) * 1000;\n }\n\n const default_date = new Date(default_value_time);\n const weekNumber = this.getWeekNumberByDate(default_date);\n const yearNumber = default_date.getFullYear();\n const dateStr = `${ yearNumber }-W${ weekNumber }`;\n this.dateObj.date = dateStr;\n this.selectedValue = dateStr;\n this.chosenTagHandler(default_date);\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Week';\n }\n }\n\n chosenDateHandler(normalizedDay) {\n const date = moment(normalizedDay).unix();\n this.chosenTagHandler(date);\n }\n\n dateFilter = (date) => {\n const calendarDate = moment(date);\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n\n return status = !(lockDate.week() === calendarDate.week() && lockDate.year() === calendarDate.year());\n });\n\n return status;\n };\n\n chosenTagHandler(value) {\n let date;\n console.log('chosenTag', value);\n if (value > 1000000000000) {\n date = new Date(value);\n } else {\n date = new Date(value * 1000);\n }\n\n const resultDate: Moment = moment(date);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format('X'), 10),\n label: this.getWeekLabel(date),\n locked: !this.dateFilter(value)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n private getWeekLabel(date) {\n return 'W' + this.pad(moment(date).isoWeek(), 2) +\n ' ' + moment(date).year();\n }\n\n private getUTCTimestamp(date) {\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), 12, 0, 0, 0);\n }\n\n private getMonday(date) {\n const day = date.getDay() || 7;\n if (day !== 1) {\n date.setHours(-24 * (day - 1));\n }\n return date;\n }\n\n private getWeekNumberByDate(date: Date) {\n return this.pad(moment(date).isoWeek(), 2);\n }\n\n private pad(n, width, z = '0') {\n z = z || '0';\n n = n + '';\n return n.length >= width ? n : new Array(width - n.length + 1).join(z) + n;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { Moment } from 'moment';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\n// @ts-ignore\nconst moment = require('moment');\n\nconst YEAR_FORMATS = {\n parse: {\n dateInput: 'YYYY',\n },\n display: {\n dateInput: 'YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'year-tag.component.html',\n selector: 'year-tag',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: YEAR_FORMATS },\n ],\n})\n\nexport class YearTagComponent extends AnyTagComponent {\n @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n\n constructor() {\n super();\n }\n\n initDate() {\n if (this.defaultValue) {\n this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc().format('YYYY');\n this.date = new FormControl(moment(this.defaultValue * 1000));\n } else {\n this.dateObj.date = moment(new Date()).format('YYYY');\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Year';\n }\n }\n\n chosenTagHandler(value) {\n const date = new Date();\n const year = moment(value).year();\n date.setTime(0);\n date.setFullYear(year, 0, 1);\n const resultDate: Moment = moment.utc(date);\n resultDate.hour(12);\n const resultTag: IDateTag = {\n name: this.name,\n value: parseInt(resultDate.format('X'), 10),\n label: resultDate.format('YYYY'),\n locked: !this.dateFilter(value)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n chosenYearHandler(normalizedYear: Moment, datepicker: MatDatepicker<Moment>) {\n const ctrlValue = this.date.value;\n ctrlValue.year(normalizedYear.year());\n\n this.date.setValue(ctrlValue);\n this.dateObj.date = this.date.value;\n this.chosenTagHandler(this.date.value);\n\n datepicker.close();\n }\n\n dateFilter = (date) => {\n const calendarDateYear = moment(date).year();\n let status = true;\n\n this.lockedDate.forEach(timestamp => {\n const lockDate = moment.unix(timestamp);\n\n return status = !(lockDate.year() === calendarDateYear);\n });\n\n return status;\n };\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IDateTag, IListTag, ITag, ITagForServer } from '../models/serverTags';\n\n@Component({\n templateUrl: 'dr-tag.component.html',\n selector: 'dr-tag',\n styleUrls: ['dr-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class DrTagComponent implements OnInit {\n @Input() tagConfig: ITag;\n @Input() selectedTag: ITagForServer;\n @Input() lockedDate: any[];\n @Input() fiscalYearStartsFrom?: number;\n @Input() fiscalYearBack?: boolean;\n @Output() tagChange: EventEmitter<ITagForServer> = new EventEmitter<ITagForServer>();\n\n defaultValue: string | undefined;\n\n constructor() {\n this.selectedTag = {\n id: 0,\n value: undefined,\n name: ''\n };\n }\n\n ngOnInit() {\n if (this.tagConfig && this.tagConfig.options && this.tagConfig.options.default_value) {\n this.defaultValue = this.tagConfig.options.default_value;\n }\n }\n\n onDateHandler(event: IDateTag) {\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: event.value,\n label: event.label,\n locked: event.locked\n };\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n onListHandler(event: IListTag) {\n const resultEvent: ITagForServer = {\n id: this.tagConfig.id,\n name: this.tagConfig.name,\n value: event.value\n };\n console.log(resultEvent);\n this.tagChange.emit(resultEvent);\n }\n\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { IListTag } from '../models/serverTags';\nimport * as momentImported from 'moment';\nimport { MatSelectChange } from '@angular/material/select';\nimport { MatButtonToggleChange } from '@angular/material/button-toggle';\n\nconst moment = momentImported;\n\n@Component({\n templateUrl: 'list-tag.component.html',\n selector: 'list-tag',\n styleUrls: ['list-tag.component.scss', '../../../../../node_modules/@angular/material/prebuilt-themes/indigo-pink.css'],\n encapsulation: ViewEncapsulation.None\n})\n\nexport class ListTagComponent implements OnInit {\n @Input() values: string[];\n @Input() defaultValue = '';\n @Input() name: string;\n @Output() tagChange: EventEmitter<IListTag> = new EventEmitter<IListTag>();\n\n constructor() {\n }\n\n ngOnInit() {\n this.chosenTagHandler(this.defaultValue);\n }\n\n changeInputHandler(event: MatSelectChange | MatButtonToggleChange) {\n this.chosenTagHandler(event.value);\n }\n\n chosenTagHandler(value) {\n console.log(value);\n if (value && value !== '') {\n const resultTag: IListTag = {\n name: this.name,\n value\n };\n this.tagChange.emit(resultTag);\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { IDateTag } from '../../models/serverTags';\nimport { AnyTagComponent } from '../date-tag.component';\nimport { FormControl } from '@angular/forms';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';\n// @ts-ignore\nconst moment = require('moment');\n\nconst DAY_FORMATS = {\n parse: {\n dateInput: 'DD-MM-YYYY',\n },\n display: {\n dateInput: 'DD.MM.YYYY',\n monthYearLabel: 'MMMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMMM YYYY'\n },\n};\n\n@Component({\n templateUrl: 'day-tag.component.html',\n selector: 'day-tag',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter,\n deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],\n },\n { provide: MAT_DATE_FORMATS, useValue: DAY_FORMATS },\n ],\n})\n\nexport class DayTagComponent extends AnyTagComponent {\n @Input() lockedDate: any[] = [];\n\n date = new FormControl(moment());\n\n constructor() {\n super();\n }\n\n initDate() {\n const utcOffsetInMilliseconds = moment().utcOffset() * 60 * 1000;\n this.dateObj.date = moment(moment().valueOf() + utcOffsetInMilliseconds);\n if (this.defaultValue) {\n this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc();\n this.date.setValue(this.dateObj.date);\n }\n }\n\n initName() {\n if (!this.name) {\n this.name = 'Day';\n }\n }\n\n chosenTagHandler(value) {\n const date = moment(value).unix();\n const resultTag: IDateTag = {\n name: this.name,\n value: date,\n label: moment.unix(date).format('MM/DD/YYYY'),\n locked: !this.dateFilter(value)\n };\n console.log('resultTag', resultTag);\n this.dateChange.emit(resultTag);\n }\n\n chosenDateHandler(normalizedDay) {\n this.chosenTagHandler(normalizedDay);\n }\n\n dateFilter = (date) => {\n const calendarDate = moment(date).unix();\n let status = true;\n\n this.lockedDate.forEach(timestamp => status = !(timestamp === calendarDate));\n\n return status;\n };\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-radio-button',\n templateUrl: './radio-button.component.html',\n styleUrls: ['./radio-button.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: RadioButtonComponent,\n multi: true\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioButtonComponent implements ControlValueAccessor {\n @Input() name: string;\n @Input('value') _value: any;\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = disabled;\n }\n\n private _disabled = false;\n\n modelValue: any;\n\n get value() {\n return this._value;\n }\n\n onChange: any = (onchanges => {\n });\n onTouched: any = () => {\n };\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n registerOnChange(fn) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn) {\n this.onTouched = fn;\n }\n\n writeValue(value: any) {\n this.modelValue = value;\n this.cdr.markForCheck();\n }\n\n toggleChange(event) {\n if (event.target.checked) {\n this.modelValue = this.value;\n }\n }\n\n valueChanged(event) {\n this.onChange(this.modelValue);\n this.valueChange.emit(this.value);\n }\n\n _setName(name: string) {\n this.name = name;\n this.cdr.markForCheck();\n }\n\n _markForCheck() {\n this.cdr.markForCheck();\n }\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n forwardRef,\n Inject,\n Input,\n OnDestroy,\n Output,\n PLATFORM_ID,\n QueryList,\n} from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { from, fromEvent, merge, Subject } from 'rxjs';\nimport { filter, startWith, switchMap, takeUntil } from 'rxjs/operators';\nimport { RadioButtonComponent } from './radio-button.component';\n\n@Component({\n selector: 'dr-radio-group',\n template: `\n <ng-content select=\"dr-radio-button\"></ng-content>`,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioGroupComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class RadioGroupComponent implements AfterContentInit, OnDestroy, ControlValueAccessor {\n\n @Input()\n get value(): any {\n return this._value;\n }\n\n set value(value: any) {\n this._value = value;\n this.updateValues();\n }\n\n @Input()\n get name(): string {\n return this._name;\n }\n\n set name(name: string) {\n this._name = name;\n this.updateNames();\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n\n set disabled(disabled: boolean) {\n this._disabled = !!disabled;\n this.updateDisabled();\n }\n\n constructor(\n protected hostElement: ElementRef<HTMLElement>,\n @Inject(PLATFORM_ID) protected platformId,\n @Inject(DOCUMENT) protected document,\n ) {\n }\n\n protected destroy$ = new Subject<void>();\n protected _value: any;\n protected _name: string;\n protected _disabled: boolean;\n\n @ContentChildren(RadioButtonComponent, { descendants: true }) radios: QueryList<RadioButtonComponent>;\n\n @Output() valueChange: EventEmitter<any> = new EventEmitter();\n protected onChange = (value: any) => {\n };\n protected onTouched = () => {\n };\n\n ngAfterContentInit() {\n // In case option 'name' isn't set on dr-radio component,\n // we need to set it's name right away, so it won't overlap with options\n // without names from other radio groups. Otherwise they all would have\n // same name and will be considered as options from one group so only the\n // last option will stay selected.\n this.updateNames();\n\n this.radios.changes.pipe(\n startWith(this.radios),\n // 'changes' emit during change detection run and we can't update\n // option properties right of since they already was initialized.\n // Instead we schedule microtask to update radios after change detection\n // run is finished and trigger one more change detection run.\n switchMap((radios: QueryList<RadioButtonComponent>) => from(Promise.resolve(radios))),\n takeUntil(this.destroy$),\n ).subscribe(() => this.updateAndSubscribeToRadios());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n writeValue(value: any): void {\n this.value = value;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n protected updateAndSubscribeToRadios() {\n this.updateValueFromCheckedOption();\n this.updateNames();\n this.updateValues();\n this.updateDisabled();\n this.subscribeOnRadiosValueChange();\n this.subscribeOnRadiosBlur();\n }\n\n protected updateNames() {\n if (this.radios) {\n this.radios.forEach((radio: RadioButtonComponent) => radio._setName(this.name));\n }\n }\n\n protected updateValues() {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => {\n radio.modelValue = this.value;\n });\n }\n\n protected updateDisabled() {\n if (typeof this.disabled !== 'undefined') {\n this.updateAndMarkForCheckRadios((radio: RadioButtonComponent) => radio.disabled = this.disabled);\n }\n }\n\n protected subscribeOnRadiosValueChange() {\n if (!this.radios || !this.radios.length) {\n return;\n }\n\n merge(...this.radios.map((radio: RadioButtonComponent) => radio.valueChange)).pipe(\n takeUntil(\n merge(\n this.radios.changes,\n this.destroy$,\n ),\n ),\n ).subscribe((value: any) => {\n this.writeValue(value);\n this.propagateValue(value);\n });\n }\n\n protected propagateValue(value: any) {\n this.valueChange.emit(value);\n this.onChange(value);\n }\n\n protected subscribeOnRadiosBlur() {\n const hasNoRadios = !this.radios || !this.radios.length;\n if (!isPlatformBrowser(this.platformId) || hasNoRadios) {\n return;\n }\n\n const hostElement = this.hostElement.nativeElement;\n fromEvent<Event>(hostElement, 'focusin').pipe(\n filter(event => hostElement.contains(event.target as Node)),\n switchMap(() => merge(\n fromEvent<Event>(this.document, 'focusin'),\n fromEvent<Event>(this.document, 'click'),\n )),\n filter(event => !hostElement.contains(event.target as Node)),\n takeUntil(\n merge(\n this.radios.changes,\n this.destroy$,\n ),\n ),\n ).subscribe(() => this.onTouched());\n }\n\n protected updateAndMarkForCheckRadios(updateFn: (RadioButtonComponent) => void) {\n if (this.radios) {\n this.radios.forEach((radio) => {\n updateFn(radio);\n radio._markForCheck();\n });\n }\n }\n\n protected updateValueFromCheckedOption() {\n const checkedRadio = this.radios.find((radio) => radio.modelValue);\n const isValueMissing = this.value === undefined || this.value === null;\n if (checkedRadio && isValueMissing && checkedRadio.value !== this.value) {\n this.value = checkedRadio.value;\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: CheckboxComponent, multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CheckboxComponent implements ControlValueAccessor {\n @Input() checkedStatus: boolean;\n @Input() disabled = false;\n @Input() icon: 'cross' | '' = '';\n\n @Input()\n get indeterminate(): boolean {\n return this._indeterminate;\n }\n\n set indeterminate(value: boolean) {\n this._indeterminate = !!value;\n this.cdr.markForCheck();\n }\n\n private _indeterminate = false;\n @Output() checkedChange = new EventEmitter();\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n setValue(event) {\n const input = (event.target as HTMLInputElement);\n this.checkedStatus = input.checked;\n this.checkedChange.emit(this.checkedStatus);\n this.onChange(this.checkedStatus);\n this.indeterminate = input.indeterminate;\n this.onTouched();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostBinding,\n Input,\n OnDestroy,\n Output,\n Renderer2,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { noop } from 'rxjs';\n\n@Component({\n selector: 'dr-input',\n templateUrl: './dr-input.component.html',\n styleUrls: ['./dr-input.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DrInputComponent),\n multi: true\n }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrInputComponent implements AfterViewInit, ControlValueAccessor, OnDestroy {\n _clearable = false;\n\n @Input() set disabled(value) {\n this.setDisabledState(value);\n }\n\n @Input() set buttonOptions(value) {\n if (value) {\n this._buttonOptions = { ...this._buttonOptions, ...value };\n if (this._buttonOptions?.show || this._buttonOptions?.showOnFocus) {\n this._elementClass.push('with-button');\n }\n }\n if (this._buttonOptions.showOnFocus) {\n this.listenFunc = this.renderer.listen(this.elementRef.nativeElement, 'click', (event) => {\n this._buttonOptions.focusSet = true;\n this.cdr.markForCheck();\n });\n this.globalListenFunc = this.renderer.listen('document', 'click', event => {\n if (event.target.parentNode !== this.elementRef.nativeElement) {\n if (this._buttonOptions.checkFocusOut(event.target, this.elementRef.nativeElement)) {\n this.onButtonClicked(event);\n }\n }\n });\n }\n this.cdr.markForCheck();\n }\n\n @Input() type = 'string';\n @Input() name: string;\n @Input() placeholder = '';\n @Input() readonly = false;\n\n @Input() set clearable(val) {\n this._clearable = !!val;\n if (this._clearable) {\n this._elementClass.push('clearable');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'clearable');\n }\n this.cdr.markForCheck();\n }\n\n @Input() min: number | string;\n @Input() max: number | string;\n @Input() minLength: number;\n @Input() maxlength: number;\n @Input() step;\n @Output() blur = new EventEmitter();\n @Output() ngModelDebounceChange = new EventEmitter();\n\n @HostBinding('class')\n get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n innerValue = null;\n _disabled = null;\n _elementClass: string[] = [];\n _buttonOptions = {\n show: false,\n showOnFocus: false,\n focusSet: false,\n checkFocusOut: (target: any, element: any) => true,\n text: 'Save'\n };\n listenFunc: (...params) => any;\n globalListenFunc: (...params) => any;\n\n\n @Output() searchHandler = new EventEmitter<any>();\n @Output() buttonHandler = new EventEmitter<any>();\n\n @ContentChild('prefix', { static: false }) prefixIcon: ElementRef;\n @ContentChild('suffix', { static: false }) suffixIcon: ElementRef;\n\n @HostBinding('tabindex') tabindex = -1;\n onChangeCallback: (_: any) => void = noop;\n onTouchedCallback: () => void = noop;\n onChange: (value: any) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n set(val: string) {\n this._elementClass = val.split(' ');\n }\n\n public get value(): string | number {\n return this.innerValue;\n }\n\n public set value(v: string | number) {\n if (v !== this.innerValue) {\n this.innerValue = this.type === 'number' ? +v : v;\n this.onChangeCallback(this.innerValue);\n }\n this.cdr.markForCheck();\n }\n\n\n constructor(private elementRef: ElementRef,\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n if (this.clearable) {\n this._elementClass.push('clearable');\n }\n if (this.prefixIcon) {\n this._elementClass.push('with-prefix');\n }\n if (this.suffixIcon) {\n this._elementClass.push('with-suffix');\n }\n if (this.type === 'search') {\n this._elementClass.push('search-type');\n }\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n writeValue(value: number | string) {\n if (value !== this.innerValue) {\n this.innerValue = value;\n this.updateChanges();\n this.cdr.markForCheck();\n }\n }\n\n updateChanges() {\n this.onChange(this.value);\n }\n\n setDisabledState(isDisabled: boolean) {\n if (isDisabled) {\n this._elementClass.push('disabled');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'disabled');\n }\n this._disabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n onSearchClicked($event: any) {\n this.searchHandler.emit($event);\n }\n\n onButtonClicked($event: any) {\n this.buttonHandler.emit($event);\n this._buttonOptions.focusSet = false;\n this.cdr.markForCheck();\n }\n\n ngOnDestroy(): void {\n if (this.listenFunc) {\n this.listenFunc();\n this.globalListenFunc();\n }\n }\n\n onClear($event) {\n $event.preventDefault();\n $event.stopPropagation();\n this.value = null;\n }\n}\n","import {\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n TemplateRef\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nconst SELECT_HOST_ATTRIBUTES = [\n 'no-left-border',\n 'no-left-border-radius',\n 'no-right-border',\n 'no-right-border-radius',\n];\n\n@Component({\n selector: 'dr-select',\n templateUrl: './dr-select.component.html',\n styleUrls: ['./dr-select.component.scss'],\n providers: [{\n provide: NG_VALUE_ACCESSOR,\n useExisting: DrSelectComponent,\n multi: true\n }]\n})\nexport class DrSelectComponent implements ControlValueAccessor {\n\n @Input() className: string;\n @Input() items: Array<any> = [];\n @Input() addTag: boolean | ((term: string) => any | Promise<any>);\n @Input() appendTo = 'body';\n @Input() bindLabel: string;\n @Input() bindValue: string;\n @Input() clearable: boolean;\n @Input() searchable: boolean;\n @Input() searchFn: (term: string, item: any) => boolean;\n @Input() multiple: boolean;\n @Input() hideSelected: boolean;\n @Input() placeholder: string;\n @Input() loading: boolean;\n @Input() readonly: boolean;\n @Input() disabled = false;\n @Input() groupBy = null;\n @Input() optionWithDescription = false;\n @Input() id: string;\n @Input() keyDownFn: ($event: KeyboardEvent) => boolean = () => true;\n @Input() selectedItem: any;\n\n @Input() set textView(val: boolean) {\n this.asTextView = val;\n }\n\n @Input() autofocus: boolean;\n @Input() isOpen: boolean;\n @Output() change: EventEmitter<any> = new EventEmitter<any>();\n @Output() open: EventEmitter<any> = new EventEmitter<any>();\n\n @ContentChild('labelTemplate') labelTemplate: TemplateRef<any>;\n @ContentChild('optionTemplate') optionTemplate: TemplateRef<any>;\n @ContentChild('optionHeaderTemplate') optionHeaderTemplate: TemplateRef<any>;\n @ContentChild('optionFooterTemplate') optionFooterTemplate: TemplateRef<any>;\n @HostBinding('class.textView') asTextView = false;\n\n constructor(private elementRef: ElementRef<HTMLElement>) {\n for (const attr of SELECT_HOST_ATTRIBUTES) {\n if (this.hasHostAttributes(attr)) {\n (this.getHostElement()).classList.add(attr);\n }\n }\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: any): void {\n this.selectedItem = value;\n this.onChange(this.selectedItem);\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n\n if (fn && this.selectedItem) {\n this.onChange(this.selectedItem);\n }\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean) {\n this.disabled = isDisabled;\n }\n\n private getHostElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n\n private hasHostAttributes(...attributes: string[]): boolean {\n return attributes.some(attribute => this.getHostElement().hasAttribute(attribute));\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'dr-avatar',\n templateUrl: 'dr-avatar.component.html',\n styleUrls: ['dr-avatar.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrAvatarComponent {\n @Input() set users(users: any[] | any) {\n if (users) {\n this.parsedUsers = Array.isArray(users) ? users : [users];\n this.parsedUsers.forEach((user, index) => {\n if (!user.colorNumber) {\n user.colorNumber = index % 5;\n }\n });\n }\n }\n\n @Input() warning = false;\n @Input() showUnassigned = false;\n @Output() userClicked: EventEmitter<any> = new EventEmitter<any>();\n parsedUsers: any[] = [];\n\n constructor() {\n }\n\n getFirstUsers(): any[] {\n return this.parsedUsers.slice(0, 2);\n }\n\n getLastUsers(): any[] {\n if (this.parsedUsers.length > 2) {\n return this.parsedUsers.slice(2, this.parsedUsers.length - 1);\n }\n return [];\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'drAvatar'\n})\nexport class DrAvatarPipe implements PipeTransform {\n\n transform(item: any, type: string = 'full'): string {\n if (type === 'initials') {\n const email = item.email ? item.email[0] : '';\n return (item.first_name && item.last_name ? (item.first_name[0] + item.last_name[0]) : email).toUpperCase();\n }\n\n return item.first_name && item.last_name ? (item.first_name + ' ' + item.last_name) : item.email;\n }\n}\n","import { animate, style, transition } from '@angular/animations';\n\nexport const POPUP_POSITIONS = {\n top: {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -8\n },\n 'top-left': {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -8\n },\n 'top-right': {\n originX: 'end',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetY: -8\n },\n bottom: {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 7\n },\n 'bottom-left': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 7\n },\n 'bottom-right': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n offsetY: 7\n },\n left: {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n offsetX: -8\n },\n 'left-top': {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n offsetX: -8\n },\n 'left-bottom': {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n offsetX: -8\n },\n right: {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n offsetX: 8\n },\n 'right-top': {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n offsetX: 8\n },\n 'right-bottom': {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetX: 8\n }\n};\n\nexport const POPUP_ANIMATION = [\n transition(':enter', [\n style({ opacity: 0 }),\n animate(150, style({ opacity: 1 })),\n ]),\n transition(':leave', [\n animate(150, style({ opacity: 0 })),\n ]),\n];\n","import { Component, HostListener, Input, OnInit, TemplateRef } from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { BehaviorSubject } from 'rxjs';\n\ntype TooltipOptions = {\n withoutContainerStyles?: boolean;\n withoutArrow?: boolean;\n};\n\n@Component({\n selector: 'dr-tooltip',\n templateUrl: './dr-tooltip.component.html',\n styleUrls: ['./dr-tooltip.component.scss'],\n animations: [\n trigger('tooltip', POPUP_ANIMATION),\n ],\n})\nexport class TooltipComponent implements OnInit {\n\n @Input() content;\n @Input() contentContext;\n @Input() position;\n @Input() options: TooltipOptions;\n @Input() class: string;\n isContentTemplate = false;\n\n public isMouseOn$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n constructor() {\n }\n\n ngOnInit(): void {\n this.isContentTemplate = this.content instanceof TemplateRef;\n }\n\n @HostListener('mouseenter')\n setMouseOn() {\n this.isMouseOn$.next(true);\n }\n\n @HostListener('mouseleave')\n unsetMouseOn() {\n this.isMouseOn$.next(false);\n }\n\n}\n","import { ComponentRef, Directive, ElementRef, HostListener, Input, OnDestroy } from '@angular/core';\nimport { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport { Subscription } from 'rxjs';\nimport { skip } from 'rxjs/operators';\n\n@Directive({\n selector: '[drTooltip]'\n})\nexport class DrTooltipDirective implements OnDestroy {\n\n @Input('drTooltip')\n content: any;\n @Input('drTooltipContext')\n contentContext = {};\n @Input('drTooltipPosition')\n position = 'top';\n @Input('drTooltipClass')\n class = '';\n\n // is used for preserve tooltip from being hidden for N milliseconds\n @Input() drTooltipMousleaveTimeout = 0;\n\n @Input()\n set drTooltipOptions(options: any) {\n if (options?.indent) {\n const position = POPUP_POSITIONS[this.position];\n if (position.offsetY) {\n position.offsetY = position.offsetY < 0 ? -options.indent : options.indent;\n }\n if (position.offsetX) {\n position.offsetX = position.offsetX < 0 ? -options.indent : options.indent;\n }\n }\n this.options = options;\n }\n\n @Input('drTooltipShow')\n set showTooltip(value: boolean) {\n this.manualHandling = true;\n if (value) {\n this.renderTooltip();\n } else {\n this.destroyTooltip();\n }\n }\n\n private overlayRef: OverlayRef;\n private tooltipRef: ComponentRef<TooltipComponent>;\n\n private options;\n private manualHandling: boolean;\n private tooltipMouseOnSubscription: Subscription;\n private mouseleaveTimer: ReturnType<typeof setTimeout>;\n\n constructor(private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef) {\n }\n\n ngOnDestroy(): void {\n if (!this.overlayRef) return null;\n\n if (this.overlayRef.hasAttached()) {\n this.hide();\n }\n // TODO: Temporary solution. line 162 doesn't stop function execution\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n\n @HostListener('mouseenter')\n show() {\n if (this.manualHandling || this.overlayRef) return;\n\n this.renderTooltip();\n }\n\n @HostListener('mouseleave')\n hide() {\n if (this.manualHandling || !this.tooltipRef || this.tooltipRef?.instance.isMouseOn$.getValue()) return;\n\n // if this timeout value is set - then preserve\n // tooltip from being hidden N milliseconds and not hiding it\n // in case mouse is pointed on tooltip\n if (this.drTooltipMousleaveTimeout) {\n\n if (this.mouseleaveTimer) {\n clearTimeout(this.mouseleaveTimer);\n }\n\n this.mouseleaveTimer = setTimeout(() => {\n if (this.tooltipRef && !this.tooltipRef?.instance.isMouseOn$.getValue()) {\n this.destroyTooltip();\n }\n }, this.drTooltipMousleaveTimeout);\n } else {\n this.destroyTooltip();\n }\n }\n\n private createOverlay(): void {\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef).withPositions([POPUP_POSITIONS[this.position]]);\n\n this.overlayRef = this.overlay.create({ positionStrategy });\n }\n\n private renderTooltip(): void {\n this.createOverlay();\n if (!this.overlayRef?.hasAttached() && this.content) {\n this.tooltipRef = this.overlayRef.attach(new ComponentPortal(TooltipComponent));\n this.tooltipRef.instance.content = this.content;\n this.tooltipRef.instance.contentContext = this.contentContext;\n this.tooltipRef.instance.position = this.position;\n this.tooltipRef.instance.options = this.options;\n this.tooltipRef.instance.class = this.class + ' ' + this.position;\n\n this.tooltipMouseOnSubscription = this.tooltipRef.instance.isMouseOn$.pipe(skip(1)).subscribe((isMouseOn: boolean) => {\n if (!isMouseOn) {\n this.destroyTooltip();\n }\n });\n }\n }\n\n private destroyTooltip(): void {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n this.overlayRef = null;\n this.tooltipRef = null;\n\n if (this.tooltipMouseOnSubscription) {\n this.tooltipMouseOnSubscription.unsubscribe();\n }\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-toggle',\n templateUrl: './dr-toggle.component.html',\n styleUrls: ['./dr-toggle.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrToggleComponent, multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrToggleComponent implements ControlValueAccessor, AfterViewInit {\n _disabled = false;\n _elementClass: string[] = [];\n\n @Input()\n toggleTitle: any;\n @Input()\n toggleTitleRight: boolean;\n @Input()\n successType: boolean;\n @Input()\n checkedStatus: boolean;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n @Output() checkedChange = new EventEmitter();\n\n @HostBinding('class') get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit(): void {\n if (this.toggleTitleRight) {\n this._elementClass.push('toggle-label-alignment');\n }\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: boolean) {\n this.checkedStatus = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue() {\n this.checkedStatus = !this.checkedStatus;\n this.onChange(this.checkedStatus);\n this.checkedChange.emit(this.checkedStatus);\n this.onTouched();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\n@Component({\n selector: 'dr-toggle-button',\n templateUrl: './dr-toggle-button.component.html',\n styleUrls: ['./dr-toggle-button.component.scss'],\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DrToggleButtonComponent), multi: true }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\n\nexport class DrToggleButtonComponent implements ControlValueAccessor {\n _disabled = false;\n\n @Input() items: string[] | any[];\n @Input() bindLabel: string | null = null;\n @Input() bindValue: string | null = null;\n @Input() selectedValue: boolean;\n\n @Input() set disabled(value: boolean) {\n this.setDisabledState(value);\n }\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n onChange: (value: boolean) => void = () => {\n };\n onTouched: () => void = () => {\n };\n\n writeValue(value: any) {\n this.selectedValue = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this._disabled = isDisabled;\n }\n\n setValue(item) {\n this.selectedValue = item[this.bindValue] || item;\n this.onChange(this.selectedValue);\n this.onTouched();\n this.cdr.markForCheck();\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ISpinnerOptions } from '../models/spinnerOptions';\n\n@Component({\n selector: 'dr-spinner',\n templateUrl: './dr-spinner.component.html',\n styleUrls: ['./dr-spinner.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrSpinnerComponent {\n\n private _options: ISpinnerOptions;\n\n public set options(data: ISpinnerOptions) {\n this._options ||= data;\n }\n\n public get options(): ISpinnerOptions {\n return this._options;\n }\n}\n","export enum SpinnerType {\n LOGO = 'logo',\n CIRCLE = 'circle',\n}\n\nexport enum SpinnerSize {\n SMALL = 'small',\n MEDIUM = 'medium',\n BIG = 'big',\n GIANT = 'giant',\n}\n\nexport interface ISpinnerOptions extends DOMRect {\n spinnerType?: SpinnerType;\n spinnerSize?: SpinnerSize;\n}\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n Renderer2,\n SimpleChanges,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { SpinnerSize, SpinnerType } from '../models/spinnerOptions';\n\n@Directive({\n selector: '[drSpinner]'\n})\nexport class DrSpinnerDirective implements OnChanges, OnDestroy {\n\n @ViewChild(DrSpinnerComponent, { static: true, read: ViewContainerRef }) contentCmpRef;\n @Input() drSpinner;\n @Input() drSpinnerSize: SpinnerSize = SpinnerSize.MEDIUM;\n @Input() drSpinnerType: SpinnerType = SpinnerType.LOGO;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private el: ElementRef,\n private rdr: Renderer2,\n @Inject(DOCUMENT) private _document: any) {\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const show = changes.drSpinner.currentValue;\n const options = this.el.nativeElement.getBoundingClientRect();\n if (this.contentCmpRef && !show) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n } else if (this.drSpinner) {\n this.showSpinner({ ...options, spinnerSize: this.drSpinnerSize, spinnerType: this.drSpinnerType });\n }\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n\n private showSpinner(options) {\n const componentFactory: ComponentFactory<DrSpinnerComponent> = this.componentFactoryResolver.resolveComponentFactory(DrSpinnerComponent);\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\n this.rdr.appendChild(this.el.nativeElement, this.contentCmpRef.location.nativeElement);\n this.contentCmpRef.instance.options = options;\n }\n}\n","import { Component, EventEmitter, HostBinding, Input, Output } from '@angular/core';\n\ntype ButtonType = 'primary' | 'secondary' | 'danger' | 'primary-icon' |\n 'secondary-icon' | 'icon' | 'primary-square' | 'ghost' | 'link-btn' | 'text-link' | 'simple-text' |\n 'split-primary-first' | 'split-primary-last' | 'split-secondary-first' | 'split-secondary-last' | 'dropdown';\n\n@Component({\n selector: 'dr-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss']\n})\nexport class DrButtonComponent {\n\n _disabled = null;\n _isLoading = false;\n _elementClass: string[] = [];\n\n @Input() title: string;\n @Input() theme: ButtonType = 'primary';\n @Input() icon: string;\n @Input() iconAfterLabel: string;\n @Input() isBold = false;\n @Input() iconColor: string;\n\n @Input() set disabled(value) {\n if (value) {\n this._elementClass.push('disabled');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'disabled');\n }\n this._disabled = value;\n }\n\n @Input() set isLoading(value) {\n if (value) {\n this._elementClass.push('loading');\n } else {\n this._elementClass = this._elementClass.filter(item => item !== 'loading');\n }\n this._isLoading = !!value;\n }\n\n @Output() click = new EventEmitter();\n\n @HostBinding('class')\n get elementClass(): string {\n return this._elementClass.join(' ');\n }\n\n set(val: string) {\n this._elementClass = val.split(' ');\n }\n\n constructor() {\n }\n\n public onClick($event) {\n $event.preventDefault();\n $event.stopPropagation();\n this.click.emit($event);\n }\n}\n\n// Examples:\n/*\n<dr-button [icon]=\"'dr-icon-arrow-down'\">hello</dr-button>\n<dr-button [icon]=\"'dr-icon-refresh'\" [theme]=\"'primary-icon'\"></dr-button>\n<dr-button [icon]=\"'dr-icon-refresh'\" [isDisabled]=\"true\" [theme]=\"'primary-icon'\"></dr-button>\n<dr-button [theme]=\"'secondary'\" [icon]=\"'dr-icon-excel'\" [iconColor]=\"'#03A678'\"></dr-button>\n\n<dr-button [icon]=\"'dr-icon-refresh'\" [theme]=\"'secondary-icon'\"></dr-button>\n<dr-button [icon]=\"'dr-icon-share'\" [isDisabled]=\"true\" [theme]=\"'secondary-icon'\"></dr-button>\n\n<dr-button [icon]=\"'dr-icon-share'\" [theme]=\"'icon'\"></dr-button>\n<dr-button [icon]=\"'dr-icon-share'\" [isDisabled]=\"true\" [theme]=\"'icon'\"></dr-button>\n\n<dr-button [isDisabled]=\"false\" [icon]=\"'dr-icon-refresh'\">Primary</dr-button>\n<dr-button [isDisabled]=\"false\" >Primary</dr-button>\n<dr-button [isDisabled]=\"false\" [icon]=\"'dr-icon-refresh'\" [theme]=\"'secondary'\">Secondary</dr-button>\n<dr-button [isDisabled]=\"false\" [icon]=\"'dr-icon-refresh'\" [theme]=\"'ghost'\">Ghost</dr-button>\n<dr-button [isDisabled]=\"false\" [theme]=\"'text-link'\">Text Link</dr-button>\n*/\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentRef } from '@angular/core';\nimport { Observable, Subject } from 'rxjs';\nimport { DrPopoverComponent } from './dr-popover.component';\n\nexport class DrPopoverRef<T = any> {\n\n componentRef: ComponentRef<DrPopoverComponent<T>>;\n\n protected onClose$: Subject<any> = new Subject();\n // FIXME: this decision was made because of the incompatible rxjs version\n /**\n * Correct type is @type {Observable<any>}\n */\n readonly onClose: any = this.onClose$.asObservable();\n\n readonly onBackdropClick: Observable<MouseEvent>;\n\n constructor(private overlayRef: OverlayRef) {\n this.onBackdropClick = this.overlayRef.backdropClick();\n }\n\n close(res?: any): void {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n this.onClose$.next(res);\n this.onClose$.complete();\n }\n}\n","import { POPUP_POSITIONS } from './constants';\nimport { ElPosition } from './dropdown';\nimport { ElementRef } from '@angular/core';\nimport { OverlayConfig } from '@angular/cdk/overlay';\n\nexport { DrPopoverRef } from '../dr-popover/dr-popover-ref';\n\nexport interface Point {\n readonly x: number;\n readonly y: number;\n}\n\nexport interface IPopoverManualClosing {\n enabled: boolean;\n}\n\nexport interface IDrPopoverComponentModel {\n hostRef: ElementRef | HTMLElement | Point;\n position?: ElPosition;\n contentContext?: any;\n class?: string;\n overlayConfig?: DrPopoverConfig;\n manualClosing?: IPopoverManualClosing;\n targetElement?: HTMLElement;\n alignment?: DrPopoverAlignment;\n}\n\nexport interface DrPopoverConfig extends OverlayConfig {\n closeOnBackdropClick?: boolean;\n}\n\nexport type DrPopoverAlignment = 'host';\n\nexport enum DrPopoverAlignmentDimension {\n Width = 'width',\n Height = 'height',\n}\n\nexport const DEFAULT_CONFIG: DrPopoverConfig = {\n hasBackdrop: false,\n closeOnBackdropClick: false,\n backdropClass: 'dr-popover-transparent-backdrop',\n};\n\nexport const DEFAULT_MODEL: Partial<IDrPopoverComponentModel> = {\n position: 'bottom',\n class: '',\n overlayConfig: {},\n manualClosing: { enabled: false },\n};\n\nexport const getAlignmentDimension = (position: string): DrPopoverAlignmentDimension => {\n if (!POPUP_POSITIONS[position]) return DrPopoverAlignmentDimension.Width;\n if (position?.includes('left') || position?.includes('right')) {\n return DrPopoverAlignmentDimension.Height;\n }\n return DrPopoverAlignmentDimension.Width;\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n TemplateRef,\n Type,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { trigger } from '@angular/animations';\nimport { POPUP_ANIMATION } from '../models/constants';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverAlignment, getAlignmentDimension, IPopoverManualClosing, Point } from '../models/popover';\n\n@Component({\n selector: 'dr-popover',\n templateUrl: './dr-popover.component.html',\n styleUrls: ['./dr-popover.component.scss'],\n animations: [\n trigger('popover', POPUP_ANIMATION),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrPopoverComponent<T> implements OnInit {\n\n @Input() content: TemplateRef<any> | Type<T>;\n @Input() contentContext: any;\n @Input() class = '';\n @Input() hostRef: ElementRef<unknown> | HTMLElement | Point;\n @Input() manualClosing: IPopoverManualClosing;\n @Input() alignment: DrPopoverAlignment;\n @Input() position: string;\n\n @ViewChild('popoverContainer', { read: ElementRef, static: true }) popoverContainer: ElementRef<HTMLElement>;\n isContentTemplate = false;\n componentRef: ComponentRef<T>;\n\n @HostBinding('style.width') width: string;\n @HostBinding('style.height') height: string;\n\n @HostBinding('@popover') public popover = true;\n\n @HostListener('document:mouseup', ['$event'])\n clickOutside(e): void {\n const isTargetHost = this.hostRef instanceof ElementRef && (this.hostRef.nativeElement === e.target || (this.hostRef.nativeElement as HTMLElement).contains(e.target));\n const isTargetInPopover = this.elementRef.nativeElement.contains(e.target);\n const isTargetInDatepicker = e.target.closest('mat-datepicker-popup');\n const isTargetInSelect = e.target.closest('ng-dropdown-panel');\n const isTargetInDatepickerContent = e.target.closest('mat-datepicker-content');\n\n if (!isTargetHost\n && !isTargetInPopover\n && !isTargetInDatepicker\n && !isTargetInSelect\n && !isTargetInDatepickerContent\n && !this.manualClosing.enabled\n ) {\n this.popoverRef.close();\n }\n }\n\n constructor(\n private cdr: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private elementRef: ElementRef,\n private popoverRef: DrPopoverRef<T>,\n ) {\n }\n\n ngOnInit(): void {\n this.isContentTemplate = this.content instanceof TemplateRef;\n\n if (!this.isContentTemplate) {\n this.componentRef = this.viewContainerRef.createComponent(this.componentFactoryResolver.resolveComponentFactory(this.content as Type<T>));\n Object.assign(this.componentRef.instance, this.contentContext);\n this.popoverContainer.nativeElement.appendChild(this.componentRef.location.nativeElement);\n }\n if (this.alignment === 'host') {\n this[getAlignmentDimension(this.position)] = '100%';\n }\n\n this.cdr.detectChanges();\n }\n\n}\n","import { first } from 'rxjs/operators';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverComponent } from './dr-popover.component';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ElementRef, Injectable, Injector, StaticProvider, TemplateRef, Type } from '@angular/core';\nimport { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { POPUP_POSITIONS } from '../models/constants';\nimport {\n DEFAULT_CONFIG,\n DEFAULT_MODEL,\n getAlignmentDimension,\n IDrPopoverComponentModel,\n Point\n} from '../models/popover';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class DrPopoverService {\n\n constructor(\n private overlay: Overlay,\n private overlayPositionBuilder: OverlayPositionBuilder,\n private injector: Injector,\n ) {\n }\n\n open<T>(content: Type<T> | TemplateRef<HTMLElement>, popoverModel: IDrPopoverComponentModel): DrPopoverRef<T> {\n if (!content) return;\n\n const model = { ...DEFAULT_MODEL, ...popoverModel };\n\n const overlayRef = this.createOverlay(model);\n\n const popoverRef = new DrPopoverRef<T>(overlayRef);\n\n this.attachOverlayContainer(content, model, overlayRef, popoverRef);\n\n this.registerListeners(model, overlayRef, popoverRef);\n\n return popoverRef;\n }\n\n private attachOverlayContainer<T>(\n content: Type<T> | TemplateRef<HTMLElement>,\n { contentContext, position, class: elementClass, manualClosing, hostRef, alignment }: IDrPopoverComponentModel,\n overlayRef: OverlayRef,\n popoverRef: DrPopoverRef<T>\n ): void {\n const componentPortal = new ComponentPortal<DrPopoverComponent<T>>(DrPopoverComponent, null, this.createInjector(popoverRef));\n const contentRef = overlayRef.attach<DrPopoverComponent<T>>(componentPortal);\n\n popoverRef.componentRef = contentRef;\n\n contentRef.instance.content = content;\n contentRef.instance.contentContext = { ...contentContext, closePopover: popoverRef.close.bind(popoverRef) };\n contentRef.instance.class = elementClass + ' ' + position;\n contentRef.instance.manualClosing = manualClosing;\n contentRef.instance.hostRef = hostRef;\n contentRef.instance.alignment = alignment;\n contentRef.instance.position = position;\n }\n\n private createOverlay(popoverModel: IDrPopoverComponentModel): OverlayRef {\n const overlayConfig = this.getOverlayConfig(popoverModel);\n return this.overlay.create(overlayConfig);\n }\n\n private getOverlayConfig(popoverModel: IDrPopoverComponentModel): OverlayConfig {\n if (!POPUP_POSITIONS[popoverModel.position]) throw new Error(`DrPopover does not support the '${ popoverModel?.position }' position!`);\n\n const config = { ...DEFAULT_CONFIG, ...popoverModel.overlayConfig || {} };\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(popoverModel.hostRef).withPositions([POPUP_POSITIONS[popoverModel.position]]);\n\n const overlayConfig = new OverlayConfig({\n scrollStrategy: this.overlay.scrollStrategies.noop(),\n positionStrategy,\n ...config,\n });\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n overlayConfig[alignmentDimension] = hostElement.getBoundingClientRect()[alignmentDimension];\n }\n\n return overlayConfig;\n }\n\n private createInjector<T>(popoverRef: DrPopoverRef<T>): Injector {\n const injectionTokens: StaticProvider[] = [\n { provide: DrPopoverRef, useValue: popoverRef },\n ];\n\n return Injector.create({ providers: injectionTokens, parent: this.injector });\n }\n\n private registerListeners<T>(popoverModel: IDrPopoverComponentModel, overlayRef: OverlayRef, popoverRef: DrPopoverRef<T>): void {\n const config = popoverModel.overlayConfig || {};\n const targetElement = popoverModel.targetElement;\n const hostElement = this.getHostElement(popoverModel.hostRef);\n\n if (config?.closeOnBackdropClick && config?.hasBackdrop) {\n overlayRef.backdropClick().subscribe(() => popoverRef.close());\n }\n\n if (targetElement) {\n targetElement.addEventListener('mouseup', () => popoverRef.close(), { once: true });\n }\n\n if (popoverModel.alignment === 'host' && hostElement) {\n const alignmentDimension = getAlignmentDimension(popoverModel.position);\n const resizeObserver = new ResizeObserver(entries => {\n entries.forEach(host => overlayRef.updateSize({ [alignmentDimension]: host.target.getBoundingClientRect()[alignmentDimension] }));\n });\n resizeObserver.observe(hostElement);\n popoverRef.onClose.pipe(first()).subscribe(() => resizeObserver.unobserve(hostElement));\n }\n }\n\n private getHostElement<T>(hostRef: Point | HTMLElement | ElementRef<T>): HTMLElement {\n if (!hostRef || (<Point>hostRef).x) return null;\n if ((<ElementRef>hostRef).nativeElement) return (<ElementRef>hostRef).nativeElement;\n return <HTMLElement>hostRef;\n }\n\n}\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnDestroy,\n Output,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport { OverlayConfig } from '@angular/cdk/overlay';\nimport { first } from 'rxjs/operators';\nimport { ElPosition } from './../models/dropdown';\nimport { DrPopoverRef } from './dr-popover-ref';\nimport { DrPopoverService } from './dr-popover.service';\nimport { DrPopoverAlignment, IPopoverManualClosing } from '../models/popover';\n\n@Directive({\n selector: '[drPopover]'\n})\nexport class DrPopoverDirective<T> implements OnDestroy {\n\n @Input('drPopover') content: TemplateRef<any> | Type<T>;\n\n @Input('drPopoverContext') contentContext: any = {};\n\n @Input('drPopoverPosition') position: ElPosition = 'bottom';\n\n @Input('drPopoverClass') class = '';\n\n @Input('drPopoverOverlayConfig') overlayConfig: OverlayConfig = {};\n\n @Input('drPopoverManualClosing') manualClosing: IPopoverManualClosing = { enabled: false };\n\n @Input('drPopoverAlignment') alignment: DrPopoverAlignment;\n\n @Input('drPopoverDisabled') disabled: boolean;\n\n // eslint-disable-next-line\n @Output('drPopoverClose') popoverClose = new EventEmitter<any>();\n\n // eslint-disable-next-line\n @Output('drPopoverShowStateChange') showStateChange = new EventEmitter<{ isShown: boolean }>();\n\n private popoverRef: DrPopoverRef<T>;\n\n constructor(private elementRef: ElementRef,\n private drPopoverService: DrPopoverService,\n ) {\n }\n\n @HostListener('click')\n togglePopover(): void {\n if (this.disabled) return;\n\n if (this.popoverRef) {\n this.closePopover();\n } else {\n this.renderPopover();\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n }\n }\n\n closePopover(res?: any): void {\n if (this.popoverRef) {\n this.popoverRef.close(res);\n this.popoverRef = null;\n }\n }\n\n private renderPopover(): void {\n const popoverRef = this.popoverRef = this.drPopoverService.open(this.content, {\n hostRef: this.elementRef,\n overlayConfig: this.overlayConfig,\n class: this.class,\n manualClosing: this.manualClosing,\n position: this.position,\n contentContext: this.contentContext,\n alignment: this.alignment,\n });\n\n popoverRef.onClose.pipe(first()).subscribe((res) => {\n this.closePopover();\n this.popoverClose.emit(res);\n this.showStateChange.emit({ isShown: !!this.popoverRef });\n });\n }\n\n ngOnDestroy(): void {\n this.closePopover();\n }\n}\n","import { ComponentRef, Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { IDropdownAction } from '../models/dropdown';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DrDropdownService {\n\n actionItem = new Subject<IDropdownAction<unknown>>();\n protected menuInView: ComponentRef<DrDropdownComponent>;\n\n constructor() {\n }\n\n set addMenu(item: ComponentRef<DrDropdownComponent>) {\n this.menuInView = item;\n }\n\n destroy() {\n if (this.menuInView) {\n this.menuInView.destroy();\n }\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';\nimport { ElPosition, IDropdown, IDropdownActionIcon, IDropdownCoordinate, IDropdownItem } from '../models/dropdown';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@Component({\n selector: 'dr-dropdown',\n templateUrl: './dr-dropdown.component.html',\n styleUrls: ['./dr-dropdown.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DrDropdownComponent {\n\n @ViewChild('listMenu') viewMenu: HTMLElement;\n @ViewChild('menuContainer') menuContainer: HTMLElement;\n option: any;\n position: ElPosition | IDropdownCoordinate = 'left';\n drDropdownInHover: boolean;\n list: IDropdownItem<unknown>[];\n containerClass: string;\n public wasHovered = false;\n private firstInit: boolean;\n\n constructor(protected menuService: DrDropdownService, private cdr: ChangeDetectorRef) {\n }\n\n @Input() set options(data: IDropdown<IDropdownItem<any>>) {\n if (data) {\n this.option = data.option;\n this.position = data.position;\n this.drDropdownInHover = data.drDropdownInHover;\n this.containerClass = data.class;\n this.list = data.list || [];\n this.list.forEach(item => {\n if (item.children?.length) {\n item.childOptions = {\n list: item.children,\n class: item?.childOptions?.class || '',\n position: 'child'\n };\n }\n });\n this.cdr.markForCheck();\n }\n }\n\n onMouseEnter(): void {\n this.wasHovered = true;\n }\n\n onMouseLeave(): void {\n if (this.drDropdownInHover) this.menuService.destroy();\n }\n\n onClickedOutside(): void {\n if (this.firstInit) {\n this.menuService.destroy();\n } else {\n this.firstInit = true;\n }\n }\n\n hide(): void {\n this.menuService.destroy();\n }\n\n disabled(act: IDropdownItem<unknown> | IDropdownActionIcon<any>): boolean {\n if (!act.disabled) {\n return false;\n }\n if (typeof act.disabled === 'boolean') {\n return act.disabled;\n } else {\n return act.disabled(act.data);\n }\n }\n\n selected(act: IDropdownItem<unknown>): boolean {\n if (!act.selected) {\n return false;\n }\n if (typeof act.selected === 'boolean') {\n return act.selected;\n } else {\n return act.selected(act.data);\n }\n }\n\n tooltipToShow(act: IDropdownItem<unknown>): string {\n if (act.toolTipIfDisabled && !this.disabled(act)) return '';\n return act.toolTip;\n }\n\n tooltipPosition(widthMoreRight: boolean) {\n return widthMoreRight ? 'right' : 'left';\n }\n\n action(act: IDropdownItem<any>) {\n if (!this.disabled(act)) {\n if (act.action) {\n act.action(act.data);\n } else {\n this.menuService.actionItem.next({ event: act.event || act.title || 'default', data: act.data });\n }\n this.hide();\n }\n }\n\n onActionIconClick($event, actionIcon: IDropdownActionIcon<any>, data: any) {\n $event.stopPropagation();\n if (!this.disabled(actionIcon)) {\n actionIcon.action(data);\n this.hide();\n }\n }\n}\n\n","import {\n ComponentFactory,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n HostListener,\n Inject,\n Input,\n OnDestroy,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { ElPosition, IDropdown, IDropdownItem } from '../models/dropdown';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@Directive({\n selector: '[drDropdown]'\n})\nexport class DrDropdownDirective<T> implements OnDestroy {\n\n @Input() position: ElPosition = 'left';\n @Input() drDropdown: IDropdownItem<T>[];\n @Input() drDropdownClass: string;\n @Input() drDropdownInHover: boolean;\n @ViewChild(DrDropdownComponent, { static: true, read: ViewContainerRef }) contentCmpRef;\n\n private readonly mouseleaveTimeout = 200;\n\n constructor(private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private service: DrDropdownService,\n private el: ElementRef,\n @Inject(DOCUMENT) private _document: any) {\n }\n\n @HostListener('mouseenter') elementHover() {\n if (!this.drDropdownInHover) return;\n this.openDropdown();\n }\n\n @HostListener('click') elementClick() {\n this.openDropdown();\n }\n\n @HostListener('mouseleave') leaveDropdownTriggerElement() {\n if (this.drDropdownInHover) {\n setTimeout(_ => {\n if (this.contentCmpRef && !this.contentCmpRef.instance.wasHovered) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n }\n }, this.mouseleaveTimeout);\n }\n }\n\n @HostListener('document:mouseup', ['$event']) documentClick(e) {\n this.closeDropdown(e);\n }\n\n private openDropdown(): void {\n const option = this.el.nativeElement.getBoundingClientRect();\n this._document.querySelectorAll('dr-dropdown').forEach(item => item.remove());\n if (this.contentCmpRef && this.contentCmpRef.destroyCbs) {\n this.contentCmpRef.destroy();\n this.contentCmpRef = null;\n } else {\n this.service.destroy();\n this.showMenu({\n option,\n drDropdownInHover: this.drDropdownInHover,\n position: this.position,\n list: this.drDropdown,\n class: this.drDropdownClass\n });\n }\n }\n\n private closeDropdown(e): void {\n\n if (!this.contentCmpRef) {\n return;\n }\n\n const clickTarget = e.target;\n const triggerElement = this.el.nativeElement;\n const dropdownElement = this.contentCmpRef.location.nativeElement;\n const isClickTriggerElement = triggerElement.contains(clickTarget) || triggerElement === clickTarget;\n const isClickDropdownContents = dropdownElement.contains(clickTarget);\n\n if (!isClickTriggerElement && !isClickDropdownContents) {\n const elems = this._document.querySelectorAll('dr-dropdown');\n setTimeout(() => elems.forEach(item => item.remove()), 100);\n }\n }\n\n private showMenu(options: IDropdown<T>) {\n const componentFactory: ComponentFactory<DrDropdownComponent> = this.componentFactoryResolver.resolveComponentFactory(DrDropdownComponent);\n this.contentCmpRef = this.viewContainerRef.createComponent(componentFactory);\n this.service.addMenu = this.contentCmpRef;\n this._document.querySelector('dr-layout').appendChild(this.contentCmpRef.location.nativeElement);\n this.contentCmpRef.instance.options = options;\n }\n\n public ngOnDestroy() {\n if (this.contentCmpRef) {\n this.contentCmpRef.destroy();\n }\n }\n}\n","import { Directive, ElementRef, Input, OnInit, Renderer2 } from '@angular/core';\nimport { ElPosition, IDropdownCoordinate } from '../models/dropdown';\n\n@Directive({\n selector: '[drDropdownPosition]',\n exportAs: 'dropdownPosition'\n})\nexport class DrDropdownPositionDirective implements OnInit {\n\n @Input() drDropdownPosition;\n @Input() position: ElPosition | IDropdownCoordinate = 'left';\n\n widthMoreRight: boolean;\n\n constructor(private el: ElementRef, private renderer: Renderer2) {\n }\n\n ngOnInit(): void {\n setTimeout(this.calculatePosition.bind(this), 1);\n }\n\n calculatePosition() {\n let xDifference = 0;\n let defaultDelta = 10;\n let defaultPadding = 0;\n const originalPosition = this.position;\n\n if (this.position === 'child') {\n defaultDelta = 0;\n defaultPadding = 10;\n xDifference = this.el.nativeElement.parentElement.parentElement.offsetWidth - this.el.nativeElement.offsetWidth;\n const parentRect = this.el.nativeElement.parentElement.parentElement.getBoundingClientRect();\n\n this.position = {\n x: this.el.nativeElement.offsetWidth,\n y: this.el.nativeElement.parentElement.parentElement.offsetTop - 9,\n clientX: parentRect.x + this.el.nativeElement.parentElement.parentElement.offsetWidth,\n clientY: parentRect.y\n };\n }\n\n if (typeof this.position === 'string') {\n this.renderer.setStyle(this.el.nativeElement, 'top',\n this.position === 'bottom' ?\n this.drDropdownPosition.y - this.drDropdownPosition.height + 'px' :\n this.drDropdownPosition.y + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'left',\n this.position === 'right' ?\n this.drDropdownPosition.x + this.drDropdownPosition.width + 'px' :\n this.drDropdownPosition.x + 'px');\n const menuHeight = this.el.nativeElement.offsetHeight;\n const heightMoreWindowBottom = menuHeight + this.drDropdownPosition.y > window.innerHeight;\n const heightMoreWindowTop = menuHeight - this.drDropdownPosition.y + this.drDropdownPosition.height / 2 > 48; // header height;\n const widthMoreWindowRight = this.drDropdownPosition.x + 250 > window.innerWidth;\n\n const spaceBetweenElAndRightBorder = window.innerWidth - (this.drDropdownPosition.x + this.el.nativeElement.offsetWidth);\n this.widthMoreRight = this.drDropdownPosition.x < spaceBetweenElAndRightBorder;\n\n if (heightMoreWindowBottom) {\n this.position = 'top';\n }\n if (heightMoreWindowBottom && widthMoreWindowRight && !heightMoreWindowTop || this.position === 'top-left') {\n this.position = 'top-left';\n this.renderer.setStyle(this.el.nativeElement, 'transform',\n 'translate(-100%, calc(-100% + ' + this.drDropdownPosition.height + 'px))');\n }\n if (heightMoreWindowTop && heightMoreWindowBottom) {\n this.position = 'left-center';\n }\n if (this.position === 'bottom-left') {\n this.renderer.setStyle(\n this.el.nativeElement,\n 'transform',\n `translate(calc(-100% + ${ this.drDropdownPosition.width }px), ${ this.drDropdownPosition.height + 8 }px)`\n );\n }\n const className = this.position === 'top' ? 'content-top'\n : this.position === 'top-left' ? 'content-top-left'\n : this.position === 'bottom' ? 'content-bottom'\n : this.position === 'bottom-left' ? 'content-bottom-left'\n : this.position === 'left' ? 'content-left'\n : this.position === 'left-center' ? 'content-left-center'\n : this.position === 'right' ? 'content-right'\n : this.position === 'bottom-right' ? 'content-bottom-right' : '';\n this.renderer.addClass(this.el.nativeElement, className);\n this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');\n } else {\n const defaultChildPadding = 3;\n const widthMoreWindowRight = originalPosition !== 'child'\n ? window.innerWidth - (this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding)\n : window.innerWidth - this.position.clientX - this.el.nativeElement.offsetWidth - defaultPadding;\n\n const widthMoreWindowBottom = originalPosition !== 'child'\n ? window.innerHeight - (this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding)\n : window.innerHeight - this.position.clientY - this.el.nativeElement.offsetHeight - defaultPadding;\n\n const spaceRightAmount = window.innerWidth - (this.position.clientX + this.el.nativeElement.offsetWidth + defaultPadding);\n this.widthMoreRight = !(widthMoreWindowRight < 0);\n\n let calculatedHorizantallyPos = widthMoreWindowRight < 0\n ? -this.position.x + -defaultChildPadding\n : this.position.x + defaultChildPadding + xDifference;\n\n if (spaceRightAmount <= 0 && originalPosition !== 'child') {\n calculatedHorizantallyPos -= this.el.nativeElement.offsetWidth;\n }\n\n const deltaHeight = widthMoreWindowBottom < 0 ? widthMoreWindowBottom : defaultDelta;\n\n this.renderer.setStyle(this.el.nativeElement, 'top', (this.position.y + deltaHeight) + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'left', (calculatedHorizantallyPos) + 'px');\n this.renderer.setStyle(this.el.nativeElement, 'z-index', '10010');\n }\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { IDropdownItem } from '../models/dropdown';\n\n@Pipe({\n name: 'drDropdownItemShowPipe'\n})\nexport class DrDropdownItemShowPipe<T> implements PipeTransform {\n transform(arr: IDropdownItem<T>[]): IDropdownItem<T>[] {\n return arr.filter(item => item.show ? item.show(item.data) : true);\n }\n}\n","import { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'dr-tab',\n template: `\n <ng-template>\n <ng-content></ng-content>\n </ng-template>\n `\n})\nexport class DrTabComponent implements OnInit {\n @Input() label: string;\n @Input() disabled: boolean;\n @ViewChild(TemplateRef) public contentTemplate: TemplateRef<any>;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, ContentChildren, EventEmitter, Input, Output, QueryList, } from '@angular/core';\nimport { DrTabComponent } from './dr-tab.component';\n\n@Component({\n selector: 'dr-tabs',\n templateUrl: './dr-tabs.component.html',\n styleUrls: ['./dr-tabs.component.scss'],\n})\nexport class DrTabsComponent {\n\n @Input() selectedTab = 0;\n @Input() withRadio: boolean;\n @Input() vertical: boolean;\n @Input() noBodyPadding = false;\n @Output() selectedTabChange: EventEmitter<any> = new EventEmitter<any>();\n @ContentChildren(DrTabComponent) public tabsContentList: QueryList<DrTabComponent>;\n\n constructor() {\n }\n\n selectedIndexChange($event) {\n this.selectedTab = $event;\n this.selectedTabChange.emit($event);\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'dr-accordion',\n template: '<ng-content select=\"dr-accordion-item\"></ng-content>',\n styleUrls: ['./accordion.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionComponent {\n static ngAcceptInputType_multi: any;\n openCloseItems = new Subject<boolean>();\n\n /**\n * Allow multiple items to be expanded at the same time.\n */\n @Input('multi')\n get multi(): boolean {\n return this.multiValue;\n }\n\n set multi(val: boolean) {\n this.multiValue = !!val;\n }\n\n private multiValue = false;\n\n /**\n * Opens all enabled accordion items.\n */\n openAll() {\n if (this.multi) {\n this.openCloseItems.next(false);\n }\n }\n\n /**\n * Closes all enabled accordion items.\n */\n closeAll() {\n this.openCloseItems.next(true);\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n Host,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrAccordionComponent } from './accordion.component';\n\n@Component({\n selector: 'dr-accordion-item',\n styleUrls: ['./accordion-item.component.scss'],\n template: `\n <ng-content select=\"dr-accordion-item-header\"></ng-content>\n <ng-content select=\"dr-accordion-item-body\"></ng-content>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemComponent implements OnInit, OnChanges, OnDestroy {\n\n /**\n * Item is collapse (`true` by default)\n *\n * @type {boolean}\n */\n @Input('collapsed')\n @HostBinding('class.collapsed')\n get collapsed(): boolean {\n return this.collapsedValue;\n }\n\n set collapsed(val: boolean) {\n this.collapsedValue = !!val;\n this.collapsedChange.emit(this.collapsedValue);\n this.invalidate();\n }\n\n static ngAcceptInputType_collapsed: any;\n\n /**\n * Item is expanded (`false` by default)\n */\n @Input('expanded')\n @HostBinding('class.expanded')\n get expanded(): boolean {\n return !this.collapsed;\n }\n\n set expanded(val: boolean) {\n this.collapsedValue = !val;\n }\n\n static ngAcceptInputType_expanded: any;\n\n /**\n * Item is disabled and cannot be opened.\n *\n * @type {boolean}\n */\n @Input('disabled')\n @HostBinding('class.disabled')\n get disabled(): boolean {\n return this.disabledValue;\n }\n\n set disabled(val: boolean) {\n this.disabledValue = !!val;\n this.invalidate();\n }\n\n static ngAcceptInputType_disabled: any;\n\n /**\n * Emits whenever the expanded state of the accordion changes.\n * Primarily used to facilitate two-way binding.\n */\n @Output() collapsedChange = new EventEmitter<boolean>();\n\n accordionItemInvalidate = new Subject<boolean>();\n\n private collapsedValue = true;\n private disabledValue = false;\n private destroy$ = new Subject<void>();\n\n constructor(@Host() private accordion: DrAccordionComponent, private cd: ChangeDetectorRef) {\n }\n\n /**\n * Open/close the item\n */\n toggle() {\n if (!this.disabled) {\n // we need this temporary variable as `openCloseItems.next` will change current value we need to save\n const willSet = !this.collapsed;\n\n if (!this.accordion.multi) {\n this.accordion.openCloseItems.next(true);\n }\n this.collapsed = willSet;\n }\n }\n\n /**\n * Open the item.\n */\n open() {\n if (!this.disabled) {\n this.collapsed = false;\n }\n }\n\n /**\n * Collapse the item.\n */\n close() {\n if (!this.disabled) {\n this.collapsed = true;\n }\n }\n\n ngOnInit() {\n this.accordion.openCloseItems.pipe(takeUntil(this.destroy$)).subscribe(collapsed => {\n if (!this.disabled) {\n this.collapsed = collapsed;\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges) {\n this.accordionItemInvalidate.next(true);\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n this.accordionItemInvalidate.complete();\n }\n\n private invalidate() {\n this.accordionItemInvalidate.next(true);\n this.cd.markForCheck();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Host,\n HostBinding,\n HostListener,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\n\n@Component({\n selector: 'dr-accordion-item-header',\n styleUrls: ['./accordion-item-header.component.scss'],\n template: `\n <ng-content select=\"dr-accordion-item-title\"></ng-content>\n <ng-content select=\"dr-accordion-item-description\"></ng-content>\n <ng-content></ng-content>\n <i class=\"dr-icon-arrow-down expansion-indicator\"\n [@expansionIndicator]=\"state\"\n *ngIf=\"!disabled\">\n </i>\n `,\n animations: [\n trigger('expansionIndicator', [\n state(\n 'expanded',\n style({\n transform: 'rotate(180deg)',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemHeaderComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n @HostBinding('class.accordion-item-header-collapsed')\n get isCollapsed(): boolean {\n return this.accordionItem.collapsed;\n }\n\n @HostBinding('class.accordion-item-header-expanded')\n @HostBinding('attr.aria-expanded')\n get expanded(): boolean {\n return !this.accordionItem.collapsed;\n }\n\n @HostBinding('attr.tabindex')\n get tabbable(): string {\n return this.accordionItem.disabled ? '-1' : '0';\n }\n\n @HostBinding('attr.aria-disabled')\n get disabled(): boolean {\n return this.accordionItem.disabled;\n }\n\n @HostListener('click')\n @HostListener('keydown.space')\n @HostListener('keydown.enter')\n toggle() {\n this.accordionItem.toggle();\n }\n\n get state(): string {\n if (this.isCollapsed) {\n return 'collapsed';\n }\n return 'expanded';\n }\n\n constructor(@Host() private accordionItem: DrAccordionItemComponent, private cd: ChangeDetectorRef) {\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Host, OnDestroy, OnInit, } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\nimport { DrAccordionItemComponent } from './accordion-item.component';\n\nconst accordionItemBodyTrigger = trigger('accordionItemBody', [\n state(\n 'collapsed',\n style({\n overflow: 'hidden',\n visibility: 'hidden',\n height: 0,\n }),\n ),\n state(\n 'expanded',\n style({\n overflow: 'hidden',\n visibility: 'visible',\n }),\n ),\n transition('collapsed => expanded', animate('100ms ease-in')),\n transition('expanded => collapsed', animate('100ms ease-out')),\n]);\n\n@Component({\n selector: 'dr-accordion-item-body',\n template: `\n <div [@accordionItemBody]=\"{ value: state }\">\n <div class=\"item-body\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n styleUrls: ['./accordion-item-body.component.scss'],\n animations: [accordionItemBodyTrigger],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrAccordionItemBodyComponent implements OnInit, OnDestroy {\n private destroy$ = new Subject<void>();\n\n constructor(@Host() private accordionItem: DrAccordionItemComponent, private cd: ChangeDetectorRef) {\n }\n\n get state(): string {\n return this.accordionItem.collapsed ? 'collapsed' : 'expanded';\n }\n\n ngOnInit() {\n this.accordionItem.accordionItemInvalidate.pipe(takeUntil(this.destroy$)).subscribe(() => this.cd.markForCheck());\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout',\n styleUrls: ['./dr-layout.component.scss'],\n templateUrl: './dr-layout.component.html',\n})\nexport class DrLayoutComponent {\n constructor() {\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-header',\n template: `\n <nav>\n <ng-content></ng-content>\n </nav>\n `,\n})\nexport class DrLayoutHeaderComponent {\n constructor() {\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dr-layout-body',\n template: '<ng-content></ng-content>',\n})\nexport class DrLayoutBodyComponent {\n constructor() {\n }\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { takeUntil } from 'rxjs/operators';\nimport { Subject } from 'rxjs';\n\n@Component({\n templateUrl: 'dr-error.component.html',\n selector: 'dr-error',\n styleUrls: ['dr-error.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\n\nexport class DrErrorComponent implements OnDestroy {\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n private destroyed$ = new Subject<void>();\n public _control: FormControl;\n @Input() set control(value: FormControl) {\n if (value) {\n this._control = value;\n this.cdr.markForCheck();\n this._control.valueChanges.pipe(takeUntil(this.destroyed$)).subscribe(() => {\n this.cdr.markForCheck();\n });\n }\n }\n\n @Input() label = 'Field error';\n\n\n get errorString() {\n if (this._control.hasError('required')) {\n return 'Field is required!';\n }\n\n return this._control.errors?.errorString || null;\n }\n\n get isWarning() {\n return this._control.errors?.isWarning;\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n ComponentFactoryResolver,\n HostBinding,\n Inject,\n OnDestroy,\n ViewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { DataProp, SizeModal } from '../../interfaces/dialog-data';\nimport * as _ from 'lodash';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { catchError, takeUntil } from 'rxjs/operators';\nimport { DialogService } from '../../services/dialog.service';\n\n@Component({\n selector: 'dr-dialog-wrapper',\n templateUrl: './dialog-wrapper.component.html',\n styleUrls: ['./dialog-wrapper.component.scss'],\n})\nexport class DialogWrapperComponent implements AfterViewInit, OnDestroy {\n\n @ViewChild('content', { read: ViewContainerRef }) content: ViewContainerRef;\n\n @HostBinding('class') class: SizeModal = this.dialogData?.theme?.noThemeSizeClass ? null : this.dialogData?.theme?.themeSize || 'medium-modal';\n childComponent: any;\n isLoading: boolean;\n saving$ = new BehaviorSubject(false);\n destroy$: Subject<any> = new Subject();\n\n constructor(public dialogRef: MatDialogRef<DialogWrapperComponent>,\n private dialogService: DialogService,\n private cdr: ChangeDetectorRef,\n private componentFactoryResolver: ComponentFactoryResolver,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp) {\n }\n\n ngAfterViewInit(): Error {\n if (!this.dialogData.child) {\n return new Error('Expected componentTypeChild');\n }\n const componentFactory: ComponentFactory<any> = this.componentFactoryResolver.resolveComponentFactory(this.dialogData.child);\n this.childComponent = this.content.createComponent(componentFactory).instance;\n this.childComponent.closeDialog = this.closeDialog.bind(this);\n this.childComponent.onAcceptDialog = this.onAcceptDialog.bind(this);\n\n // pass data to component child\n if (this.dialogData.childData) {\n _.assign(this.childComponent, this.dialogData.childData);\n }\n // call component child init func - looks like double init\n // if (this.childComponent.ngOnInit) {\n // this.childComponent.ngOnInit();\n // }\n this.cdr.detectChanges();\n }\n\n closeDialog(data?: any) {\n this.dialogRef.close(data || false);\n }\n\n onDecline() {\n this.dialogRef.close(undefined);\n }\n\n onAcceptDialog(data?: any) {\n if (!this.childComponent) {\n this.dialogRef.close(data || true);\n return;\n }\n const funcName = this.dialogData.acceptButton.functions;\n if (this.childComponent[funcName]) this.childComponent[funcName]();\n const loadFuncName = this.dialogData.acceptButton.loading;\n if (this.childComponent[loadFuncName]) this.isLoading = this.childComponent[loadFuncName]();\n\n if (this.dialogData.confirmFn) {\n this.saving$.next(true);\n this.dialogData.confirmFn().pipe(takeUntil(this.destroy$), catchError(error => this.dialogService.throwErr(error, this.saving$))).subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(data || true);\n });\n }\n\n if (this.childComponent && !this.childComponent[funcName]) {\n this.dialogRef.close(data || true);\n return;\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.complete();\n }\n}\n","import { Component, HostBinding, Inject, OnDestroy, OnInit } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\nimport { DataProp } from '../../interfaces/dialog-data';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { catchError, takeUntil } from 'rxjs/operators';\nimport { DialogService } from '../../services/dialog.service';\n\n@Component({\n selector: 'dr-dialog-modal-wrapper',\n templateUrl: './dialog-modal-wrapper.component.html',\n styleUrls: ['./dialog-modal-wrapper.component.scss'],\n\n})\nexport class DialogModalWrapperComponent implements OnInit, OnDestroy {\n @HostBinding('class') class = this?.dialogData?.theme?.themeSize;\n form: FormGroup;\n saving$ = new BehaviorSubject(false);\n isLoading = false;\n showServerErrorMessage = false;\n destroy$: Subject<any> = new Subject();\n\n constructor(\n public dialogRef: MatDialogRef<DialogModalWrapperComponent>,\n private dialogService: DialogService,\n @Inject(MAT_DIALOG_DATA) public dialogData: DataProp,\n ) {\n }\n\n ngOnInit(): void {\n if (this.dialogData.fields) {\n this.form = new FormGroup(\n this.dialogData.fields.reduce((accumulator, currentValue) => {\n const currentFormControl = {};\n currentFormControl[currentValue.name] = new FormControl(currentValue.default || null, currentValue.validators || []);\n return Object.assign(accumulator, currentFormControl);\n }, {})\n );\n }\n }\n\n onAccept() {\n if (!this.dialogData.confirmFn) return this.dialogRef.close(this.form.value || true);\n\n this.isLoading = true;\n this.saving$.next(true);\n this.dialogData.confirmFn(this.form.value).pipe(\n takeUntil(this.destroy$),\n catchError((err) => {\n this.showServerErrorMessage = true;\n this.isLoading = false;\n return this.dialogService.throwErr(err, this.saving$);\n })\n ).subscribe(() => {\n this.saving$.next(false);\n this.dialogRef.close(this.form.value || true);\n });\n }\n\n footerAction(): void {\n this.dialogData.footerTemplateData.action(this.form.value);\n }\n\n closeDialog() {\n this.dialogRef.close(false);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(null);\n this.destroy$.complete();\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { ConfirmDialogData, DataProp, DialogData, DialogTheme } from '../interfaces/dialog-data';\nimport { DialogWrapperComponent } from '../components/dialog-wrapper/dialog-wrapper.component';\nimport { DialogModalWrapperComponent } from '../components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nconst DEFAULT_PANE_CLASS_NAME = 'wrapper-dialog';\n\nconst DEFAULT_CONFIRM_THEME: DialogTheme = { themeSize: 'small-modal' };\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogService {\n\n private wrapperComponent: MatDialogRef<any>;\n\n constructor(\n private dialog: MatDialog,\n ) {\n }\n\n /**\n * Function to open modal with custom form\n */\n openDialogWrapper<T, D = any, R = any>(\n componentTypeChild: ComponentType<T>,\n dialogData: DialogData<T>,\n componentTypeWrapper?: ComponentType<D>,\n ) {\n if (!componentTypeWrapper) componentTypeWrapper = (DialogWrapperComponent as any);\n\n dialogData.data.child = componentTypeChild;\n\n if (dialogData.panelClass instanceof Array) {\n dialogData.panelClass.push(DEFAULT_PANE_CLASS_NAME);\n } else {\n dialogData.panelClass = [dialogData.panelClass || '', DEFAULT_PANE_CLASS_NAME];\n }\n\n this.wrapperComponent = this.openDialog<D, R, T>(componentTypeWrapper, dialogData);\n return this.wrapperComponent;\n }\n\n /**\n * Function to open confirmation modal\n */\n openConfirmDialog<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n dialogData.data.theme.isConfirmation = true;\n return this.openDialog<DialogWrapperComponent, R, ConfirmDialogData>(DialogWrapperComponent, dialogData);\n }\n\n /**\n * Function to open confirmation modal with inputs\n */\n openConfirmDialogModal<R = any>(confirmDialogData: ConfirmDialogData): MatDialogRef<DialogModalWrapperComponent, R> {\n const dialogData: DialogData = { panelClass: DEFAULT_PANE_CLASS_NAME, data: null };\n Object.assign(dialogData, { data: confirmDialogData });\n if (!dialogData.data.theme) dialogData.data.theme = DEFAULT_CONFIRM_THEME;\n return this.openDialog<DialogModalWrapperComponent, R, ConfirmDialogData>(DialogModalWrapperComponent, dialogData);\n }\n\n close(params?: any): void {\n this.wrapperComponent.close(params);\n }\n\n changeDialogThemeSize(theme: string): void {\n this.wrapperComponent.componentInstance.class = theme;\n }\n\n private openDialog<WrapperType, ReturnType = any, D = any>(componentType: ComponentType<WrapperType>, dialogData: DialogData<D>): MatDialogRef<WrapperType, ReturnType> {\n return this.dialog.open<WrapperType, DataProp<D>, ReturnType>(componentType, dialogData);\n }\n\n throwErr(err: Error, load?: Subject<any> | BehaviorSubject<any>): Observable<any> {\n if (load) {\n load.next(false);\n }\n throw err;\n }\n}\n","export enum TooltipPosition {\n TOP = 'top',\n BOTTOM = 'bottom',\n LEFT = 'left',\n RIGHT = 'right',\n TOP_RIGHT = 'top-right',\n TOP_LEFT = 'top-left',\n BOTTOM_RIGHT = 'bottom-right',\n BOTTOM_LEFT = 'bottom-left',\n RIGHT_TOP = 'right-top',\n RIGHT_BOTTOM = 'right-bottom',\n LEFT_TOP = 'left-top',\n LEFT_BOTTOM = 'left-bottom',\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Observable } from 'rxjs';\n\n// Data Obj for openDialogWrapper()\nexport interface DialogData<T = any> {\n data: {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n subtitle?: string;\n content?: any;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n child?: ComponentType<T>;\n childData?: Partial<T>;\n theme?: {\n themeSize?: SizeModal;\n type?: 'successful';\n contentNoPadding?: boolean;\n isConfirmation?: boolean;\n noThemeSizeClass?: boolean;\n };\n confirmFn?: any;\n fields?: ModalFormField[];\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n };\n panelClass?: string | string[];\n disableClose?: boolean;\n maxWidth?: number | string;\n maxHeight?: number | string;\n}\n\n// Data Obj for openConfirmDialog()\nexport interface ConfirmDialogData {\n title?: string;\n searchable?: boolean;\n clearable?: boolean;\n content?: string;\n contentIcon?: {\n class?: string;\n color?: string;\n };\n acceptButton?: DialogFooterButton;\n cancelButton?: DialogFooterButton;\n customButton?: DialogFooterButton;\n tooltips?: any;\n errorMessage?: string;\n serverErrorMessage?: string;\n hideCloseBtn?: boolean;\n confirmFn?: (response?: any) => Observable<any>;\n fields?: ModalFormField[];\n footerTemplateData?: FooterTemplateData;\n}\n\n// Data Obj for openConfirmDialogModal()\nexport interface ConfirmDialogModalData extends ConfirmDialogData {\n confirmFn?: any;\n hideCloseBtn?: boolean;\n footerTemplateData?: FooterTemplateData;\n fields?: ModalFormField[];\n}\n\nexport interface FooterTemplateData {\n label: string;\n icon?: string;\n action: (objToSave?: any) => any;\n}\n\nexport interface ModalFormField {\n name: string;\n type: 'input' | 'select';\n label?: string;\n isLabelFullWidth?: boolean;\n items?: any[];\n items$?: Observable<any[]> | Observable<any>;\n default?: any;\n placeholder?: string;\n bindLabel?: string;\n bindValue?: string;\n validators?: any[];\n}\n\nexport type SizeModal =\n 'small-modal'\n | 'medium-modal'\n | 'medium-large-modal'\n | 'large-modal'\n | 'xl-modal'\n | 'xl-custom-modal';\n\nexport type DataProp<T = any> = DialogData<T>['data'];\n\nexport type DialogTheme = DataProp['theme'];\n\nexport type DialogFooterButton = {\n label?: string;\n loadingLabel?: string;\n functions?: any;\n loading?: any;\n theme?: any;\n};\n\nexport enum DIALOG_SIZE {\n SMALL = 'small-modal',\n MEDIUM = 'medium-modal',\n MEDIUM_LARGE = 'medium-large-modal',\n LARGE = 'large-modal',\n X_LARGE = 'xl-modal',\n X_CUSTOM_LARGE = 'xl-custom-modal',\n}\n\nexport enum DIALOG_BUTTON_LABEL {\n SAVE = 'Save',\n CANCEL = 'Cancel',\n CLOSE = 'Close',\n}\n\nexport enum DIALOG_FIELD_TYPE {\n INPUT = 'input',\n SELECT = 'select',\n}\n","import { Directive, EventEmitter, Input, OnDestroy, OnInit, Output } from '@angular/core';\nimport { debounceTime, distinctUntilChanged, skip } from 'rxjs/operators';\nimport { Subscription } from 'rxjs';\nimport { NgModel } from '@angular/forms';\n\n@Directive({\n selector: '[ngModelDebounceChange]'\n})\nexport class DrModelDebounceChangeDirective implements OnDestroy, OnInit {\n private subscription: Subscription;\n\n @Input() debounce = 200;\n @Output() ngModelDebounceChange = new EventEmitter<any>();\n\n constructor(private ngModel: NgModel) {\n }\n\n ngOnInit(): void {\n this.subscription = this.ngModel.control.valueChanges.pipe(\n skip(1),\n debounceTime(this.debounce),\n distinctUntilChanged()\n ).subscribe(value => this.ngModelDebounceChange.emit(value));\n }\n\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n}\n","export enum DateFromats {\n MAT_DEFAULT_DATE_FORMAT = 'MM/DD/yyyy',\n DATE_INPUT_FORMAT = 'YYYY/MM/DD',\n YEAR_FORMAT = 'yyyy',\n MONTH_YEAR_FORMAT = 'MM/yyyy',\n QUARTER_FORMAT = 'Q/yyyy',\n WEEK_FORMAT = 'W/yyyy'\n}\n\nexport interface DateParse {\n dateInput: string;\n}\n\nexport type DateDisplay = DateParse & {\n monthYearLabel?: string;\n dateA11yLabel?: string;\n monthYearA11yLabel?: string;\n quarterYearA11yLabel?: string;\n yearLabel?: string;\n quarterYearLabel?: string;\n};\n\nexport class CustomDateFormat {\n private _parse: DateParse = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n };\n private _display: DateDisplay = {\n dateInput: DateFromats.DATE_INPUT_FORMAT,\n monthYearLabel: 'MMM YYYY',\n dateA11yLabel: 'LL',\n monthYearA11yLabel: 'MMM YYYY',\n quarterYearLabel: 'Q/YYYY',\n yearLabel: 'YYYY'\n };\n\n set parse(parse: DateParse) {\n this._parse = Object.assign({}, this._parse, parse);\n }\n\n get parse(): DateParse {\n return this._parse;\n }\n\n set display(display: DateDisplay) {\n this._display = Object.assign({}, this._display, display);\n }\n\n get display(): DateDisplay {\n return this._display;\n }\n\n updateDateFormat(parse: DateParse, display?: DateDisplay) {\n this.parse = parse;\n if (!display) {\n display = parse;\n }\n this.display = display;\n }\n}\n\nexport interface IDatePickerFormatConfig {\n day?: string;\n month?: string;\n year?: string;\n quarter?: string;\n week?: string;\n}\n\nexport enum DatePickerPeriodPosition {\n END_OF_PERIOD,\n MIDDLE_OF_PERIOD,\n START_OF_PERIOD,\n DEFAULT\n}\n\nexport enum TimeframeOption {\n DAY = 'day',\n MONTH = 'month',\n QUARTER = 'quarter',\n WEEK = 'week',\n YEAR = 'year',\n}\n\nexport enum CalendarView {\n FOR_DAYS = 'month',\n FOR_MONTHS = 'year',\n FOR_QUARTERS = 'none',\n FOR_YEARS = 'multi-year',\n}\n\nexport type TTimeframeOption = TimeframeOption;\nexport type TCalendarView = CalendarView;\n","export const IMAGE_TYPES = ['image/png', 'image/jpeg', 'image/gif'];\n\nexport interface IChatSignUpRequest { userName: string; email: string; password: string }\nexport interface IChatSignInRequest { email: string; password: string }\nexport interface IChatCreateConversationRequest { title: string }\nexport interface IChatConversation { id: string; title: string }\nexport interface IChatAccount {\n kind: 'user' | 'bot';\n id: string;\n name: string;\n email?: string;\n}\n\nexport enum CHAT_MESSAGE_TYPE {\n TEXT = 'text',\n RICH_TEXT = 'rich-text',\n IMAGE = 'image',\n DOWNLOAD_FILE = 'download-file',\n MAILTO = 'mailto',\n EMBED = 'embed',\n INPUT = 'input',\n CODE = 'code',\n}\n\nexport interface IChatMessageBase {\n id: string;\n kind: string | CHAT_MESSAGE_TYPE;\n seq: number;\n conversationId: string;\n reply: boolean;\n senderId: string;\n parentId?: string;\n}\n\nexport interface IChatTextMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.TEXT;\n text?: string;\n}\n\nexport interface IChatRichTextMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.RICH_TEXT;\n paragraphs?: IChatRichTextParagraph[];\n}\n\nexport interface IChatRichTextParagraph {\n kind: string | CHAT_MESSAGE_TYPE;\n value: string;\n}\n\nexport interface IChatImageMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.IMAGE;\n url?: string;\n label?: string;\n}\nexport interface IChatDownloadFileMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.DOWNLOAD_FILE;\n url?: string;\n label?: string;\n}\n\nexport interface IChatMailtoMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.MAILTO;\n subject?: string;\n body?: string;\n}\n\nexport interface IChatEmbedMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.EMBED;\n url?: string;\n}\n\nexport interface IChatInputMessage extends IChatMessageBase {\n kind: string | CHAT_MESSAGE_TYPE.INPUT;\n form?: any;\n}\n\nexport type IChatMessage = IChatMessageBase & IChatTextMessage & IChatRichTextMessage & IChatImageMessage &\n IChatDownloadFileMessage & IChatMailtoMessage & IChatEmbedMessage & IChatInputMessage;\n\n\nexport interface IChatMessageFileIconPreview {\n url: string;\n icon: string;\n}\n\nexport interface IChatMessageFileImagePreview {\n url: string;\n type: string;\n}\n\nexport type IChatMessageFile = IChatMessageFileIconPreview | IChatMessageFileImagePreview;\n\nexport class ChatMessage implements IChatMessageBase, IChatTextMessage, IChatRichTextMessage, IChatImageMessage,\n IChatDownloadFileMessage, IChatMailtoMessage, IChatEmbedMessage, IChatInputMessage {\n id: string;\n kind: string | CHAT_MESSAGE_TYPE;\n seq: number;\n conversationId: string;\n reply: boolean;\n senderId: string;\n parentId?: string;\n text?: string;\n paragraphs?: IChatRichTextParagraph[];\n url?: string;\n label?: string;\n subject?: string;\n body?: any;\n form?: any;\n parameters?: any;\n\n constructor(obj: any, user: IChatAccount) {\n this.id = obj?.id;\n this.kind = obj?.kind;\n this.seq = obj?.seq;\n this.conversationId = obj?.conversationId;\n this.reply = obj?.senderId !== user.id;\n this.senderId = obj?.senderId;\n this.parentId = obj?.parentId;\n this.text = obj?.text || obj.body;\n this.paragraphs = obj?.paragraphs;\n this.url = obj?.url;\n this.label = obj?.label;\n this.subject = obj?.subject;\n this.body = obj?.body;\n this.form = obj?.form;\n this.parameters = obj?.parameters;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AnyTagComponent, DateTagComponent } from './date-tag.component';\nimport { DayTagComponent } from './day-tag/day-tag.component';\nimport { WeekTagComponent } from './week-tag/week-tag.component';\nimport { MonthTagComponent } from './month-tag/month-tag.component';\nimport { QuarterTagComponent } from './quarter-tag/quarter-tag.component';\nimport { YearTagComponent } from './year-tag/year-tag.component';\nimport { ForecastTagComponent } from './forecast-tag/forecast-tag.component';\nimport { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MatMomentDateModule } from '@angular/material-moment-adapter';\nimport { CommonModule } from '@angular/common';\nimport { MatNativeDateModule } from '@angular/material/core';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\n\nexport const components = [DateTagComponent,\n DayTagComponent,\n WeekTagComponent,\n MonthTagComponent,\n QuarterTagComponent,\n AnyTagComponent,\n YearTagComponent,\n ForecastTagComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n MatNativeDateModule,\n MatDatepickerModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatInputModule,\n MatMomentDateModule,\n MatSelectModule\n ],\n exports: components,\n providers: [\n { provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }\n ],\n declarations: components,\n})\n\nexport class DateTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\nimport { ListTagComponent } from './list-tag.component';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n MatMomentDateModule,\n MatSelectModule,\n MatButtonToggleModule,\n ],\n exports: [ListTagComponent],\n providers: [],\n declarations: [\n ListTagComponent\n ],\n})\n\nexport class ListTagModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTagComponent } from './dr-tag.component';\nimport { ListTagModule } from '../list-tags/list-tag.module';\nimport { DateTagModule } from '../date-tags/date-tag.module';\n\n\n@NgModule({\n imports: [\n CommonModule,\n DateTagModule,\n ListTagModule\n ],\n exports: [DrTagComponent],\n providers: [],\n declarations: [\n DrTagComponent\n ],\n})\n\nexport class DrTagModule {\n}\n","import { TimeframeOption } from '../models/datePicker';\n\nexport class DrSharedUtils {\n /**\n * Get timeframe (day, year, month, quarter) based on passed format\n *\n * @param format - date format string. Examples: MM/DD/YYYY, Q/YYYY\n */\n public static getTimeframeByDateFormat(format: string): TimeframeOption {\n const defaultFrame = TimeframeOption.DAY;\n\n if (!format) {\n return defaultFrame;\n }\n\n const lowerCaseFormat = format.toLowerCase();\n switch (true) {\n case lowerCaseFormat.includes('q'):\n return TimeframeOption.QUARTER;\n case lowerCaseFormat.includes('d'):\n return TimeframeOption.DAY;\n case lowerCaseFormat.includes('w'):\n return TimeframeOption.WEEK;\n case lowerCaseFormat.includes('m'):\n return TimeframeOption.MONTH;\n case lowerCaseFormat.includes('y'):\n return TimeframeOption.YEAR;\n default:\n return defaultFrame;\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatCalendar, MatDatepicker } from '@angular/material/datepicker';\nimport { Moment } from 'moment';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { DateFromats, IDatePickerFormatConfig, TimeframeOption, TTimeframeOption } from '../../../models/datePicker';\nimport { DrSharedUtils } from '../../../utils/dr-shared-utils';\nimport * as _ from 'lodash';\n\n@Injectable()\nexport class DrDatePickerService {\n isTimeframeSelectionEnabled = false;\n timeframe: TTimeframeOption = TimeframeOption.DAY;\n format$ = new BehaviorSubject<string>(DateFromats.MAT_DEFAULT_DATE_FORMAT);\n updatedQuarter$ = new Subject<Moment>();\n datePickerInstance: MatDatepicker<any>;\n availableTimeframes = [\n TimeframeOption.DAY,\n TimeframeOption.WEEK,\n TimeframeOption.MONTH,\n TimeframeOption.QUARTER,\n TimeframeOption.YEAR\n ];\n\n public formatConfig: IDatePickerFormatConfig = {\n day: DateFromats.MAT_DEFAULT_DATE_FORMAT,\n month: DateFromats.MONTH_YEAR_FORMAT,\n year: DateFromats.YEAR_FORMAT,\n quarter: DateFromats.QUARTER_FORMAT,\n week: DateFromats.WEEK_FORMAT\n };\n public calendarInstance: MatCalendar<any>;\n\n public fiscalYearMonthsModifier = 0;\n\n getDisplayPrefix() {\n const formatCached = this.format$.getValue();\n switch (true) {\n case formatCached?.includes('Q'):\n return 'Q';\n case formatCached?.includes('W'):\n return 'W';\n default:\n return '';\n }\n }\n\n getTimeframe(format: string) {\n return DrSharedUtils.getTimeframeByDateFormat(format);\n }\n\n getConfiguredFormat(timeframe: TTimeframeOption) {\n return this.formatConfig[timeframe];\n }\n\n updateTimeframeAndFormat(format: string): void {\n const normalizedFormat = this.normalizeValue(format || this.format$.getValue());\n this.timeframe = this.getTimeframe(normalizedFormat);\n this.format$.next(this.getConfiguredFormat(this.timeframe));\n }\n\n normalizeValue(value) {\n return value.replace(/d/g, 'D');\n }\n\n /**\n * Get quarter number for date according to fiscal year\n *\n * @param date\n */\n public getQuarterAccordingToFiscalYear(date: Moment): number {\n let fiscalMonth = this.fiscalYearMonthsModifier;\n const dateMonth = date.month();\n if (dateMonth < fiscalMonth) {\n fiscalMonth -= 12;\n }\n return Math.trunc((date.month() - fiscalMonth) / 3) + 1;\n }\n\n /**\n * Sets date to end of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setEndOfQuarter(date: Moment, quarterNumber: number): void {\n date\n .subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + quarterNumber * 3 - 1, 'M')\n .endOf('month');\n }\n\n /**\n * Sets date to start of quarter in FY by passed quarter number\n *\n * @param date\n * @param quarterNumber\n */\n public setStartOfQuarter(date: Moment, quarterNumber: number): void {\n date\n .subtract(this.fiscalYearMonthsModifier, 'M')\n .startOf('year')\n .add(this.fiscalYearMonthsModifier + (quarterNumber - 1) * 3, 'M');\n }\n\n /**\n * Sets date to end of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setEndOfCurrentQuarter(date: Moment): void {\n this.setEndOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * Sets date to start of current quarter (in which date is located) according to FY\n *\n * @param date\n */\n public setStartOfCurrentQuarter(date: Moment): void {\n this.setStartOfQuarter(date, this.getQuarterAccordingToFiscalYear(date));\n }\n\n /**\n * If date selection on this timeframe depends on Fiscal Year\n *\n * @param timeframe\n */\n public isTimeframeDependingOnFY(timeframe: TimeframeOption) {\n return _.includes([TimeframeOption.QUARTER, TimeframeOption.YEAR], timeframe);\n }\n\n /**\n * Subtract from date fiscal year shift months count\n *\n * @param date\n */\n public subtractFiscalYearMonthsFromDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date, true);\n }\n\n /**\n * Add to date fiscal year shift months count\n *\n * @param date\n */\n public addFiscalYearMonthsToDate(date: Moment): Moment {\n return this.getDateModifiedByFiscalMonths(date);\n }\n\n /**\n * Add or subtract depending on isRevert paremeter Fiscal year month shift\n *\n * @param date\n * @param isSubtract\n */\n private getDateModifiedByFiscalMonths(date: Moment, isSubtract = false): Moment {\n return date ? _.cloneDeep(date)[isSubtract ? 'subtract' : 'add'](this.fiscalYearMonthsModifier, 'month') : date;\n }\n}\n","import { ChangeDetectionStrategy, OnDestroy, ChangeDetectorRef, Component, Inject, OnInit } from \"@angular/core\";\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { MatCalendar, MatCalendarView } from '@angular/material/datepicker';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { CalendarView, CustomDateFormat, TCalendarView, TimeframeOption } from '../../../models/datePicker';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport * as _ from 'lodash';\n\nconst moment = require('moment');\n\nexport interface ITimeframeOption {\n timeframe: TimeframeOption;\n title: string;\n value: TCalendarView;\n format: string;\n periodLabel: () => string;\n}\n\n@Component({\n selector: 'dr-date-picker_custom-header.component',\n templateUrl: 'dr-date-picker_custom-header.component.html',\n styleUrls: ['./dr-date-picker_custom-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\n\nexport class DrDatePickerCustomHeaderComponent<Moment> implements OnDestroy, OnInit {\n private _destroyed = new Subject<void>();\n quarters = [1, 2, 3, 4];\n selectedQuarter = 1;\n timeframeOptions: ITimeframeOption[] = [{\n timeframe: TimeframeOption.DAY,\n title: 'Day',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.day,\n periodLabel: () => this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase()\n }, {\n timeframe: TimeframeOption.WEEK,\n title: 'Week',\n value: CalendarView.FOR_DAYS,\n format: this.datePickerService.formatConfig.week,\n periodLabel: () => this._dateAdapter.format(this._calendar.activeDate, this._dateFormats.display.monthYearLabel).toLocaleUpperCase()\n }, {\n timeframe: TimeframeOption.MONTH,\n title: 'Month',\n value: CalendarView.FOR_MONTHS,\n format: this.datePickerService.formatConfig.month,\n periodLabel: () => String(moment(this._calendar.activeDate).utc().year())\n }, {\n timeframe: TimeframeOption.QUARTER,\n title: 'Quarter',\n value: CalendarView.FOR_QUARTERS,\n format: this.datePickerService.formatConfig.quarter,\n periodLabel: () => String(moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate)).utc().year())\n }, {\n timeframe: TimeframeOption.YEAR,\n title: 'Year',\n value: CalendarView.FOR_YEARS,\n format: this.datePickerService.formatConfig.year,\n periodLabel: () => {\n const currentYear = moment(this.datePickerService.subtractFiscalYearMonthsFromDate(this._calendar.activeDate)).utc().year();\n const startPeriod = Math.floor(currentYear / 24) * 24;\n return startPeriod + '-' + (startPeriod + 23);\n }\n }];\n\n pagingSetup = {\n [CalendarView.FOR_MONTHS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_QUARTERS]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [CalendarView.FOR_DAYS]: (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\n [CalendarView.FOR_YEARS]: (forward) => this.pagingDateChange('addCalendarYears', 24, forward)\n };\n\n selectedTimeframe: TCalendarView = CalendarView.FOR_DAYS;\n timeframeSelection = false;\n periodMonthLabel = '';\n periodYearLabel = '';\n\n public readonly calendarView = CalendarView;\n\n constructor(private _calendar: MatCalendar<any>,\n private _dateAdapter: DateAdapter<Moment>,\n @Inject(MAT_DATE_FORMATS) private _dateFormats: CustomDateFormat,\n private cdr: ChangeDetectorRef,\n public datePickerService: DrDatePickerService) {\n\n _calendar.stateChanges.pipe(takeUntil(this._destroyed)).subscribe(() => this.setPeriodLabels());\n this.datePickerService.format$.pipe(takeUntil(this._destroyed)).subscribe(value => {\n this.selectedTimeframe = this.timeframeOptions.filter(option => option.format === value)[0].value;\n _calendar.currentView = this.selectedTimeframe as MatCalendarView;\n this.setPeriodLabels();\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n });\n\n _calendar.viewChanged.pipe(takeUntil(this._destroyed)).subscribe(() => {\n this.setPeriodLabels();\n if (_calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n });\n\n this.datePickerService.calendarInstance = _calendar;\n }\n\n ngOnInit() {\n setTimeout(() => {\n if (this._calendar.multiYearView) {\n this.transformDateInMultiyearViewAccordingToFY();\n }\n })\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n setPeriodLabels() {\n const currentTimeframeOption = this.timeframeOptions.filter(option => option.value === this._calendar.currentView)[0];\n const fullPeriodLabel = currentTimeframeOption.periodLabel();\n if (this._calendar.currentView === CalendarView.FOR_DAYS) {\n this.periodMonthLabel = fullPeriodLabel.slice(0, 3);\n this.periodYearLabel = fullPeriodLabel.slice(4);\n } else {\n this.periodMonthLabel = '';\n this.periodYearLabel = fullPeriodLabel;\n }\n this.cdr.markForCheck();\n }\n\n setTimeframe() {\n this.timeframeSelection = false;\n this._calendar.currentView = this.selectedTimeframe as MatCalendarView;\n const chosenTimeframeOption = this.timeframeOptions.filter(option => option.value === this.selectedTimeframe)[0];\n this.datePickerService.updateTimeframeAndFormat(chosenTimeframeOption.format);\n\n if (this.selectedTimeframe === CalendarView.FOR_QUARTERS) {\n this.selectedQuarter = this.datePickerService.getQuarterAccordingToFiscalYear(this._calendar.activeDate);\n }\n }\n\n get currentViewIsQuarter() {\n return ![CalendarView.FOR_DAYS, CalendarView.FOR_MONTHS, CalendarView.FOR_YEARS].includes(this._calendar.currentView as CalendarView);\n }\n\n switchViewOnClickOnPeriodLabel(view: CalendarView.FOR_MONTHS | CalendarView.FOR_YEARS) {\n this._calendar.currentView = view;\n }\n\n onSelectQuarter(quarterNumber: number) {\n this.selectedQuarter = quarterNumber;\n this.datePickerService.setEndOfQuarter(this._calendar.activeDate, quarterNumber);\n this.datePickerService.updatedQuarter$.next(this._calendar.activeDate);\n this.datePickerService.datePickerInstance.close();\n }\n\n pagingClicked(forward) {\n if (this.pagingSetup[this._calendar.currentView]) {\n this.pagingSetup[this._calendar.currentView](forward);\n }\n }\n\n pagingDateChange(actionCall: string, amount: number, forward: boolean) {\n this._calendar.activeDate = this._dateAdapter[actionCall](this._calendar.activeDate, forward ? amount : -amount);\n this.setPeriodLabels();\n }\n\n transformDateInMultiyearViewAccordingToFY() {\n const multuYearView = this._calendar.multiYearView as any;\n multuYearView._activeDate = this.datePickerService.subtractFiscalYearMonthsFromDate(multuYearView._activeDate);\n multuYearView._selectedYear = multuYearView._activeDate.year();\n multuYearView._init();\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n OnDestroy,\n ViewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { CalendarView, DatePickerPeriodPosition, TimeframeOption } from '../../../models/datePicker';\nimport { Moment } from 'moment';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { DrDatePickerCustomHeaderComponent } from '../dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { MatCalendarView } from '@angular/material/datepicker';\nimport * as _ from 'lodash';\n\nconst moment = require('moment');\nconst noop = () => {\n};\n\n@Component({\n selector: 'dr-date-picker',\n templateUrl: './dr-date-picker.component.html',\n styleUrls: ['./dr-date-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerComponent, multi: true },\n { provide: DrDatePickerService }\n ],\n})\nexport class DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n\n @Input() set format(value) {\n this.datePickerService.updateTimeframeAndFormat(value);\n }\n\n @Input() set min(minDate: number) {\n this._min = moment.unix(minDate).utc();\n }\n\n @Input() set max(maxDate: number) {\n this._max = moment.unix(maxDate).utc();\n }\n\n // Whether to transform date, taking end, start, middle of preiod (i.e. set middle of month if timeframe='month')\n @Input() periodPosition: DatePickerPeriodPosition = DatePickerPeriodPosition.DEFAULT;\n\n @Input() placeholder = 'Select';\n\n @Input() fiscalYearMonthsModifier = 0;\n\n @ViewChild('datePicker') public datePicker: any;\n\n public calendarViewsTimeframeMapping: any = {\n year: 'multi-year',\n month: 'year',\n quarter: 'none',\n day: 'month',\n };\n\n public customHeader = DrDatePickerCustomHeaderComponent;\n public readonly = true;\n public _min: Moment;\n public _max: Moment;\n public readonly timeframeOption = TimeframeOption;\n\n public get value(): Moment {\n return this.innerValue;\n }\n\n public set value(v: Moment) {\n if (v !== this.innerValue) {\n this.setValueFromMoment(v);\n }\n this.cdr.markForCheck();\n }\n\n protected innerValue: Moment = null;\n protected destroyed$ = new Subject<void>();\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService\n ) {\n datePickerService.updatedQuarter$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.setValueFromMoment(value);\n });\n }\n\n ngAfterViewInit(): void {\n this.datePickerService.fiscalYearMonthsModifier = this.fiscalYearMonthsModifier;\n this.datePickerService.datePickerInstance = this.datePicker;\n this.datePicker.startView = this.calendarViewsTimeframeMapping[this.datePickerService.timeframe];\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n /**\n * Updating component inner value according to datepicker timeframe (day, month etc.)\n * and date position in period (start, end, middle)\n */\n tryToNormalaizeTimeframe(): void {\n const timeframe = this.datePickerService.timeframe;\n switch (this.periodPosition) {\n case DatePickerPeriodPosition.START_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setStartOfCurrentQuarter(this.innerValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setStartOfQuarter(this.innerValue, 1);\n } else {\n this.innerValue.startOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.END_OF_PERIOD:\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n this.datePickerService.setEndOfCurrentQuarter(this.innerValue);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n this.datePickerService.setEndOfQuarter(this.innerValue, 4);\n } else {\n this.innerValue.endOf(timeframe);\n }\n break;\n case DatePickerPeriodPosition.MIDDLE_OF_PERIOD:\n let endOfPeriod: Moment;\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER) {\n endOfPeriod = this.innerValue.clone();\n this.datePickerService.setStartOfCurrentQuarter(this.innerValue);\n this.datePickerService.setEndOfCurrentQuarter(endOfPeriod);\n } else if (this.datePickerService.timeframe === TimeframeOption.YEAR) {\n endOfPeriod = this.innerValue.clone();\n this.datePickerService.setStartOfQuarter(this.innerValue, 1);\n this.datePickerService.setEndOfQuarter(endOfPeriod, 4);\n } else {\n this.innerValue.startOf(timeframe);\n endOfPeriod = this.innerValue.clone().endOf(timeframe);\n }\n const diff = endOfPeriod.diff(this.innerValue, 'seconds');\n this.innerValue.add(diff / 2 + 1, 'seconds');\n break;\n default:\n this.innerValue.startOf(timeframe);\n break;\n }\n }\n\n public chosenPeriodHandler(chosenDate: Moment, timeframe: TimeframeOption) {\n\n if (timeframe === TimeframeOption.YEAR) {\n chosenDate = this.datePickerService.addFiscalYearMonthsToDate(chosenDate);\n }\n\n if (this.datePickerService.timeframe === TimeframeOption.QUARTER && timeframe === TimeframeOption.YEAR) {\n this.datePickerService.calendarInstance.currentView = CalendarView.FOR_QUARTERS as MatCalendarView;\n this.datePickerService.calendarInstance.activeDate = chosenDate;\n this.cdr.detectChanges();\n } else if (this.datePickerService.timeframe === timeframe) {\n this.setValueFromMoment(chosenDate);\n this.datePicker.close();\n }\n }\n\n /**\n * Setting value from outside of component via ngModel or formControl updates\n */\n public writeValue(value: number): void {\n this.innerValue = value ? moment.unix(value).utc() : value;\n if (this.innerValue) {\n this.tryToNormalaizeTimeframe();\n }\n this.cdr.markForCheck();\n }\n\n public onTouchedCallback: () => void = noop;\n public onChangeCallback: (_: any) => void = noop;\n\n public registerOnChange(fn: any): void {\n this.onChangeCallback = fn;\n }\n\n public registerOnTouched(fn: any): void {\n this.onTouchedCallback = fn;\n }\n\n /**\n * Set inner value from Moment and propagate\n *\n * @param momentDate\n */\n protected setValueFromMoment(momentDate: Moment) {\n this.setValue(momentDate.unix());\n }\n\n /**\n * Set inner value from timestamp and propagate\n *\n * @param timestamp\n */\n protected setValue(timestamp: number): void {\n this.writeValue(timestamp);\n this.onChangeCallback(this.innerValue.unix());\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Output\n} from '@angular/core';\nimport { DrDatePickerComponent } from '../dr-date-picker/dr-date-picker.component';\nimport { DateAdapter } from '@angular/material/core';\nimport { DrDatePickerService } from '../services/dr-date-picker.service';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { IDatePickerFormatConfig, TimeframeOption } from '../../../models/datePicker';\nimport { takeUntil } from 'rxjs/operators';\nimport * as _ from 'lodash';\n\n@Component({\n selector: 'dr-date-picker-with-timeframe',\n templateUrl: './dr-date-picker-with-timeframe.component.html',\n styleUrls: ['./dr-date-picker-with-timeframe.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: DrDatePickerWithTimeframeComponent, multi: true },\n { provide: DrDatePickerService }\n ],\n})\nexport class DrDatePickerWithTimeframeComponent extends DrDatePickerComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnInit {\n\n @HostBinding('class.dr-date-picker-on-dashboard') get isDashboardClassDisplayed(): boolean {\n return this.isDashboardDatepicker;\n };\n\n @Input() isDashboardDatepicker = false;\n\n @Input() set dateFormatConfig(value: IDatePickerFormatConfig) {\n if (value) {\n this.datePickerService.formatConfig = { ...this.datePickerService.formatConfig, ...value };\n this.cdr.markForCheck();\n }\n }\n\n @Input() canSelectTimeframe = true;\n\n @Input() set availableTimeframes(value: TimeframeOption[]) {\n if (value && value.length) {\n this.datePickerService.availableTimeframes = value;\n }\n }\n\n // eslint-disable-next-line\n @Output() onChangeFormat = new EventEmitter<string>();\n\n public readonly pagingSetup = {\n [TimeframeOption.YEAR]: (forward) => this.pagingDateChange('addCalendarYears', 1, forward),\n [TimeframeOption.QUARTER]: (forward) => this.pagingDateChange('addCalendarMonths', 3, forward),\n [TimeframeOption.MONTH]: (forward) => this.pagingDateChange('addCalendarMonths', 1, forward),\n [TimeframeOption.DAY]: (forward) => this.pagingDateChange('addCalendarDays', 1, forward),\n [TimeframeOption.WEEK]: (forward) => this.pagingDateChange('addCalendarDays', 7, forward)\n };\n\n public get displayedFormattedValue(): string {\n if (!this.value) {\n return this.placeholder;\n }\n\n let displayValue = _.cloneDeep(this.value);\n if (this.datePickerService.isTimeframeDependingOnFY(this.datePickerService.timeframe)) {\n displayValue = this.datePickerService.subtractFiscalYearMonthsFromDate(displayValue);\n }\n\n const formatCached = this.datePickerService.format$.getValue();\n return this.datePickerService.getDisplayPrefix() + displayValue.format(formatCached);\n }\n\n constructor(\n protected cdr: ChangeDetectorRef,\n protected dateAdapter: DateAdapter<any>,\n public datePickerService: DrDatePickerService\n ) {\n super(cdr, dateAdapter, datePickerService);\n datePickerService.isTimeframeSelectionEnabled = true;\n\n datePickerService.format$.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n this.onChangeFormat.emit(datePickerService.normalizeValue(value));\n });\n }\n\n ngOnInit() {\n this.datePickerService.isTimeframeSelectionEnabled = this.canSelectTimeframe;\n this.cdr.markForCheck();\n }\n\n pagingClicked(forward: boolean): void {\n if (this.pagingSetup[this.datePickerService.timeframe]) {\n this.pagingSetup[this.datePickerService.timeframe](forward);\n }\n this.datePicker.close();\n }\n\n pagingDateChange(actionCall: string, amount: number, forward: boolean) {\n const newValue = this.dateAdapter[actionCall](this.innerValue, forward ? amount : -amount);\n this.setValueFromMoment(newValue);\n }\n}\n","import { Directive, Inject, Input, Optional } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { DateAdapter, MAT_DATE_FORMATS } from '@angular/material/core';\nimport { MomentDateAdapter } from '@angular/material-moment-adapter';\nimport { CustomDateFormat, DateDisplay, DateParse } from '../../../models/datePicker';\n\n@Directive({\n selector: '[drDatePickerFormat]',\n providers: [\n {\n provide: DateAdapter,\n useClass: MomentDateAdapter\n },\n {\n provide: MAT_DATE_FORMATS,\n useClass: CustomDateFormat\n }\n ]\n})\nexport class DrDatePickerFormatDirective {\n @Input() public configDateParse: DateParse;\n @Input() public configDateDisplay: DateDisplay;\n\n @Input('drDatePickerFormat')\n set datePickerFormat(format: string) {\n if (this.configDateParse) {\n this.matDateFormat.updateDateFormat(\n this.configDateParse,\n this.configDateDisplay\n );\n } else {\n this.matDateFormat.updateDateFormat({ dateInput: format });\n }\n const value = this.ngControl.value;\n this.ngControl.valueAccessor?.writeValue(value);\n }\n\n constructor(\n @Inject(MAT_DATE_FORMATS) public matDateFormat: CustomDateFormat,\n @Optional() private ngControl: NgControl\n ) {\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TimeframeOption } from '../../models/datePicker';\nimport { ITimeframeOption } from './dr-date-picker_custom-header/dr-date-picker_custom-header.component';\n\n@Pipe({\n name: 'drShowTimeframePipe'\n})\nexport class DrShowTimeframePipe implements PipeTransform {\n transform(arr: ITimeframeOption[], showOptions: TimeframeOption[]): ITimeframeOption[] {\n return arr.filter(item => showOptions.includes(item.timeframe));\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nimport { DrInputComponent } from './dr-input/dr-input.component';\nimport { DrSelectComponent } from './dr-select/dr-select.component';\nimport { CheckboxComponent } from './checkbox/checkbox.component';\nimport { RadioButtonComponent } from './radio-button/radio-button.component';\nimport { RadioGroupComponent } from './radio-button/radio-group.component';\nimport { DrToggleComponent } from './dr-toggle/dr-toggle.component';\nimport { DrButtonComponent } from './button/button.component';\n\nimport { MatCalendar, MatDatepickerModule } from '@angular/material/datepicker';\nimport { DrDatePickerComponent } from './date-pickers/dr-date-picker/dr-date-picker.component';\nimport { DrDatePickerWithTimeframeComponent } from './date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nimport { DrDatePickerFormatDirective } from './date-pickers/directives/dr-date-picker-format.directive';\nimport { DrToggleButtonComponent } from './dr-toggle-button/dr-toggle-button.component';\nimport { DrModelDebounceChangeDirective } from './dr-model-debounce-change.directive';\nimport { DrDatePickerCustomHeaderComponent } from './date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nimport { DrShowTimeframePipe } from './date-pickers/dr-show-timeframe.pipe';\n\n// !!! Please do not use such approach in other places\n// Hard fix for 'none' calendar view selection\nMatCalendar.prototype.focusActiveCell = function() {\n this._getCurrentViewComponent()?._focusActiveCell(false);\n};\n\nconst components = [\n DrButtonComponent,\n RadioButtonComponent,\n RadioGroupComponent,\n CheckboxComponent,\n DrInputComponent,\n DrSelectComponent,\n DrToggleComponent,\n DrToggleButtonComponent,\n DrDatePickerComponent,\n DrDatePickerWithTimeframeComponent,\n DrDatePickerFormatDirective,\n DrDatePickerCustomHeaderComponent,\n DrModelDebounceChangeDirective,\n DrShowTimeframePipe\n];\n\n@NgModule({\n declarations: components,\n exports: components,\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n NgSelectModule,\n MatDatepickerModule\n ]\n})\n\nexport class DrInputsModule {\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TooltipInfoContext } from '../../interfaces/tooltip-component-context';\n\n@Component({\n selector: 'dr-tooltip-info',\n templateUrl: './tooltip-info.component.html',\n styleUrls: ['./tooltip-info.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipInfoComponent {\n\n @Input() data: TooltipInfoContext;\n @Input() useDescriptionAsHTML: boolean;\n\n constructor() {\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { TooltipInfoContext } from '../../interfaces/tooltip-component-context';\n\n@Component({\n selector: 'dr-tooltip-info-simple',\n templateUrl: './tooltip-info-simple.component.html',\n styleUrls: ['./tooltip-info-simple.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipInfoSimpleComponent {\n\n @Input() context: TooltipInfoContext;\n\n constructor() {\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'dr-tooltip-no-body',\n templateUrl: './tooltip-no-body.component.html',\n styleUrls: ['./tooltip-no-body.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class TooltipNoBodyComponent implements OnInit {\n\n @Input() context: any;\n\n constructor() {\n }\n\n ngOnInit(): void {\n }\n\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dr-tooltip-process-default',\n template: `\n <div class=\"container\" [innerHTML]=\"text\"></div>\n `,\n styles: [`\n .container {\n width: auto;\n max-width: 388px;\n text-align: start;\n font-size: 14px;\n line-height: 22px;\n padding: 10px 12px;\n color: #151B3F;\n background-color: #FFF;\n border-radius: 8px;\n box-shadow: 0px 4px 8px 1px rgba(0, 0, 0, 0.25);\n border: 1px solid #C3C4CE;\n }\n `],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TooltipProcessDefaultComponent {\n\n @Input() text: string;\n\n constructor() {\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DrTooltipDirective } from './dr-tooltip.directive';\nimport { TooltipComponent } from './dr-tooltip.component';\nimport { CommonModule } from '@angular/common';\nimport { TooltipInfoComponent } from './components/tooltip-info/tooltip-info.component';\nimport { TooltipInfoSimpleComponent } from './components/tooltip-info-simple/tooltip-info-simple.component';\nimport { TooltipNoBodyComponent } from './components/tooltip-no-body/tooltip-no-body.component';\nimport { TooltipProcessDefaultComponent } from './components/tooltip-process-default/tooltip-process-default.component';\n\nconst TOOLTIP_COMPONENTS = [\n TooltipInfoComponent,\n TooltipInfoSimpleComponent,\n TooltipNoBodyComponent,\n TooltipProcessDefaultComponent\n];\n\n@NgModule({\n imports: [\n CommonModule\n ],\n exports: [\n TooltipComponent,\n DrTooltipDirective,\n ...TOOLTIP_COMPONENTS\n ],\n providers: [],\n declarations: [\n TooltipComponent,\n DrTooltipDirective,\n ...TOOLTIP_COMPONENTS\n ],\n})\n\nexport class DrTooltipModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrAvatarComponent } from './dr-avatar.component';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { CommonModule } from '@angular/common';\nimport { DrAvatarPipe } from './dr-avatar.pipe';\n\n@NgModule({\n declarations: [\n DrAvatarComponent,\n DrAvatarPipe\n ],\n exports: [\n DrAvatarComponent,\n DrAvatarPipe\n ],\n imports: [\n MatTooltipModule,\n DrTooltipModule,\n CommonModule\n ]\n})\n\nexport class DrAvatarModule {\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrSpinnerComponent } from './dr-spinner.component';\nimport { DrSpinnerDirective } from './dr-spinner.directive';\n\nconst components = [DrSpinnerComponent];\nconst directives = [DrSpinnerDirective];\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [...components, ...directives],\n declarations: [...components, ...directives]\n})\n\nexport class DrSpinnerModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrPopoverDirective } from './dr-popover.directive';\nimport { CommonModule } from '@angular/common';\nimport { DrPopoverComponent } from './dr-popover.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ],\n exports: [\n DrPopoverDirective,\n DrPopoverComponent,\n ],\n providers: [],\n declarations: [\n DrPopoverDirective,\n DrPopoverComponent,\n ],\n})\n\nexport class DrPopoverModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrDropdownPositionDirective } from './dr-dropdown-position.directive';\nimport { DrDropdownDirective } from './dr-dropdown.directive';\nimport { DrDropdownComponent } from './dr-dropdown.component';\nimport { CommonModule } from '@angular/common';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\nimport { DrDropdownItemShowPipe } from './dr-dropdown-item-show.pipe';\nimport { DrDropdownService } from './dr-dropdown.service';\n\n@NgModule({\n imports: [\n CommonModule,\n DrTooltipModule,\n ],\n declarations: [\n DrDropdownDirective,\n DrDropdownPositionDirective,\n DrDropdownComponent,\n DrDropdownItemShowPipe,\n ],\n exports: [\n DrDropdownDirective,\n DrDropdownPositionDirective,\n DrDropdownComponent,\n DrDropdownItemShowPipe,\n ],\n providers: [\n DrDropdownService,\n ],\n})\n\nexport class DrDropdownModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrTabsComponent } from './dr-tabs.component';\nimport { DrTabComponent } from './dr-tab.component';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n imports: [\n CommonModule,\n MatTabsModule,\n FormsModule,\n ReactiveFormsModule,\n DrInputsModule\n ],\n exports: [\n DrTabsComponent,\n DrTabComponent\n ],\n providers: [],\n declarations: [\n DrTabsComponent,\n DrTabComponent\n ],\n})\n\nexport class DrTabsModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DrAccordionComponent } from './accordion.component';\nimport { DrAccordionItemComponent } from './accordion-item.component';\nimport { DrAccordionItemHeaderComponent } from './accordion-item-header.component';\nimport { DrAccordionItemBodyComponent } from './accordion-item-body.component';\n\nconst DR_ACCORDION_COMPONENTS = [\n DrAccordionComponent,\n DrAccordionItemComponent,\n DrAccordionItemHeaderComponent,\n DrAccordionItemBodyComponent,\n];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...DR_ACCORDION_COMPONENTS],\n declarations: [...DR_ACCORDION_COMPONENTS],\n providers: [],\n})\nexport class DrAccordionModule {\n}\n","import { NgModule } from '@angular/core';\nimport { DrLayoutComponent } from './dr-layout.component';\nimport { CommonModule } from '@angular/common';\nimport { DrLayoutHeaderComponent } from './dr-layout-header.component';\nimport { DrLayoutBodyComponent } from './dr-layout-body.component';\n\nconst components = [\n DrLayoutComponent,\n DrLayoutHeaderComponent,\n DrLayoutBodyComponent\n];\n\n@NgModule({\n imports: [CommonModule],\n exports: [...components],\n declarations: [...components],\n})\n\nexport class DrLayoutModule {\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { DrErrorComponent } from './dr-error.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n DrTooltipModule\n ],\n exports: [DrErrorComponent],\n providers: [],\n declarations: [\n DrErrorComponent\n ],\n})\n\nexport class DrErrorModule {\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { Step } from './interfaces/stepper';\n\n@Component({\n selector: 'dr-stepper',\n templateUrl: './stepper.component.html',\n styleUrls: ['./stepper.component.scss'],\n changeDetection: ChangeDetectionStrategy.Default\n})\nexport class StepperComponent {\n\n @Input() steps: Step[];\n @Input() currentStep: Step;\n @Input() withoutConnectors = false;\n @Input() hiddenNames = false;\n @Input() inlineLabels = false;\n @Input() disabled = false;\n @Input() hiddenIndex = false;\n @Output() stepChange: EventEmitter<Step> = new EventEmitter<Step>();\n @ViewChild('stepper', { read: ElementRef }) public stepper: ElementRef<any>;\n\n constructor() {\n }\n\n selectStep(step: Step): void {\n if (step !== this.currentStep && !this.disabled) {\n this.stepChange.emit(step);\n }\n }\n\n getWidth(step: Step): string {\n if (this.withoutConnectors) return '0%';\n if (step.completed) return '100%';\n if (step.index === 0 || this.steps[step.index - 1].completed) return `${ (step?.completedTasks / step?.requiredTasks * 100) || 0 }%`;\n return '0%';\n }\n\n public scrollLeft(): void {\n this.stepper.nativeElement.scrollLeft -= 80;\n }\n\n public scrollRight(): void {\n this.stepper.nativeElement.scrollLeft += 80;\n }\n\n public roundWidth(width: number): number {\n return Math.round(width);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { StepperComponent } from './stepper.component';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n declarations: [StepperComponent],\n imports: [\n CommonModule,\n DrTooltipModule\n ],\n exports: [StepperComponent]\n})\nexport class DrStepperModule {\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DialogWrapperComponent } from './components/dialog-wrapper/dialog-wrapper.component';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { DialogModalWrapperComponent } from './components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nimport { DialogService } from './services/dialog.service';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { DrTooltipModule } from '../dr-tooltip/dr-tooltip.module';\n\n@NgModule({\n declarations: [DialogWrapperComponent, DialogModalWrapperComponent],\n imports: [\n CommonModule,\n MatDialogModule,\n DrInputsModule,\n ReactiveFormsModule,\n DrTooltipModule\n ],\n exports: [DialogWrapperComponent, DialogModalWrapperComponent],\n providers: [\n { provide: MatDialogRef, useValue: {} },\n { provide: MAT_DIALOG_DATA, useValue: {} },\n DialogService\n ]\n})\nexport class DrDialogModule {\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n} from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { IMAGE_TYPES } from '../../models/chat';\n\n@Component({\n selector: 'dr-chat-form',\n templateUrl: 'chat-form.component.html',\n styleUrls: ['./chat-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatFormComponent {\n inputFocus = false;\n inputHover = false;\n\n droppedFiles: any[] = [];\n\n /**\n * Predefined message text\n *\n * @type {string}\n */\n @Input() message = '';\n\n /**\n * Message placeholder text\n *\n * @type {string}\n */\n @Input() messagePlaceholder = 'Type a message';\n\n /**\n * Show send button\n *\n * @type {boolean}\n */\n @Input() dropFiles = false;\n\n /**\n * File drop placeholder text\n *\n * @type {string}\n */\n @Input() dropFilePlaceholder = 'Drop file to send';\n\n /**\n *\n * @type {EventEmitter<{ message: string, files: File[] }>}\n */\n @Output() send = new EventEmitter<{ message: string; files: File[] }>();\n\n /**\n * Emits when message input value has been changed\n *\n * @type {EventEmitter<string>}\n */\n\n @Output() inputChange = new EventEmitter<string>();\n\n @HostBinding('class.file-over') fileOver = false;\n\n constructor(protected cdr: ChangeDetectorRef, protected domSanitizer: DomSanitizer) {\n }\n\n @HostListener('drop', ['$event'])\n onDrop(event: any) {\n if (this.dropFiles) {\n event.preventDefault();\n event.stopPropagation();\n\n this.fileOver = false;\n if (event.dataTransfer?.files) {\n for (const file of event.dataTransfer.files) {\n const res = file;\n\n if (IMAGE_TYPES.includes(file.type)) {\n const fr = new FileReader();\n fr.onload = (e: any) => {\n res.src = e.target.result;\n res.urlStyle = this.domSanitizer.bypassSecurityTrustStyle(`url(${ res.src })`);\n this.cdr.detectChanges();\n };\n\n fr.readAsDataURL(file);\n }\n this.droppedFiles.push(res);\n }\n }\n }\n }\n\n removeFile(file) {\n const index = this.droppedFiles.indexOf(file);\n if (index >= 0) {\n this.droppedFiles.splice(index, 1);\n }\n }\n\n @HostListener('dragover', ['$event'])\n onDragOver(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = true;\n }\n }\n\n @HostListener('dragleave', ['$event'])\n onDragLeave(event: DragEvent) {\n event.preventDefault();\n event.stopPropagation();\n if (this.dropFiles) {\n this.fileOver = false;\n }\n }\n\n sendMessage() {\n if (this.droppedFiles.length || String(this.message).trim().length) {\n this.send.emit({ message: this.message, files: this.droppedFiles });\n this.message = '';\n this.droppedFiles = [];\n this.cdr.markForCheck();\n }\n }\n\n onModelChange(value: string): void {\n this.inputChange.emit(value);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { DrChatCustomMessageDirective } from './chat-custom-message.directive';\n\n/**\n * `DrCustomMessageService` is used to store instances of `DrChatCustomMessageDirective`s which\n * were provided in the chat component.\n */\n@Injectable()\nexport class DrChatCustomMessageService {\n protected readonly customMessages = new Map<string, DrChatCustomMessageDirective>();\n\n register(type: string, instance: DrChatCustomMessageDirective): void {\n this.customMessages.set(type, instance);\n }\n\n unregister(type: string): boolean {\n return this.customMessages.delete(type);\n }\n\n getInstance(type: string): DrChatCustomMessageDirective | undefined {\n return this.customMessages.get(type);\n }\n}\n","import { ChangeDetectionStrategy, Component, HostBinding, Input, TemplateRef } from '@angular/core';\nimport { animate, state, style, transition, trigger } from '@angular/animations';\nimport { CHAT_MESSAGE_TYPE, IChatMessage } from '../../models/chat';\nimport { DrChatCustomMessageDirective } from './dr-chat-message-custom/chat-custom-message.directive';\nimport { DrChatCustomMessageService } from './dr-chat-message-custom/chat-custom-message.service';\n\n@Component({\n selector: 'dr-chat-message',\n templateUrl: 'chat-message.component.html',\n styleUrls: ['./chat-message.component.scss'],\n animations: [\n trigger('flyInOut', [\n state('in', style({ transform: 'translateX(0)' })),\n transition('void => *', [style({ transform: 'translateX(-100%)' }), animate(80)]),\n transition('* => void', [animate(80, style({ transform: 'translateX(100%)' }))]),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageComponent {\n\n MESSAGE_TYPE = CHAT_MESSAGE_TYPE;\n MESSAGE_TYPE_CUSTOM = CHAT_MESSAGE_TYPE.EMBED;\n\n @HostBinding('@flyInOut')\n get flyInOut() {\n return true;\n }\n\n @HostBinding('class.not-reply')\n get notReply() {\n return !this.reply;\n }\n\n /**\n * Determines if a message is a reply\n */\n @Input()\n @HostBinding('class.reply')\n get reply(): boolean {\n return this._reply;\n }\n\n set reply(value: boolean) {\n this._reply = !!value;\n }\n\n protected _reply = false;\n\n @Input() type: string;\n\n /**\n * Message\n *\n * @type {IChatMessage}\n */\n @Input() message: IChatMessage;\n\n /**\n * Data which will be set as custom message template context\n *\n * @type {any}\n */\n @Input() customMessageData: any;\n\n /**\n * The outer flag is whether the message is empty. Needed if it is impossible to calculate it inside.\n *\n * @type {boolean}\n */\n @Input()\n @HostBinding('class.empty')\n get isEmpty(): boolean {\n return this._isEmpty;\n }\n\n set isEmpty(value: boolean) {\n this._isEmpty = !!value;\n }\n\n protected _isEmpty = false;\n\n public customMessage: boolean;\n\n constructor(private customMessageService: DrChatCustomMessageService) {\n }\n\n public getTemplate(): TemplateRef<any> {\n this.customMessage = true;\n const customMessage = this.getCustomMessage(this.type);\n return customMessage.templateRef;\n }\n\n public getTemplateContext(): { $implicit: any; isReply: boolean } {\n return { $implicit: this.customMessageData, isReply: this.reply };\n }\n\n protected getCustomMessage(type: string): DrChatCustomMessageDirective {\n const customMessageDirective = this.customMessageService.getInstance(type);\n\n if (!customMessageDirective) {\n throw new Error(\n `dr-chat: Can't find template for custom type '${ type }'. ` +\n `Make sure you provide it in the chat component with *drCustomMessage='${ type }'.`,\n );\n }\n\n return customMessageDirective;\n }\n}\n","import {\n Component,\n Input,\n ViewChild,\n ElementRef,\n ContentChildren,\n QueryList,\n AfterViewInit,\n ContentChild,\n ChangeDetectorRef,\n Output,\n EventEmitter,\n OnDestroy,\n} from '@angular/core';\n\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatCustomMessageService } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.service';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'dr-chat',\n styleUrls: ['./chat.component.scss'],\n templateUrl: 'chat.component.html',\n providers: [DrChatCustomMessageService]\n})\nexport class DrChatComponent implements AfterViewInit, OnDestroy {\n\n private destroy$ = new Subject<void>();\n\n @Input() title: string;\n\n @Input() showClearButton = true;\n\n @Input() noMessagesPlaceholder = 'No messages yet.';\n\n @Input() set contentUpdateSubject(value: Subject<any>) {\n if (value) {\n value.pipe(takeUntil(this.destroy$)).subscribe(() => {\n this.updateView();\n });\n }\n };\n\n /**\n * Scroll chat to the bottom of the list when a new message arrives\n */\n @Input()\n get scrollBottom(): boolean {\n return this._scrollBottom;\n }\n\n set scrollBottom(value: boolean) {\n this._scrollBottom = !!value;\n }\n\n protected _scrollBottom = true;\n\n @ViewChild('messagesContainer') messagesContainer: ElementRef;\n @ContentChildren(DrChatMessageComponent) messages: QueryList<DrChatMessageComponent>;\n @ContentChild(DrChatFormComponent) chatForm: DrChatFormComponent;\n @Output() clear: EventEmitter<any> = new EventEmitter<any>();\n\n constructor(private cdr: ChangeDetectorRef) {\n }\n\n ngAfterViewInit() {\n this.messages.changes.subscribe(messages => {\n this.messages = messages;\n this.updateView();\n });\n\n this.updateView();\n }\n\n updateView() {\n if (this.scrollBottom) {\n this.scrollListBottom();\n }\n }\n\n scrollListBottom() {\n setTimeout(() => {\n this.messagesContainer.nativeElement.scrollTo({ top: this.messagesContainer.nativeElement.scrollHeight, behavior: 'smooth' });\n this.cdr.markForCheck();\n });\n }\n\n ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IChatTextMessage } from '../../../models/chat';\n\n/**\n * Chat text message component.\n */\n@Component({\n selector: 'dr-chat-message-text',\n templateUrl: 'chat-message-text.component.html',\n styleUrls: ['./chat-message-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageTextComponent {\n /**\n * Message sender\n *\n * @type {IChatTextMessage}\n */\n @Input() message: IChatTextMessage;\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IChatRichTextMessage } from '../../../models/chat';\n\n/**\n * Chat rich-text message component.\n */\n@Component({\n selector: 'dr-chat-message-rich-text',\n templateUrl: 'chat-message-rich-text.component.html',\n styleUrls: ['./chat-message-rich-text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageRichTextComponent {\n /**\n * Message sender\n *\n * @type {IChatRichTextMessage}\n */\n @Input() message: IChatRichTextMessage;\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport {\n IChatDownloadFileMessage,\n IChatImageMessage,\n IChatMessageFile,\n IChatMessageFileImagePreview,\n IMAGE_TYPES\n} from '../../../models/chat';\n\n/**\n * Chat message component.\n */\n@Component({\n selector: 'dr-chat-message-file',\n templateUrl: 'chat-message-file.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class DrChatMessageFileComponent {\n\n readyFiles: any[];\n\n /**\n * Message with file\n *\n * @type {IChatDownloadFileMessage | IChatImageMessage}\n */\n @Input() message: IChatDownloadFileMessage | IChatImageMessage;\n\n /**\n * Message file path\n *\n * @type {Date}\n */\n @Input()\n set files(files: IChatMessageFile[]) {\n this.readyFiles = (files || []).map((file: any) => {\n const isImage = this.isImage(file);\n return {\n ...file,\n urlStyle: isImage && this.domSanitizer.bypassSecurityTrustStyle(`url(${ file.url })`),\n isImage,\n };\n });\n this.cd.detectChanges();\n }\n\n constructor(protected cd: ChangeDetectorRef, protected domSanitizer: DomSanitizer) {\n }\n\n\n isImage(file: IChatMessageFile): boolean {\n const type = (file as IChatMessageFileImagePreview).type;\n if (type) {\n return IMAGE_TYPES.includes(type);\n }\n return false;\n }\n}\n","import { Directive, Input, OnDestroy, OnInit, TemplateRef } from '@angular/core';\n\nimport { DrChatCustomMessageService } from './chat-custom-message.service';\n\nconst throwCustomMessageTypeIsRequired = () => {\n throw new Error('[drCustomMessage]: custom message type is required.');\n};\n\n@Directive({\n selector: `[drCustomMessage]`,\n})\nexport class DrChatCustomMessageDirective implements OnInit, OnDestroy {\n /**\n * Defines a message type which should rendered with the custom message template.\n *\n * @type {string}\n */\n @Input()\n get drCustomMessage(): string {\n return this._type;\n }\n set drCustomMessage(value: string) {\n this._type = value;\n }\n protected _type: string;\n\n get type(): string {\n return this._type;\n }\n\n constructor(public templateRef: TemplateRef<any>,\n protected customMessageService: DrChatCustomMessageService) {}\n\n ngOnInit() {\n if (!this._type) {\n throwCustomMessageTypeIsRequired();\n }\n this.customMessageService.register(this.type, this);\n }\n\n ngOnDestroy() {\n this.customMessageService.unregister(this.type);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DrInputsModule } from '../dr-inputs/dr-inputs.module';\nimport { DrAvatarModule } from '../dr-avatar/dr-avatar.module';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\n\nimport { DrChatComponent } from './chat.component';\nimport { DrChatMessageComponent } from './dr-chat-message/chat-message.component';\nimport { DrChatFormComponent } from './dr-chat-form/chat-form.component';\nimport { DrChatMessageTextComponent } from './dr-chat-message/dr-chat-message-text/chat-message-text.component';\nimport { DrChatMessageRichTextComponent } from './dr-chat-message/dr-chat-message-rich-text/chat-message-rich-text.component';\nimport { DrChatMessageFileComponent } from './dr-chat-message/dr-chat-message-file/chat-message-file.component';\nimport { DrChatCustomMessageDirective } from './dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\n\n\nconst DR_CHAT_COMPONENTS = [\n DrChatComponent,\n DrChatMessageComponent,\n DrChatFormComponent,\n DrChatMessageTextComponent,\n DrChatMessageFileComponent,\n DrChatMessageRichTextComponent,\n];\n\nconst DR_CHAT_DIRECTIVES = [DrChatCustomMessageDirective];\n\n\n@NgModule({\n imports: [\n FormsModule,\n ReactiveFormsModule,\n CommonModule,\n DrAvatarModule,\n DrInputsModule\n ],\n declarations: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n exports: [...DR_CHAT_COMPONENTS, ...DR_CHAT_DIRECTIVES],\n})\nexport class DrChatModule {\n}\n","/* components */\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/date-tags/forecast-tag/forecast-tag.component';\nexport * from './lib/date-tags/month-tag/month-tag.component';\nexport * from './lib/date-tags/quarter-tag/quarter-tag.component';\nexport * from './lib/date-tags/week-tag/week-tag.component';\nexport * from './lib/date-tags/year-tag/year-tag.component';\nexport * from './lib/dr-tags/dr-tag.component';\nexport * from './lib/list-tags/list-tag.component';\nexport * from './lib/date-tags/day-tag/day-tag.component';\nexport * from './lib/date-tags/date-tag.component';\nexport * from './lib/dr-inputs/radio-button/radio-button.component';\nexport * from './lib/dr-inputs/radio-button/radio-group.component';\nexport * from './lib/dr-inputs/checkbox/checkbox.component';\nexport * from './lib/dr-inputs/dr-input/dr-input.component';\nexport * from './lib/dr-inputs/dr-select/dr-select.component';\nexport * from './lib/dr-avatar/dr-avatar.component';\nexport * from './lib/dr-avatar/dr-avatar.pipe';\nexport * from './lib/dr-tooltip/dr-tooltip.component';\nexport * from './lib/dr-tooltip/dr-tooltip.directive';\nexport * from './lib/dr-inputs/dr-toggle/dr-toggle.component';\nexport * from './lib/dr-inputs/dr-toggle-button/dr-toggle-button.component';\nexport * from './lib/dr-spinner/dr-spinner.component';\nexport * from './lib/dr-spinner/dr-spinner.directive';\nexport * from './lib/dr-inputs/button/button.component';\n\nexport * from './lib/dr-popover/dr-popover.directive';\nexport * from './lib/dr-popover/dr-popover.component';\nexport * from './lib/dr-popover/dr-popover.service';\n\nexport * from './lib/dr-dropdown/dr-dropdown.directive';\nexport * from './lib/dr-dropdown/dr-dropdown-position.directive';\nexport * from './lib/dr-dropdown/dr-dropdown.component';\nexport * from './lib/dr-dropdown/dr-dropdown.service';\nexport * from './lib/dr-dropdown/dr-dropdown-item-show.pipe';\nexport * from './lib/dr-tabs/dr-tabs.component';\nexport * from './lib/dr-tabs/dr-tab.component';\n\nexport * from './lib/dr-accordion/accordion.component';\nexport * from './lib/dr-accordion/accordion-item.component';\nexport * from './lib/dr-accordion/accordion-item-header.component';\nexport * from './lib/dr-accordion/accordion-item-body.component';\n\nexport * from './lib/dr-layout/dr-layout.component';\nexport * from './lib/dr-layout/dr-layout-header.component';\nexport * from './lib/dr-layout/dr-layout-body.component';\n\nexport * from './lib/dr-error/dr-error.component';\n\nexport * from './lib/dr-dialog/services/dialog.service';\n\n/* enums */\nexport { TooltipPosition } from './lib/dr-tooltip/enums/tooltip-position.enum';\n\n/* interfaces & types */\nexport { TooltipInfoContext } from './lib/dr-tooltip/interfaces/tooltip-component-context';\nexport { Step } from './lib/stepper/interfaces/stepper';\nexport * from './lib/dr-dialog/interfaces/dialog-data';\n\n/* directives */\nexport * from './lib/dr-inputs/dr-model-debounce-change.directive';\n\n/* models */\nexport * from './lib/models/datePicker';\nexport { TAG_TYPES, ITag, IDateTag, IListTag, ITagForServer } from './lib/models/serverTags';\nexport { ISpinnerOptions, SpinnerType, SpinnerSize } from './lib/models/spinnerOptions';\nexport {\n ElPosition,\n IDropdown,\n IDropdownItem,\n IDropdownActionIcon,\n IDropdownCoordinate,\n IDropdownCallEvent,\n IDropdownAction\n} from './lib/models/dropdown';\nexport {\n DrPopoverRef,\n IDrPopoverComponentModel,\n Point,\n DrPopoverConfig,\n IPopoverManualClosing,\n DrPopoverAlignment,\n DrPopoverAlignmentDimension,\n} from './lib/models/popover';\nexport { IValidationError } from './lib/models/validationError';\nexport * from './lib/models/chat';\n\n/* modules */\nexport { DateTagModule } from './lib/date-tags/date-tag.module';\nexport { ListTagModule } from './lib/list-tags/list-tag.module';\nexport { DrTagModule } from './lib/dr-tags/dr-tag.module';\nexport { DrInputsModule } from './lib/dr-inputs/dr-inputs.module';\nexport { DrTooltipModule } from './lib/dr-tooltip/dr-tooltip.module';\nexport { DrAvatarModule } from './lib/dr-avatar/dr-avatar.module';\nexport { DrSpinnerModule } from './lib/dr-spinner/dr-spinner.module';\nexport { DrPopoverModule } from './lib/dr-popover/dr-popover.module';\nexport { DrDropdownModule } from './lib/dr-dropdown/dr-dropdown.module';\nexport { DrTabsModule } from './lib/dr-tabs/dr-tabs.module';\nexport { DrAccordionModule } from './lib/dr-accordion/accordion.module';\nexport { DrSharedUtils } from './lib/utils/dr-shared-utils';\nexport { DrLayoutModule } from './lib/dr-layout/dr-layout.module';\nexport { DrErrorModule } from './lib/dr-error/dr-error.module';\nexport { DrStepperModule } from './lib/stepper/stepper.module';\nexport { DrDialogModule } from './lib/dr-dialog/dialog.module';\nexport { DrChatModule } from './lib/dr-chat/chat.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {components as ɵa} from './lib/date-tags/date-tag.module';\nexport {DrChatComponent as ɵp} from './lib/dr-chat/chat.component';\nexport {DrChatFormComponent as ɵs} from './lib/dr-chat/dr-chat-form/chat-form.component';\nexport {DrChatMessageComponent as ɵr} from './lib/dr-chat/dr-chat-message/chat-message.component';\nexport {DrChatCustomMessageDirective as ɵw} from './lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.directive';\nexport {DrChatCustomMessageService as ɵq} from './lib/dr-chat/dr-chat-message/dr-chat-message-custom/chat-custom-message.service';\nexport {DrChatMessageFileComponent as ɵu} from './lib/dr-chat/dr-chat-message/dr-chat-message-file/chat-message-file.component';\nexport {DrChatMessageRichTextComponent as ɵv} from './lib/dr-chat/dr-chat-message/dr-chat-message-rich-text/chat-message-rich-text.component';\nexport {DrChatMessageTextComponent as ɵt} from './lib/dr-chat/dr-chat-message/dr-chat-message-text/chat-message-text.component';\nexport {DialogModalWrapperComponent as ɵo} from './lib/dr-dialog/components/dialog-modal-wrapper/dialog-modal-wrapper.component';\nexport {DialogWrapperComponent as ɵn} from './lib/dr-dialog/components/dialog-wrapper/dialog-wrapper.component';\nexport {DrDatePickerFormatDirective as ɵf} from './lib/dr-inputs/date-pickers/directives/dr-date-picker-format.directive';\nexport {DrDatePickerWithTimeframeComponent as ɵe} from './lib/dr-inputs/date-pickers/dr-date-picker-with-timeframe/dr-date-picker-with-timeframe.component';\nexport {DrDatePickerComponent as ɵc} from './lib/dr-inputs/date-pickers/dr-date-picker/dr-date-picker.component';\nexport {DrDatePickerCustomHeaderComponent as ɵg} from './lib/dr-inputs/date-pickers/dr-date-picker_custom-header/dr-date-picker_custom-header.component';\nexport {DrShowTimeframePipe as ɵh} from './lib/dr-inputs/date-pickers/dr-show-timeframe.pipe';\nexport {DrDatePickerService as ɵd} from './lib/dr-inputs/date-pickers/services/dr-date-picker.service';\nexport {TooltipInfoSimpleComponent as ɵj} from './lib/dr-tooltip/components/tooltip-info-simple/tooltip-info-simple.component';\nexport {TooltipInfoComponent as ɵi} from './lib/dr-tooltip/components/tooltip-info/tooltip-info.component';\nexport {TooltipNoBodyComponent as ɵk} from './lib/dr-tooltip/components/tooltip-no-body/tooltip-no-body.component';\nexport {TooltipProcessDefaultComponent as ɵl} from './lib/dr-tooltip/components/tooltip-process-default/tooltip-process-default.component';\nexport {POPUP_ANIMATION as ɵb} from './lib/models/constants';\nexport {StepperComponent as ɵm} from './lib/stepper/stepper.component';"],"names":["EventEmitter","Component","ViewEncapsulation","Input","Output","moment","FormControl","DateAdapter","MomentDateAdapter","MAT_DATE_LOCALE","MAT_MOMENT_DATE_ADAPTER_OPTIONS","MAT_DATE_FORMATS","momentImported","NG_VALUE_ACCESSOR","ChangeDetectionStrategy","ChangeDetectorRef","Subject","startWith","switchMap","from","takeUntil","merge","isPlatformBrowser","fromEvent","filter","forwardRef","ElementRef","Inject","PLATFORM_ID","DOCUMENT","ContentChildren","noop","Renderer2","HostBinding","ContentChild","Pipe","transition","style","animate","BehaviorSubject","TemplateRef","trigger","HostListener","ComponentPortal","skip","Directive","Overlay","OverlayPositionBuilder","SpinnerType","SpinnerSize","ComponentFactoryResolver","ViewContainerRef","ViewChild","DrPopoverAlignmentDimension","OverlayConfig","Injector","first","Injectable","Host","state","_","catchError","MatDialogRef","MAT_DIALOG_DATA","FormGroup","MatDialog","TooltipPosition","DIALOG_SIZE","DIALOG_BUTTON_LABEL","DIALOG_FIELD_TYPE","debounceTime","distinctUntilChanged","NgModel","DateFromats","DatePickerPeriodPosition","TimeframeOption","CalendarView","CHAT_MESSAGE_TYPE","components","NgModule","CommonModule","MatNativeDateModule","MatDatepickerModule","FormsModule","MatFormFieldModule","ReactiveFormsModule","MatInputModule","MatMomentDateModule","MatSelectModule","MatButtonToggleModule","MatCalendar","NgControl","Optional","NgSelectModule","MatTooltipModule","MatTabsModule","ɵ0","MatDialogModule","DomSanitizer"],"mappings":"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"}