@firestitch/form 12.4.9 → 12.4.10

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.
Files changed (103) hide show
  1. package/app/components/form-dialog-actions/form-dialog-actions.component.d.ts +23 -23
  2. package/app/consts/error-messages.const.d.ts +19 -19
  3. package/app/directives/button.directive.d.ts +35 -34
  4. package/app/directives/form/form.directive.d.ts +122 -122
  5. package/app/directives/form-dialog-close.directive.d.ts +12 -12
  6. package/app/directives/index.d.ts +2 -2
  7. package/app/directives/submit-button.directive.d.ts +6 -6
  8. package/app/directives/validators/compare.directive.d.ts +15 -15
  9. package/app/directives/validators/control.directive.d.ts +48 -48
  10. package/app/directives/validators/daterange.directive.d.ts +13 -13
  11. package/app/directives/validators/email.directive.d.ts +13 -13
  12. package/app/directives/validators/emails.directive.d.ts +13 -13
  13. package/app/directives/validators/function.directive.d.ts +15 -15
  14. package/app/directives/validators/greater.directive.d.ts +13 -13
  15. package/app/directives/validators/integer.directive.d.ts +13 -13
  16. package/app/directives/validators/lesser.directive.d.ts +13 -13
  17. package/app/directives/validators/max.directive.d.ts +13 -13
  18. package/app/directives/validators/maxlength.directive.d.ts +13 -13
  19. package/app/directives/validators/min.directive.d.ts +13 -13
  20. package/app/directives/validators/minlength.directive.d.ts +13 -13
  21. package/app/directives/validators/no-fs-validators.directive.d.ts +13 -13
  22. package/app/directives/validators/numeric.directive.d.ts +13 -13
  23. package/app/directives/validators/pattern.directive.d.ts +13 -13
  24. package/app/directives/validators/phone.directive.d.ts +13 -13
  25. package/app/directives/validators/required.directive.d.ts +16 -16
  26. package/app/directives/validators/url.directive.d.ts +14 -14
  27. package/app/directives/validators/validate.directive.d.ts +15 -15
  28. package/app/enums/confirm-result.d.ts +7 -7
  29. package/app/enums/form-status.d.ts +10 -10
  30. package/app/fs-form.module.d.ts +37 -37
  31. package/app/guards/form-deactivate.guard.d.ts +14 -14
  32. package/app/helpers/confirm-result-continue.d.ts +1 -1
  33. package/app/helpers/confirm-unsaved.d.ts +5 -5
  34. package/app/helpers/get-active-route.d.ts +2 -2
  35. package/app/helpers/get-form-errors.d.ts +2 -2
  36. package/app/helpers/index.d.ts +2 -2
  37. package/app/helpers/is-enabled.d.ts +1 -1
  38. package/app/interfaces/async-validator.d.ts +14 -14
  39. package/app/interfaces/confirm-config.d.ts +7 -7
  40. package/app/interfaces/confirm-tab-group.d.ts +10 -10
  41. package/app/interfaces/index.d.ts +4 -4
  42. package/app/interfaces/submit-event.d.ts +6 -6
  43. package/app/interfaces/submitted-event.d.ts +7 -7
  44. package/app/interfaces/validator.d.ts +13 -13
  45. package/app/providers/validate-messages.provider.d.ts +25 -25
  46. package/app/services/fsform.service.d.ts +16 -16
  47. package/app/validators/validators.d.ts +12 -12
  48. package/bundles/firestitch-form.umd.js +2839 -2836
  49. package/bundles/firestitch-form.umd.js.map +1 -1
  50. package/esm2015/app/components/form-dialog-actions/form-dialog-actions.component.js +91 -91
  51. package/esm2015/app/consts/error-messages.const.js +19 -19
  52. package/esm2015/app/directives/button.directive.js +153 -150
  53. package/esm2015/app/directives/form/form.directive.js +695 -695
  54. package/esm2015/app/directives/form-dialog-close.directive.js +30 -30
  55. package/esm2015/app/directives/index.js +2 -2
  56. package/esm2015/app/directives/submit-button.directive.js +13 -13
  57. package/esm2015/app/directives/validators/compare.directive.js +48 -48
  58. package/esm2015/app/directives/validators/control.directive.js +264 -264
  59. package/esm2015/app/directives/validators/daterange.directive.js +40 -40
  60. package/esm2015/app/directives/validators/email.directive.js +40 -40
  61. package/esm2015/app/directives/validators/emails.directive.js +40 -40
  62. package/esm2015/app/directives/validators/function.directive.js +40 -40
  63. package/esm2015/app/directives/validators/greater.directive.js +39 -39
  64. package/esm2015/app/directives/validators/integer.directive.js +40 -40
  65. package/esm2015/app/directives/validators/lesser.directive.js +39 -39
  66. package/esm2015/app/directives/validators/max.directive.js +35 -35
  67. package/esm2015/app/directives/validators/maxlength.directive.js +34 -34
  68. package/esm2015/app/directives/validators/min.directive.js +35 -35
  69. package/esm2015/app/directives/validators/minlength.directive.js +34 -34
  70. package/esm2015/app/directives/validators/no-fs-validators.directive.js +46 -46
  71. package/esm2015/app/directives/validators/numeric.directive.js +40 -40
  72. package/esm2015/app/directives/validators/pattern.directive.js +34 -34
  73. package/esm2015/app/directives/validators/phone.directive.js +40 -40
  74. package/esm2015/app/directives/validators/required.directive.js +70 -70
  75. package/esm2015/app/directives/validators/url.directive.js +46 -46
  76. package/esm2015/app/directives/validators/validate.directive.js +42 -42
  77. package/esm2015/app/enums/confirm-result.js +8 -8
  78. package/esm2015/app/enums/form-status.js +11 -11
  79. package/esm2015/app/fs-form.module.js +180 -180
  80. package/esm2015/app/guards/form-deactivate.guard.js +44 -44
  81. package/esm2015/app/helpers/confirm-result-continue.js +4 -4
  82. package/esm2015/app/helpers/confirm-unsaved.js +71 -71
  83. package/esm2015/app/helpers/get-active-route.js +6 -6
  84. package/esm2015/app/helpers/get-form-errors.js +24 -24
  85. package/esm2015/app/helpers/index.js +2 -2
  86. package/esm2015/app/helpers/is-enabled.js +3 -3
  87. package/esm2015/app/interfaces/async-validator.js +1 -1
  88. package/esm2015/app/interfaces/confirm-config.js +1 -1
  89. package/esm2015/app/interfaces/confirm-tab-group.js +1 -1
  90. package/esm2015/app/interfaces/index.js +4 -4
  91. package/esm2015/app/interfaces/submit-event.js +1 -1
  92. package/esm2015/app/interfaces/submitted-event.js +1 -1
  93. package/esm2015/app/interfaces/validator.js +1 -1
  94. package/esm2015/app/providers/validate-messages.provider.js +10 -10
  95. package/esm2015/app/services/fsform.service.js +39 -39
  96. package/esm2015/app/validators/validators.js +96 -96
  97. package/esm2015/firestitch-form.js +4 -4
  98. package/esm2015/public_api.js +36 -36
  99. package/fesm2015/firestitch-form.js +2276 -2273
  100. package/fesm2015/firestitch-form.js.map +1 -1
  101. package/firestitch-form.d.ts +5 -5
  102. package/package.json +1 -1
  103. package/public_api.d.ts +34 -34
@@ -1 +1 @@
1
- {"version":3,"file":"firestitch-form.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/app/enums/confirm-result.ts","../../src/app/helpers/confirm-unsaved.ts","../../src/app/directives/form-dialog-close.directive.ts","../../src/app/enums/form-status.ts","../../src/app/helpers/confirm-result-continue.ts","../../src/app/helpers/get-form-errors.ts","../../src/app/helpers/get-active-route.ts","../../src/app/services/fsform.service.ts","../../src/app/guards/form-deactivate.guard.ts","../../src/app/directives/form/form.directive.ts","../../src/app/consts/error-messages.const.ts","../../src/app/providers/validate-messages.provider.ts","../../src/app/directives/validators/control.directive.ts","../../src/app/helpers/is-enabled.ts","../../src/app/directives/validators/required.directive.ts","../../src/app/validators/validators.ts","../../src/app/directives/validators/min.directive.ts","../../src/app/directives/validators/max.directive.ts","../../src/app/directives/validators/minlength.directive.ts","../../src/app/directives/validators/maxlength.directive.ts","../../src/app/directives/validators/email.directive.ts","../../src/app/directives/validators/emails.directive.ts","../../src/app/directives/validators/phone.directive.ts","../../src/app/directives/validators/compare.directive.ts","../../src/app/directives/validators/integer.directive.ts","../../src/app/directives/validators/numeric.directive.ts","../../src/app/directives/validators/pattern.directive.ts","../../src/app/directives/validators/function.directive.ts","../../src/app/directives/validators/greater.directive.ts","../../src/app/directives/validators/daterange.directive.ts","../../src/app/directives/validators/lesser.directive.ts","../../src/app/directives/validators/url.directive.ts","../../src/app/directives/button.directive.ts","../../src/app/directives/validators/validate.directive.ts","../../src/app/components/form-dialog-actions/form-dialog-actions.component.ts","../../src/app/components/form-dialog-actions/form-dialog-actions.component.html","../../src/app/directives/validators/no-fs-validators.directive.ts","../../src/app/directives/submit-button.directive.ts","../../src/app/fs-form.module.ts","../../src/public_api.ts","../../src/firestitch-form.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export enum ConfirmResult {\n Save = 'save',\n Discard = 'discard',\n Review = 'review',\n Invalid = 'invalid',\n Pristine = 'pristine',\n}\n","import { FsPrompt } from '@firestitch/prompt';\n\nimport { Observable } from 'rxjs';\nimport { first } from 'rxjs/operators';\n\nimport { FsFormDirective } from '../directives/form/form.directive';\nimport { ConfirmResult } from '../enums/confirm-result';\n\n\nexport function confirmUnsaved(directives: FsFormDirective[], prompt: FsPrompt): Observable<ConfirmResult> {\n return new Observable(observer => {\n // TODO support for multiple directives per page\n const form = directives[0];\n\n if (!form.confirm || !form.ngForm.dirty) {\n observer.next(ConfirmResult.Pristine);\n observer.complete();\n return;\n }\n\n let title = 'You Have Unsaved Changes';\n let message = 'What would you like to do with your changes?';\n let saveLabel = 'Save & Continue';\n let discardLabel = 'Discard Changes & Continue';\n let cancelLabel = 'Review Changes';\n\n if (typeof form.confirm === 'object') {\n title = form.confirm.title || title;\n message = form.confirm.message || message;\n saveLabel = form.confirm.saveLabel || saveLabel;\n discardLabel = form.confirm.discardLabel || discardLabel;\n cancelLabel = form.confirm.cancelLabel || cancelLabel;\n }\n\n prompt.confirm({\n title: title,\n template: message,\n dialogConfig: { width: 'auto' },\n buttons: [\n {\n label: saveLabel,\n color: 'primary',\n value: 'save'\n },\n {\n label: discardLabel,\n value: 'discard'\n },\n {\n label: cancelLabel,\n cancel: true\n }\n ]\n }).subscribe((value) => {\n\n if (value === 'discard') {\n observer.next(ConfirmResult.Discard);\n observer.complete();\n form.reset();\n }\n\n if (value === 'save') {\n\n form.submitted\n .pipe(\n first()\n )\n .subscribe(() => {\n observer.next(ConfirmResult.Save);\n observer.complete();\n });\n\n form.invalid\n .pipe(\n first()\n )\n .subscribe(() => {\n observer.next(ConfirmResult.Invalid);\n observer.complete();\n });\n\n form.ngForm.control.markAsPristine();\n form.triggerSubmit({ confirmed: true });\n }\n\n }, (error: any) => {\n observer.next(ConfirmResult.Review);\n observer.complete();\n });\n });\n}\n","import { Directive, HostListener, OnDestroy, HostBinding } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n\n@Directive({\n selector: '[fsFormDialogClose],[fs-form-dialog-close]'\n})\nexport class FsFormDialogCloseDirective implements OnDestroy {\n\n public clicked$ = new Subject();\n public registered = false;\n\n @HostBinding('attr.type') type = 'button';\n\n @HostListener('click', ['$event.target'])\n public click() {\n this.clicked$.next();\n }\n\n public ngOnDestroy() {\n this.clicked$.complete();\n }\n}\n","export enum FormStatus {\n Valid = 'valid',\n Invalid = 'invalid',\n Validating = 'validating',\n Submitting = 'submitting',\n Submitted = 'submitted',\n Error = 'error',\n Success = 'success',\n Completing = 'completing',\n}\n","import { ConfirmResult } from '../enums/confirm-result';\n\nexport function confirmResultContinue(result) {\n return result === ConfirmResult.Discard || result === ConfirmResult.Save || result === ConfirmResult.Pristine;\n}\n","import { AbstractControl, FormGroup, ValidationErrors } from '@angular/forms';\n\n\nexport function getFormErrors(control: AbstractControl, key: string): ValidationErrors | null {\n let errors: ValidationErrors | null = null;\n\n if (control.invalid && control.errors) {\n errors = {\n [key]: { ...control.errors },\n }\n }\n\n if (control instanceof FormGroup) {\n Object.entries(control.controls)\n .forEach(([name, childControl]) => {\n const childErrors = getFormErrors(childControl, name);\n\n if (childErrors) {\n if (!errors) {\n errors = { ...childErrors };\n } else {\n Object.assign(errors, childErrors);\n }\n }\n });\n }\n\n return errors;\n}\n","import { ActivatedRoute } from '@angular/router';\n\n\nexport function getActiveRoute(route: ActivatedRoute): ActivatedRoute {\n while (route.firstChild) {\n route = route.firstChild;\n }\n\n return route;\n}\n","import { Injectable, Type } from '@angular/core';\n\nimport { Subject, Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\nimport { FsFormDirective } from '../directives/form/form.directive';\n\ninterface BroadcastEvent {\n key: any;\n data?: any;\n}\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FsForm {\n\n // value is array for future possibilities of extension\n private _formDirectiveStore = new WeakMap<Type<any>, FsFormDirective[]>();\n\n private _eventBus: Subject<BroadcastEvent>;\n\n constructor() {\n this._eventBus = new Subject<BroadcastEvent>();\n }\n\n // @deprecated\n public broadcast(key: any, data?: any) {\n this._eventBus.next({key, data});\n }\n\n // @deprecated\n public on<T>(key: any): Observable<T> {\n return this._eventBus.asObservable()\n .pipe(\n filter(event => event.key === key),\n map(event => <T>event.data)\n );\n }\n\n public registerFormDirective(routeComponent: Type<any>, directive: FsFormDirective) {\n const directives = this.getFormDirectives(routeComponent) || [];\n directives.push(directive);\n\n this._formDirectiveStore.set(routeComponent, directives);\n }\n\n public getFormDirectives(routeComponent): FsFormDirective[] {\n return this._formDirectiveStore.get(routeComponent);\n }\n\n public removeFormDirective(routeComponent) {\n this._formDirectiveStore.delete(routeComponent);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute, CanDeactivate } from '@angular/router';\n\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { FsFormDirective } from '../directives/form/form.directive';\nimport { confirmUnsaved } from '../helpers/confirm-unsaved';\nimport { confirmResultContinue } from '../helpers';\nimport { FsForm } from '../services/fsform.service';\nimport { getActiveRoute } from '../helpers/get-active-route';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormDeactivateGuard implements CanDeactivate<any> {\n\n constructor(\n private _prompt: FsPrompt,\n private _fsForm: FsForm,\n private _route: ActivatedRoute,\n ) {}\n\n canDeactivate(): Observable<boolean> {\n const route = getActiveRoute(this._route);\n\n if (!route) {\n console.error(`Can not find route for FormDeactivateGuard checks`);\n\n return of(true);\n }\n\n const directives: FsFormDirective[] = this._fsForm.getFormDirectives(route.routeConfig.component);\n\n if (!Array.isArray(directives) || directives.length === 0) {\n console.error(`Can not find a valid FsFormDirective`);\n\n return of(true);\n }\n\n return confirmUnsaved(directives, this._prompt)\n .pipe(\n map((result) => {\n return confirmResultContinue(result);\n }),\n );\n }\n\n}\n","import {\n AfterContentInit,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n} from '@angular/core';\nimport { AbstractControl, NgForm } from '@angular/forms';\nimport { ActivatedRoute, Route } from '@angular/router';\n\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MatTab, MatTabGroup, MatTabHeader } from '@angular/material/tabs';\n\nimport { FsMessage, MessageMode } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\nimport { guid } from '@firestitch/common';\nimport { DrawerRef } from '@firestitch/drawer';\n\nimport {\n BehaviorSubject,\n defer,\n fromEvent,\n iif,\n isObservable,\n Observable,\n of,\n Subject,\n throwError\n} from 'rxjs';\nimport {\n catchError,\n delay,\n filter,\n first,\n map,\n mapTo,\n mergeMap,\n startWith,\n switchMap,\n take,\n takeUntil,\n tap\n} from 'rxjs/operators';\n\nimport { confirmUnsaved } from '../../helpers/confirm-unsaved';\nimport { FsFormDialogCloseDirective } from '../form-dialog-close.directive';\nimport { FsButtonDirective } from '../button.directive';\nimport { ConfirmConfig, SubmittedEvent, ConfirmTabGroup } from './../../interfaces';\nimport { ConfirmResult } from './../../enums/confirm-result';\nimport { FsForm } from '../../services/fsform.service';\nimport { SubmitEvent } from './../../interfaces/submit-event';\nimport { FormStatus } from './../../enums/form-status';\nimport { confirmResultContinue } from '../../helpers/confirm-result-continue';\nimport { getFormErrors } from '../../helpers/get-form-errors';\nimport { FormDeactivateGuard } from '../../guards/form-deactivate.guard';\nimport { getActiveRoute } from '../../helpers/get-active-route';\n\n\n@Directive({\n selector: '[fsForm]',\n})\nexport class FsFormDirective implements OnInit, OnDestroy, AfterContentInit, OnChanges {\n\n @Input()\n public wrapperSelector = '.fs-form-wrapper,.mat-form-field';\n\n @Input()\n public messageSelector = '.fs-form-message,.mat-form-field-subscript-wrapper';\n\n @Input()\n public hintSelector = '.fs-form-hint,.mat-form-field-hint-wrapper';\n\n @Input()\n public labelSelector = '.fs-form-label,.mat-form-field-label';\n\n @Input()\n public autocomplete = false;\n\n @Input()\n public shortcuts = true; // Ctrl + s\n\n @Input()\n public confirm: ConfirmConfig | boolean = true;\n\n @Input()\n public confirmDialog = true;\n\n @Input()\n public confirmDrawer = true;\n\n @Input()\n public confirmBrowser = true;\n\n @Input()\n public confirmTabs = true;\n\n @Input()\n public dirtySubmitButton = true;\n\n @Input()\n public submit: (event: SubmitEvent) => Observable<any>;\n\n @Input()\n public successDelay = 0;\n\n @Input()\n public errorDelay = 1000;\n\n @Input()\n public tabGroup: MatTabGroup;\n\n @Input()\n public deactivationGuard = true;\n\n @Output('fsForm')\n public submitEvent: EventEmitter<SubmitEvent> = new EventEmitter();\n\n @Output()\n public invalid: EventEmitter<SubmitEvent> = new EventEmitter();\n\n @Output()\n public valid: EventEmitter<SubmitEvent> = new EventEmitter();\n\n @Output()\n public submitted: EventEmitter<SubmitEvent> = new EventEmitter();\n\n @Output()\n public reseted: EventEmitter<SubmitEvent> = new EventEmitter();\n\n @Output()\n public cleared: EventEmitter<SubmitEvent> = new EventEmitter();\n\n @HostBinding('class.fs-form')\n public fsFormClass = true;\n\n @ContentChildren(FsFormDialogCloseDirective, { descendants: true })\n public formDialogClose: QueryList<FsFormDialogCloseDirective>;\n\n @ContentChildren(MatTabGroup, { descendants: true })\n private _tabGroups: QueryList<MatTabGroup> = new QueryList();\n\n private _buttons = new QueryList<FsButtonDirective>();\n private _registerControl;\n private _activeSubmitButton: FsButtonDirective;\n private _dialogBackdropEscape = false;\n private _snapshot: { [key: string]: any } = {};\n private _activatedRouteConfig: Route | null;\n private _status$ = new BehaviorSubject(FormStatus.Valid);\n private _destroy$ = new Subject();\n private _confirmed = false;\n\n constructor(\n @Inject(NgForm)\n public ngForm: NgForm,\n private _form: FsForm,\n private _element: ElementRef,\n private _message: FsMessage,\n private _prompt: FsPrompt,\n private _ngZone: NgZone,\n\n @Optional() @Inject(MatDialogRef)\n private _dialogRef: MatDialogRef<any>,\n\n @Optional() @Inject(DrawerRef)\n private _drawerRef: DrawerRef<any>,\n\n private _route: ActivatedRoute,\n ) {}\n\n public get submitting(): boolean {\n return this._status$.getValue() === FormStatus.Submitting;\n }\n\n public get validating(): boolean {\n return this._status$.getValue() === FormStatus.Validating;\n }\n\n public get completing(): boolean {\n return this._status$.getValue() === FormStatus.Completing;\n }\n\n private get _submitEvent(): SubmitEvent {\n return {\n ngForm: this.ngForm,\n submitter: this._submitter,\n };\n }\n\n private get _formValidState$(): Observable<SubmittedEvent> {\n this._form.broadcast('valid', this._submitEvent);\n this.submitEvent.emit(this._submitEvent);\n this.valid.emit(this._submitEvent);\n\n const submittedEvent: SubmittedEvent = {\n ngForm: this.ngForm,\n submitter: this._submitter,\n response: null\n };\n\n if (!this.submit) {\n return of(submittedEvent);\n }\n\n const result = this.submit(this._submitEvent);\n\n if (!isObservable(result)) {\n return of(submittedEvent);\n }\n\n return result\n .pipe(\n map((response) => {\n submittedEvent.response = response;\n\n return submittedEvent;\n })\n );\n }\n\n private get _formInvalidState$(): Observable<never> {\n this._form.broadcast('invalid', this._submitEvent);\n\n if (this.invalid) {\n this.invalid.emit(this._submitEvent);\n }\n\n const message = 'Changes not saved. Please review errors highlighted in red.';\n this._message.error(message, { mode: MessageMode.Toast });\n\n const el = this._element.nativeElement.querySelector('.ng-invalid');\n\n if (el) {\n el.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n\n return throwError('Form validation error');\n }\n\n private get _submitter(): string {\n return this._activeSubmitButton\n ? this._activeSubmitButton.name\n : null;\n }\n\n public ngOnInit() {\n if (this.deactivationGuard) {\n this._registerCanDeactivateGuard();\n }\n\n this._registerConfirmDialogBackdropEscape();\n this._listenHotKeys();\n this._listenWindowClose();\n this._listenSubmit();\n this._listenFormStatus();\n\n if (!this.autocomplete) {\n this._registerAutocomplete();\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.confirm) {\n this._updateDirtySubmitButtons();\n }\n }\n\n public ngAfterContentInit(): void {\n this._registerConfirm();\n this._registerConfirmDialogClose();\n this._registerConfirmDrawerClose();\n this._registerConfirmTabs();\n this._registerDrawerClose();\n this._registerDirtySubmitButton();\n }\n\n public ngOnDestroy(): void {\n this._cleanupCanDeactivate();\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public createSnapshot(): void {\n this._snapshot = this.ngForm.value;\n }\n\n public getSnapshot(): { [key: string]: any } {\n return this._snapshot || {};\n }\n\n public reset(): void {\n this.ngForm.resetForm();\n\n Object.keys(this.ngForm.controls)\n .forEach((name: string) => {\n const control = this.ngForm.controls[name];\n control.reset(this._snapshot[name]);\n });\n\n this.reseted.emit();\n }\n\n public clear(): void {\n this.ngForm.resetForm();\n this.cleared.emit();\n }\n\n public dirty(): void {\n this.ngForm.form.markAsDirty();\n this._updateDirtySubmitButtons();\n }\n\n public triggerSubmit(options?: { confirmed: boolean }): void {\n this._confirmed = options?.confirmed;\n this.ngForm.ngSubmit.emit();\n }\n\n public triggerConfirm(): Observable<ConfirmResult> {\n const submitted = this.submitting ? this.submitted.asObservable() : of({});\n\n return submitted\n .pipe(\n take(1),\n mergeMap(() => confirmUnsaved([this], this._prompt)),\n );\n }\n\n public enable(): void {\n this.ngForm.control.enable();\n\n this._updateDirtySubmitButtons();\n }\n\n public disable(): void {\n this.ngForm.control.disable();\n\n this._buttons.forEach((button) => {\n button.disable();\n });\n }\n\n public addButton(button: FsButtonDirective): void {\n this._buttons.reset(\n [\n ...this._buttons.toArray(),\n button,\n ]);\n }\n\n public removeButton(button: FsButtonDirective): void {\n this._buttons.reset(\n [\n ...this._buttons.toArray()\n .filter((item) => (button !== item)),\n ]);\n }\n\n private _listenSubmit(): void {\n this.ngForm\n .ngSubmit\n .pipe(\n tap((event) => {\n event?.preventDefault();\n }),\n map((event) => {\n return { event, confirmed: this._confirmed };\n }),\n tap(() => this._confirmed = false),\n filter(() => {\n return [ FormStatus.Valid, FormStatus.Invalid ]\n .includes(this._status$.getValue());\n }),\n tap(() => this._broadcasValidatingEvents()),\n tap(() => this.validate()),\n tap(() => this._broadcastSubmittingEvents()),\n switchMap((data) => this._waitUntilStatusPending()\n .pipe(\n mapTo(data),\n )),\n tap(() => this._setupActiveSubmitButton()),\n tap(() => this._disableButtons()),\n mergeMap((data) => {\n if(this.ngForm.status === 'INVALID') {\n return this._formInvalidState$;\n }\n\n return this._formValidState$\n .pipe(\n map((submitEvent) => ({\n ...submitEvent,\n confirmed: data.confirmed\n })\n )\n )\n }),\n catchError((e, source$) => {\n this._handleError(e);\n\n return source$;\n }),\n tap((submittedEvent: SubmittedEvent) => {\n this._completeSubmit(true, submittedEvent);\n }),\n takeUntil(this._destroy$)\n )\n .subscribe(() => {});\n }\n\n public validate(): void {\n Object.values(this.ngForm.controls)\n .forEach((control) => {\n control.markAsDirty();\n control.markAsTouched();\n control.updateValueAndValidity();\n });\n }\n\n private _listenFormStatus(): void {\n this._status$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((formStatus: FormStatus) => {\n const cls = [FormStatus.Submitting, FormStatus.Validating];\n const classList = this._element.nativeElement.classList;\n classList.remove(...cls);\n if(cls.indexOf(formStatus) !== -1) {\n classList.add(formStatus);\n }\n });\n\n }\n\n private _listenWindowClose(): void {\n fromEvent(window, 'beforeunload')\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((event: Event) => {\n if (this.confirm && this.confirmBrowser && this.ngForm.dirty) {\n event.returnValue = false;\n }\n });\n }\n\n private _listenHotKeys(): void {\n this._ngZone.runOutsideAngular(() => {\n fromEvent(document, 'keydown')\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((event: KeyboardEvent) => {\n if (this._dialogBackdropEscape && event.code === 'Escape') {\n const dialog = document.getElementById(this._dialogRef.id);\n const paths = event.composedPath();\n\n if (paths) {\n paths.forEach(item => {\n if (dialog === item) {\n this._ngZone.run(() => {\n this._formClose();\n });\n }\n });\n }\n }\n\n if ((event.ctrlKey || event.metaKey) && event.code === 'KeyS') {\n event.preventDefault();\n\n if (this.shortcuts) {\n if (this._elementInForm(document.activeElement)) {\n this.ngForm.ngSubmit.next();\n }\n }\n }\n });\n });\n }\n\n private _formClose(): void {\n if (this.confirm && this.confirmDialog) {\n this.triggerConfirm()\n .pipe(\n filter((result) => confirmResultContinue(result)),\n switchMap((result) => {\n return result === ConfirmResult.Pristine || result === ConfirmResult.Discard\n ? of(null)\n : this.submitted.asObservable();\n }),\n takeUntil(this._destroy$),\n )\n .subscribe((result: SubmittedEvent) => {\n this._dialogRef.close(result?.response);\n });\n } else {\n this._dialogRef.close(null);\n }\n }\n\n private _registerDialogClose(directive: FsFormDialogCloseDirective): void {\n if (!directive.registered) {\n directive.registered = true;\n\n directive.clicked$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._formClose();\n });\n }\n }\n\n private _getActiveSubmitButton(): FsButtonDirective {\n const submitButtons = this._buttons\n .filter((button) => button.submit);\n\n const activeButton = submitButtons\n .find(button => {\n return button.active;\n });\n\n return activeButton ? activeButton : submitButtons[0];\n }\n\n private _elementInForm(el: Element): boolean {\n if (el.isSameNode(this._element.nativeElement)) {\n return true;\n } else if (el.parentElement) {\n return this._elementInForm(el.parentElement);\n }\n\n return false;\n }\n\n private _completeSubmit(success, submitEvent: SubmittedEvent): void {\n if (success) {\n this.ngForm.control.markAsPristine();\n this.createSnapshot();\n this.submitted.emit(submitEvent);\n } else {\n this._resetButtons();\n }\n\n if (this._activeSubmitButton) {\n if (success) {\n this._activeSubmitButton.success();\n } else {\n this._activeSubmitButton.error();\n }\n }\n\n this._status$.next(FormStatus.Submitted);\n\n if (success) {\n this._status$.next(FormStatus.Success);\n } else {\n this._status$.next(FormStatus.Error);\n }\n\n this._status$.next(FormStatus.Completing);\n\n const resetDelay = success ? this.successDelay : this.errorDelay;\n\n of(true)\n .pipe(\n delay(resetDelay),\n first(),\n takeUntil(this._destroy$),\n ).subscribe(() => {\n if (this.ngForm.form.status === 'VALID') {\n this._status$.next(FormStatus.Valid);\n } else {\n this._status$.next(FormStatus.Invalid);\n }\n\n this._resetButtons();\n this._resetActiveButtons();\n this._updateDirtySubmitButtons();\n });\n }\n\n private _resetButtons(): void {\n this._buttons.forEach((button) => {\n button.reset();\n });\n }\n\n private _resetActiveButtons(): void {\n this._buttons.forEach((button) => {\n button.resetActive();\n });\n }\n\n private _registerConfirm(): void {\n this.ngForm.form.valueChanges\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe((changes) => {\n if (this.confirm) {\n const existing = Object.keys(this._snapshot);\n\n Object.keys(changes)\n .forEach((name: string) => {\n if (existing.indexOf(name) === -1) {\n this._snapshot[name] = changes[name];\n }\n });\n }\n });\n }\n\n private _registerDrawerClose(): void {\n if (this._drawerRef) {\n this._drawerRef.closeStart$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((subscriber) => {\n if (this.submitting) {\n this._status$\n .pipe(\n filter((status) => status === FormStatus.Success || status === FormStatus.Error),\n takeUntil(this._destroy$),\n )\n .subscribe((status) => {\n if (status === FormStatus.Success) {\n subscriber.next();\n subscriber.complete();\n } else {\n subscriber.error();\n }\n });\n } else {\n subscriber.next();\n subscriber.complete();\n }\n });\n }\n }\n\n private _registerConfirmDrawerClose(): void {\n if (this._drawerRef) {\n this._drawerRef.closeStart$\n .pipe(\n switchMap((subscriber) => {\n return iif(\n () => this.confirm && this.confirmDrawer,\n this.triggerConfirm()\n .pipe(\n map((result) => confirmResultContinue(result)),\n tap((result) => {\n if (result) {\n subscriber.next();\n subscriber.complete();\n }\n })\n ),\n defer(() => {\n subscriber.next();\n subscriber.complete();\n }),\n )\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n }\n\n private _registerConfirmTabs(): void {\n if(this.tabGroup) {\n this.registerConfirmTabGroup(this.tabGroup);\n }\n\n this.registerConfirmTabGroups(this._tabGroups.toArray());\n\n this._tabGroups.changes\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe(() => {\n this.registerConfirmTabGroups(this._tabGroups.toArray());\n });\n }\n\n public registerConfirmTabGroups(tabGroups: MatTabGroup[]): void {\n tabGroups.forEach((tabGroup: MatTabGroup) => {\n this.registerConfirmTabGroup(tabGroup);\n });\n }\n\n public registerConfirmTabGroup(tabGroup: MatTabGroup): void {\n const confirmTabGroup = tabGroup as ConfirmTabGroup;\n if (!confirmTabGroup._originalHandleClick) {\n confirmTabGroup._originalHandleClick = tabGroup._handleClick;\n confirmTabGroup._handlClick$ = new Subject<{ tab: MatTab; tabHeader: MatTabHeader; idx: number }>();\n confirmTabGroup._handleClick = (tab: MatTab, tabHeader: MatTabHeader, idx: number) => {\n if(confirmTabGroup._handlClick$.observers.length) {\n confirmTabGroup._handlClick$.next({ tab, tabHeader, idx});\n } else {\n confirmTabGroup._originalHandleClick(tab, tabHeader, idx);\n }\n }\n }\n\n confirmTabGroup._handlClick$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((event) => {\n if (!this.submitting) {\n if (this.confirm && this.confirmTabs) {\n this.triggerConfirm()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((result) => {\n if (confirmResultContinue(result)) {\n confirmTabGroup.selectedIndex = event.idx;\n }\n });\n } else {\n confirmTabGroup._originalHandleClick(event.tab, event.tabHeader, event.idx);\n }\n }\n });\n }\n\n private _registerConfirmDialogClose(): void {\n if (this._dialogRef) {\n this.formDialogClose.forEach(item => {\n this._registerDialogClose(item);\n });\n\n this.formDialogClose.changes\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((e) => {\n e.forEach(item => {\n this._registerDialogClose(item);\n });\n });\n }\n }\n\n private _registerConfirmDialogBackdropEscape(): void {\n this._dialogBackdropEscape = this._dialogRef && this._dialogRef.disableClose !== true;\n\n if (this._dialogRef && !this._dialogRef.disableClose) {\n this._dialogRef.disableClose = true;\n this._dialogRef.backdropClick()\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe(() => {\n this._formClose();\n });\n\n this._destroy$\n .subscribe(() => {\n this._dialogRef.disableClose = false;\n });\n }\n }\n\n private _registerAutocomplete(): void {\n this._registerControl = this.ngForm.form.registerControl.bind(this.ngForm.form);\n\n this.ngForm.form.registerControl = (name: string, control: AbstractControl) => {\n\n const el: Element = this._element.nativeElement.querySelector(`input[name='${name}']`);\n\n if (el) {\n el.setAttribute('name', name + '_' + guid());\n\n if (!el.getAttribute('autocomplete')) {\n el.setAttribute('autocomplete', 'none');\n }\n }\n\n return this._registerControl(name, control);\n }\n }\n\n private _registerDirtySubmitButton(): void {\n if (!this.ngForm) {\n return;\n }\n\n this.ngForm.form.valueChanges\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._updateDirtySubmitButtons();\n });\n\n this._buttons.changes\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._updateDirtySubmitButtons();\n });\n }\n\n private _updateDirtySubmitButtons(): void {\n this._buttons\n .filter((button) => button.submit)\n .forEach((submitButton: FsButtonDirective) => {\n if (!this.confirm || !this.dirtySubmitButton || this.ngForm.dirty || !submitButton.dirtySubmit) {\n submitButton.enable();\n } else {\n submitButton.disable();\n }\n });\n }\n\n private _broadcastSubmittingEvents(): void {\n this._status$.next(FormStatus.Submitting);\n this._form.broadcast('submit', this.ngForm);\n }\n\n private _broadcasValidatingEvents(): void {\n this._status$.next(FormStatus.Validating);\n }\n\n private _setupActiveSubmitButton(): void {\n this._activeSubmitButton = this._getActiveSubmitButton();\n this._resetButtons();\n\n if (this._activeSubmitButton) {\n this._activeSubmitButton.process();\n }\n }\n\n private _disableButtons(): void {\n this._buttons.forEach((button) => {\n button.disable();\n });\n }\n\n private _waitUntilStatusPending(): Observable<string> {\n return this.ngForm.statusChanges\n .pipe(\n startWith(this.ngForm.status),\n first((state) => state !== 'PENDING'),\n );\n }\n\n private _handleError(e: SubmittedEvent) {\n console.log('%c Form Submit ', 'color: white; background-color: #D33F49', 'Error occured');\n\n console.group('Error Details:');\n console.log('Message: ', e);\n console.log('FormRef: ', this);\n\n if (this.ngForm.invalid) {\n const errors = getFormErrors(this.ngForm.control, null);\n console.log('Validation Errors: ', errors);\n }\n\n console.groupEnd();\n\n this._completeSubmit(false, null);\n }\n\n private _registerCanDeactivateGuard(): void {\n this._activatedRouteConfig = getActiveRoute(this._route).routeConfig;\n\n if (!this._activatedRouteConfig) {\n return;\n }\n\n this._form.registerFormDirective(this._activatedRouteConfig.component, this);\n\n if (!Array.isArray(this._activatedRouteConfig.canDeactivate)) {\n this._activatedRouteConfig.canDeactivate = [];\n }\n\n if (this._activatedRouteConfig.canDeactivate.indexOf(FormDeactivateGuard) == -1) {\n this._activatedRouteConfig.canDeactivate.push(FormDeactivateGuard);\n }\n }\n\n private _cleanupCanDeactivate(): void {\n if (!this._activatedRouteConfig) {\n return\n }\n\n const guardIndex = this._activatedRouteConfig.canDeactivate.indexOf(FormDeactivateGuard);\n this._activatedRouteConfig.canDeactivate.splice(guardIndex, 1);\n\n this._form.removeFormDirective(this._activatedRouteConfig.component);\n }\n\n}\n","export const ERROR_MESSAGES = {\n required: 'This field is required',\n email: 'This is not a valid email address',\n emails: 'Input valid email addresses, comma separated',\n phone: 'Invalid phone number',\n numeric: 'Value should be numeric',\n integer: 'Value should be an integer',\n min: 'Value should not be less than $(1)',\n max: 'Value should not be greater than $(1)',\n minlength: 'Should not be shorter than $(1) characters',\n maxlength: 'Should not be longer than $(1) characters',\n compare: 'Inputs do not match',\n pattern: 'Value should match pattern $(1)',\n dateRange: 'Invalid date range',\n url: 'This is not a valid url',\n urlProtocol: 'Invalid URL. Proper http protocol is required. eg. https://google.com',\n greater: 'Value must be greater than $(1)',\n lesser: 'Value must be less than $(1)',\n};\n","import { InjectionToken } from '@angular/core';\nimport { ERROR_MESSAGES } from '../consts/error-messages.const';\n\nexport const VALIDATE_MESSAGES = new InjectionToken<Record<string, string>>(\n 'fs.form.validate-messages',\n);\n\nexport const VALIDATE_MESSAGE_PROVIDER = {\n provide: VALIDATE_MESSAGES,\n useFactory: messageProviderFactory,\n};\n\nexport function messageProviderFactory() {\n return { ...ERROR_MESSAGES };\n}\n\n","import {\n Input,\n ElementRef,\n Renderer2,\n Directive,\n Injector,\n Optional,\n Inject,\n Self,\n OnInit,\n OnDestroy,\n AfterContentInit,\n} from '@angular/core';\nimport { NgControl, AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { values, keys } from 'lodash-es';\n\nimport { FsFormDirective } from '../form/form.directive';\nimport {\n VALIDATE_MESSAGE_PROVIDER,\n VALIDATE_MESSAGES\n} from '../../providers/validate-messages.provider';\n\n\nexport interface FsControlDirective {\n validate?(control: AbstractControl): ValidationErrors | null;\n validateAsync?(control: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null>;\n}\n\n\n@Directive({\n selector: '[fsFormControl]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsControlDirective implements OnInit, AfterContentInit, OnDestroy {\n\n @Input() wrapperSelector: string | false;\n @Input() messageSelector: string | false;\n @Input() hintSelector: string | false;\n @Input() labelSelector: string | false;\n @Input() appendMessageClass = 'fs-form-message';\n @Input() appendLabelClass = 'fs-form-label';\n @Input() appendErrorClass = 'fs-form-error';\n @Input() appendHintClass = 'fs-form-hint';\n\n @Input()\n public set validateMessages(messages: Record<string, string>) {\n this._validateMessages = {\n ...this._validateMessages,\n ...messages,\n };\n }\n\n public errors = [];\n\n // protected _validateMessages = { ...ERROR_MESSAGES };\n protected _destroy$ = new Subject();\n protected _control: AbstractControl;\n\n constructor(\n protected elementRef: ElementRef,\n protected renderer2: Renderer2,\n protected injector: Injector,\n @Self() @Inject(VALIDATE_MESSAGES) protected _validateMessages,\n @Optional() protected ngControl: NgControl,\n @Optional() @Inject(FsFormDirective) protected formDirective: FsFormDirective,\n ) {\n\n if (ngControl) {\n this._control = ngControl.control;\n } else {\n console.error('The element does not have a valid ngModel', this.elementRef.nativeElement);\n }\n }\n\n ngOnInit() {\n this._setupValidators();\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n ngAfterContentInit() {\n if (this._control) {\n\n /*\n Ensure that statusChanges has one subscription per control. Multiple can happen\n when multiple fsForm validation directives are applied to the same element\n */\n if (!(<any>this._control).statusChangesSubscribe) {\n\n this._control.statusChanges\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe(this.render.bind(this));\n\n (<any>this._control).statusChangesSubscribe = true;\n }\n }\n }\n\n protected getMessageSelector(): string {\n\n if (this.messageSelector === false) {\n return '';\n }\n\n if (this.messageSelector) {\n return this.messageSelector;\n\n } else if (this.formDirective?.messageSelector) {\n return this.formDirective.messageSelector;\n }\n }\n\n protected getHintWrapperSelector(): string {\n\n if (this.hintSelector === false) {\n return '';\n }\n\n if (this.hintSelector) {\n return this.hintSelector;\n\n } else if (this.formDirective?.hintSelector) {\n return this.formDirective.hintSelector;\n }\n }\n\n protected getWrapperSelector(): string {\n\n if (this.wrapperSelector === false) {\n return '';\n }\n\n if (this.wrapperSelector) {\n return this.wrapperSelector;\n\n } else if (this.formDirective?.wrapperSelector) {\n return this.formDirective.wrapperSelector;\n }\n }\n\n protected getlabelSelector(): string {\n\n if (this.labelSelector === false) {\n return '';\n }\n\n if (this.labelSelector) {\n return this.labelSelector;\n\n } else if (this.formDirective?.labelSelector) {\n return this.formDirective.labelSelector;\n }\n }\n\n protected getWrapperElement() {\n\n const wrapper = this.getWrapper(this.elementRef.nativeElement);\n\n if (wrapper) {\n return wrapper;\n }\n\n return this.elementRef.nativeElement;\n }\n\n /*\n <mat-form-field class=\"mat-form-field\"> <-- Field Wrapper Class. Look for parents from the native element with the matching wrapperSelector. If not found defaults to native element.\n <input>\n <div class=\"fs-form-message\"> <-- Message Selector. Look for the element with class .fs-form-message or messageSelector\n <div class=\"fs-form-message\"></div>\n <div class=\"fs-form-hint\"></div> <-- Hint Selector. Look for the element with class .fs-form-hint or hintSelector\n </div>\n </mat-form-field>\n */\n\n protected render() {\n if (this.ngControl) {\n const renderer = this.renderer2;\n const wrapper = this.getWrapperElement();\n const error = this.ngControl.dirty ? this.getError(this.ngControl) : null;\n const shouldErrorBeRendered = this.ngControl.invalid\n && (this.ngControl.dirty || this.formDirective?.ngForm?.submitted);\n\n if (shouldErrorBeRendered && error) {\n wrapper.classList.add('ng-invalid', 'ng-dirty');\n } else {\n wrapper.classList.remove('ng-invalid');\n }\n\n if (!this.getMessageSelector()) {\n return;\n }\n\n const messageWrapper = wrapper.querySelector(this.getMessageSelector());\n\n if (!messageWrapper) {\n return console.warn('Failed to locate ' + this.getMessageSelector(), this.elementRef.nativeElement);\n }\n\n if (this.getlabelSelector()) {\n const labelWrapper = wrapper.querySelector(this.getlabelSelector());\n\n if (labelWrapper) {\n if (this.appendLabelClass) {\n this.renderer2.addClass(labelWrapper, this.appendLabelClass);\n }\n }\n }\n\n if (this.appendMessageClass) {\n renderer.addClass(messageWrapper, this.appendMessageClass);\n }\n\n if (this.getHintWrapperSelector()) {\n const hint = messageWrapper.querySelector(this.getHintWrapperSelector());\n\n if (hint) {\n renderer.setStyle(hint, 'display', error ? 'none' : 'block');\n\n if (this.appendHintClass) {\n renderer.addClass(hint, this.appendHintClass);\n }\n }\n }\n\n let errorWrapper = wrapper.querySelector('.fs-form-error-target');\n if (errorWrapper) {\n errorWrapper.remove();\n }\n\n if (!shouldErrorBeRendered || !error) {\n return;\n }\n\n errorWrapper = renderer.createElement('div');\n renderer.addClass(errorWrapper, 'fs-form-error-target');\n renderer.addClass(errorWrapper, this.appendErrorClass);\n renderer.addClass(errorWrapper, this.appendErrorClass + '-' + error.name);\n\n const errorText = renderer.createText(error.message);\n\n renderer.appendChild(errorWrapper, errorText);\n messageWrapper.appendChild(errorWrapper);\n }\n }\n\n protected getWrapper(node, count = 0) {\n\n if (!node || count > 10) {\n return null;\n }\n\n if (node.parentNode && node.parentNode.querySelector(this.getWrapperSelector())) {\n return node;\n }\n\n return this.getWrapper(node.parentNode, ++count);\n }\n\n protected parseErrorMessage(message, args): string {\n values(args)\n .forEach((name) => {\n message = message.replace(/\\$\\(\\d\\)/, name);\n });\n\n return message;\n }\n\n protected getError(controlRef): { name: string, message: string } {\n\n const name = keys(controlRef.control.errors)[0];\n\n if (!name) {\n return null;\n }\n\n let message = controlRef.control.errors[name];\n\n if (this._validateMessages[name]) {\n message = this.parseErrorMessage(this._validateMessages[name], message);\n }\n\n return { name: name, message: message };\n }\n\n private _setupValidators(): void {\n const control = this._control;\n\n if (this.validate) {\n const validators = control.validator\n ? [ control.validator, this.validate.bind(this)]\n : this.validate.bind(this);\n\n control.setValidators(validators);\n }\n\n if (this.validateAsync) {\n const asyncValidators = control.asyncValidator\n ? [ control.asyncValidator, this.validateAsync.bind(this)]\n : this.validateAsync.bind(this);\n\n control.setAsyncValidators(asyncValidators);\n }\n\n control.updateValueAndValidity();\n }\n\n}\n","export function isEnabled(value: any): boolean {\n return value !== 'false' && (value || value === '');\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { isEnabled } from '../../helpers/is-enabled';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormRequired],[ngModel][required]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormRequiredDirective extends FsControlDirective implements OnChanges, FsValidator {\n public required = false;\n\n @Input('fsFormRequired')\n public set setFsFormRequired(value) {\n this.required = isEnabled(value);\n }\n\n @Input('required')\n public set setRequired(value) {\n this.required = isEnabled(value);\n }\n\n @Input('fsFormRequiredMessage')\n public set validationMessage(value: string) {\n this._validateMessages.required = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (this.required) {\n return Validators.required(this._control);\n } else {\n return null;\n }\n }\n\n protected render() {\n\n const wrapper = this.getWrapperElement();\n\n if (wrapper && this.getlabelSelector()) {\n const labelWrapper = wrapper.querySelector(this.getlabelSelector());\n\n // Adding class fs-form-label-requried adds the * to the label\n if (labelWrapper) {\n if (this.required) {\n this.renderer2.addClass(labelWrapper, 'fs-form-label-required');\n } else {\n this.renderer2.removeClass(labelWrapper, 'fs-form-label-required');\n }\n }\n }\n\n super.render();\n }\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { email, isEmpty, isNumeric, phone, url } from '@firestitch/common';\nimport { isValid } from 'date-fns';\nimport { isObject } from 'lodash-es';\nimport { catchError, map, take } from 'rxjs/operators';\nimport { from, isObservable, Observable, of, throwError } from 'rxjs';\n\nexport class FsValidators {\n\n static email(control: AbstractControl): ValidationErrors | null {\n if (!control.value || email(control.value)) {\n return null;\n }\n\n return { email: true };\n }\n\n static emails(control: AbstractControl): ValidationErrors | null {\n const model = control.value || '';\n\n const hasInvalidEmails = model\n .split(',')\n .some((part) => !email(part));\n\n return hasInvalidEmails ? { email: true } : null;\n }\n\n static numeric(control: AbstractControl): ValidationErrors | null {\n if (isEmpty(control.value) || isNumeric(control.value)) {\n return null;\n } else {\n return { numeric: true }\n }\n }\n\n static integer(control: AbstractControl): ValidationErrors | null {\n if (!control.value || String(control.value) === '' || (control.value % 1 === 0)) {\n return null;\n } else {\n return { integer: true }\n }\n }\n\n static phone(control: AbstractControl): ValidationErrors | null {\n if (!control.value || phone(control.value)) {\n return null;\n }\n\n return { phone: true };\n }\n\n static url(control: AbstractControl, protocolRequired = false): ValidationErrors | null {\n if (!control.value) {\n return null;\n }\n\n if (!url(control.value)) {\n return { url: true };\n }\n\n if (protocolRequired) {\n const pattern = new RegExp(/^http(s)?:\\/\\//gm);\n\n if (!String(control.value).match(pattern)) {\n return { urlProtocol: true };\n }\n }\n\n return null;\n }\n\n static dateRange(control: AbstractControl): ValidationErrors | null {\n if (!control.value) {\n return null;\n }\n\n if (isObject(control.value)) {\n\n const start = control.value.start;\n const end = control.value.end;\n\n if ((!start && !end) || (isValid(start) && isValid(end))) {\n return null;\n }\n }\n\n return { dateRange: true };\n }\n\n static func(control: AbstractControl, formFunction, data: any) {\n let result: unknown;\n let stream$: Observable<unknown>\n\n try {\n result = formFunction(control, data);\n } catch (err) {\n err = err instanceof Error ? err.message : err;\n\n stream$ = throwError(err);\n }\n\n if (!stream$) {\n if (result instanceof Promise) {\n stream$ = from(result)\n } else if (isObservable(result)) {\n stream$ = result;\n } else {\n stream$ = of(null);\n }\n }\n\n return stream$\n .pipe(\n map(() => null),\n catchError((err) => {\n return of({ validationError: err });\n }),\n take(1),\n );\n }\n\n // static compare(a, b): ValidatorFn {\n // return (control: AbstractControl): ValidationErrors | null => {\n // if (a === b) {\n // return null;\n // } else {\n // return { compare: true };\n // }\n // }\n // }\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormMin]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormMinDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormMin;\n\n @Input('fsFormMinMessage')\n public set validationMessage(value: string) {\n this._validateMessages.min = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n return FsValidators.numeric(this._control) || Validators.min(parseFloat(this.fsFormMin))(this._control);\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormMax]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormMaxDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormMax: number;\n\n @Input('fsFormMaxMessage')\n public set validationMessage(value: string) {\n this._validateMessages.max = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n return FsValidators.numeric(this._control) || Validators.max(this.fsFormMax)(this._control);\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormMinLength]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormMinLengthDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormMinLength: number;\n\n @Input('fsFormMinLengthMessage')\n public set validationMessage(value: string) {\n this._validateMessages.minlength = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n return Validators.minLength(this.fsFormMinLength)(this._control);\n }\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormMaxLength]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormMaxLengthDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormMaxLength: number;\n\n @Input('fsFormMaxLengthMessage')\n public set validationMessage(value: string) {\n this._validateMessages.maxlength = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n return Validators.maxLength(this.fsFormMaxLength)(this._control);\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\nimport { isEnabled } from '../../helpers/is-enabled';\n\n\n@Directive({\n selector: '[fsFormEmail]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormEmailDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormEmail;\n\n @Input('fsFormEmailMessage')\n public set validationMessage(value: string) {\n this._validateMessages.email = value;\n }\n\n public ngOnChanges() {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (isEnabled(this.fsFormEmail)) {\n return FsValidators.email(this._control);\n } else {\n return null;\n }\n }\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\nimport { isEnabled } from '../../helpers/is-enabled';\n\n\n@Directive({\n selector: '[fsFormEmails]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormEmailsDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormEmails;\n\n @Input('fsFormEmailsMessage')\n public set validationMessage(value: string) {\n this._validateMessages.emails = value;\n }\n\n public ngOnChanges() {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (isEnabled(this.fsFormEmails)) {\n return FsValidators.emails(this._control);\n } else {\n return null;\n }\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\nimport { isEnabled } from '../../helpers/is-enabled';\n\n\n@Directive({\n selector: '[fsFormPhone]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormPhoneDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormPhone;\n\n @Input('fsFormPhoneMessage')\n public set validationMessage(value: string) {\n this._validateMessages.phone = value;\n }\n\n public ngOnChanges() {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (isEnabled(this.fsFormPhone)) {\n return FsValidators.phone(this._control);\n } else {\n return null;\n }\n }\n\n}\n","import { Directive, Input, OnDestroy, AfterViewInit, OnChanges } from '@angular/core';\nimport { FsControlDirective } from './control.directive';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormCompare]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER,\n ],\n})\nexport class FsFormCompareDirective extends FsControlDirective\n implements OnChanges, AfterViewInit, OnDestroy, FsValidator {\n\n @Input()\n public fsFormCompare;\n\n @Input('fsFormCompareMessage')\n public set validationMessage(value: string) {\n this._validateMessages.compare = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (this.fsFormCompare.value === this.elementRef.nativeElement.value) {\n return null;\n } else {\n return { compare: true };\n }\n }\n\n public ngAfterViewInit() {\n this.fsFormCompare.addEventListener('keyup', () => {\n this._control.updateValueAndValidity();\n }, false);\n }\n\n public ngOnDestroy() {\n this.fsFormCompare.removeEventListener('keyup', () => {\n this._control.updateValueAndValidity();\n }, false);\n }\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\nimport { isEnabled } from '../../helpers/is-enabled';\n\n\n@Directive({\n selector: '[fsFormInteger]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormIntegerDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormInteger;\n\n @Input('fsFormIntegerMessage')\n public set validationMessage(value: string) {\n this._validateMessages.integer = value;\n }\n\n public ngOnChanges() {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (isEnabled(this.fsFormInteger)) {\n return FsValidators.integer(this._control);\n } else {\n return null;\n }\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\nimport { isEnabled } from '../../helpers/is-enabled';\n\n\n@Directive({\n selector: '[fsFormNumeric]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormNumericDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormNumeric;\n\n @Input('fsFormNumericMessage')\n public set validationMessage(value: string) {\n this._validateMessages.numeric = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (isEnabled(this.fsFormNumeric)) {\n return FsValidators.numeric(this._control);\n } else {\n return null;\n }\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\nimport { FsControlDirective } from './control.directive';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormPattern]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormPatternDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormPattern: RegExp | string;\n\n @Input('fsFormPatternMessage')\n public set validationMessage(value: string) {\n this._validateMessages.pattern = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n return Validators.pattern(this.fsFormPattern)(this._control);\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { Observable, of } from 'rxjs';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsAsyncValidator } from '../../interfaces/async-validator';\n\n\n@Directive({\n selector: '[fsFormFunction]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormFunctionDirective extends FsControlDirective implements OnChanges, FsAsyncValidator {\n\n @Input()\n public fsFormFunction;\n\n @Input()\n public fsFormFunctionData;\n\n @Input()\n public validateOnSubmit = false;\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validateAsync(control: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n if(this.validateOnSubmit && !this.formDirective.validating) {\n return of(null);\n }\n \n return FsValidators.func(this._control, this.fsFormFunction, this.fsFormFunctionData);\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormGreater]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormGreaterDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormGreater;\n\n @Input('fsFormGreaterMessage')\n public set validationMessage(value: string) {\n this._validateMessages.greater = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const greater = parseFloat(this.fsFormGreater);\n const value = parseFloat(this._control.value);\n\n if (!isNaN(greater) && !isNaN(value) && value <= greater) {\n return { greater: { greater, actual: value } };\n }\n\n return FsValidators.numeric(this._control);\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\nimport { isEnabled } from '../../helpers/is-enabled';\n\n\n@Directive({\n selector: '[fsFormDateRange]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormDateRangeDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormDateRange;\n\n @Input('fsFormDateRangeMessage')\n public set validationMessage(value: string) {\n this._validateMessages.dateRange = value;\n }\n\n public ngOnChanges() {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (isEnabled(this.fsFormDateRange)) {\n return FsValidators.dateRange(this._control);\n } else {\n return null;\n }\n }\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormLesser]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormLesserDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormLesser;\n\n @Input('fsFormLesserMessage')\n public set validationMessage(value: string) {\n this._validateMessages.lesser = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const lesser = parseFloat(this.fsFormLesser);\n const value = parseFloat(this._control.value);\n\n if (!isNaN(lesser) && !isNaN(value) && value >= lesser) {\n return { lesser: { lesser, actual: value } };\n }\n\n return FsValidators.numeric(this._control);\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\nimport { isEnabled } from '../../helpers/is-enabled';\n\n\n@Directive({\n selector: '[fsFormUrl]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormUrlDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormUrl;\n\n @Input()\n public fsFormUrlProtocol = false;\n\n @Input('fsFormUrlMessage')\n public set validationMessage(value: string) {\n this._validateMessages.url = value;\n }\n\n public ngOnChanges() {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (isEnabled(this.fsFormUrl)) {\n return FsValidators.url(this._control, this.fsFormUrlProtocol);\n } else {\n return null;\n }\n }\n\n}\n","import { Directive, OnInit, Host, ElementRef, HostBinding, Optional, Input, OnDestroy, ChangeDetectorRef } from '@angular/core';\n\nimport { MatButton } from '@angular/material/button';\nimport { FsFormDirective } from './form/form.directive';\n\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n\n@Directive({\n selector: '[mat-raised-button],[mat-button],[mat-flat-button],[mat-stroked-button]',\n})\nexport class FsButtonDirective implements OnInit, OnDestroy {\n\n @Input()\n public name;\n\n @Input()\n public dirtySubmit = true;\n\n @HostBinding('style.transition')\n public transitionStyle = null;\n\n public active = false;\n public submit = false;\n\n private _previousDisabled = false;\n private _destroy$ = new Subject();\n\n constructor(\n @Optional() @Host() private _matButton: MatButton,\n @Optional() private _form: FsFormDirective,\n private _elementRef: ElementRef,\n private _cdRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit() {\n this.submit = this._elementRef.nativeElement.getAttribute('type') === 'submit';\n\n if (this._form) {\n this._form.addButton(this);\n\n if(this.submit) {\n fromEvent(this.element, 'click')\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.active = true;\n });\n\n if (this.dirtySubmit) {\n if (this._form.dirtySubmitButton) {\n if(!this._form.ngForm.dirty) {\n this.disable();\n }\n }\n }\n\n this.transitionStyle = 'none';\n setTimeout(() => {\n this.transitionStyle = null;\n }, 500);\n }\n }\n }\n\n public disable() { \n if (this._matButton && !this.active) {\n this._previousDisabled = this._matButton.disabled;\n this._matButton.disabled = true;\n this._cdRef.markForCheck(); \n }\n }\n\n public enable() {\n if (this._matButton) {\n this._matButton.disabled = false;\n this._matButton.disableRipple = true;\n this._cdRef.markForCheck();\n }\n }\n\n public process() {\n this.setClass('process');\n if (this._matButton) {\n this._matButton.disableRipple = true;\n }\n }\n\n public success() {\n this.setClass('success');\n if (this._matButton) {\n this._matButton.disableRipple = false;\n }\n }\n\n public error() {\n this.setClass('error');\n if (this._matButton) {\n this._matButton.disableRipple = false;\n }\n }\n\n public setClass(cls) {\n const svg = this._getSvg(cls);\n this._resetClass();\n this._disableShadowAnimation();\n this.element.classList.add(`submit-${cls}`);\n this.element.append(svg);\n }\n\n public get element() {\n return this._elementRef.nativeElement;\n }\n\n public resetActive() {\n this.active = false;\n }\n\n public reset() {\n if(!this._previousDisabled) {\n this.enable();\n }\n\n this.element.querySelectorAll('.svg-icon')\n .forEach((el) => {\n el.remove();\n });\n\n if (this._matButton) {\n this._matButton.disableRipple = false;\n }\n this._resetClass();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n this._form?.removeButton(this);\n }\n\n private _disableShadowAnimation() {\n // .mat-elevation-z2 removes the click shadow animation\n //this.element.classList.add('mat-elevation-z2');\n }\n\n private _resetClass() {\n this.element.classList.remove('submit-success', 'submit-error', 'submit-process', 'mat-elevation-z2');\n }\n\n private _getSvg(type) {\n if (type === 'success') {\n return new DOMParser().parseFromString(`<svg class=\"svg-icon svg-icon-success\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 38 38\" style=\"enable-background:new 0 0 38 38;\" xml:space=\"preserve\" width=\"38px\" height=\"38px\">\n <g>\n <g class=\"check\">\n <g>\n <path d=\"M29.6,11.9c-0.5-0.5-1.3-0.5-1.8,0L16.3,23.4l-6.1-6.1c-0.5-0.5-1.3-0.5-1.8,0s-0.5,1.3,0,1.8l7,7c0.3,0.3,0.6,0.4,0.9,0.4s0.7-0.1,0.9-0.4l12.4-12.4C30.1,13.2,30.1,12.4,29.6,11.9z\"/>\n </g>\n </g>\n </g>\n </svg>`, 'text/xml').firstChild;\n }\n\n if (type === 'process') {\n return new DOMParser().parseFromString(`<svg class=\"svg-icon svg-icon-process\" width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" xmlns=\"http://www.w3.org/2000/svg\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"2\"><circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\"/>\n <path d=\"M36 18c0-9.94-8.06-18-18-18\"><animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\".7s\" repeatCount=\"indefinite\"/></path>\n </g>\n </g>\n </svg>`, 'text/xml').firstChild;\n }\n\n if (type === 'error') {\n return new DOMParser().parseFromString(`<svg class=\"svg-icon svg-icon-error\" xmlns=\"http://www.w3.org/2000/svg\" width=\"38px\" height=\"38px\" viewBox=\"0 0 16 16\"><g><path d=\"M8 1c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7zM8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8v0z\" data-original=\"#444444\" data-old_color=\"#444444\"/><path d=\"M12.2 10.8l-2.8-2.8 2.8-2.8-1.4-1.4-2.8 2.8-2.8-2.8-1.4 1.4 2.8 2.8-2.8 2.8 1.4 1.4 2.8-2.8 2.8 2.8z\"/></g> </svg>`, 'text/xml').firstChild;\n }\n }\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { Observable, of } from 'rxjs';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsAsyncValidator } from '../../interfaces/async-validator';\n\n\n@Directive({\n selector: '[validate]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormValidateDirective extends FsControlDirective implements OnChanges, FsAsyncValidator {\n\n @Input('validate')\n public validateFn;\n\n @Input('validateData')\n public validateFnData;\n\n @Input()\n public validateOnSubmit = false;\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validateAsync(control: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n if(this.validateOnSubmit && !this.formDirective.validating) {\n return of(null);\n }\n\n return FsValidators.func(this._control, this.validateFn, this.validateFnData);\n }\n\n}\n","import { Component, OnInit, ChangeDetectionStrategy, Input, Optional, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\n\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { delay, filter, takeUntil } from 'rxjs/operators';\r\n\r\nimport { FsFormDirective } from '../../directives/form/form.directive';\r\nimport { ConfirmResult } from '../../enums/confirm-result';\r\n\r\n\r\n@Component({\r\n selector: 'fs-form-dialog-actions',\r\n templateUrl: './form-dialog-actions.component.html',\r\n styleUrls: ['./form-dialog-actions.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FsFormDialogActionsComponent implements OnInit, OnDestroy {\r\n\r\n @Input() public save = true;\r\n @Input() public create = false;\r\n @Input() public close = false;\r\n @Input() public done = false;\r\n @Input() public closeData = null;\r\n @Input() public name: string;\r\n\r\n public dirty = false;\r\n\r\n private _destroy$ = new Subject<void>();\r\n \r\n constructor(\r\n @Optional() private _form: FsFormDirective,\r\n @Optional() private _dialogRef: MatDialogRef<any>,\r\n private _cdRef: ChangeDetectorRef, \r\n ) {}\r\n\r\n public ngOnInit(): void {\r\n if(this._form) {\r\n this._form.ngForm.valueChanges\r\n .pipe( \r\n filter(() => (!this.dirty)),\r\n takeUntil(this._destroy$),\r\n )\r\n .subscribe(() => {\r\n this.dirty = this._form.ngForm.dirty;\r\n this._cdRef.markForCheck();\r\n });\r\n\r\n this._form.submitted\r\n .pipe(\r\n delay(50),\r\n takeUntil(this._destroy$),\r\n )\r\n .subscribe(() => {\r\n this.dirty = false;\r\n this._cdRef.markForCheck();\r\n });\r\n\r\n this._form.reseted\r\n .pipe(\r\n takeUntil(this._destroy$),\r\n )\r\n .subscribe(() => {\r\n this.dirty = false;\r\n this._cdRef.markForCheck();\r\n });\r\n }\r\n }\r\n \r\n public closeClick(): void {\r\n if(this._form) {\r\n this._form.triggerConfirm()\r\n .pipe(\r\n filter((confirmResult: ConfirmResult) => (confirmResult !== ConfirmResult.Review)),\r\n takeUntil(this._destroy$),\r\n )\r\n .subscribe(() => {\r\n this._dialogRef.close(this.closeData);\r\n });\r\n } else {\r\n this._dialogRef.close(this.closeData);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n}\r\n","<div class=\"buttons\" [ngClass]=\"{ 'save-create': save || create }\">\n <ng-container *ngIf=\"save\">\n <button\n mat-button\n type=\"submit\"\n color=\"primary\"\n [name]=\"name\">\n {{create ? 'Create' : 'Save'}}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"close && !dirty && !create\"\n [matDialogClose]=\"null\">\n Cancel\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"done\">\n <button\n mat-button\n type=\"button\"\n color=\"primary\"\n [matDialogClose]=\"null\">\n Done\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"save || create\">\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-container>\n\n <div class=\"close\" *ngIf=\"close\">\n <button\n mat-button\n type=\"button\"\n [color]=\"dirty ? 'basic' : 'primary'\"\n (click)=\"closeClick()\">\n Close\n </button>\n </div>\n\n <ng-container *ngIf=\"!(save || create)\">\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-container>\n</div>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { Directive, Input, OnChanges } from '@angular/core';\n\nimport { FsControlDirective } from './control.directive';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\n\n\n/**\n * This directive required for cases when we have custom Control like <fs-phone-field> but without any of our validators applied\n *\n * This directive required for automatic validation messages\n */\n@Directive({\n selector: '[ngModel]' +\n ':not([required])' +\n ':not([fsFormRequired])' +\n ':not([fsFormCompare])' +\n ':not([fsFormDateRange])' +\n ':not([fsFormEmail])' +\n ':not([fsFormEmails])' +\n ':not([fsFormFunction])' +\n ':not([fsFormGreater])' +\n ':not([fsFormInteger])' +\n ':not([fsFormLesser])' +\n ':not([fsFormMax])' +\n ':not([fsFormMaxLength])' +\n ':not([fsFormMin])' +\n ':not([fsFormMinLength])' +\n ':not([fsFormNumeric])' +\n ':not([fsFormPattern])' +\n ':not([fsFormPhone])' +\n ':not([fsFormUrl])' +\n ':not([validate])',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormNoFsValidatorsDirective extends FsControlDirective implements OnChanges {\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n}\n","import { Directive } from '@angular/core';\n\nimport { FsButtonDirective } from './button.directive';\n\n\n@Directive({\n selector: 'dummy-selector',\n})\nexport class FsSubmitButtonDirective extends FsButtonDirective {\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroupDirective, FormsModule, NgForm } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { ErrorStateMatcher, ShowOnDirtyErrorStateMatcher } from '@angular/material/core';\n\nimport { FsFormDirective } from './directives/form/form.directive';\nimport { FsControlDirective } from './directives/validators/control.directive';\nimport { FsFormRequiredDirective } from './directives/validators/required.directive';\nimport { FsFormMinDirective } from './directives/validators/min.directive';\nimport { FsFormMaxDirective } from './directives/validators/max.directive';\nimport { FsFormMinLengthDirective } from './directives/validators/minlength.directive';\nimport { FsFormMaxLengthDirective } from './directives/validators/maxlength.directive';\nimport { FsFormEmailDirective } from './directives/validators/email.directive';\nimport { FsFormEmailsDirective } from './directives/validators/emails.directive';\nimport { FsFormPhoneDirective } from './directives/validators/phone.directive';\nimport { FsFormCompareDirective } from './directives/validators/compare.directive';\nimport { FsFormIntegerDirective } from './directives/validators/integer.directive';\nimport { FsFormNumericDirective } from './directives/validators/numeric.directive';\nimport { FsFormPatternDirective } from './directives/validators/pattern.directive';\nimport { FsFormFunctionDirective } from './directives/validators/function.directive';\nimport { FsFormGreaterDirective } from './directives/validators/greater.directive';\nimport { FsFormDateRangeDirective } from './directives/validators/daterange.directive';\nimport { FsFormLesserDirective } from './directives/validators/lesser.directive';\nimport { FsFormUrlDirective } from './directives/validators/url.directive';\nimport { FsFormDialogCloseDirective } from './directives/form-dialog-close.directive';\nimport { FsButtonDirective } from './directives/button.directive';\nimport { FsFormValidateDirective } from './directives/validators/validate.directive';\nimport { FsFormDialogActionsComponent } from './components/form-dialog-actions/form-dialog-actions.component';\nimport { FsFormNoFsValidatorsDirective } from './directives/validators/no-fs-validators.directive';\nimport { FsSubmitButtonDirective } from './directives';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatButtonModule,\n MatDialogModule,\n ],\n declarations: [\n FsFormDirective,\n FsControlDirective,\n FsFormRequiredDirective,\n FsFormMinDirective,\n FsFormMaxDirective,\n FsFormMinLengthDirective,\n FsFormMaxLengthDirective,\n FsFormEmailDirective,\n FsFormEmailsDirective,\n FsFormPhoneDirective,\n FsFormCompareDirective,\n FsFormIntegerDirective,\n FsFormNumericDirective,\n FsFormPatternDirective,\n FsFormFunctionDirective,\n FsFormDateRangeDirective,\n FsFormGreaterDirective,\n FsFormLesserDirective,\n FsFormUrlDirective,\n FsFormDialogCloseDirective,\n FsFormValidateDirective,\n FsFormDialogActionsComponent,\n FsFormNoFsValidatorsDirective,\n FsButtonDirective,\n FsSubmitButtonDirective,\n ],\n exports: [\n FsFormDirective,\n FsControlDirective,\n FsFormRequiredDirective,\n FsFormMinDirective,\n FsFormMaxDirective,\n FsFormMinLengthDirective,\n FsFormMaxLengthDirective,\n FsFormEmailDirective,\n FsFormEmailsDirective,\n FsFormPhoneDirective,\n FsFormCompareDirective,\n FsFormIntegerDirective,\n FsFormNumericDirective,\n FsFormPatternDirective,\n FsFormFunctionDirective,\n FsFormDateRangeDirective,\n FsFormGreaterDirective,\n FsFormLesserDirective,\n FsFormUrlDirective,\n FsFormDialogCloseDirective,\n FsFormValidateDirective,\n FsFormDialogActionsComponent,\n FsFormNoFsValidatorsDirective,\n FsButtonDirective,\n FsSubmitButtonDirective,\n ],\n providers: [\n {\n provide: ErrorStateMatcher,\n useClass: ShowOnDirtyErrorStateMatcher,\n },\n ],\n})\nexport class FsFormModule {\n static forRoot(): ModuleWithProviders<FsFormModule> {\n\n /**\n * Hack: https://github.com/angular/components/issues/20097\n */\n ErrorStateMatcher.prototype.isErrorState = (control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean => {\n return control?.invalid && control?.touched && control?.dirty;\n };\n\n return {\n ngModule: FsFormModule,\n };\n }\n}\n","// Modules\nexport { FsFormModule } from './app/fs-form.module';\n\n// Services\nexport { FsForm } from './app/services/fsform.service';\n\n// Directives\nexport { FsFormDirective } from './app/directives/form/form.directive';\nexport { FsControlDirective } from './app/directives/validators/control.directive';\nexport { FsFormRequiredDirective } from './app/directives/validators/required.directive';\nexport { FsFormMinDirective } from './app/directives/validators/min.directive';\nexport { FsFormMaxDirective } from './app/directives/validators/max.directive';\nexport { FsFormMinLengthDirective } from './app/directives/validators/minlength.directive';\nexport { FsFormMaxLengthDirective } from './app/directives/validators/maxlength.directive';\nexport { FsFormEmailDirective } from './app/directives/validators/email.directive';\nexport { FsFormEmailsDirective } from './app/directives/validators/emails.directive';\nexport { FsFormPhoneDirective } from './app/directives/validators/phone.directive';\nexport { FsFormCompareDirective } from './app/directives/validators/compare.directive';\nexport { FsFormIntegerDirective } from './app/directives/validators/integer.directive';\nexport { FsFormNumericDirective } from './app/directives/validators/numeric.directive';\nexport { FsFormPatternDirective } from './app/directives/validators/pattern.directive';\nexport { FsFormFunctionDirective } from './app/directives/validators/function.directive';\nexport { FsFormDateRangeDirective } from './app/directives/validators/daterange.directive';\nexport { FsFormGreaterDirective } from './app/directives/validators/greater.directive';\nexport { FsFormLesserDirective } from './app/directives/validators/lesser.directive';\nexport { FsFormUrlDirective } from './app/directives/validators/url.directive';\nexport { FsFormDialogCloseDirective } from './app/directives/form-dialog-close.directive';\nexport { FsButtonDirective } from './app/directives/button.directive';\nexport { FsSubmitButtonDirective } from './app/directives/submit-button.directive';\nexport { FsFormValidateDirective } from './app/directives/validators/validate.directive';\nexport { FsFormNoFsValidatorsDirective } from './app/directives/validators/no-fs-validators.directive';\n\n// Components\nexport { FsFormDialogActionsComponent } from './app/components/form-dialog-actions/form-dialog-actions.component';\n\nexport { FsValidators } from './app/validators/validators';\n\nexport { FormDeactivateGuard } from './app/guards/form-deactivate.guard';\n\n// Interfaces\nexport { SubmitEvent } from './app/interfaces/submit-event';\nexport { SubmittedEvent } from './app/interfaces/submitted-event';\nexport { ConfirmConfig } from './app/interfaces/confirm-config';\n\n// Enums\nexport { ConfirmResult } from './app/enums/confirm-result';\nexport { FormStatus } from './app/enums/form-status';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ConfirmResult","Observable","first","Subject","Directive","HostBinding","HostListener","FormStatus","FormGroup","filter","map","Injectable","of","EventEmitter","QueryList","BehaviorSubject","isObservable","MessageMode","throwError","take","mergeMap","tap","switchMap","mapTo","catchError","takeUntil","fromEvent","delay","iif","defer","guid","startWith","NgForm","MatDialogRef","DrawerRef","MatTabGroup","Inject","Optional","Input","Output","ContentChildren","InjectionToken","values","keys","Self","Validators","email","isEmpty","isNumeric","phone","url","isObject","isValid","from","Host","Component","ChangeDetectionStrategy","ErrorStateMatcher","CommonModule","FormsModule","MatButtonModule","MatDialogModule","ShowOnDirtyErrorStateMatcher","NgModule"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAA;;;;;;;;;;;;;;IAcA;IAEA,IAAI,aAAa,GAAG,UAAS,CAAC,EAAE,CAAC;QAC7B,aAAa,GAAG,MAAM,CAAC,cAAc;aAChC,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;oBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;aAEc,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,KAAK,UAAU,IAAI,CAAC,KAAK,IAAI;YACrC,MAAM,IAAI,SAAS,CAAC,sBAAsB,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,+BAA+B,CAAC,CAAC;QAC9F,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACpB,SAAS,EAAE,KAAK,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;QACvC,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;IAEM,IAAI,QAAQ,GAAG;QAClB,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC;YAC3C,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjD,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjB,KAAK,IAAI,CAAC,IAAI,CAAC;oBAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;wBAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAChF;YACD,OAAO,CAAC,CAAC;SACZ,CAAA;QACD,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,CAAC,CAAA;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,EAAE,CAAC;QACX,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC/E,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;YAC/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpE,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;oBAC1E,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACzB;QACL,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI;QACpD,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QAC7H,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;;YAC1H,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;gBAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;oBAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAClJ,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;aAEe,OAAO,CAAC,UAAU,EAAE,SAAS;QACzC,OAAO,UAAU,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,CAAA;IACzE,CAAC;aAEe,UAAU,CAAC,WAAW,EAAE,aAAa;QACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU;YAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;aAEe,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS;QACvD,SAAS,KAAK,CAAC,KAAK,IAAI,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC5G,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM;YACrD,SAAS,SAAS,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC3F,SAAS,QAAQ,CAAC,KAAK,IAAI,IAAI;gBAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;aAAE;YAAC,OAAO,CAAC,EAAE;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC;aAAE,EAAE;YAC9F,SAAS,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;YAC9G,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;SACzE,CAAC,CAAC;IACP,CAAC;aAEe,WAAW,CAAC,OAAO,EAAE,IAAI;QACrC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,cAAa,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjH,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAa,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACzJ,SAAS,IAAI,CAAC,CAAC,IAAI,OAAO,UAAU,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;QAClE,SAAS,IAAI,CAAC,EAAE;YACZ,IAAI,CAAC;gBAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;YAC9D,OAAO,CAAC;gBAAE,IAAI;oBACV,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI;wBAAE,OAAO,CAAC,CAAC;oBAC7J,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;wBAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;oBACxC,QAAQ,EAAE,CAAC,CAAC,CAAC;wBACT,KAAK,CAAC,CAAC;wBAAC,KAAK,CAAC;4BAAE,CAAC,GAAG,EAAE,CAAC;4BAAC,MAAM;wBAC9B,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;wBACxD,KAAK,CAAC;4BAAE,CAAC,CAAC,KAAK,EAAE,CAAC;4BAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;4BAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;4BAAC,SAAS;wBACjD,KAAK,CAAC;4BAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;wBACjD;4BACI,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;gCAAE,CAAC,GAAG,CAAC,CAAC;gCAAC,SAAS;6BAAE;4BAC5G,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACtF,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,GAAG,EAAE,CAAC;gCAAC,MAAM;6BAAE;4BACrE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE;gCAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gCAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gCAAC,MAAM;6BAAE;4BACnE,IAAI,CAAC,CAAC,CAAC,CAAC;gCAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;4BACtB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;4BAAC,SAAS;qBAC9B;oBACD,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAAC,OAAO,CAAC,EAAE;oBAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;oBAAC,CAAC,GAAG,CAAC,CAAC;iBAAE;wBAAS;oBAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;iBAAE;YAC1D,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;SACpF;IACL,CAAC;IAEM,IAAI,eAAe,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QAC9D,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,cAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC,KAAK,UAAS,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;QACtB,IAAI,EAAE,KAAK,SAAS;YAAE,EAAE,GAAG,CAAC,CAAC;QAC7B,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC,CAAC,CAAC;aAEa,YAAY,CAAC,CAAC,EAAE,CAAC;QAC7B,KAAK,IAAI,CAAC,IAAI,CAAC;YAAE,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClH,CAAC;aAEe,QAAQ,CAAC,CAAC;QACtB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;QAC9E,IAAI,CAAC;YAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ;YAAE,OAAO;gBAC1C,IAAI,EAAE;oBACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM;wBAAE,CAAC,GAAG,KAAK,CAAC,CAAC;oBACnC,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;iBAC3C;aACJ,CAAC;QACF,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;aAEe,MAAM,CAAC,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC3D,IAAI,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI;YACA,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI;gBAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;SAC9E;QACD,OAAO,KAAK,EAAE;YAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;SAAE;gBAC/B;YACJ,IAAI;gBACA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACpD;oBACO;gBAAE,IAAI,CAAC;oBAAE,MAAM,CAAC,CAAC,KAAK,CAAC;aAAE;SACpC;QACD,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,QAAQ;QACpB,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;YAC9C,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC;IACd,CAAC;IAED;aACgB,cAAc;QAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpF,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;gBAC7D,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,OAAO,CAAC,CAAC;IACb,CAAC;aAEe,aAAa,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI;QACxC,IAAI,IAAI,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;YAAE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACjF,IAAI,EAAE,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE;oBACpB,IAAI,CAAC,EAAE;wBAAE,EAAE,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACrD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;iBACnB;aACJ;QACD,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7D,CAAC;aAEe,OAAO,CAAC,CAAC;QACrB,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;aAEe,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS;QAC3D,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;QAC9D,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACtH,SAAS,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAC1I,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI;YAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAAE;QAAC,OAAO,CAAC,EAAE;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SAAE,EAAE;QAClF,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;QACxH,SAAS,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;QAClD,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM;YAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;aAEe,gBAAgB,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE,CAAC,CAAC;QACT,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5I,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;aAEe,aAAa,CAAC,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa;YAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;QACvF,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,cAAc,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QACjN,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;QAChK,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;aAEe,oBAAoB,CAAC,MAAM,EAAE,GAAG;QAC5C,IAAI,MAAM,CAAC,cAAc,EAAE;YAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;SAAE;aAAM;YAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;SAAE;QAC/G,OAAO,MAAM,CAAC;IAClB,CAAC;IAAA,CAAC;IAEF,IAAI,kBAAkB,GAAG,MAAM,CAAC,MAAM,IAAI,UAAS,CAAC,EAAE,CAAC;QACnD,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IACxE,CAAC,IAAI,UAAS,CAAC,EAAE,CAAC;QACd,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC,CAAC;aAEc,YAAY,CAAC,GAAG;QAC5B,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU;YAAE,OAAO,GAAG,CAAC;QACtC,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,GAAG,IAAI,IAAI;YAAE,KAAK,IAAI,CAAC,IAAI,GAAG;gBAAE,IAAI,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;oBAAE,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACzI,kBAAkB,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAChC,OAAO,MAAM,CAAC;IAClB,CAAC;aAEe,eAAe,CAAC,GAAG;QAC/B,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC3D,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,0EAA0E,CAAC,CAAC;QACnL,OAAO,IAAI,KAAK,GAAG,GAAG,CAAC,GAAG,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAClG,CAAC;aAEe,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClE,IAAI,IAAI,KAAK,GAAG;YAAE,MAAM,IAAI,SAAS,CAAC,gCAAgC,CAAC,CAAC;QACxE,IAAI,IAAI,KAAK,GAAG,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,+CAA+C,CAAC,CAAC;QAC7F,IAAI,OAAO,KAAK,KAAK,UAAU,GAAG,QAAQ,KAAK,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,yEAAyE,CAAC,CAAC;QAClL,OAAO,CAAC,IAAI,KAAK,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC;IAC9G;;AC9OYA;IAAZ,WAAY,aAAa;QACvB,8BAAa,CAAA;QACb,oCAAmB,CAAA;QACnB,kCAAiB,CAAA;QACjB,oCAAmB,CAAA;QACnB,sCAAqB,CAAA;IACvB,CAAC,EANWA,qBAAa,KAAbA,qBAAa;;aCST,cAAc,CAAC,UAA6B,EAAE,MAAgB;QAC5E,OAAO,IAAIC,eAAU,CAAC,UAAA,QAAQ;;YAE5B,IAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;YAE3B,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;gBACvC,QAAQ,CAAC,IAAI,CAACD,qBAAa,CAAC,QAAQ,CAAC,CAAC;gBACtC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBACpB,OAAO;aACR;YAED,IAAI,KAAK,GAAG,0BAA0B,CAAC;YACvC,IAAI,OAAO,GAAG,8CAA8C,CAAC;YAC7D,IAAI,SAAS,GAAG,iBAAiB,CAAC;YAClC,IAAI,YAAY,GAAG,4BAA4B,CAAC;YAChD,IAAI,WAAW,GAAG,gBAAgB,CAAC;YAEnC,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE;gBACpC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;gBACpC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC;gBAC1C,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC;gBAChD,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,YAAY,CAAC;gBACzD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,WAAW,CAAC;aACvD;YAED,MAAM,CAAC,OAAO,CAAC;gBACb,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,OAAO;gBACjB,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;gBAC/B,OAAO,EAAE;oBACP;wBACE,KAAK,EAAE,SAAS;wBAChB,KAAK,EAAE,SAAS;wBAChB,KAAK,EAAE,MAAM;qBACd;oBACD;wBACE,KAAK,EAAE,YAAY;wBACnB,KAAK,EAAE,SAAS;qBACjB;oBACD;wBACE,KAAK,EAAE,WAAW;wBAClB,MAAM,EAAE,IAAI;qBACb;iBACF;aACF,CAAC,CAAC,SAAS,CAAC,UAAC,KAAK;gBAEjB,IAAI,KAAK,KAAK,SAAS,EAAE;oBACvB,QAAQ,CAAC,IAAI,CAACA,qBAAa,CAAC,OAAO,CAAC,CAAC;oBACrC,QAAQ,CAAC,QAAQ,EAAE,CAAC;oBACpB,IAAI,CAAC,KAAK,EAAE,CAAC;iBACd;gBAED,IAAI,KAAK,KAAK,MAAM,EAAE;oBAEpB,IAAI,CAAC,SAAS;yBACb,IAAI,CACHE,eAAK,EAAE,CACR;yBACA,SAAS,CAAC;wBACT,QAAQ,CAAC,IAAI,CAACF,qBAAa,CAAC,IAAI,CAAC,CAAC;wBAClC,QAAQ,CAAC,QAAQ,EAAE,CAAC;qBACrB,CAAC,CAAC;oBAEH,IAAI,CAAC,OAAO;yBACX,IAAI,CACHE,eAAK,EAAE,CACR;yBACA,SAAS,CAAC;wBACT,QAAQ,CAAC,IAAI,CAACF,qBAAa,CAAC,OAAO,CAAC,CAAC;wBACrC,QAAQ,CAAC,QAAQ,EAAE,CAAC;qBACrB,CAAC,CAAC;oBAEH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;oBACrC,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;iBACzC;aAEF,EAAE,UAAC,KAAU;gBACZ,QAAQ,CAAC,IAAI,CAACA,qBAAa,CAAC,MAAM,CAAC,CAAC;gBACpC,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACrB,CAAC,CAAC;SACJ,CAAC,CAAC;IACL;;;QCtFA;YAKS,aAAQ,GAAG,IAAIG,YAAO,EAAE,CAAC;YACzB,eAAU,GAAG,KAAK,CAAC;YAEA,SAAI,GAAG,QAAQ,CAAC;SAU3C;QAPQ,0CAAK,GAAL;YACL,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACtB;QAEM,gDAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;SAC1B;;;kJAdU,0BAA0B;2HAA1B,0BAA0B;sHAA1B,0BAA0B;sBAHtCC,YAAS;uBAAC;wBACT,QAAQ,EAAE,4CAA4C;qBACvD;kCAM2B,IAAI;0BAA7BC,cAAW;2BAAC,WAAW;oBAGjB,KAAK;0BADXC,eAAY;2BAAC,OAAO,EAAE,CAAC,eAAe,CAAC;;;ACd9BC;IAAZ,WAAY,UAAU;QACpB,6BAAe,CAAA;QACf,iCAAmB,CAAA;QACnB,uCAAyB,CAAA;QACzB,uCAAyB,CAAA;QACzB,qCAAuB,CAAA;QACvB,6BAAe,CAAA;QACf,iCAAmB,CAAA;QACnB,uCAAyB,CAAA;IAC3B,CAAC,EATWA,kBAAU,KAAVA,kBAAU;;aCEN,qBAAqB,CAAC,MAAM;QAC1C,OAAO,MAAM,KAAKP,qBAAa,CAAC,OAAO,IAAI,MAAM,KAAKA,qBAAa,CAAC,IAAI,IAAI,MAAM,KAAKA,qBAAa,CAAC,QAAQ,CAAC;IAChH;;aCDgB,aAAa,CAAC,OAAwB,EAAE,GAAW;;QACjE,IAAI,MAAM,GAA4B,IAAI,CAAC;QAE3C,IAAI,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;YACrC,MAAM;gBACJ,GAAC,GAAG,sBAAQ,OAAO,CAAC,MAAM,CAAE;mBAC7B,CAAA;SACF;QAED,IAAI,OAAO,YAAYQ,YAAS,EAAE;YAChC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;iBAC7B,OAAO,CAAC,UAAC,EAAoB;oBAApB,KAAA,aAAoB,EAAnB,IAAI,QAAA,EAAE,YAAY,QAAA;gBAC3B,IAAM,WAAW,GAAG,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;gBAEtD,IAAI,WAAW,EAAE;oBACf,IAAI,CAAC,MAAM,EAAE;wBACX,MAAM,qBAAQ,WAAW,CAAE,CAAC;qBAC7B;yBAAM;wBACL,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;qBACpC;iBACF;aACF,CAAC,CAAC;SACN;QAED,OAAO,MAAM,CAAC;IAChB;;aCzBgB,cAAc,CAAC,KAAqB;QAClD,OAAO,KAAK,CAAC,UAAU,EAAE;YACvB,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC;SAC1B;QAED,OAAO,KAAK,CAAC;IACf;;;QCcE;;YAJQ,wBAAmB,GAAG,IAAI,OAAO,EAAgC,CAAC;YAKxE,IAAI,CAAC,SAAS,GAAG,IAAIL,YAAO,EAAkB,CAAC;SAChD;;QAGM,0BAAS,GAAT,UAAU,GAAQ,EAAE,IAAU;YACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAC,GAAG,KAAA,EAAE,IAAI,MAAA,EAAC,CAAC,CAAC;SAClC;;QAGM,mBAAE,GAAF,UAAM,GAAQ;YACnB,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE;iBACjC,IAAI,CACHM,gBAAM,CAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,GAAG,KAAK,GAAG,GAAA,CAAC,EAClCC,aAAG,CAAC,UAAA,KAAK,IAAO,OAAA,KAAK,CAAC,IAAI,GAAA,CAAC,CAC5B,CAAC;SACL;QAEM,sCAAqB,GAArB,UAAsB,cAAyB,EAAE,SAA0B;YAChF,IAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAChE,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE3B,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;SAC1D;QAEM,kCAAiB,GAAjB,UAAkB,cAAc;YACrC,OAAO,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;SACrD;QAEM,oCAAmB,GAAnB,UAAoB,cAAc;YACvC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;SACjD;;;8HAtCU,MAAM;kIAAN,MAAM,cAFL,MAAM;sHAEP,MAAM;sBAHlBC,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;QCKC,6BACU,OAAiB,EACjB,OAAe,EACf,MAAsB;YAFtB,YAAO,GAAP,OAAO,CAAU;YACjB,YAAO,GAAP,OAAO,CAAQ;YACf,WAAM,GAAN,MAAM,CAAgB;SAC5B;QAEJ,2CAAa,GAAb;YACE,IAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE1C,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;gBAEnE,OAAOC,OAAE,CAAC,IAAI,CAAC,CAAC;aACjB;YAED,IAAM,UAAU,GAAsB,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YAElG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzD,OAAO,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;gBAEtD,OAAOA,OAAE,CAAC,IAAI,CAAC,CAAC;aACjB;YAED,OAAO,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC;iBAC5C,IAAI,CACHF,aAAG,CAAC,UAAC,MAAM;gBACT,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;aACtC,CAAC,CACH,CAAC;SACL;;;2IA/BU,mBAAmB;+IAAnB,mBAAmB,cAFlB,MAAM;sHAEP,mBAAmB;sBAH/BC,aAAU;uBAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;QCiJC,yBAES,MAAc,EACb,KAAa,EACb,QAAoB,EACpB,QAAmB,EACnB,OAAiB,EACjB,OAAe,EAGf,UAA6B,EAG7B,UAA0B,EAE1B,MAAsB;YAbvB,WAAM,GAAN,MAAM,CAAQ;YACb,UAAK,GAAL,KAAK,CAAQ;YACb,aAAQ,GAAR,QAAQ,CAAY;YACpB,aAAQ,GAAR,QAAQ,CAAW;YACnB,YAAO,GAAP,OAAO,CAAU;YACjB,YAAO,GAAP,OAAO,CAAQ;YAGf,eAAU,GAAV,UAAU,CAAmB;YAG7B,eAAU,GAAV,UAAU,CAAgB;YAE1B,WAAM,GAAN,MAAM,CAAgB;YAtGzB,oBAAe,GAAG,kCAAkC,CAAC;YAGrD,oBAAe,GAAG,oDAAoD,CAAC;YAGvE,iBAAY,GAAG,4CAA4C,CAAC;YAG5D,kBAAa,GAAG,sCAAsC,CAAC;YAGvD,iBAAY,GAAG,KAAK,CAAC;YAGrB,cAAS,GAAG,IAAI,CAAC;YAGjB,YAAO,GAA4B,IAAI,CAAC;YAGxC,kBAAa,GAAG,IAAI,CAAC;YAGrB,kBAAa,GAAG,IAAI,CAAC;YAGrB,mBAAc,GAAG,IAAI,CAAC;YAGtB,gBAAW,GAAG,IAAI,CAAC;YAGnB,sBAAiB,GAAG,IAAI,CAAC;YAMzB,iBAAY,GAAG,CAAC,CAAC;YAGjB,eAAU,GAAG,IAAI,CAAC;YAMlB,sBAAiB,GAAG,IAAI,CAAC;YAGzB,gBAAW,GAA8B,IAAIE,eAAY,EAAE,CAAC;YAG5D,YAAO,GAA8B,IAAIA,eAAY,EAAE,CAAC;YAGxD,UAAK,GAA8B,IAAIA,eAAY,EAAE,CAAC;YAGtD,cAAS,GAA8B,IAAIA,eAAY,EAAE,CAAC;YAG1D,YAAO,GAA8B,IAAIA,eAAY,EAAE,CAAC;YAGxD,YAAO,GAA8B,IAAIA,eAAY,EAAE,CAAC;YAGxD,gBAAW,GAAG,IAAI,CAAC;YAMlB,eAAU,GAA2B,IAAIC,YAAS,EAAE,CAAC;YAErD,aAAQ,GAAG,IAAIA,YAAS,EAAqB,CAAC;YAG9C,0BAAqB,GAAG,KAAK,CAAC;YAC9B,cAAS,GAA2B,EAAE,CAAC;YAEvC,aAAQ,GAAG,IAAIC,oBAAe,CAACR,kBAAU,CAAC,KAAK,CAAC,CAAC;YACjD,cAAS,GAAG,IAAIJ,YAAO,EAAE,CAAC;YAC1B,eAAU,GAAG,KAAK,CAAC;SAkBvB;QAEJ,sBAAW,uCAAU;iBAArB;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAKI,kBAAU,CAAC,UAAU,CAAC;aAC3D;;;WAAA;QAED,sBAAW,uCAAU;iBAArB;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAKA,kBAAU,CAAC,UAAU,CAAC;aAC3D;;;WAAA;QAED,sBAAW,uCAAU;iBAArB;gBACE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAKA,kBAAU,CAAC,UAAU,CAAC;aAC3D;;;WAAA;QAED,sBAAY,yCAAY;iBAAxB;gBACE,OAAO;oBACL,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,SAAS,EAAE,IAAI,CAAC,UAAU;iBAC3B,CAAC;aACH;;;WAAA;QAED,sBAAY,6CAAgB;iBAA5B;gBACE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;gBACjD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAEnC,IAAM,cAAc,GAAmB;oBACrC,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,SAAS,EAAE,IAAI,CAAC,UAAU;oBAC1B,QAAQ,EAAE,IAAI;iBACf,CAAC;gBAEF,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;oBAChB,OAAOK,OAAE,CAAC,cAAc,CAAC,CAAC;iBAC3B;gBAED,IAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAE9C,IAAI,CAACI,iBAAY,CAAC,MAAM,CAAC,EAAE;oBACzB,OAAOJ,OAAE,CAAC,cAAc,CAAC,CAAC;iBAC3B;gBAED,OAAO,MAAM;qBACV,IAAI,CACHF,aAAG,CAAC,UAAC,QAAQ;oBACX,cAAc,CAAC,QAAQ,GAAG,QAAQ,CAAC;oBAEnC,OAAO,cAAc,CAAC;iBACvB,CAAC,CACH,CAAC;aACL;;;WAAA;QAED,sBAAY,+CAAkB;iBAA9B;gBACE,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;gBAEnD,IAAI,IAAI,CAAC,OAAO,EAAE;oBAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;iBACtC;gBAED,IAAM,OAAO,GAAG,6DAA6D,CAAC;gBAC9E,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAEO,cAAW,CAAC,KAAK,EAAE,CAAC,CAAC;gBAE1D,IAAM,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;gBAEpE,IAAI,EAAE,EAAE;oBACN,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;iBAC7D;gBAED,OAAOC,eAAU,CAAC,uBAAuB,CAAC,CAAC;aAC5C;;;WAAA;QAED,sBAAY,uCAAU;iBAAtB;gBACE,OAAO,IAAI,CAAC,mBAAmB;sBAC3B,IAAI,CAAC,mBAAmB,CAAC,IAAI;sBAC7B,IAAI,CAAC;aACV;;;WAAA;QAEM,kCAAQ,GAAR;YACL,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,2BAA2B,EAAE,CAAC;aACpC;YAED,IAAI,CAAC,oCAAoC,EAAE,CAAC;YAC5C,IAAI,CAAC,cAAc,EAAE,CAAC;YACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzB,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;gBACtB,IAAI,CAAC,qBAAqB,EAAE,CAAC;aAC9B;SACF;QAEM,qCAAW,GAAX,UAAY,OAAsB;YACvC,IAAI,OAAO,CAAC,OAAO,EAAE;gBACnB,IAAI,CAAC,yBAAyB,EAAE,CAAC;aAClC;SACF;QAEM,4CAAkB,GAAlB;YACL,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACnC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,CAAC,0BAA0B,EAAE,CAAC;SACnC;QAEM,qCAAW,GAAX;YACL,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC7B,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;SAC3B;QAEM,wCAAc,GAAd;YACL,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;SACpC;QAEM,qCAAW,GAAX;YACL,OAAO,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC;SAC7B;QAEM,+BAAK,GAAL;YAAA,iBAUN;YATC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAExB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;iBAC9B,OAAO,CAAC,UAAC,IAAY;gBACpB,IAAM,OAAO,GAAG,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC3C,OAAO,CAAC,KAAK,CAAC,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;aACrC,CAAC,CAAC;YAEL,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACrB;QAEM,+BAAK,GAAL;YACL,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;SACrB;QAEM,+BAAK,GAAL;YACL,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC/B,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;QAEM,uCAAa,GAAb,UAAc,OAAgC;YACnD,IAAI,CAAC,UAAU,GAAG,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SAC7B;QAEM,wCAAc,GAAd;YAAA,iBAQN;YAPC,IAAM,SAAS,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,GAAGN,OAAE,CAAC,EAAE,CAAC,CAAC;YAE3E,OAAO,SAAS;iBACb,IAAI,CACHO,cAAI,CAAC,CAAC,CAAC,EACPC,kBAAQ,CAAC,cAAM,OAAA,cAAc,CAAC,CAAC,KAAI,CAAC,EAAE,KAAI,CAAC,OAAO,CAAC,GAAA,CAAC,CACrD,CAAC;SACL;QAEM,gCAAM,GAAN;YACL,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YAE7B,IAAI,CAAC,yBAAyB,EAAE,CAAC;SAClC;QAEM,iCAAO,GAAP;YACL,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YAE9B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,MAAM;gBAC3B,MAAM,CAAC,OAAO,EAAE,CAAC;aAClB,CAAC,CAAC;SACJ;QAEM,mCAAS,GAAT,UAAU,MAAyB;YACxC,IAAI,CAAC,QAAQ,CAAC,KAAK,wCAEZ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC1B,MAAM;eACN,CAAC;SACN;QAEM,sCAAY,GAAZ,UAAa,MAAyB;YAC3C,IAAI,CAAC,QAAQ,CAAC,KAAK,0BAEZ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE;iBACzB,MAAM,CAAC,UAAC,IAAI,IAAK,QAAC,MAAM,KAAK,IAAI,IAAC,CAAC,GACpC,CAAC;SACN;QAEO,uCAAa,GAAb;YAAA,iBAiDP;YAhDC,IAAI,CAAC,MAAM;iBACR,QAAQ;iBACR,IAAI,CACHC,aAAG,CAAC,UAAC,KAAK;gBACR,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,cAAc,EAAE,CAAC;aACzB,CAAC,EACFX,aAAG,CAAC,UAAC,KAAK;gBACR,OAAO,EAAE,KAAK,OAAA,EAAE,SAAS,EAAE,KAAI,CAAC,UAAU,EAAE,CAAC;aAC9C,CAAC,EACFW,aAAG,CAAC,cAAM,OAAA,KAAI,CAAC,UAAU,GAAG,KAAK,GAAA,CAAC,EAClCZ,gBAAM,CAAC;gBACL,OAAO,CAAEF,kBAAU,CAAC,KAAK,EAAEA,kBAAU,CAAC,OAAO,CAAE;qBAC5C,QAAQ,CAAC,KAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;aACvC,CAAC,EACFc,aAAG,CAAC,cAAM,OAAA,KAAI,CAAC,yBAAyB,EAAE,GAAA,CAAC,EAC3CA,aAAG,CAAC,cAAM,OAAA,KAAI,CAAC,QAAQ,EAAE,GAAA,CAAC,EAC1BA,aAAG,CAAC,cAAM,OAAA,KAAI,CAAC,0BAA0B,EAAE,GAAA,CAAC,EAC5CC,mBAAS,CAAC,UAAC,IAAI,IAAK,OAAA,KAAI,CAAC,uBAAuB,EAAE;iBAC/C,IAAI,CACHC,eAAK,CAAC,IAAI,CAAC,CACZ,GAAA,CAAC,EACJF,aAAG,CAAC,cAAM,OAAA,KAAI,CAAC,wBAAwB,EAAE,GAAA,CAAC,EAC1CA,aAAG,CAAC,cAAM,OAAA,KAAI,CAAC,eAAe,EAAE,GAAA,CAAC,EACjCD,kBAAQ,CAAC,UAAC,IAAI;gBACZ,IAAG,KAAI,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE;oBACnC,OAAO,KAAI,CAAC,kBAAkB,CAAC;iBAChC;gBAED,OAAO,KAAI,CAAC,gBAAgB;qBAC3B,IAAI,CACHV,aAAG,CAAC,UAAC,WAAW,IAAK,wCACjB,WAAW,KACd,SAAS,EAAE,IAAI,CAAC,SAAS,OACxB,CACH,CACA,CAAA;aACF,CAAC,EACFc,oBAAU,CAAC,UAAC,CAAC,EAAE,OAAO;gBACpB,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAErB,OAAO,OAAO,CAAC;aAChB,CAAC,EACFH,aAAG,CAAC,UAAC,cAA8B;gBACjC,KAAI,CAAC,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;aAC5C,CAAC,EACFI,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;iBACA,SAAS,CAAC,eAAQ,CAAC,CAAC;SACxB;QAEM,kCAAQ,GAAR;YACL,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;iBAClC,OAAO,CAAC,UAAC,OAAO;gBACf,OAAO,CAAC,WAAW,EAAE,CAAC;gBACtB,OAAO,CAAC,aAAa,EAAE,CAAC;gBACxB,OAAO,CAAC,sBAAsB,EAAE,CAAC;aAClC,CAAC,CAAC;SACJ;QAEO,2CAAiB,GAAjB;YAAA,iBAcP;YAbC,IAAI,CAAC,QAAQ;iBACZ,IAAI,CACHA,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;iBACA,SAAS,CAAC,UAAC,UAAsB;gBAChC,IAAM,GAAG,GAAG,CAAClB,kBAAU,CAAC,UAAU,EAAEA,kBAAU,CAAC,UAAU,CAAC,CAAC;gBAC3D,IAAM,SAAS,GAAG,KAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC;gBACxD,SAAS,CAAC,MAAM,OAAhB,SAAS,2BAAW,GAAG,IAAE;gBACzB,IAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;oBACjC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;iBAC3B;aACF,CAAC,CAAC;SAEJ;QAEO,4CAAkB,GAAlB;YAAA,iBAUP;YATCmB,cAAS,CAAC,MAAM,EAAE,cAAc,CAAC;iBAC9B,IAAI,CACHD,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;iBACA,SAAS,CAAC,UAAC,KAAY;gBACtB,IAAI,KAAI,CAAC,OAAO,IAAI,KAAI,CAAC,cAAc,IAAI,KAAI,CAAC,MAAM,CAAC,KAAK,EAAE;oBAC5D,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;iBAC3B;aACF,CAAC,CAAC;SACN;QAEO,wCAAc,GAAd;YAAA,iBAiCP;YAhCC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC;gBAC7BC,cAAS,CAAC,QAAQ,EAAE,SAAS,CAAC;qBAC3B,IAAI,CACHD,mBAAS,CAAC,KAAI,CAAC,SAAS,CAAC,CAC1B;qBACA,SAAS,CAAC,UAAC,KAAoB;oBAC9B,IAAI,KAAI,CAAC,qBAAqB,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;wBACzD,IAAM,QAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;wBAC3D,IAAM,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,CAAC;wBAEnC,IAAI,KAAK,EAAE;4BACT,KAAK,CAAC,OAAO,CAAC,UAAA,IAAI;gCAChB,IAAI,QAAM,KAAK,IAAI,EAAE;oCACnB,KAAI,CAAC,OAAO,CAAC,GAAG,CAAC;wCACf,KAAI,CAAC,UAAU,EAAE,CAAC;qCACnB,CAAC,CAAC;iCACJ;6BACF,CAAC,CAAC;yBACJ;qBACF;oBAED,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;wBAC7D,KAAK,CAAC,cAAc,EAAE,CAAC;wBAEvB,IAAI,KAAI,CAAC,SAAS,EAAE;4BAClB,IAAI,KAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;gCAC/C,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;6BAC7B;yBACF;qBACF;iBACF,CAAC,CAAC;aACN,CAAC,CAAC;SACJ;QAEO,oCAAU,GAAV;YAAA,iBAkBP;YAjBC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtC,IAAI,CAAC,cAAc,EAAE;qBAClB,IAAI,CACHhB,gBAAM,CAAC,UAAC,MAAM,IAAK,OAAA,qBAAqB,CAAC,MAAM,CAAC,GAAA,CAAC,EACjDa,mBAAS,CAAC,UAAC,MAAM;oBACf,OAAO,MAAM,KAAKtB,qBAAa,CAAC,QAAQ,IAAI,MAAM,KAAKA,qBAAa,CAAC,OAAO;0BACxEY,OAAE,CAAC,IAAI,CAAC;0BACR,KAAI,CAAC,SAAS,CAAC,YAAY,EAAE,CAAC;iBACnC,CAAC,EACFa,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;qBACA,SAAS,CAAC,UAAC,MAAsB;oBAChC,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAC,CAAC;iBACzC,CAAC,CAAC;aACN;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aAC7B;SACF;QAEO,8CAAoB,GAApB,UAAqB,SAAqC;YAA1D,iBAYP;YAXC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE;gBACzB,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC;gBAE5B,SAAS,CAAC,QAAQ;qBACf,IAAI,CACHA,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;qBACA,SAAS,CAAC;oBACT,KAAI,CAAC,UAAU,EAAE,CAAC;iBACnB,CAAC,CAAC;aACN;SACF;QAEO,gDAAsB,GAAtB;YACN,IAAM,aAAa,GAAG,IAAI,CAAC,QAAQ;iBAChC,MAAM,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,MAAM,GAAA,CAAC,CAAC;YAErC,IAAM,YAAY,GAAG,aAAa;iBAC/B,IAAI,CAAC,UAAA,MAAM;gBACV,OAAO,MAAM,CAAC,MAAM,CAAC;aACtB,CAAC,CAAC;YAEL,OAAO,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;SACvD;QAEO,wCAAc,GAAd,UAAe,EAAW;YAChC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE;gBAC9C,OAAO,IAAI,CAAC;aACb;iBAAM,IAAI,EAAE,CAAC,aAAa,EAAE;gBAC3B,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC;aAC9C;YAED,OAAO,KAAK,CAAC;SACd;QAEO,yCAAe,GAAf,UAAgB,OAAO,EAAE,WAA2B;YAApD,iBA6CP;YA5CC,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;gBACrC,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAClC;iBAAM;gBACL,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;YAED,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,OAAO,EAAE;oBACX,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;iBACpC;qBAAM;oBACL,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;iBAClC;aACF;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAClB,kBAAU,CAAC,SAAS,CAAC,CAAC;YAEzC,IAAI,OAAO,EAAE;gBACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAACA,kBAAU,CAAC,OAAO,CAAC,CAAC;aACxC;iBAAM;gBACL,IAAI,CAAC,QAAQ,CAAC,IAAI,CAACA,kBAAU,CAAC,KAAK,CAAC,CAAC;aACtC;YAED,IAAI,CAAC,QAAQ,CAAC,IAAI,CAACA,kBAAU,CAAC,UAAU,CAAC,CAAC;YAE1C,IAAM,UAAU,GAAG,OAAO,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;YAEjEK,OAAE,CAAC,IAAI,CAAC;iBACP,IAAI,CACHe,eAAK,CAAC,UAAU,CAAC,EACjBzB,eAAK,EAAE,EACPuB,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B,CAAC,SAAS,CAAC;gBACV,IAAI,KAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,EAAE;oBACvC,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAClB,kBAAU,CAAC,KAAK,CAAC,CAAC;iBACtC;qBAAM;oBACL,KAAI,CAAC,QAAQ,CAAC,IAAI,CAACA,kBAAU,CAAC,OAAO,CAAC,CAAC;iBACxC;gBAED,KAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,KAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,KAAI,CAAC,yBAAyB,EAAE,CAAC;aAClC,CAAC,CAAC;SACJ;QAEO,uCAAa,GAAb;YACN,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,MAAM;gBAC3B,MAAM,CAAC,KAAK,EAAE,CAAC;aAChB,CAAC,CAAC;SACJ;QAEO,6CAAmB,GAAnB;YACN,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,MAAM;gBAC3B,MAAM,CAAC,WAAW,EAAE,CAAC;aACtB,CAAC,CAAC;SACJ;QAEO,0CAAgB,GAAhB;YAAA,iBAiBP;YAhBC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY;iBAC1B,IAAI,CACHkB,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;iBACA,SAAS,CAAC,UAAC,OAAO;gBACjB,IAAI,KAAI,CAAC,OAAO,EAAE;oBAChB,IAAM,UAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC;oBAE7C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;yBACjB,OAAO,CAAC,UAAC,IAAY;wBACpB,IAAI,UAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;4BACjC,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;yBACtC;qBACF,CAAC,CAAC;iBACN;aACF,CAAC,CAAC;SACN;QAEO,8CAAoB,GAApB;YAAA,iBA2BP;YA1BC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,WAAW;qBAC1B,IAAI,CACHA,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;qBACA,SAAS,CAAC,UAAC,UAAU;oBACpB,IAAI,KAAI,CAAC,UAAU,EAAE;wBACnB,KAAI,CAAC,QAAQ;6BACV,IAAI,CACHhB,gBAAM,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,KAAKF,kBAAU,CAAC,OAAO,IAAI,MAAM,KAAKA,kBAAU,CAAC,KAAK,GAAA,CAAC,EAChFkB,mBAAS,CAAC,KAAI,CAAC,SAAS,CAAC,CAC1B;6BACA,SAAS,CAAC,UAAC,MAAM;4BAChB,IAAI,MAAM,KAAKlB,kBAAU,CAAC,OAAO,EAAE;gCACjC,UAAU,CAAC,IAAI,EAAE,CAAC;gCAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;6BACvB;iCAAM;gCACL,UAAU,CAAC,KAAK,EAAE,CAAC;6BACpB;yBACF,CAAC,CAAC;qBACN;yBAAM;wBACL,UAAU,CAAC,IAAI,EAAE,CAAC;wBAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;qBACvB;iBACF,CAAC,CAAC;aACJ;SACF;QAEO,qDAA2B,GAA3B;YAAA,iBA2BP;YA1BC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,WAAW;qBAC1B,IAAI,CACHe,mBAAS,CAAC,UAAC,UAAU;oBACnB,OAAOM,QAAG,CACR,cAAM,OAAA,KAAI,CAAC,OAAO,IAAI,KAAI,CAAC,aAAa,GAAA,EACxC,KAAI,CAAC,cAAc,EAAE;yBAClB,IAAI,CACHlB,aAAG,CAAC,UAAC,MAAM,IAAK,OAAA,qBAAqB,CAAC,MAAM,CAAC,GAAA,CAAC,EAC9CW,aAAG,CAAC,UAAC,MAAM;wBACT,IAAI,MAAM,EAAE;4BACV,UAAU,CAAC,IAAI,EAAE,CAAC;4BAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;yBACvB;qBACF,CAAC,CACH,EACHQ,UAAK,CAAC;wBACJ,UAAU,CAAC,IAAI,EAAE,CAAC;wBAClB,UAAU,CAAC,QAAQ,EAAE,CAAC;qBACvB,CAAC,CACH,CAAA;iBACF,CAAC,EACFJ,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;qBACA,SAAS,EAAE,CAAC;aACd;SACF;QAEO,8CAAoB,GAApB;YAAA,iBAcP;YAbC,IAAG,IAAI,CAAC,QAAQ,EAAE;gBAChB,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC7C;YAED,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;YAEzD,IAAI,CAAC,UAAU,CAAC,OAAO;iBACtB,IAAI,CACHA,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;iBACA,SAAS,CAAC;gBACT,KAAI,CAAC,wBAAwB,CAAC,KAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC;aAC1D,CAAC,CAAC;SACJ;QAEM,kDAAwB,GAAxB,UAAyB,SAAwB;YAAjD,iBAIN;YAHC,SAAS,CAAC,OAAO,CAAC,UAAC,QAAqB;gBACtC,KAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;aACxC,CAAC,CAAC;SACJ;QAEM,iDAAuB,GAAvB,UAAwB,QAAqB;YAA7C,iBAmCN;YAlCC,IAAM,eAAe,GAAG,QAA2B,CAAC;YACpD,IAAI,CAAC,eAAe,CAAC,oBAAoB,EAAE;gBACzC,eAAe,CAAC,oBAAoB,GAAG,QAAQ,CAAC,YAAY,CAAC;gBAC7D,eAAe,CAAC,YAAY,GAAG,IAAItB,YAAO,EAAyD,CAAC;gBACpG,eAAe,CAAC,YAAY,GAAG,UAAC,GAAW,EAAE,SAAuB,EAAE,GAAW;oBAC/E,IAAG,eAAe,CAAC,YAAY,CAAC,SAAS,CAAC,MAAM,EAAE;wBAChD,eAAe,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,GAAG,KAAA,EAAE,SAAS,WAAA,EAAE,GAAG,KAAA,EAAC,CAAC,CAAC;qBAC3D;yBAAM;wBACL,eAAe,CAAC,oBAAoB,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;qBAC3D;iBACF,CAAA;aACF;YAED,eAAe,CAAC,YAAY;iBAC3B,IAAI,CACHsB,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;iBACA,SAAS,CAAC,UAAC,KAAK;gBACf,IAAI,CAAC,KAAI,CAAC,UAAU,EAAE;oBACpB,IAAI,KAAI,CAAC,OAAO,IAAI,KAAI,CAAC,WAAW,EAAE;wBACpC,KAAI,CAAC,cAAc,EAAE;6BAClB,IAAI,CACHA,mBAAS,CAAC,KAAI,CAAC,SAAS,CAAC,CAC1B;6BACA,SAAS,CAAC,UAAC,MAAM;4BAChB,IAAI,qBAAqB,CAAC,MAAM,CAAC,EAAE;gCACjC,eAAe,CAAC,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC;6BAC3C;yBACF,CAAC,CAAC;qBACN;yBAAM;wBACL,eAAe,CAAC,oBAAoB,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;qBAC7E;iBACF;aACF,CAAC,CAAC;SACJ;QAEO,qDAA2B,GAA3B;YAAA,iBAgBP;YAfC,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAA,IAAI;oBAC/B,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;iBACjC,CAAC,CAAC;gBAEH,IAAI,CAAC,eAAe,CAAC,OAAO;qBAC3B,IAAI,CACHA,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;qBACA,SAAS,CAAC,UAAC,CAAC;oBACX,CAAC,CAAC,OAAO,CAAC,UAAA,IAAI;wBACZ,KAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;qBACjC,CAAC,CAAC;iBACJ,CAAC,CAAC;aACJ;SACF;QAEO,8DAAoC,GAApC;YAAA,iBAkBP;YAjBC,IAAI,CAAC,qBAAqB,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,KAAK,IAAI,CAAC;YAEtF,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE;gBACpD,IAAI,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC;gBACpC,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE;qBAC9B,IAAI,CACHA,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;qBACA,SAAS,CAAC;oBACT,KAAI,CAAC,UAAU,EAAE,CAAC;iBACnB,CAAC,CAAC;gBAEH,IAAI,CAAC,SAAS;qBACb,SAAS,CAAC;oBACT,KAAI,CAAC,UAAU,CAAC,YAAY,GAAG,KAAK,CAAC;iBACtC,CAAC,CAAC;aACJ;SACF;QAEO,+CAAqB,GAArB;YAAA,iBAiBP;YAhBC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAEhF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,GAAG,UAAC,IAAY,EAAE,OAAwB;gBAExE,IAAM,EAAE,GAAY,KAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,iBAAe,IAAI,OAAI,CAAC,CAAC;gBAEvF,IAAI,EAAE,EAAE;oBACN,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,GAAG,GAAG,GAAGK,WAAI,EAAE,CAAC,CAAC;oBAE7C,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,cAAc,CAAC,EAAE;wBACpC,EAAE,CAAC,YAAY,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;qBACzC;iBACF;gBAED,OAAO,KAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;aAC7C,CAAA;SACF;QAEO,oDAA0B,GAA1B;YAAA,iBAoBP;YAnBC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,OAAO;aACR;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY;iBAC5B,IAAI,CACHL,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;iBACA,SAAS,CAAC;gBACT,KAAI,CAAC,yBAAyB,EAAE,CAAC;aAClC,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,CAAC,OAAO;iBACpB,IAAI,CACHA,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;iBACA,SAAS,CAAC;gBACT,KAAI,CAAC,yBAAyB,EAAE,CAAC;aAClC,CAAC,CAAC;SACJ;QAEO,mDAAyB,GAAzB;YAAA,iBAUP;YATC,IAAI,CAAC,QAAQ;iBACZ,MAAM,CAAC,UAAC,MAAM,IAAK,OAAA,MAAM,CAAC,MAAM,GAAA,CAAC;iBACjC,OAAO,CAAC,UAAC,YAA+B;gBACvC,IAAI,CAAC,KAAI,CAAC,OAAO,IAAI,CAAC,KAAI,CAAC,iBAAiB,IAAI,KAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;oBAC5F,YAAY,CAAC,MAAM,EAAE,CAAC;iBACvB;qBAAM;oBACL,YAAY,CAAC,OAAO,EAAE,CAAC;iBACxB;aACF,CAAC,CAAC;SACN;QAEO,oDAA0B,GAA1B;YACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAClB,kBAAU,CAAC,UAAU,CAAC,CAAC;YAC1C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SAC7C;QAEO,mDAAyB,GAAzB;YACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAACA,kBAAU,CAAC,UAAU,CAAC,CAAC;SAC3C;QAEO,kDAAwB,GAAxB;YACN,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;YACzD,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBAC5B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC;aACpC;SACF;QAEO,yCAAe,GAAf;YACN,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAC,MAAM;gBAC3B,MAAM,CAAC,OAAO,EAAE,CAAC;aAClB,CAAC,CAAC;SACJ;QAEO,iDAAuB,GAAvB;YACN,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa;iBAC7B,IAAI,CACHwB,mBAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAC7B7B,eAAK,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,KAAK,SAAS,GAAA,CAAC,CACtC,CAAC;SACL;QAEO,sCAAY,GAAZ,UAAa,CAAiB;YACpC,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAG,yCAAyC,EAAG,eAAe,CAAC,CAAC;YAE7F,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAE/B,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;gBACvB,IAAM,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;aAC5C;YAED,OAAO,CAAC,QAAQ,EAAE,CAAC;YAEnB,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;SACnC;QAEO,qDAA2B,GAA3B;YACN,IAAI,CAAC,qBAAqB,GAAG,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC;YAErE,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBAC/B,OAAO;aACR;YAED,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAE7E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,EAAE;gBAC5D,IAAI,CAAC,qBAAqB,CAAC,aAAa,GAAG,EAAE,CAAC;aAC/C;YAED,IAAI,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,EAAE;gBAC/E,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;aACpE;SACF;QAEO,+CAAqB,GAArB;YACN,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBAC/B,OAAM;aACP;YAED,IAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACzF,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;YAE/D,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;SACtE;;;uIAp0BU,eAAe,kBA2FhB8B,SAAM,6KAQMC,iBAAY,6BAGZC,YAAS;gHAtGpB,eAAe,iyBA0ET,0BAA0B,gEAG1BC,gBAAW;sHA7EjB,eAAe;sBAH3B/B,YAAS;uBAAC;wBACT,QAAQ,EAAE,UAAU;qBACrB;;;kCA4FIgC,SAAM;mCAACJ,SAAM;;kCAQbK,WAAQ;;kCAAID,SAAM;mCAACH,iBAAY;;kCAG/BI,WAAQ;;kCAAID,SAAM;mCAACF,YAAS;;6BAnGxB,eAAe;0BADrBI,QAAK;oBAIC,eAAe;0BADrBA,QAAK;oBAIC,YAAY;0BADlBA,QAAK;oBAIC,aAAa;0BADnBA,QAAK;oBAIC,YAAY;0BADlBA,QAAK;oBAIC,SAAS;0BADfA,QAAK;oBAIC,OAAO;0BADbA,QAAK;oBAIC,aAAa;0BADnBA,QAAK;oBAIC,aAAa;0BADnBA,QAAK;oBAIC,cAAc;0BADpBA,QAAK;oBAIC,WAAW;0BADjBA,QAAK;oBAIC,iBAAiB;0BADvBA,QAAK;oBAIC,MAAM;0BADZA,QAAK;oBAIC,YAAY;0BADlBA,QAAK;oBAIC,UAAU;0BADhBA,QAAK;oBAIC,QAAQ;0BADdA,QAAK;oBAIC,iBAAiB;0BADvBA,QAAK;oBAIC,WAAW;0BADjBC,SAAM;2BAAC,QAAQ;oBAIT,OAAO;0BADbA,SAAM;oBAIA,KAAK;0BADXA,SAAM;oBAIA,SAAS;0BADfA,SAAM;oBAIA,OAAO;0BADbA,SAAM;oBAIA,OAAO;0BADbA,SAAM;oBAIA,WAAW;0BADjBlC,cAAW;2BAAC,eAAe;oBAIrB,eAAe;0BADrBmC,kBAAe;2BAAC,0BAA0B,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;oBAI1D,UAAU;0BADjBA,kBAAe;2BAACL,gBAAW,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE;;;ICrJ9C,IAAM,cAAc,GAAG;QAC5B,QAAQ,EAAE,wBAAwB;QAClC,KAAK,EAAE,mCAAmC;QAC1C,MAAM,EAAE,8CAA8C;QACtD,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EAAE,yBAAyB;QAClC,OAAO,EAAE,4BAA4B;QACrC,GAAG,EAAE,oCAAoC;QACzC,GAAG,EAAE,uCAAuC;QAC5C,SAAS,EAAE,4CAA4C;QACvD,SAAS,EAAE,2CAA2C;QACtD,OAAO,EAAE,qBAAqB;QAC9B,OAAO,EAAE,iCAAiC;QAC1C,SAAS,EAAE,oBAAoB;QAC/B,GAAG,EAAE,yBAAyB;QAC9B,WAAW,EAAE,uEAAuE;QACpF,OAAO,EAAE,iCAAiC;QAC1C,MAAM,EAAE,8BAA8B;KACvC;;ICfM,IAAM,iBAAiB,GAAG,IAAIM,iBAAc,CACjD,2BAA2B,CAC5B,CAAC;IAEK,IAAM,yBAAyB,GAAG;QACvC,OAAO,EAAE,iBAAiB;QAC1B,UAAU,EAAE,sBAAsB;KACnC,CAAC;aAEc,sBAAsB;QACpC,yBAAY,cAAc,EAAG;IAC/B;;;QCkDE,4BACY,UAAsB,EACtB,SAAoB,EACpB,QAAkB,EACiB,iBAAiB,EACxC,SAAoB,EACK,aAA8B;YALnE,eAAU,GAAV,UAAU,CAAY;YACtB,cAAS,GAAT,SAAS,CAAW;YACpB,aAAQ,GAAR,QAAQ,CAAU;YACiB,sBAAiB,GAAjB,iBAAiB,CAAA;YACxC,cAAS,GAAT,SAAS,CAAW;YACK,kBAAa,GAAb,aAAa,CAAiB;YAzBtE,uBAAkB,GAAG,iBAAiB,CAAC;YACvC,qBAAgB,GAAG,eAAe,CAAC;YACnC,qBAAgB,GAAG,eAAe,CAAC;YACnC,oBAAe,GAAG,cAAc,CAAC;YAUnC,WAAM,GAAG,EAAE,CAAC;;YAGT,cAAS,GAAG,IAAItC,YAAO,EAAE,CAAC;YAYlC,IAAI,SAAS,EAAE;gBACb,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,OAAO,CAAC;aACnC;iBAAM;gBACL,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;aAC3F;SACF;QA5BD,sBACW,gDAAgB;iBAD3B,UAC4B,QAAgC;gBAC1D,IAAI,CAAC,iBAAiB,mCACjB,IAAI,CAAC,iBAAiB,GACtB,QAAQ,CACZ,CAAC;aACH;;;WAAA;QAwBD,qCAAQ,GAAR;YACE,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACzB;QAED,wCAAW,GAAX;YACE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;SAC3B;QAED,+CAAkB,GAAlB;YACE,IAAI,IAAI,CAAC,QAAQ,EAAE;;;;;gBAMjB,IAAI,CAAO,IAAI,CAAC,QAAS,CAAC,sBAAsB,EAAE;oBAEhD,IAAI,CAAC,QAAQ,CAAC,aAAa;yBAC1B,IAAI,CACDsB,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC5B;yBACA,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;oBAE7B,IAAI,CAAC,QAAS,CAAC,sBAAsB,GAAG,IAAI,CAAC;iBACpD;aACF;SACF;QAES,+CAAkB,GAAlB;;YAER,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;gBAClC,OAAO,EAAE,CAAC;aACX;YAED,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,OAAO,IAAI,CAAC,eAAe,CAAC;aAE7B;iBAAM,IAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,eAAe,EAAE;gBAC9C,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;aAC3C;SACF;QAES,mDAAsB,GAAtB;;YAER,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,EAAE;gBAC/B,OAAO,EAAE,CAAC;aACX;YAED,IAAI,IAAI,CAAC,YAAY,EAAE;gBACrB,OAAO,IAAI,CAAC,YAAY,CAAC;aAE1B;iBAAM,IAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,YAAY,EAAE;gBAC3C,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC;aACxC;SACF;QAES,+CAAkB,GAAlB;;YAER,IAAI,IAAI,CAAC,eAAe,KAAK,KAAK,EAAE;gBAClC,OAAO,EAAE,CAAC;aACX;YAED,IAAI,IAAI,CAAC,eAAe,EAAE;gBACxB,OAAO,IAAI,CAAC,eAAe,CAAC;aAE7B;iBAAM,IAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,eAAe,EAAE;gBAC9C,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;aAC3C;SACF;QAES,6CAAgB,GAAhB;;YAER,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE;gBAChC,OAAO,EAAE,CAAC;aACX;YAED,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,OAAO,IAAI,CAAC,aAAa,CAAC;aAE3B;iBAAM,IAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,aAAa,EAAE;gBAC5C,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;aACzC;SACF;QAES,8CAAiB,GAAjB;YAER,IAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;YAE/D,IAAI,OAAO,EAAE;gBACX,OAAO,OAAO,CAAC;aAChB;YAED,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;SACtC;;;;;;;;;;QAYS,mCAAM,GAAN;;YACR,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;gBAChC,IAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBACzC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;gBAC1E,IAAM,qBAAqB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO;wBAC9C,IAAI,CAAC,SAAS,CAAC,KAAK,KAAI,MAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,MAAM,0CAAE,SAAS,CAAA,CAAC,CAAC;gBAErE,IAAI,qBAAqB,IAAI,KAAK,EAAE;oBAClC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;iBACjD;qBAAM;oBACL,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;iBACxC;gBAED,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE;oBAC9B,OAAO;iBACR;gBAED,IAAM,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;gBAExE,IAAI,CAAC,cAAc,EAAE;oBACnB,OAAO,OAAO,CAAC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;iBACrG;gBAED,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;oBAC3B,IAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;oBAEpE,IAAI,YAAY,EAAE;wBAChB,IAAI,IAAI,CAAC,gBAAgB,EAAE;4BACzB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;yBAC9D;qBACF;iBACF;gBAED,IAAI,IAAI,CAAC,kBAAkB,EAAE;oBAC3B,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;iBAC5D;gBAED,IAAI,IAAI,CAAC,sBAAsB,EAAE,EAAE;oBACjC,IAAM,IAAI,GAAG,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;oBAEzE,IAAI,IAAI,EAAE;wBACR,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;wBAE7D,IAAI,IAAI,CAAC,eAAe,EAAE;4BACxB,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;yBAC/C;qBACF;iBACF;gBAED,IAAI,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC;gBAClE,IAAI,YAAY,EAAE;oBAChB,YAAY,CAAC,MAAM,EAAE,CAAC;iBACvB;gBAED,IAAI,CAAC,qBAAqB,IAAI,CAAC,KAAK,EAAE;oBACpC,OAAO;iBACR;gBAED,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;gBAC7C,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;gBACxD,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBACvD,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE1E,IAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAErD,QAAQ,CAAC,WAAW,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC;gBAC9C,cAAc,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;aAC1C;SACF;QAES,uCAAU,GAAV,UAAW,IAAI,EAAE,KAAS;YAAT,sBAAA,EAAA,SAAS;YAElC,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,EAAE,EAAE;gBACvB,OAAO,IAAI,CAAC;aACb;YAED,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,EAAE;gBAC/E,OAAO,IAAI,CAAC;aACb;YAED,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,KAAK,CAAC,CAAC;SAClD;QAES,8CAAiB,GAAjB,UAAkB,OAAO,EAAE,IAAI;YACvCiB,eAAM,CAAC,IAAI,CAAC;iBACT,OAAO,CAAC,UAAC,IAAI;gBACV,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;aAC/C,CAAC,CAAC;YAEL,OAAO,OAAO,CAAC;SAChB;QAES,qCAAQ,GAAR,UAAS,UAAU;YAE3B,IAAM,IAAI,GAAGC,aAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YAEhD,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO,IAAI,CAAC;aACb;YAED,IAAI,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAE9C,IAAI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE;gBAChC,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;aACzE;YAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;SACzC;QAEO,6CAAgB,GAAhB;YACN,IAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;YAE9B,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAM,UAAU,GAAG,OAAO,CAAC,SAAS;sBAChC,CAAE,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;sBAC9C,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAE7B,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;aACnC;YAED,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,IAAM,eAAe,GAAG,OAAO,CAAC,cAAc;sBAC1C,CAAE,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;sBACxD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAElC,OAAO,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAAC;aAC7C;YAED,OAAO,CAAC,sBAAsB,EAAE,CAAC;SAClC;;;0IArRU,kBAAkB,8HA6BX,iBAAiB,+EAEb,eAAe;mHA/B1B,kBAAkB,4XAJlB;YACT,yBAAyB;SAC1B;sHAEU,kBAAkB;sBAN9BvC,YAAS;uBAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;;;kCA8BIwC,OAAI;;kCAAIR,SAAM;mCAAC,iBAAiB;;kCAChCC,WAAQ;;kCACRA,WAAQ;;kCAAID,SAAM;mCAAC,eAAe;;6BA7B5B,eAAe;0BAAvBE,QAAK;oBACG,eAAe;0BAAvBA,QAAK;oBACG,YAAY;0BAApBA,QAAK;oBACG,aAAa;0BAArBA,QAAK;oBACG,kBAAkB;0BAA1BA,QAAK;oBACG,gBAAgB;0BAAxBA,QAAK;oBACG,gBAAgB;0BAAxBA,QAAK;oBACG,eAAe;0BAAvBA,QAAK;oBAGK,gBAAgB;0BAD1BA,QAAK;;;aClDQ,SAAS,CAAC,KAAU;QAClC,OAAO,KAAK,KAAK,OAAO,KAAK,KAAK,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;IACtD;;;QCa6C,2CAAkB;QAN/D;YAAA,6EAuDC;YAhDQ,cAAQ,GAAG,KAAK,CAAC;;SAgDzB;QA9CC,sBACW,sDAAiB;iBAD5B,UAC6B,KAAK;gBAChC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;aAClC;;;WAAA;QAED,sBACW,gDAAW;iBADtB,UACuB,KAAK;gBAC1B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;aAClC;;;WAAA;QAED,sBACW,sDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,GAAG,KAAK,CAAC;aACzC;;;WAAA;QAEM,6CAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,0CAAQ,GAAR,UAAS,OAAwB;YACtC,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,OAAOO,aAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC3C;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;SACF;QAES,wCAAM,GAAN;YAER,IAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAEzC,IAAI,OAAO,IAAI,IAAI,CAAC,gBAAgB,EAAE,EAAE;gBACtC,IAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;;gBAGpE,IAAI,YAAY,EAAE;oBAChB,IAAI,IAAI,CAAC,QAAQ,EAAE;wBACjB,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;qBACjE;yBAAM;wBACL,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAC;qBACpE;iBACF;aACF;YAED,iBAAM,MAAM,WAAE,CAAC;SAChB;;KAhDH,CAA6C,kBAAkB;+IAAlD,uBAAuB;wHAAvB,uBAAuB,oPAJvB;YACT,yBAAyB;SAC1B;sHAEU,uBAAuB;sBANnCzC,YAAS;uBAAC;wBACT,QAAQ,EAAE,sCAAsC;wBAChD,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAKY,iBAAiB;0BAD3BkC,QAAK;2BAAC,gBAAgB;oBAMZ,WAAW;0BADrBA,QAAK;2BAAC,UAAU;oBAMN,iBAAiB;0BAD3BA,QAAK;2BAAC,uBAAuB;;;;QCrBhC;SA2HC;QAzHQ,kBAAK,GAAZ,UAAa,OAAwB;YACnC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAIQ,YAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC1C,OAAO,IAAI,CAAC;aACb;YAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SACxB;QAEM,mBAAM,GAAb,UAAc,OAAwB;YACpC,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;YAElC,IAAM,gBAAgB,GAAG,KAAK;iBAC3B,KAAK,CAAC,GAAG,CAAC;iBACV,IAAI,CAAC,UAAC,IAAI,IAAK,OAAA,CAACA,YAAK,CAAC,IAAI,CAAC,GAAA,CAAC,CAAC;YAEhC,OAAO,gBAAgB,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;SAClD;QAEM,oBAAO,GAAd,UAAe,OAAwB;YACrC,IAAIC,cAAO,CAAC,OAAO,CAAC,KAAK,CAAC,IAAIC,gBAAS,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACtD,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;aACzB;SACF;QAEM,oBAAO,GAAd,UAAe,OAAwB;YACrC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,OAAO,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;gBAC/E,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;aACzB;SACF;QAEM,kBAAK,GAAZ,UAAa,OAAwB;YACnC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAIC,YAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAC1C,OAAO,IAAI,CAAC;aACb;YAED,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;SACxB;QAEM,gBAAG,GAAV,UAAW,OAAwB,EAAE,gBAAwB;YAAxB,iCAAA,EAAA,wBAAwB;YAC3D,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBAClB,OAAO,IAAI,CAAC;aACb;YAED,IAAI,CAACC,UAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACvB,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;aACtB;YAED,IAAI,gBAAgB,EAAE;gBACpB,IAAM,OAAO,GAAG,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAAC;gBAE/C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;oBACzC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;iBAC9B;aACF;YAED,OAAO,IAAI,CAAC;SACb;QAEM,sBAAS,GAAhB,UAAiB,OAAwB;YACvC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;gBAClB,OAAO,IAAI,CAAC;aACb;YAED,IAAIC,iBAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAE3B,IAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;gBAClC,IAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;gBAE9B,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,GAAG,MAAMC,eAAO,CAAC,KAAK,CAAC,IAAIA,eAAO,CAAC,GAAG,CAAC,CAAC,EAAE;oBACxD,OAAO,IAAI,CAAC;iBACb;aACF;YAED,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;SAC5B;QAEM,iBAAI,GAAX,UAAY,OAAwB,EAAE,YAAY,EAAE,IAAS;YAC3D,IAAI,MAAe,CAAC;YACpB,IAAI,OAA4B,CAAA;YAEhC,IAAI;gBACF,MAAM,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;aACtC;YAAC,OAAO,GAAG,EAAE;gBACZ,GAAG,GAAG,GAAG,YAAY,KAAK,GAAG,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;gBAE/C,OAAO,GAAGlC,eAAU,CAAC,GAAG,CAAC,CAAC;aAC3B;YAED,IAAI,CAAC,OAAO,EAAE;gBACZ,IAAI,MAAM,YAAY,OAAO,EAAE;oBAC7B,OAAO,GAAGmC,SAAI,CAAC,MAAM,CAAC,CAAA;iBACvB;qBAAM,IAAIrC,iBAAY,CAAC,MAAM,CAAC,EAAE;oBAC/B,OAAO,GAAG,MAAM,CAAC;iBAClB;qBAAM;oBACL,OAAO,GAAGJ,OAAE,CAAC,IAAI,CAAC,CAAC;iBACpB;aACF;YAED,OAAO,OAAO;iBACX,IAAI,CACHF,aAAG,CAAC,cAAM,OAAA,IAAI,GAAA,CAAC,EACfc,oBAAU,CAAC,UAAC,GAAG;gBACb,OAAOZ,OAAE,CAAC,EAAE,eAAe,EAAE,GAAG,EAAE,CAAC,CAAC;aACrC,CAAC,EACFO,cAAI,CAAC,CAAC,CAAC,CACR,CAAC;SACL;2BAWF;KAAA;;;QCnHuC,sCAAkB;QAA1D;;;QAKE,sBACW,iDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,GAAG,KAAK,CAAC;aACpC;;;WAAA;QAEM,wCAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,qCAAQ,GAAR,UAAS,OAAwB;YACtC,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI0B,aAAU,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACzG;;KAhBH,CAAwC,kBAAkB;0IAA7C,kBAAkB;mHAAlB,kBAAkB,wIAJlB;YACT,yBAAyB;SAC1B;sHAEU,kBAAkB;sBAN9BzC,YAAS;uBAAC;wBACT,QAAQ,EAAE,aAAa;wBACvB,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,SAAS;0BADfkC,QAAK;oBAIK,iBAAiB;0BAD3BA,QAAK;2BAAC,kBAAkB;;;;QCNa,sCAAkB;QAA1D;;;QAKE,sBACW,iDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,GAAG,KAAK,CAAC;aACpC;;;WAAA;QAEM,wCAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,qCAAQ,GAAR,UAAS,OAAwB;YACtC,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAIO,aAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC7F;;KAhBH,CAAwC,kBAAkB;0IAA7C,kBAAkB;mHAAlB,kBAAkB,wIAJlB;YACT,yBAAyB;SAC1B;sHAEU,kBAAkB;sBAN9BzC,YAAS;uBAAC;wBACT,QAAQ,EAAE,aAAa;wBACvB,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,SAAS;0BADfkC,QAAK;oBAIK,iBAAiB;0BAD3BA,QAAK;2BAAC,kBAAkB;;;;QCLmB,4CAAkB;QAAhE;;;QAKE,sBACW,uDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,KAAK,CAAC;aAC1C;;;WAAA;QAEM,8CAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,2CAAQ,GAAR,UAAS,OAAwB;YACtC,OAAOO,aAAU,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAClE;;KAhBH,CAA8C,kBAAkB;gJAAnD,wBAAwB;yHAAxB,wBAAwB,gKAJxB;YACT,yBAAyB;SAC1B;sHAEU,wBAAwB;sBANpCzC,YAAS;uBAAC;wBACT,QAAQ,EAAE,mBAAmB;wBAC7B,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,eAAe;0BADrBkC,QAAK;oBAIK,iBAAiB;0BAD3BA,QAAK;2BAAC,wBAAwB;;;;QCLa,4CAAkB;QAAhE;;;QAKE,sBACW,uDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,KAAK,CAAC;aAC1C;;;WAAA;QAEM,8CAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,2CAAQ,GAAR,UAAS,OAAwB;YACtC,OAAOO,aAAU,CAAC,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAClE;;KAhBH,CAA8C,kBAAkB;gJAAnD,wBAAwB;yHAAxB,wBAAwB,gKAJxB;YACT,yBAAyB;SAC1B;sHAEU,wBAAwB;sBANpCzC,YAAS;uBAAC;wBACT,QAAQ,EAAE,mBAAmB;wBAC7B,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,eAAe;0BADrBkC,QAAK;oBAIK,iBAAiB;0BAD3BA,QAAK;2BAAC,wBAAwB;;;;QCHS,wCAAkB;QAA5D;;;QAKE,sBACW,mDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;aACtC;;;WAAA;QAEM,0CAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,uCAAQ,GAAR,UAAS,OAAwB;YACtC,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBAC/B,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC1C;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;SACF;;KApBH,CAA0C,kBAAkB;4IAA/C,oBAAoB;qHAApB,oBAAoB,gJAJpB;YACT,yBAAyB;SAC1B;sHAEU,oBAAoB;sBANhClC,YAAS;uBAAC;wBACT,QAAQ,EAAE,eAAe;wBACzB,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,WAAW;0BADjBkC,QAAK;oBAIK,iBAAiB;0BAD3BA,QAAK;2BAAC,oBAAoB;;;;QCLc,yCAAkB;QAA7D;;;QAKE,sBACW,oDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,KAAK,CAAC;aACvC;;;WAAA;QAEM,2CAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,wCAAQ,GAAR,UAAS,OAAwB;YACtC,IAAI,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;gBAChC,OAAO,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC3C;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;SACF;;KApBH,CAA2C,kBAAkB;6IAAhD,qBAAqB;sHAArB,qBAAqB,oJAJrB;YACT,yBAAyB;SAC1B;sHAEU,qBAAqB;sBANjClC,YAAS;uBAAC;wBACT,QAAQ,EAAE,gBAAgB;wBAC1B,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,YAAY;0BADlBkC,QAAK;oBAIK,iBAAiB;0BAD3BA,QAAK;2BAAC,qBAAqB;;;;QCLY,wCAAkB;QAA5D;;;QAKE,sBACW,mDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,KAAK,GAAG,KAAK,CAAC;aACtC;;;WAAA;QAEM,0CAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,uCAAQ,GAAR,UAAS,OAAwB;YACtC,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;gBAC/B,OAAO,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC1C;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;SACF;;KApBH,CAA0C,kBAAkB;4IAA/C,oBAAoB;qHAApB,oBAAoB,gJAJpB;YACT,yBAAyB;SAC1B;sHAEU,oBAAoB;sBANhClC,YAAS;uBAAC;wBACT,QAAQ,EAAE,eAAe;wBACzB,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,WAAW;0BADjBkC,QAAK;oBAIK,iBAAiB;0BAD3BA,QAAK;2BAAC,oBAAoB;;;;QCRe,0CAAkB;QAA9D;;;QAME,sBACW,qDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;aACxC;;;WAAA;QAEM,4CAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,yCAAQ,GAAR,UAAS,OAAwB;YACtC,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,EAAE;gBACpE,OAAO,IAAI,CAAC;aACb;iBAAM;gBACL,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;aAC1B;SACF;QAEM,gDAAe,GAAf;YAAA,iBAIN;YAHC,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE;gBAC3C,KAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;aACxC,EAAE,KAAK,CAAC,CAAC;SACX;QAEM,4CAAW,GAAX;YAAA,iBAIN;YAHC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,OAAO,EAAE;gBAC9C,KAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;aACxC,EAAE,KAAK,CAAC,CAAC;SACX;;KAjCH,CAA4C,kBAAkB;8IAAjD,sBAAsB;uHAAtB,sBAAsB,wJAJtB;YACT,yBAAyB;SAC1B;sHAEU,sBAAsB;sBANlClC,YAAS;uBAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAKQ,aAAa;0BADnBkC,QAAK;oBAIK,iBAAiB;0BAD3BA,QAAK;2BAAC,sBAAsB;;;;QCHa,0CAAkB;QAA9D;;;QAKE,sBACW,qDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;aACxC;;;WAAA;QAEM,4CAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,yCAAQ,GAAR,UAAS,OAAwB;YACtC,IAAI,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gBACjC,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC5C;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;SACF;;KApBH,CAA4C,kBAAkB;8IAAjD,sBAAsB;uHAAtB,sBAAsB,wJAJtB;YACT,yBAAyB;SAC1B;sHAEU,sBAAsB;sBANlClC,YAAS;uBAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,aAAa;0BADnBkC,QAAK;oBAIK,iBAAiB;0BAD3BA,QAAK;2BAAC,sBAAsB;;;;QCLa,0CAAkB;QAA9D;;;QAKE,sBACW,qDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;aACxC;;;WAAA;QAEM,4CAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,yCAAQ,GAAR,UAAS,OAAwB;YACtC,IAAI,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE;gBACjC,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC5C;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;SACF;;KApBH,CAA4C,kBAAkB;8IAAjD,sBAAsB;uHAAtB,sBAAsB,wJAJtB;YACT,yBAAyB;SAC1B;sHAEU,sBAAsB;sBANlClC,YAAS;uBAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,aAAa;0BADnBkC,QAAK;oBAIK,iBAAiB;0BAD3BA,QAAK;2BAAC,sBAAsB;;;;QCRa,0CAAkB;QAA9D;;;QAKE,sBACW,qDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;aACxC;;;WAAA;QAEM,4CAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,yCAAQ,GAAR,UAAS,OAAwB;YACtC,OAAOO,aAAU,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC9D;;KAhBH,CAA4C,kBAAkB;8IAAjD,sBAAsB;uHAAtB,sBAAsB,wJAJtB;YACT,yBAAyB;SAC1B;sHAEU,sBAAsB;sBANlCzC,YAAS;uBAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,aAAa;0BADnBkC,QAAK;oBAIK,iBAAiB;0BAD3BA,QAAK;2BAAC,sBAAsB;;;;QCDc,2CAAkB;QAN/D;YAAA,6EA6BC;YAdQ,sBAAgB,GAAG,KAAK,CAAC;;SAcjC;QAZQ,6CAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,+CAAa,GAAb,UAAc,OAAwB;YAC3C,IAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;gBAC1D,OAAO1B,OAAE,CAAC,IAAI,CAAC,CAAC;aACjB;YAED,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;SACvF;;KArBH,CAA6C,kBAAkB;+IAAlD,uBAAuB;wHAAvB,uBAAuB,yKAJvB;YACT,yBAAyB;SAC1B;sHAEU,uBAAuB;sBANnCR,YAAS;uBAAC;wBACT,QAAQ,EAAE,kBAAkB;wBAC5B,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,cAAc;0BADpBkC,QAAK;oBAIC,kBAAkB;0BADxBA,QAAK;oBAIC,gBAAgB;0BADtBA,QAAK;;;;QCVoC,0CAAkB;QAA9D;;;QAKE,sBACW,qDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;aACxC;;;WAAA;QAEM,4CAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,yCAAQ,GAAR,UAAS,OAAwB;YACtC,IAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/C,IAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAE9C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,OAAO,EAAE;gBACxD,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,SAAA,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;aAChD;YAED,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC5C;;KAvBH,CAA4C,kBAAkB;8IAAjD,sBAAsB;uHAAtB,sBAAsB,wJAJtB;YACT,yBAAyB;SAC1B;sHAEU,sBAAsB;sBANlClC,YAAS;uBAAC;wBACT,QAAQ,EAAE,iBAAiB;wBAC3B,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,aAAa;0BADnBkC,QAAK;oBAIK,iBAAiB;0BAD3BA,QAAK;2BAAC,sBAAsB;;;;QCJe,4CAAkB;QAAhE;;;QAKE,sBACW,uDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,SAAS,GAAG,KAAK,CAAC;aAC1C;;;WAAA;QAEM,8CAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,2CAAQ,GAAR,UAAS,OAAwB;YACtC,IAAI,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;gBACnC,OAAO,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;aAC9C;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;SACF;;KApBH,CAA8C,kBAAkB;gJAAnD,wBAAwB;yHAAxB,wBAAwB,gKAJxB;YACT,yBAAyB;SAC1B;sHAEU,wBAAwB;sBANpClC,YAAS;uBAAC;wBACT,QAAQ,EAAE,mBAAmB;wBAC7B,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,eAAe;0BADrBkC,QAAK;oBAIK,iBAAiB;0BAD3BA,QAAK;2BAAC,wBAAwB;;;;QCNU,yCAAkB;QAA7D;;;QAKE,sBACW,oDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,KAAK,CAAC;aACvC;;;WAAA;QAEM,2CAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,wCAAQ,GAAR,UAAS,OAAwB;YACtC,IAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC7C,IAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAE9C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,MAAM,EAAE;gBACtD,OAAO,EAAE,MAAM,EAAE,EAAE,MAAM,QAAA,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC;aAC9C;YAED,OAAO,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC5C;;KAvBH,CAA2C,kBAAkB;6IAAhD,qBAAqB;sHAArB,qBAAqB,oJAJrB;YACT,yBAAyB;SAC1B;sHAEU,qBAAqB;sBANjClC,YAAS;uBAAC;wBACT,QAAQ,EAAE,gBAAgB;wBAC1B,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,YAAY;0BADlBkC,QAAK;oBAIK,iBAAiB;0BAD3BA,QAAK;2BAAC,qBAAqB;;;;QCJU,sCAAkB;QAN1D;YAAA,6EA+BC;YAnBQ,uBAAiB,GAAG,KAAK,CAAC;;SAmBlC;QAjBC,sBACW,iDAAiB;iBAD5B,UAC6B,KAAa;gBACxC,IAAI,CAAC,iBAAiB,CAAC,GAAG,GAAG,KAAK,CAAC;aACpC;;;WAAA;QAEM,wCAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,qCAAQ,GAAR,UAAS,OAAwB;YACtC,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;gBAC7B,OAAO,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;aAChE;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;SACF;;KAvBH,CAAwC,kBAAkB;0IAA7C,kBAAkB;mHAAlB,kBAAkB,gLAJlB;YACT,yBAAyB;SAC1B;sHAEU,kBAAkB;sBAN9BlC,YAAS;uBAAC;wBACT,QAAQ,EAAE,aAAa;wBACvB,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,SAAS;0BADfkC,QAAK;oBAIC,iBAAiB;0BADvBA,QAAK;oBAIK,iBAAiB;0BAD3BA,QAAK;2BAAC,kBAAkB;;;;QCKzB,2BAC8B,UAAqB,EAC7B,KAAsB,EAClC,WAAuB,EACvB,MAAyB;YAHL,eAAU,GAAV,UAAU,CAAW;YAC7B,UAAK,GAAL,KAAK,CAAiB;YAClC,gBAAW,GAAX,WAAW,CAAY;YACvB,WAAM,GAAN,MAAM,CAAmB;YAf5B,gBAAW,GAAG,IAAI,CAAC;YAGnB,oBAAe,GAAG,IAAI,CAAC;YAEvB,WAAM,GAAG,KAAK,CAAC;YACf,WAAM,GAAG,KAAK,CAAC;YAEd,sBAAiB,GAAG,KAAK,CAAC;YAC1B,cAAS,GAAG,IAAInC,YAAO,EAAE,CAAC;SAO9B;QAEG,oCAAQ,GAAR;YAAA,iBA6BN;YA5BC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC;YAE/E,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;gBAE3B,IAAG,IAAI,CAAC,MAAM,EAAE;oBACduB,cAAS,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;yBAC7B,IAAI,CACHD,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;yBACA,SAAS,CAAC;wBACT,KAAI,CAAC,MAAM,GAAG,IAAI,CAAC;qBACpB,CAAC,CAAC;oBAEL,IAAI,IAAI,CAAC,WAAW,EAAE;wBACpB,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE;4BAChC,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;gCAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;6BAChB;yBACF;qBACF;oBAED,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC;oBAC9B,UAAU,CAAC;wBACT,KAAI,CAAC,eAAe,GAAG,IAAI,CAAC;qBAC7B,EAAE,GAAG,CAAC,CAAC;iBACT;aACF;SACF;QAEM,mCAAO,GAAP;YACL,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBACnC,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAClD,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;gBAChC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;aAC5B;SACF;QAEM,kCAAM,GAAN;YACL,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC;gBACrC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;aAC5B;SACF;QAEM,mCAAO,GAAP;YACL,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC;aACtC;SACF;QAEM,mCAAO,GAAP;YACL,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACzB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,KAAK,CAAC;aACvC;SACF;QAEM,iCAAK,GAAL;YACL,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,KAAK,CAAC;aACvC;SACF;QAEM,oCAAQ,GAAR,UAAS,GAAG;YACjB,IAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,YAAU,GAAK,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC1B;QAED,sBAAW,sCAAO;iBAAlB;gBACE,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;aACvC;;;WAAA;QAEM,uCAAW,GAAX;YACL,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB;QAEM,iCAAK,GAAL;YACL,IAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;YAED,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,WAAW,CAAC;iBACvC,OAAO,CAAC,UAAC,EAAE;gBACV,EAAE,CAAC,MAAM,EAAE,CAAC;aACb,CAAC,CAAC;YAEL,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,KAAK,CAAC;aACvC;YACD,IAAI,CAAC,WAAW,EAAE,CAAC;SACpB;QAEM,uCAAW,GAAX;;YACL,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAA,IAAI,CAAC,KAAK,0CAAE,YAAY,CAAC,IAAI,CAAC,CAAC;SAChC;QAEO,mDAAuB,GAAvB;;;SAGP;QAEO,uCAAW,GAAX;YACN,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,CAAC;SACvG;QAEO,mCAAO,GAAP,UAAQ,IAAI;YAClB,IAAI,IAAI,KAAK,SAAS,EAAE;gBACtB,OAAO,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,klBAQhC,EAAE,UAAU,CAAC,CAAC,UAAU,CAAC;aACjC;YAED,IAAI,IAAI,KAAK,SAAS,EAAE;gBACtB,OAAO,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,ohBAMhC,EAAE,UAAU,CAAC,CAAC,UAAU,CAAC;aACjC;YAED,IAAI,IAAI,KAAK,OAAO,EAAE;gBACpB,OAAO,IAAI,SAAS,EAAE,CAAC,eAAe,CAAC,gbAA8Z,EAAE,UAAU,CAAC,CAAC,UAAU,CAAC;aAC/d;SACF;;;yIArKU,iBAAiB;kHAAjB,iBAAiB;sHAAjB,iBAAiB;sBAH7BrB,YAAS;uBAAC;wBACT,QAAQ,EAAE,yEAAyE;qBACpF;;;kCAmBIiC,WAAQ;;kCAAIiB,OAAI;;kCAChBjB,WAAQ;;6BAhBJ,IAAI;0BADVC,QAAK;oBAIC,WAAW;0BADjBA,QAAK;oBAIC,eAAe;0BADrBjC,cAAW;2BAAC,kBAAkB;;;;QCHY,2CAAkB;QAN/D;YAAA,6EA6BC;YAdQ,sBAAgB,GAAG,KAAK,CAAC;;SAcjC;QAZQ,6CAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;QAEM,+CAAa,GAAb,UAAc,OAAwB;YAC3C,IAAG,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;gBAC1D,OAAOO,OAAE,CAAC,IAAI,CAAC,CAAC;aACjB;YAED,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;SAC/E;;KArBH,CAA6C,kBAAkB;+IAAlD,uBAAuB;wHAAvB,uBAAuB,mLAJvB;YACT,yBAAyB;SAC1B;sHAEU,uBAAuB;sBANnCR,YAAS;uBAAC;wBACT,QAAQ,EAAE,YAAY;wBACtB,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;kCAIQ,UAAU;0BADhBkC,QAAK;2BAAC,UAAU;oBAIV,cAAc;0BADpBA,QAAK;2BAAC,cAAc;oBAId,gBAAgB;0BADtBA,QAAK;;;;QCKN,sCACsB,KAAsB,EACtB,UAA6B,EACzC,MAAyB;YAFb,UAAK,GAAL,KAAK,CAAiB;YACtB,eAAU,GAAV,UAAU,CAAmB;YACzC,WAAM,GAAN,MAAM,CAAmB;YAdnB,SAAI,GAAG,IAAI,CAAC;YACZ,WAAM,GAAG,KAAK,CAAC;YACf,UAAK,GAAG,KAAK,CAAC;YACd,SAAI,GAAG,KAAK,CAAC;YACb,cAAS,GAAG,IAAI,CAAC;YAG1B,UAAK,GAAG,KAAK,CAAC;YAEb,cAAS,GAAG,IAAInC,YAAO,EAAQ,CAAC;SAMpC;QAEG,+CAAQ,GAAR;YAAA,iBA+BN;YA9BC,IAAG,IAAI,CAAC,KAAK,EAAE;gBACb,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY;qBAC7B,IAAI,CACHM,gBAAM,CAAC,cAAM,QAAC,CAAC,KAAI,CAAC,KAAK,IAAC,CAAC,EAC3BgB,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;qBACA,SAAS,CAAC;oBACT,KAAI,CAAC,KAAK,GAAG,KAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;oBACrC,KAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;iBAC5B,CAAC,CAAC;gBAEH,IAAI,CAAC,KAAK,CAAC,SAAS;qBACnB,IAAI,CACHE,eAAK,CAAC,EAAE,CAAC,EACTF,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;qBACA,SAAS,CAAC;oBACT,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;oBACnB,KAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;iBAC5B,CAAC,CAAC;gBAEH,IAAI,CAAC,KAAK,CAAC,OAAO;qBACjB,IAAI,CACHA,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;qBACA,SAAS,CAAC;oBACT,KAAI,CAAC,KAAK,GAAG,KAAK,CAAC;oBACnB,KAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;iBAC5B,CAAC,CAAC;aACJ;SACF;QAEM,iDAAU,GAAV;YAAA,iBAaN;YAZC,IAAG,IAAI,CAAC,KAAK,EAAE;gBACb,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE;qBAC1B,IAAI,CACHhB,gBAAM,CAAC,UAAC,aAA4B,IAAK,QAAC,aAAa,KAAKT,qBAAa,CAAC,MAAM,IAAC,CAAC,EAClFyB,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B;qBACA,SAAS,CAAC;oBACT,KAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC;iBACvC,CAAC,CAAC;aACJ;iBAAM;gBACL,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;aACvC;SACF;QAEM,kDAAW,GAAX;YACL,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;SAC3B;;;oJAtEU,4BAA4B;6HAA5B,4BAA4B,yLCjBzC,4sCAkDA;sHDjCa,4BAA4B;sBANxC8B,YAAS;uBAAC;wBACT,QAAQ,EAAE,wBAAwB;wBAClC,WAAW,EAAE,sCAAsC;wBACnD,SAAS,EAAE,CAAC,sCAAsC,CAAC;wBACnD,eAAe,EAAEC,0BAAuB,CAAC,MAAM;qBAChD;;;kCAeInB,WAAQ;;kCACRA,WAAQ;;6BAbK,IAAI;0BAAnBC,QAAK;oBACU,MAAM;0BAArBA,QAAK;oBACU,KAAK;0BAApBA,QAAK;oBACU,IAAI;0BAAnBA,QAAK;oBACU,SAAS;0BAAxBA,QAAK;oBACU,IAAI;0BAAnBA,QAAK;;;IElBR;;;;;;QA8BmD,iDAAkB;QAArE;;;QAES,mDAAW,GAAX;YACL,IAAI,CAAC,QAAQ,CAAC,sBAAsB,EAAE,CAAC;SACxC;;KAJH,CAAmD,kBAAkB;qJAAxD,6BAA6B;8HAA7B,6BAA6B,+ZAJ7B;YACT,yBAAyB;SAC1B;sHAEU,6BAA6B;sBAzBzClC,YAAS;uBAAC;wBACT,QAAQ,EAAE,WAAW;4BACnB,kBAAkB;4BAClB,wBAAwB;4BACxB,uBAAuB;4BACvB,yBAAyB;4BACzB,qBAAqB;4BACrB,sBAAsB;4BACtB,wBAAwB;4BACxB,uBAAuB;4BACvB,uBAAuB;4BACvB,sBAAsB;4BACtB,mBAAmB;4BACnB,yBAAyB;4BACzB,mBAAmB;4BACnB,yBAAyB;4BACzB,uBAAuB;4BACvB,uBAAuB;4BACvB,qBAAqB;4BACrB,mBAAmB;4BACnB,kBAAkB;wBACpB,SAAS,EAAE;4BACT,yBAAyB;yBAC1B;qBACF;;;;QC3B4C,2CAAiB;QAA9D;;;;KAAA,CAA6C,iBAAiB;+IAAjD,uBAAuB;wHAAvB,uBAAuB;sHAAvB,uBAAuB;sBAHnCA,YAAS;uBAAC;wBACT,QAAQ,EAAE,gBAAgB;qBAC3B;;;;QCiGD;;QACS,oBAAO,GAAd;;;;YAKEqD,sBAAiB,CAAC,SAAS,CAAC,YAAY,GAAG,UAAC,OAA2B,EAAE,IAAwC;gBAC/G,OAAO,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,CAAA,KAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,CAAA,CAAC;aAC/D,CAAC;YAEF,OAAO;gBACL,QAAQ,EAAE,YAAY;aACvB,CAAC;SACH;;;oIAbU,YAAY;qIAAZ,YAAY,iBA5DrB,eAAe;YACf,kBAAkB;YAClB,uBAAuB;YACvB,kBAAkB;YAClB,kBAAkB;YAClB,wBAAwB;YACxB,wBAAwB;YACxB,oBAAoB;YACpB,qBAAqB;YACrB,oBAAoB;YACpB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,uBAAuB;YACvB,wBAAwB;YACxB,sBAAsB;YACtB,qBAAqB;YACrB,kBAAkB;YAClB,0BAA0B;YAC1B,uBAAuB;YACvB,4BAA4B;YAC5B,6BAA6B;YAC7B,iBAAiB;YACjB,uBAAuB,aA/BvBC,eAAY;YACZC,cAAW;YAEXC,oBAAe;YACfC,oBAAe,aA8Bf,eAAe;YACf,kBAAkB;YAClB,uBAAuB;YACvB,kBAAkB;YAClB,kBAAkB;YAClB,wBAAwB;YACxB,wBAAwB;YACxB,oBAAoB;YACpB,qBAAqB;YACrB,oBAAoB;YACpB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,sBAAsB;YACtB,uBAAuB;YACvB,wBAAwB;YACxB,sBAAsB;YACtB,qBAAqB;YACrB,kBAAkB;YAClB,0BAA0B;YAC1B,uBAAuB;YACvB,4BAA4B;YAC5B,6BAA6B;YAC7B,iBAAiB;YACjB,uBAAuB;qIASd,YAAY,aAPZ;YACT;gBACE,OAAO,EAAEJ,sBAAiB;gBAC1B,QAAQ,EAAEK,iCAA4B;aACvC;SACF,YAlEQ;gBACPJ,eAAY;gBACZC,cAAW;gBAEXC,oBAAe;gBACfC,oBAAe;aAChB;sHA8DU,YAAY;sBArExBE,WAAQ;uBAAC;wBACR,OAAO,EAAE;4BACPL,eAAY;4BACZC,cAAW;4BAEXC,oBAAe;4BACfC,oBAAe;yBAChB;wBACD,YAAY,EAAE;4BACZ,eAAe;4BACf,kBAAkB;4BAClB,uBAAuB;4BACvB,kBAAkB;4BAClB,kBAAkB;4BAClB,wBAAwB;4BACxB,wBAAwB;4BACxB,oBAAoB;4BACpB,qBAAqB;4BACrB,oBAAoB;4BACpB,sBAAsB;4BACtB,sBAAsB;4BACtB,sBAAsB;4BACtB,sBAAsB;4BACtB,uBAAuB;4BACvB,wBAAwB;4BACxB,sBAAsB;4BACtB,qBAAqB;4BACrB,kBAAkB;4BAClB,0BAA0B;4BAC1B,uBAAuB;4BACvB,4BAA4B;4BAC5B,6BAA6B;4BAC7B,iBAAiB;4BACjB,uBAAuB;yBACxB;wBACD,OAAO,EAAE;4BACP,eAAe;4BACf,kBAAkB;4BAClB,uBAAuB;4BACvB,kBAAkB;4BAClB,kBAAkB;4BAClB,wBAAwB;4BACxB,wBAAwB;4BACxB,oBAAoB;4BACpB,qBAAqB;4BACrB,oBAAoB;4BACpB,sBAAsB;4BACtB,sBAAsB;4BACtB,sBAAsB;4BACtB,sBAAsB;4BACtB,uBAAuB;4BACvB,wBAAwB;4BACxB,sBAAsB;4BACtB,qBAAqB;4BACrB,kBAAkB;4BAClB,0BAA0B;4BAC1B,uBAAuB;4BACvB,4BAA4B;4BAC5B,6BAA6B;4BAC7B,iBAAiB;4BACjB,uBAAuB;yBACxB;wBACD,SAAS,EAAE;4BACT;gCACE,OAAO,EAAEJ,sBAAiB;gCAC1B,QAAQ,EAAEK,iCAA4B;6BACvC;yBACF;qBACF;;;ICvGD;;ICAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"firestitch-form.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../src/app/enums/confirm-result.ts","../../src/app/helpers/confirm-unsaved.ts","../../src/app/directives/form-dialog-close.directive.ts","../../src/app/enums/form-status.ts","../../src/app/helpers/confirm-result-continue.ts","../../src/app/helpers/get-form-errors.ts","../../src/app/helpers/get-active-route.ts","../../src/app/services/fsform.service.ts","../../src/app/guards/form-deactivate.guard.ts","../../src/app/directives/form/form.directive.ts","../../src/app/consts/error-messages.const.ts","../../src/app/providers/validate-messages.provider.ts","../../src/app/directives/validators/control.directive.ts","../../src/app/helpers/is-enabled.ts","../../src/app/directives/validators/required.directive.ts","../../src/app/validators/validators.ts","../../src/app/directives/validators/min.directive.ts","../../src/app/directives/validators/max.directive.ts","../../src/app/directives/validators/minlength.directive.ts","../../src/app/directives/validators/maxlength.directive.ts","../../src/app/directives/validators/email.directive.ts","../../src/app/directives/validators/emails.directive.ts","../../src/app/directives/validators/phone.directive.ts","../../src/app/directives/validators/compare.directive.ts","../../src/app/directives/validators/integer.directive.ts","../../src/app/directives/validators/numeric.directive.ts","../../src/app/directives/validators/pattern.directive.ts","../../src/app/directives/validators/function.directive.ts","../../src/app/directives/validators/greater.directive.ts","../../src/app/directives/validators/daterange.directive.ts","../../src/app/directives/validators/lesser.directive.ts","../../src/app/directives/validators/url.directive.ts","../../src/app/directives/button.directive.ts","../../src/app/directives/validators/validate.directive.ts","../../src/app/components/form-dialog-actions/form-dialog-actions.component.ts","../../src/app/components/form-dialog-actions/form-dialog-actions.component.html","../../src/app/directives/validators/no-fs-validators.directive.ts","../../src/app/directives/submit-button.directive.ts","../../src/app/fs-form.module.ts","../../src/public_api.ts","../../src/firestitch-form.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","export enum ConfirmResult {\n Save = 'save',\n Discard = 'discard',\n Review = 'review',\n Invalid = 'invalid',\n Pristine = 'pristine',\n}\n","import { FsPrompt } from '@firestitch/prompt';\n\nimport { Observable } from 'rxjs';\nimport { first } from 'rxjs/operators';\n\nimport { FsFormDirective } from '../directives/form/form.directive';\nimport { ConfirmResult } from '../enums/confirm-result';\n\n\nexport function confirmUnsaved(directives: FsFormDirective[], prompt: FsPrompt): Observable<ConfirmResult> {\n return new Observable(observer => {\n // TODO support for multiple directives per page\n const form = directives[0];\n\n if (!form.confirm || !form.ngForm.dirty) {\n observer.next(ConfirmResult.Pristine);\n observer.complete();\n return;\n }\n\n let title = 'You Have Unsaved Changes';\n let message = 'What would you like to do with your changes?';\n let saveLabel = 'Save & Continue';\n let discardLabel = 'Discard Changes & Continue';\n let cancelLabel = 'Review Changes';\n\n if (typeof form.confirm === 'object') {\n title = form.confirm.title || title;\n message = form.confirm.message || message;\n saveLabel = form.confirm.saveLabel || saveLabel;\n discardLabel = form.confirm.discardLabel || discardLabel;\n cancelLabel = form.confirm.cancelLabel || cancelLabel;\n }\n\n prompt.confirm({\n title: title,\n template: message,\n dialogConfig: { width: 'auto' },\n buttons: [\n {\n label: saveLabel,\n color: 'primary',\n value: 'save'\n },\n {\n label: discardLabel,\n value: 'discard'\n },\n {\n label: cancelLabel,\n cancel: true\n }\n ]\n }).subscribe((value) => {\n\n if (value === 'discard') {\n observer.next(ConfirmResult.Discard);\n observer.complete();\n form.reset();\n }\n\n if (value === 'save') {\n\n form.submitted\n .pipe(\n first()\n )\n .subscribe(() => {\n observer.next(ConfirmResult.Save);\n observer.complete();\n });\n\n form.invalid\n .pipe(\n first()\n )\n .subscribe(() => {\n observer.next(ConfirmResult.Invalid);\n observer.complete();\n });\n\n form.ngForm.control.markAsPristine();\n form.triggerSubmit({ confirmed: true });\n }\n\n }, (error: any) => {\n observer.next(ConfirmResult.Review);\n observer.complete();\n });\n });\n}\n","import { Directive, HostListener, OnDestroy, HostBinding } from '@angular/core';\nimport { Subject } from 'rxjs';\n\n\n@Directive({\n selector: '[fsFormDialogClose],[fs-form-dialog-close]'\n})\nexport class FsFormDialogCloseDirective implements OnDestroy {\n\n public clicked$ = new Subject();\n public registered = false;\n\n @HostBinding('attr.type') type = 'button';\n\n @HostListener('click', ['$event.target'])\n public click() {\n this.clicked$.next();\n }\n\n public ngOnDestroy() {\n this.clicked$.complete();\n }\n}\n","export enum FormStatus {\n Valid = 'valid',\n Invalid = 'invalid',\n Validating = 'validating',\n Submitting = 'submitting',\n Submitted = 'submitted',\n Error = 'error',\n Success = 'success',\n Completing = 'completing',\n}\n","import { ConfirmResult } from '../enums/confirm-result';\n\nexport function confirmResultContinue(result) {\n return result === ConfirmResult.Discard || result === ConfirmResult.Save || result === ConfirmResult.Pristine;\n}\n","import { AbstractControl, FormGroup, ValidationErrors } from '@angular/forms';\n\n\nexport function getFormErrors(control: AbstractControl, key: string): ValidationErrors | null {\n let errors: ValidationErrors | null = null;\n\n if (control.invalid && control.errors) {\n errors = {\n [key]: { ...control.errors },\n }\n }\n\n if (control instanceof FormGroup) {\n Object.entries(control.controls)\n .forEach(([name, childControl]) => {\n const childErrors = getFormErrors(childControl, name);\n\n if (childErrors) {\n if (!errors) {\n errors = { ...childErrors };\n } else {\n Object.assign(errors, childErrors);\n }\n }\n });\n }\n\n return errors;\n}\n","import { ActivatedRoute } from '@angular/router';\n\n\nexport function getActiveRoute(route: ActivatedRoute): ActivatedRoute {\n while (route.firstChild) {\n route = route.firstChild;\n }\n\n return route;\n}\n","import { Injectable, Type } from '@angular/core';\n\nimport { Subject, Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\n\nimport { FsFormDirective } from '../directives/form/form.directive';\n\ninterface BroadcastEvent {\n key: any;\n data?: any;\n}\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FsForm {\n\n // value is array for future possibilities of extension\n private _formDirectiveStore = new WeakMap<Type<any>, FsFormDirective[]>();\n\n private _eventBus: Subject<BroadcastEvent>;\n\n constructor() {\n this._eventBus = new Subject<BroadcastEvent>();\n }\n\n // @deprecated\n public broadcast(key: any, data?: any) {\n this._eventBus.next({key, data});\n }\n\n // @deprecated\n public on<T>(key: any): Observable<T> {\n return this._eventBus.asObservable()\n .pipe(\n filter(event => event.key === key),\n map(event => <T>event.data)\n );\n }\n\n public registerFormDirective(routeComponent: Type<any>, directive: FsFormDirective) {\n const directives = this.getFormDirectives(routeComponent) || [];\n directives.push(directive);\n\n this._formDirectiveStore.set(routeComponent, directives);\n }\n\n public getFormDirectives(routeComponent): FsFormDirective[] {\n return this._formDirectiveStore.get(routeComponent);\n }\n\n public removeFormDirective(routeComponent) {\n this._formDirectiveStore.delete(routeComponent);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute, CanDeactivate } from '@angular/router';\n\nimport { FsPrompt } from '@firestitch/prompt';\n\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { FsFormDirective } from '../directives/form/form.directive';\nimport { confirmUnsaved } from '../helpers/confirm-unsaved';\nimport { confirmResultContinue } from '../helpers';\nimport { FsForm } from '../services/fsform.service';\nimport { getActiveRoute } from '../helpers/get-active-route';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FormDeactivateGuard implements CanDeactivate<any> {\n\n constructor(\n private _prompt: FsPrompt,\n private _fsForm: FsForm,\n private _route: ActivatedRoute,\n ) {}\n\n canDeactivate(): Observable<boolean> {\n const route = getActiveRoute(this._route);\n\n if (!route) {\n console.error(`Can not find route for FormDeactivateGuard checks`);\n\n return of(true);\n }\n\n const directives: FsFormDirective[] = this._fsForm.getFormDirectives(route.routeConfig.component);\n\n if (!Array.isArray(directives) || directives.length === 0) {\n console.error(`Can not find a valid FsFormDirective`);\n\n return of(true);\n }\n\n return confirmUnsaved(directives, this._prompt)\n .pipe(\n map((result) => {\n return confirmResultContinue(result);\n }),\n );\n }\n\n}\n","import {\n AfterContentInit,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n QueryList,\n SimpleChanges,\n} from '@angular/core';\nimport { AbstractControl, NgForm } from '@angular/forms';\nimport { ActivatedRoute, Route } from '@angular/router';\n\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { MatTab, MatTabGroup, MatTabHeader } from '@angular/material/tabs';\n\nimport { FsMessage, MessageMode } from '@firestitch/message';\nimport { FsPrompt } from '@firestitch/prompt';\nimport { guid } from '@firestitch/common';\nimport { DrawerRef } from '@firestitch/drawer';\n\nimport {\n BehaviorSubject,\n defer,\n fromEvent,\n iif,\n isObservable,\n Observable,\n of,\n Subject,\n throwError\n} from 'rxjs';\nimport {\n catchError,\n delay,\n filter,\n first,\n map,\n mapTo,\n mergeMap,\n startWith,\n switchMap,\n take,\n takeUntil,\n tap\n} from 'rxjs/operators';\n\nimport { confirmUnsaved } from '../../helpers/confirm-unsaved';\nimport { FsFormDialogCloseDirective } from '../form-dialog-close.directive';\nimport { FsButtonDirective } from '../button.directive';\nimport { ConfirmConfig, SubmittedEvent, ConfirmTabGroup } from './../../interfaces';\nimport { ConfirmResult } from './../../enums/confirm-result';\nimport { FsForm } from '../../services/fsform.service';\nimport { SubmitEvent } from './../../interfaces/submit-event';\nimport { FormStatus } from './../../enums/form-status';\nimport { confirmResultContinue } from '../../helpers/confirm-result-continue';\nimport { getFormErrors } from '../../helpers/get-form-errors';\nimport { FormDeactivateGuard } from '../../guards/form-deactivate.guard';\nimport { getActiveRoute } from '../../helpers/get-active-route';\n\n\n@Directive({\n selector: '[fsForm]',\n})\nexport class FsFormDirective implements OnInit, OnDestroy, AfterContentInit, OnChanges {\n\n @Input()\n public wrapperSelector = '.fs-form-wrapper,.mat-form-field';\n\n @Input()\n public messageSelector = '.fs-form-message,.mat-form-field-subscript-wrapper';\n\n @Input()\n public hintSelector = '.fs-form-hint,.mat-form-field-hint-wrapper';\n\n @Input()\n public labelSelector = '.fs-form-label,.mat-form-field-label';\n\n @Input()\n public autocomplete = false;\n\n @Input()\n public shortcuts = true; // Ctrl + s\n\n @Input()\n public confirm: ConfirmConfig | boolean = true;\n\n @Input()\n public confirmDialog = true;\n\n @Input()\n public confirmDrawer = true;\n\n @Input()\n public confirmBrowser = true;\n\n @Input()\n public confirmTabs = true;\n\n @Input()\n public dirtySubmitButton = true;\n\n @Input()\n public submit: (event: SubmitEvent) => Observable<any>;\n\n @Input()\n public successDelay = 0;\n\n @Input()\n public errorDelay = 1000;\n\n @Input()\n public tabGroup: MatTabGroup;\n\n @Input()\n public deactivationGuard = true;\n\n @Output('fsForm')\n public submitEvent: EventEmitter<SubmitEvent> = new EventEmitter();\n\n @Output()\n public invalid: EventEmitter<SubmitEvent> = new EventEmitter();\n\n @Output()\n public valid: EventEmitter<SubmitEvent> = new EventEmitter();\n\n @Output()\n public submitted: EventEmitter<SubmitEvent> = new EventEmitter();\n\n @Output()\n public reseted: EventEmitter<SubmitEvent> = new EventEmitter();\n\n @Output()\n public cleared: EventEmitter<SubmitEvent> = new EventEmitter();\n\n @HostBinding('class.fs-form')\n public fsFormClass = true;\n\n @ContentChildren(FsFormDialogCloseDirective, { descendants: true })\n public formDialogClose: QueryList<FsFormDialogCloseDirective>;\n\n @ContentChildren(MatTabGroup, { descendants: true })\n private _tabGroups: QueryList<MatTabGroup> = new QueryList();\n\n private _buttons = new QueryList<FsButtonDirective>();\n private _registerControl;\n private _activeSubmitButton: FsButtonDirective;\n private _dialogBackdropEscape = false;\n private _snapshot: { [key: string]: any } = {};\n private _activatedRouteConfig: Route | null;\n private _status$ = new BehaviorSubject(FormStatus.Valid);\n private _destroy$ = new Subject();\n private _confirmed = false;\n\n constructor(\n @Inject(NgForm)\n public ngForm: NgForm,\n private _form: FsForm,\n private _element: ElementRef,\n private _message: FsMessage,\n private _prompt: FsPrompt,\n private _ngZone: NgZone,\n\n @Optional() @Inject(MatDialogRef)\n private _dialogRef: MatDialogRef<any>,\n\n @Optional() @Inject(DrawerRef)\n private _drawerRef: DrawerRef<any>,\n\n private _route: ActivatedRoute,\n ) {}\n\n public get submitting(): boolean {\n return this._status$.getValue() === FormStatus.Submitting;\n }\n\n public get validating(): boolean {\n return this._status$.getValue() === FormStatus.Validating;\n }\n\n public get completing(): boolean {\n return this._status$.getValue() === FormStatus.Completing;\n }\n\n private get _submitEvent(): SubmitEvent {\n return {\n ngForm: this.ngForm,\n submitter: this._submitter,\n };\n }\n\n private get _formValidState$(): Observable<SubmittedEvent> {\n this._form.broadcast('valid', this._submitEvent);\n this.submitEvent.emit(this._submitEvent);\n this.valid.emit(this._submitEvent);\n\n const submittedEvent: SubmittedEvent = {\n ngForm: this.ngForm,\n submitter: this._submitter,\n response: null\n };\n\n if (!this.submit) {\n return of(submittedEvent);\n }\n\n const result = this.submit(this._submitEvent);\n\n if (!isObservable(result)) {\n return of(submittedEvent);\n }\n\n return result\n .pipe(\n map((response) => {\n submittedEvent.response = response;\n\n return submittedEvent;\n })\n );\n }\n\n private get _formInvalidState$(): Observable<never> {\n this._form.broadcast('invalid', this._submitEvent);\n\n if (this.invalid) {\n this.invalid.emit(this._submitEvent);\n }\n\n const message = 'Changes not saved. Please review errors highlighted in red.';\n this._message.error(message, { mode: MessageMode.Toast });\n\n const el = this._element.nativeElement.querySelector('.ng-invalid');\n\n if (el) {\n el.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\n }\n\n return throwError('Form validation error');\n }\n\n private get _submitter(): string {\n return this._activeSubmitButton\n ? this._activeSubmitButton.name\n : null;\n }\n\n public ngOnInit() {\n if (this.deactivationGuard) {\n this._registerCanDeactivateGuard();\n }\n\n this._registerConfirmDialogBackdropEscape();\n this._listenHotKeys();\n this._listenWindowClose();\n this._listenSubmit();\n this._listenFormStatus();\n\n if (!this.autocomplete) {\n this._registerAutocomplete();\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.confirm) {\n this._updateDirtySubmitButtons();\n }\n }\n\n public ngAfterContentInit(): void {\n this._registerConfirm();\n this._registerConfirmDialogClose();\n this._registerConfirmDrawerClose();\n this._registerConfirmTabs();\n this._registerDrawerClose();\n this._registerDirtySubmitButton();\n }\n\n public ngOnDestroy(): void {\n this._cleanupCanDeactivate();\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n public createSnapshot(): void {\n this._snapshot = this.ngForm.value;\n }\n\n public getSnapshot(): { [key: string]: any } {\n return this._snapshot || {};\n }\n\n public reset(): void {\n this.ngForm.resetForm();\n\n Object.keys(this.ngForm.controls)\n .forEach((name: string) => {\n const control = this.ngForm.controls[name];\n control.reset(this._snapshot[name]);\n });\n\n this.reseted.emit();\n }\n\n public clear(): void {\n this.ngForm.resetForm();\n this.cleared.emit();\n }\n\n public dirty(): void {\n this.ngForm.form.markAsDirty();\n this._updateDirtySubmitButtons();\n }\n\n public triggerSubmit(options?: { confirmed: boolean }): void {\n this._confirmed = options?.confirmed;\n this.ngForm.ngSubmit.emit();\n }\n\n public triggerConfirm(): Observable<ConfirmResult> {\n const submitted = this.submitting ? this.submitted.asObservable() : of({});\n\n return submitted\n .pipe(\n take(1),\n mergeMap(() => confirmUnsaved([this], this._prompt)),\n );\n }\n\n public enable(): void {\n this.ngForm.control.enable();\n\n this._updateDirtySubmitButtons();\n }\n\n public disable(): void {\n this.ngForm.control.disable();\n\n this._buttons.forEach((button) => {\n button.disable();\n });\n }\n\n public addButton(button: FsButtonDirective): void {\n this._buttons.reset(\n [\n ...this._buttons.toArray(),\n button,\n ]);\n }\n\n public removeButton(button: FsButtonDirective): void {\n this._buttons.reset(\n [\n ...this._buttons.toArray()\n .filter((item) => (button !== item)),\n ]);\n }\n\n private _listenSubmit(): void {\n this.ngForm\n .ngSubmit\n .pipe(\n tap((event) => {\n event?.preventDefault();\n }),\n map((event) => {\n return { event, confirmed: this._confirmed };\n }),\n tap(() => this._confirmed = false),\n filter(() => {\n return [ FormStatus.Valid, FormStatus.Invalid ]\n .includes(this._status$.getValue());\n }),\n tap(() => this._broadcasValidatingEvents()),\n tap(() => this.validate()),\n tap(() => this._broadcastSubmittingEvents()),\n switchMap((data) => this._waitUntilStatusPending()\n .pipe(\n mapTo(data),\n )),\n tap(() => this._setupActiveSubmitButton()),\n tap(() => this._disableButtons()),\n mergeMap((data) => {\n if(this.ngForm.status === 'INVALID') {\n return this._formInvalidState$;\n }\n\n return this._formValidState$\n .pipe(\n map((submitEvent) => ({\n ...submitEvent,\n confirmed: data.confirmed\n })\n )\n )\n }),\n catchError((e, source$) => {\n this._handleError(e);\n\n return source$;\n }),\n tap((submittedEvent: SubmittedEvent) => {\n this._completeSubmit(true, submittedEvent);\n }),\n takeUntil(this._destroy$)\n )\n .subscribe(() => {});\n }\n\n public validate(): void {\n Object.values(this.ngForm.controls)\n .forEach((control) => {\n control.markAsDirty();\n control.markAsTouched();\n control.updateValueAndValidity();\n });\n }\n\n private _listenFormStatus(): void {\n this._status$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((formStatus: FormStatus) => {\n const cls = [FormStatus.Submitting, FormStatus.Validating];\n const classList = this._element.nativeElement.classList;\n classList.remove(...cls);\n if(cls.indexOf(formStatus) !== -1) {\n classList.add(formStatus);\n }\n });\n\n }\n\n private _listenWindowClose(): void {\n fromEvent(window, 'beforeunload')\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((event: Event) => {\n if (this.confirm && this.confirmBrowser && this.ngForm.dirty) {\n event.returnValue = false;\n }\n });\n }\n\n private _listenHotKeys(): void {\n this._ngZone.runOutsideAngular(() => {\n fromEvent(document, 'keydown')\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((event: KeyboardEvent) => {\n if (this._dialogBackdropEscape && event.code === 'Escape') {\n const dialog = document.getElementById(this._dialogRef.id);\n const paths = event.composedPath();\n\n if (paths) {\n paths.forEach(item => {\n if (dialog === item) {\n this._ngZone.run(() => {\n this._formClose();\n });\n }\n });\n }\n }\n\n if ((event.ctrlKey || event.metaKey) && event.code === 'KeyS') {\n event.preventDefault();\n\n if (this.shortcuts) {\n if (this._elementInForm(document.activeElement)) {\n this.ngForm.ngSubmit.next();\n }\n }\n }\n });\n });\n }\n\n private _formClose(): void {\n if (this.confirm && this.confirmDialog) {\n this.triggerConfirm()\n .pipe(\n filter((result) => confirmResultContinue(result)),\n switchMap((result) => {\n return result === ConfirmResult.Pristine || result === ConfirmResult.Discard\n ? of(null)\n : this.submitted.asObservable();\n }),\n takeUntil(this._destroy$),\n )\n .subscribe((result: SubmittedEvent) => {\n this._dialogRef.close(result?.response);\n });\n } else {\n this._dialogRef.close(null);\n }\n }\n\n private _registerDialogClose(directive: FsFormDialogCloseDirective): void {\n if (!directive.registered) {\n directive.registered = true;\n\n directive.clicked$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._formClose();\n });\n }\n }\n\n private _getActiveSubmitButton(): FsButtonDirective {\n const submitButtons = this._buttons\n .filter((button) => button.submit);\n\n const activeButton = submitButtons\n .find(button => {\n return button.active;\n });\n\n return activeButton ? activeButton : submitButtons[0];\n }\n\n private _elementInForm(el: Element): boolean {\n if (el.isSameNode(this._element.nativeElement)) {\n return true;\n } else if (el.parentElement) {\n return this._elementInForm(el.parentElement);\n }\n\n return false;\n }\n\n private _completeSubmit(success, submitEvent: SubmittedEvent): void {\n if (success) {\n this.ngForm.control.markAsPristine();\n this.createSnapshot();\n this.submitted.emit(submitEvent);\n } else {\n this._resetButtons();\n }\n\n if (this._activeSubmitButton) {\n if (success) {\n this._activeSubmitButton.success();\n } else {\n this._activeSubmitButton.error();\n }\n }\n\n this._status$.next(FormStatus.Submitted);\n\n if (success) {\n this._status$.next(FormStatus.Success);\n } else {\n this._status$.next(FormStatus.Error);\n }\n\n this._status$.next(FormStatus.Completing);\n\n const resetDelay = success ? this.successDelay : this.errorDelay;\n\n of(true)\n .pipe(\n delay(resetDelay),\n first(),\n takeUntil(this._destroy$),\n ).subscribe(() => {\n if (this.ngForm.form.status === 'VALID') {\n this._status$.next(FormStatus.Valid);\n } else {\n this._status$.next(FormStatus.Invalid);\n }\n\n this._resetButtons();\n this._resetActiveButtons();\n this._updateDirtySubmitButtons();\n });\n }\n\n private _resetButtons(): void {\n this._buttons.forEach((button) => {\n button.reset();\n });\n }\n\n private _resetActiveButtons(): void {\n this._buttons.forEach((button) => {\n button.resetActive();\n });\n }\n\n private _registerConfirm(): void {\n this.ngForm.form.valueChanges\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe((changes) => {\n if (this.confirm) {\n const existing = Object.keys(this._snapshot);\n\n Object.keys(changes)\n .forEach((name: string) => {\n if (existing.indexOf(name) === -1) {\n this._snapshot[name] = changes[name];\n }\n });\n }\n });\n }\n\n private _registerDrawerClose(): void {\n if (this._drawerRef) {\n this._drawerRef.closeStart$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((subscriber) => {\n if (this.submitting) {\n this._status$\n .pipe(\n filter((status) => status === FormStatus.Success || status === FormStatus.Error),\n takeUntil(this._destroy$),\n )\n .subscribe((status) => {\n if (status === FormStatus.Success) {\n subscriber.next();\n subscriber.complete();\n } else {\n subscriber.error();\n }\n });\n } else {\n subscriber.next();\n subscriber.complete();\n }\n });\n }\n }\n\n private _registerConfirmDrawerClose(): void {\n if (this._drawerRef) {\n this._drawerRef.closeStart$\n .pipe(\n switchMap((subscriber) => {\n return iif(\n () => this.confirm && this.confirmDrawer,\n this.triggerConfirm()\n .pipe(\n map((result) => confirmResultContinue(result)),\n tap((result) => {\n if (result) {\n subscriber.next();\n subscriber.complete();\n }\n })\n ),\n defer(() => {\n subscriber.next();\n subscriber.complete();\n }),\n )\n }),\n takeUntil(this._destroy$),\n )\n .subscribe();\n }\n }\n\n private _registerConfirmTabs(): void {\n if(this.tabGroup) {\n this.registerConfirmTabGroup(this.tabGroup);\n }\n\n this.registerConfirmTabGroups(this._tabGroups.toArray());\n\n this._tabGroups.changes\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe(() => {\n this.registerConfirmTabGroups(this._tabGroups.toArray());\n });\n }\n\n public registerConfirmTabGroups(tabGroups: MatTabGroup[]): void {\n tabGroups.forEach((tabGroup: MatTabGroup) => {\n this.registerConfirmTabGroup(tabGroup);\n });\n }\n\n public registerConfirmTabGroup(tabGroup: MatTabGroup): void {\n const confirmTabGroup = tabGroup as ConfirmTabGroup;\n if (!confirmTabGroup._originalHandleClick) {\n confirmTabGroup._originalHandleClick = tabGroup._handleClick;\n confirmTabGroup._handlClick$ = new Subject<{ tab: MatTab; tabHeader: MatTabHeader; idx: number }>();\n confirmTabGroup._handleClick = (tab: MatTab, tabHeader: MatTabHeader, idx: number) => {\n if(confirmTabGroup._handlClick$.observers.length) {\n confirmTabGroup._handlClick$.next({ tab, tabHeader, idx});\n } else {\n confirmTabGroup._originalHandleClick(tab, tabHeader, idx);\n }\n }\n }\n\n confirmTabGroup._handlClick$\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((event) => {\n if (!this.submitting) {\n if (this.confirm && this.confirmTabs) {\n this.triggerConfirm()\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((result) => {\n if (confirmResultContinue(result)) {\n confirmTabGroup.selectedIndex = event.idx;\n }\n });\n } else {\n confirmTabGroup._originalHandleClick(event.tab, event.tabHeader, event.idx);\n }\n }\n });\n }\n\n private _registerConfirmDialogClose(): void {\n if (this._dialogRef) {\n this.formDialogClose.forEach(item => {\n this._registerDialogClose(item);\n });\n\n this.formDialogClose.changes\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe((e) => {\n e.forEach(item => {\n this._registerDialogClose(item);\n });\n });\n }\n }\n\n private _registerConfirmDialogBackdropEscape(): void {\n this._dialogBackdropEscape = this._dialogRef && this._dialogRef.disableClose !== true;\n\n if (this._dialogRef && !this._dialogRef.disableClose) {\n this._dialogRef.disableClose = true;\n this._dialogRef.backdropClick()\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe(() => {\n this._formClose();\n });\n\n this._destroy$\n .subscribe(() => {\n this._dialogRef.disableClose = false;\n });\n }\n }\n\n private _registerAutocomplete(): void {\n this._registerControl = this.ngForm.form.registerControl.bind(this.ngForm.form);\n\n this.ngForm.form.registerControl = (name: string, control: AbstractControl) => {\n\n const el: Element = this._element.nativeElement.querySelector(`input[name='${name}']`);\n\n if (el) {\n el.setAttribute('name', name + '_' + guid());\n\n if (!el.getAttribute('autocomplete')) {\n el.setAttribute('autocomplete', 'none');\n }\n }\n\n return this._registerControl(name, control);\n }\n }\n\n private _registerDirtySubmitButton(): void {\n if (!this.ngForm) {\n return;\n }\n\n this.ngForm.form.valueChanges\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._updateDirtySubmitButtons();\n });\n\n this._buttons.changes\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this._updateDirtySubmitButtons();\n });\n }\n\n private _updateDirtySubmitButtons(): void {\n this._buttons\n .filter((button) => button.submit)\n .forEach((submitButton: FsButtonDirective) => {\n if (!this.confirm || !this.dirtySubmitButton || this.ngForm.dirty || !submitButton.dirtySubmit) {\n submitButton.enable();\n } else {\n submitButton.disable();\n }\n });\n }\n\n private _broadcastSubmittingEvents(): void {\n this._status$.next(FormStatus.Submitting);\n this._form.broadcast('submit', this.ngForm);\n }\n\n private _broadcasValidatingEvents(): void {\n this._status$.next(FormStatus.Validating);\n }\n\n private _setupActiveSubmitButton(): void {\n this._activeSubmitButton = this._getActiveSubmitButton();\n this._resetButtons();\n\n if (this._activeSubmitButton) {\n this._activeSubmitButton.process();\n }\n }\n\n private _disableButtons(): void {\n this._buttons.forEach((button) => {\n button.disable();\n });\n }\n\n private _waitUntilStatusPending(): Observable<string> {\n return this.ngForm.statusChanges\n .pipe(\n startWith(this.ngForm.status),\n first((state) => state !== 'PENDING'),\n );\n }\n\n private _handleError(e: SubmittedEvent) {\n console.log('%c Form Submit ', 'color: white; background-color: #D33F49', 'Error occured');\n\n console.group('Error Details:');\n console.log('Message: ', e);\n console.log('FormRef: ', this);\n\n if (this.ngForm.invalid) {\n const errors = getFormErrors(this.ngForm.control, null);\n console.log('Validation Errors: ', errors);\n }\n\n console.groupEnd();\n\n this._completeSubmit(false, null);\n }\n\n private _registerCanDeactivateGuard(): void {\n this._activatedRouteConfig = getActiveRoute(this._route).routeConfig;\n\n if (!this._activatedRouteConfig) {\n return;\n }\n\n this._form.registerFormDirective(this._activatedRouteConfig.component, this);\n\n if (!Array.isArray(this._activatedRouteConfig.canDeactivate)) {\n this._activatedRouteConfig.canDeactivate = [];\n }\n\n if (this._activatedRouteConfig.canDeactivate.indexOf(FormDeactivateGuard) == -1) {\n this._activatedRouteConfig.canDeactivate.push(FormDeactivateGuard);\n }\n }\n\n private _cleanupCanDeactivate(): void {\n if (!this._activatedRouteConfig) {\n return\n }\n\n const guardIndex = this._activatedRouteConfig.canDeactivate.indexOf(FormDeactivateGuard);\n this._activatedRouteConfig.canDeactivate.splice(guardIndex, 1);\n\n this._form.removeFormDirective(this._activatedRouteConfig.component);\n }\n\n}\n","export const ERROR_MESSAGES = {\n required: 'This field is required',\n email: 'This is not a valid email address',\n emails: 'Input valid email addresses, comma separated',\n phone: 'Invalid phone number',\n numeric: 'Value should be numeric',\n integer: 'Value should be an integer',\n min: 'Value should not be less than $(1)',\n max: 'Value should not be greater than $(1)',\n minlength: 'Should not be shorter than $(1) characters',\n maxlength: 'Should not be longer than $(1) characters',\n compare: 'Inputs do not match',\n pattern: 'Value should match pattern $(1)',\n dateRange: 'Invalid date range',\n url: 'This is not a valid url',\n urlProtocol: 'Invalid URL. Proper http protocol is required. eg. https://google.com',\n greater: 'Value must be greater than $(1)',\n lesser: 'Value must be less than $(1)',\n};\n","import { InjectionToken } from '@angular/core';\nimport { ERROR_MESSAGES } from '../consts/error-messages.const';\n\nexport const VALIDATE_MESSAGES = new InjectionToken<Record<string, string>>(\n 'fs.form.validate-messages',\n);\n\nexport const VALIDATE_MESSAGE_PROVIDER = {\n provide: VALIDATE_MESSAGES,\n useFactory: messageProviderFactory,\n};\n\nexport function messageProviderFactory() {\n return { ...ERROR_MESSAGES };\n}\n\n","import {\n Input,\n ElementRef,\n Renderer2,\n Directive,\n Injector,\n Optional,\n Inject,\n Self,\n OnInit,\n OnDestroy,\n AfterContentInit,\n} from '@angular/core';\nimport { NgControl, AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { Observable, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { values, keys } from 'lodash-es';\n\nimport { FsFormDirective } from '../form/form.directive';\nimport {\n VALIDATE_MESSAGE_PROVIDER,\n VALIDATE_MESSAGES\n} from '../../providers/validate-messages.provider';\n\n\nexport interface FsControlDirective {\n validate?(control: AbstractControl): ValidationErrors | null;\n validateAsync?(control: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null>;\n}\n\n\n@Directive({\n selector: '[fsFormControl]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsControlDirective implements OnInit, AfterContentInit, OnDestroy {\n\n @Input() wrapperSelector: string | false;\n @Input() messageSelector: string | false;\n @Input() hintSelector: string | false;\n @Input() labelSelector: string | false;\n @Input() appendMessageClass = 'fs-form-message';\n @Input() appendLabelClass = 'fs-form-label';\n @Input() appendErrorClass = 'fs-form-error';\n @Input() appendHintClass = 'fs-form-hint';\n\n @Input()\n public set validateMessages(messages: Record<string, string>) {\n this._validateMessages = {\n ...this._validateMessages,\n ...messages,\n };\n }\n\n public errors = [];\n\n // protected _validateMessages = { ...ERROR_MESSAGES };\n protected _destroy$ = new Subject();\n protected _control: AbstractControl;\n\n constructor(\n protected elementRef: ElementRef,\n protected renderer2: Renderer2,\n protected injector: Injector,\n @Self() @Inject(VALIDATE_MESSAGES) protected _validateMessages,\n @Optional() protected ngControl: NgControl,\n @Optional() @Inject(FsFormDirective) protected formDirective: FsFormDirective,\n ) {\n\n if (ngControl) {\n this._control = ngControl.control;\n } else {\n console.error('The element does not have a valid ngModel', this.elementRef.nativeElement);\n }\n }\n\n ngOnInit() {\n this._setupValidators();\n }\n\n ngOnDestroy() {\n this._destroy$.next();\n this._destroy$.complete();\n }\n\n ngAfterContentInit() {\n if (this._control) {\n\n /*\n Ensure that statusChanges has one subscription per control. Multiple can happen\n when multiple fsForm validation directives are applied to the same element\n */\n if (!(<any>this._control).statusChangesSubscribe) {\n\n this._control.statusChanges\n .pipe(\n takeUntil(this._destroy$)\n )\n .subscribe(this.render.bind(this));\n\n (<any>this._control).statusChangesSubscribe = true;\n }\n }\n }\n\n protected getMessageSelector(): string {\n\n if (this.messageSelector === false) {\n return '';\n }\n\n if (this.messageSelector) {\n return this.messageSelector;\n\n } else if (this.formDirective?.messageSelector) {\n return this.formDirective.messageSelector;\n }\n }\n\n protected getHintWrapperSelector(): string {\n\n if (this.hintSelector === false) {\n return '';\n }\n\n if (this.hintSelector) {\n return this.hintSelector;\n\n } else if (this.formDirective?.hintSelector) {\n return this.formDirective.hintSelector;\n }\n }\n\n protected getWrapperSelector(): string {\n\n if (this.wrapperSelector === false) {\n return '';\n }\n\n if (this.wrapperSelector) {\n return this.wrapperSelector;\n\n } else if (this.formDirective?.wrapperSelector) {\n return this.formDirective.wrapperSelector;\n }\n }\n\n protected getlabelSelector(): string {\n\n if (this.labelSelector === false) {\n return '';\n }\n\n if (this.labelSelector) {\n return this.labelSelector;\n\n } else if (this.formDirective?.labelSelector) {\n return this.formDirective.labelSelector;\n }\n }\n\n protected getWrapperElement() {\n\n const wrapper = this.getWrapper(this.elementRef.nativeElement);\n\n if (wrapper) {\n return wrapper;\n }\n\n return this.elementRef.nativeElement;\n }\n\n /*\n <mat-form-field class=\"mat-form-field\"> <-- Field Wrapper Class. Look for parents from the native element with the matching wrapperSelector. If not found defaults to native element.\n <input>\n <div class=\"fs-form-message\"> <-- Message Selector. Look for the element with class .fs-form-message or messageSelector\n <div class=\"fs-form-message\"></div>\n <div class=\"fs-form-hint\"></div> <-- Hint Selector. Look for the element with class .fs-form-hint or hintSelector\n </div>\n </mat-form-field>\n */\n\n protected render() {\n if (this.ngControl) {\n const renderer = this.renderer2;\n const wrapper = this.getWrapperElement();\n const error = this.ngControl.dirty ? this.getError(this.ngControl) : null;\n const shouldErrorBeRendered = this.ngControl.invalid\n && (this.ngControl.dirty || this.formDirective?.ngForm?.submitted);\n\n if (shouldErrorBeRendered && error) {\n wrapper.classList.add('ng-invalid', 'ng-dirty');\n } else {\n wrapper.classList.remove('ng-invalid');\n }\n\n if (!this.getMessageSelector()) {\n return;\n }\n\n const messageWrapper = wrapper.querySelector(this.getMessageSelector());\n\n if (!messageWrapper) {\n return console.warn('Failed to locate ' + this.getMessageSelector(), this.elementRef.nativeElement);\n }\n\n if (this.getlabelSelector()) {\n const labelWrapper = wrapper.querySelector(this.getlabelSelector());\n\n if (labelWrapper) {\n if (this.appendLabelClass) {\n this.renderer2.addClass(labelWrapper, this.appendLabelClass);\n }\n }\n }\n\n if (this.appendMessageClass) {\n renderer.addClass(messageWrapper, this.appendMessageClass);\n }\n\n if (this.getHintWrapperSelector()) {\n const hint = messageWrapper.querySelector(this.getHintWrapperSelector());\n\n if (hint) {\n renderer.setStyle(hint, 'display', error ? 'none' : 'block');\n\n if (this.appendHintClass) {\n renderer.addClass(hint, this.appendHintClass);\n }\n }\n }\n\n let errorWrapper = wrapper.querySelector('.fs-form-error-target');\n if (errorWrapper) {\n errorWrapper.remove();\n }\n\n if (!shouldErrorBeRendered || !error) {\n return;\n }\n\n errorWrapper = renderer.createElement('div');\n renderer.addClass(errorWrapper, 'fs-form-error-target');\n renderer.addClass(errorWrapper, this.appendErrorClass);\n renderer.addClass(errorWrapper, this.appendErrorClass + '-' + error.name);\n\n const errorText = renderer.createText(error.message);\n\n renderer.appendChild(errorWrapper, errorText);\n messageWrapper.appendChild(errorWrapper);\n }\n }\n\n protected getWrapper(node, count = 0) {\n\n if (!node || count > 10) {\n return null;\n }\n\n if (node.parentNode && node.parentNode.querySelector(this.getWrapperSelector())) {\n return node;\n }\n\n return this.getWrapper(node.parentNode, ++count);\n }\n\n protected parseErrorMessage(message, args): string {\n values(args)\n .forEach((name) => {\n message = message.replace(/\\$\\(\\d\\)/, name);\n });\n\n return message;\n }\n\n protected getError(controlRef): { name: string, message: string } {\n\n const name = keys(controlRef.control.errors)[0];\n\n if (!name) {\n return null;\n }\n\n let message = controlRef.control.errors[name];\n\n if (this._validateMessages[name]) {\n message = this.parseErrorMessage(this._validateMessages[name], message);\n }\n\n return { name: name, message: message };\n }\n\n private _setupValidators(): void {\n const control = this._control;\n\n if (this.validate) {\n const validators = control.validator\n ? [ control.validator, this.validate.bind(this)]\n : this.validate.bind(this);\n\n control.setValidators(validators);\n }\n\n if (this.validateAsync) {\n const asyncValidators = control.asyncValidator\n ? [ control.asyncValidator, this.validateAsync.bind(this)]\n : this.validateAsync.bind(this);\n\n control.setAsyncValidators(asyncValidators);\n }\n\n control.updateValueAndValidity();\n }\n\n}\n","export function isEnabled(value: any): boolean {\n return value !== 'false' && (value || value === '');\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { isEnabled } from '../../helpers/is-enabled';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormRequired],[ngModel][required]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormRequiredDirective extends FsControlDirective implements OnChanges, FsValidator {\n public required = false;\n\n @Input('fsFormRequired')\n public set setFsFormRequired(value) {\n this.required = isEnabled(value);\n }\n\n @Input('required')\n public set setRequired(value) {\n this.required = isEnabled(value);\n }\n\n @Input('fsFormRequiredMessage')\n public set validationMessage(value: string) {\n this._validateMessages.required = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (this.required) {\n return Validators.required(this._control);\n } else {\n return null;\n }\n }\n\n protected render() {\n\n const wrapper = this.getWrapperElement();\n\n if (wrapper && this.getlabelSelector()) {\n const labelWrapper = wrapper.querySelector(this.getlabelSelector());\n\n // Adding class fs-form-label-requried adds the * to the label\n if (labelWrapper) {\n if (this.required) {\n this.renderer2.addClass(labelWrapper, 'fs-form-label-required');\n } else {\n this.renderer2.removeClass(labelWrapper, 'fs-form-label-required');\n }\n }\n }\n\n super.render();\n }\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { email, isEmpty, isNumeric, phone, url } from '@firestitch/common';\nimport { isValid } from 'date-fns';\nimport { isObject } from 'lodash-es';\nimport { catchError, map, take } from 'rxjs/operators';\nimport { from, isObservable, Observable, of, throwError } from 'rxjs';\n\nexport class FsValidators {\n\n static email(control: AbstractControl): ValidationErrors | null {\n if (!control.value || email(control.value)) {\n return null;\n }\n\n return { email: true };\n }\n\n static emails(control: AbstractControl): ValidationErrors | null {\n const model = control.value || '';\n\n const hasInvalidEmails = model\n .split(',')\n .some((part) => !email(part));\n\n return hasInvalidEmails ? { email: true } : null;\n }\n\n static numeric(control: AbstractControl): ValidationErrors | null {\n if (isEmpty(control.value) || isNumeric(control.value)) {\n return null;\n } else {\n return { numeric: true }\n }\n }\n\n static integer(control: AbstractControl): ValidationErrors | null {\n if (!control.value || String(control.value) === '' || (control.value % 1 === 0)) {\n return null;\n } else {\n return { integer: true }\n }\n }\n\n static phone(control: AbstractControl): ValidationErrors | null {\n if (!control.value || phone(control.value)) {\n return null;\n }\n\n return { phone: true };\n }\n\n static url(control: AbstractControl, protocolRequired = false): ValidationErrors | null {\n if (!control.value) {\n return null;\n }\n\n if (!url(control.value)) {\n return { url: true };\n }\n\n if (protocolRequired) {\n const pattern = new RegExp(/^http(s)?:\\/\\//gm);\n\n if (!String(control.value).match(pattern)) {\n return { urlProtocol: true };\n }\n }\n\n return null;\n }\n\n static dateRange(control: AbstractControl): ValidationErrors | null {\n if (!control.value) {\n return null;\n }\n\n if (isObject(control.value)) {\n\n const start = control.value.start;\n const end = control.value.end;\n\n if ((!start && !end) || (isValid(start) && isValid(end))) {\n return null;\n }\n }\n\n return { dateRange: true };\n }\n\n static func(control: AbstractControl, formFunction, data: any) {\n let result: unknown;\n let stream$: Observable<unknown>\n\n try {\n result = formFunction(control, data);\n } catch (err) {\n err = err instanceof Error ? err.message : err;\n\n stream$ = throwError(err);\n }\n\n if (!stream$) {\n if (result instanceof Promise) {\n stream$ = from(result)\n } else if (isObservable(result)) {\n stream$ = result;\n } else {\n stream$ = of(null);\n }\n }\n\n return stream$\n .pipe(\n map(() => null),\n catchError((err) => {\n return of({ validationError: err });\n }),\n take(1),\n );\n }\n\n // static compare(a, b): ValidatorFn {\n // return (control: AbstractControl): ValidationErrors | null => {\n // if (a === b) {\n // return null;\n // } else {\n // return { compare: true };\n // }\n // }\n // }\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormMin]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormMinDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormMin;\n\n @Input('fsFormMinMessage')\n public set validationMessage(value: string) {\n this._validateMessages.min = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n return FsValidators.numeric(this._control) || Validators.min(parseFloat(this.fsFormMin))(this._control);\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormMax]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormMaxDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormMax: number;\n\n @Input('fsFormMaxMessage')\n public set validationMessage(value: string) {\n this._validateMessages.max = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n return FsValidators.numeric(this._control) || Validators.max(this.fsFormMax)(this._control);\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormMinLength]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormMinLengthDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormMinLength: number;\n\n @Input('fsFormMinLengthMessage')\n public set validationMessage(value: string) {\n this._validateMessages.minlength = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n return Validators.minLength(this.fsFormMinLength)(this._control);\n }\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormMaxLength]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormMaxLengthDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormMaxLength: number;\n\n @Input('fsFormMaxLengthMessage')\n public set validationMessage(value: string) {\n this._validateMessages.maxlength = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n return Validators.maxLength(this.fsFormMaxLength)(this._control);\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\nimport { isEnabled } from '../../helpers/is-enabled';\n\n\n@Directive({\n selector: '[fsFormEmail]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormEmailDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormEmail;\n\n @Input('fsFormEmailMessage')\n public set validationMessage(value: string) {\n this._validateMessages.email = value;\n }\n\n public ngOnChanges() {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (isEnabled(this.fsFormEmail)) {\n return FsValidators.email(this._control);\n } else {\n return null;\n }\n }\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\nimport { isEnabled } from '../../helpers/is-enabled';\n\n\n@Directive({\n selector: '[fsFormEmails]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormEmailsDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormEmails;\n\n @Input('fsFormEmailsMessage')\n public set validationMessage(value: string) {\n this._validateMessages.emails = value;\n }\n\n public ngOnChanges() {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (isEnabled(this.fsFormEmails)) {\n return FsValidators.emails(this._control);\n } else {\n return null;\n }\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\nimport { isEnabled } from '../../helpers/is-enabled';\n\n\n@Directive({\n selector: '[fsFormPhone]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormPhoneDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormPhone;\n\n @Input('fsFormPhoneMessage')\n public set validationMessage(value: string) {\n this._validateMessages.phone = value;\n }\n\n public ngOnChanges() {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (isEnabled(this.fsFormPhone)) {\n return FsValidators.phone(this._control);\n } else {\n return null;\n }\n }\n\n}\n","import { Directive, Input, OnDestroy, AfterViewInit, OnChanges } from '@angular/core';\nimport { FsControlDirective } from './control.directive';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormCompare]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER,\n ],\n})\nexport class FsFormCompareDirective extends FsControlDirective\n implements OnChanges, AfterViewInit, OnDestroy, FsValidator {\n\n @Input()\n public fsFormCompare;\n\n @Input('fsFormCompareMessage')\n public set validationMessage(value: string) {\n this._validateMessages.compare = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (this.fsFormCompare.value === this.elementRef.nativeElement.value) {\n return null;\n } else {\n return { compare: true };\n }\n }\n\n public ngAfterViewInit() {\n this.fsFormCompare.addEventListener('keyup', () => {\n this._control.updateValueAndValidity();\n }, false);\n }\n\n public ngOnDestroy() {\n this.fsFormCompare.removeEventListener('keyup', () => {\n this._control.updateValueAndValidity();\n }, false);\n }\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\nimport { isEnabled } from '../../helpers/is-enabled';\n\n\n@Directive({\n selector: '[fsFormInteger]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormIntegerDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormInteger;\n\n @Input('fsFormIntegerMessage')\n public set validationMessage(value: string) {\n this._validateMessages.integer = value;\n }\n\n public ngOnChanges() {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (isEnabled(this.fsFormInteger)) {\n return FsValidators.integer(this._control);\n } else {\n return null;\n }\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\nimport { isEnabled } from '../../helpers/is-enabled';\n\n\n@Directive({\n selector: '[fsFormNumeric]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormNumericDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormNumeric;\n\n @Input('fsFormNumericMessage')\n public set validationMessage(value: string) {\n this._validateMessages.numeric = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (isEnabled(this.fsFormNumeric)) {\n return FsValidators.numeric(this._control);\n } else {\n return null;\n }\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors, Validators } from '@angular/forms';\nimport { FsControlDirective } from './control.directive';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormPattern]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormPatternDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormPattern: RegExp | string;\n\n @Input('fsFormPatternMessage')\n public set validationMessage(value: string) {\n this._validateMessages.pattern = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n return Validators.pattern(this.fsFormPattern)(this._control);\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { Observable, of } from 'rxjs';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsAsyncValidator } from '../../interfaces/async-validator';\n\n\n@Directive({\n selector: '[fsFormFunction]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormFunctionDirective extends FsControlDirective implements OnChanges, FsAsyncValidator {\n\n @Input()\n public fsFormFunction;\n\n @Input()\n public fsFormFunctionData;\n\n @Input()\n public validateOnSubmit = false;\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validateAsync(control: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n if(this.validateOnSubmit && !this.formDirective.validating) {\n return of(null);\n }\n \n return FsValidators.func(this._control, this.fsFormFunction, this.fsFormFunctionData);\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormGreater]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormGreaterDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormGreater;\n\n @Input('fsFormGreaterMessage')\n public set validationMessage(value: string) {\n this._validateMessages.greater = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const greater = parseFloat(this.fsFormGreater);\n const value = parseFloat(this._control.value);\n\n if (!isNaN(greater) && !isNaN(value) && value <= greater) {\n return { greater: { greater, actual: value } };\n }\n\n return FsValidators.numeric(this._control);\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\nimport { isEnabled } from '../../helpers/is-enabled';\n\n\n@Directive({\n selector: '[fsFormDateRange]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormDateRangeDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormDateRange;\n\n @Input('fsFormDateRangeMessage')\n public set validationMessage(value: string) {\n this._validateMessages.dateRange = value;\n }\n\n public ngOnChanges() {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (isEnabled(this.fsFormDateRange)) {\n return FsValidators.dateRange(this._control);\n } else {\n return null;\n }\n }\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\n\n\n@Directive({\n selector: '[fsFormLesser]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormLesserDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormLesser;\n\n @Input('fsFormLesserMessage')\n public set validationMessage(value: string) {\n this._validateMessages.lesser = value;\n }\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n const lesser = parseFloat(this.fsFormLesser);\n const value = parseFloat(this._control.value);\n\n if (!isNaN(lesser) && !isNaN(value) && value >= lesser) {\n return { lesser: { lesser, actual: value } };\n }\n\n return FsValidators.numeric(this._control);\n }\n\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsValidator } from '../../interfaces/validator';\nimport { isEnabled } from '../../helpers/is-enabled';\n\n\n@Directive({\n selector: '[fsFormUrl]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormUrlDirective extends FsControlDirective implements OnChanges, FsValidator {\n\n @Input()\n public fsFormUrl;\n\n @Input()\n public fsFormUrlProtocol = false;\n\n @Input('fsFormUrlMessage')\n public set validationMessage(value: string) {\n this._validateMessages.url = value;\n }\n\n public ngOnChanges() {\n this._control.updateValueAndValidity();\n }\n\n public validate(control: AbstractControl): ValidationErrors | null {\n if (isEnabled(this.fsFormUrl)) {\n return FsValidators.url(this._control, this.fsFormUrlProtocol);\n } else {\n return null;\n }\n }\n\n}\n","import { Directive, OnInit, Host, ElementRef, HostBinding, Optional, Input, OnDestroy, ChangeDetectorRef } from '@angular/core';\n\nimport { MatButton } from '@angular/material/button';\nimport { FsFormDirective } from './form/form.directive';\n\nimport { fromEvent, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\n\n@Directive({\n selector: '[mat-raised-button],[mat-button],[mat-flat-button],[mat-stroked-button]',\n})\nexport class FsButtonDirective implements OnInit, OnDestroy {\n\n @Input()\n public name;\n\n @Input()\n public dirtySubmit = true;\n\n @Input()\n public form: FsFormDirective;\n\n @HostBinding('style.transition')\n public transitionStyle = null;\n\n public active = false;\n public submit = false;\n\n private _previousDisabled = false;\n private _destroy$ = new Subject();\n\n constructor(\n @Optional() @Host() private _matButton: MatButton,\n @Optional() private _form: FsFormDirective,\n private _elementRef: ElementRef,\n private _cdRef: ChangeDetectorRef,\n ) {}\n\n public ngOnInit() {\n this.submit = this._elementRef.nativeElement.getAttribute('type') === 'submit';\n this.form = this.form || this._form;\n\n if (this.form) {\n this.form.addButton(this);\n\n if(this.submit) {\n fromEvent(this.element, 'click')\n .pipe(\n takeUntil(this._destroy$),\n )\n .subscribe(() => {\n this.active = true;\n });\n\n if (this.dirtySubmit) {\n if (this.form.dirtySubmitButton) {\n if(!this.form.ngForm.dirty) {\n this.disable();\n }\n }\n }\n\n this.transitionStyle = 'none';\n setTimeout(() => {\n this.transitionStyle = null;\n }, 500);\n }\n }\n }\n\n public disable() { \n if (this._matButton && !this.active) {\n this._previousDisabled = this._matButton.disabled;\n this._matButton.disabled = true;\n this._cdRef.markForCheck(); \n }\n }\n\n public enable() {\n if (this._matButton) {\n this._matButton.disabled = false;\n this._matButton.disableRipple = true;\n this._cdRef.markForCheck();\n }\n }\n\n public process() {\n this.setClass('process');\n if (this._matButton) {\n this._matButton.disableRipple = true;\n }\n }\n\n public success() {\n this.setClass('success');\n if (this._matButton) {\n this._matButton.disableRipple = false;\n }\n }\n\n public error() {\n this.setClass('error');\n if (this._matButton) {\n this._matButton.disableRipple = false;\n }\n }\n\n public setClass(cls) {\n const svg = this._getSvg(cls);\n this._resetClass();\n this._disableShadowAnimation();\n this.element.classList.add(`submit-${cls}`);\n this.element.append(svg);\n }\n\n public get element() {\n return this._elementRef.nativeElement;\n }\n\n public resetActive() {\n this.active = false;\n }\n\n public reset() {\n if(!this._previousDisabled) {\n this.enable();\n }\n\n this.element.querySelectorAll('.svg-icon')\n .forEach((el) => {\n el.remove();\n });\n\n if (this._matButton) {\n this._matButton.disableRipple = false;\n }\n this._resetClass();\n }\n\n public ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n this.form?.removeButton(this);\n }\n\n private _disableShadowAnimation() {\n // .mat-elevation-z2 removes the click shadow animation\n //this.element.classList.add('mat-elevation-z2');\n }\n\n private _resetClass() {\n this.element.classList.remove('submit-success', 'submit-error', 'submit-process', 'mat-elevation-z2');\n }\n\n private _getSvg(type) {\n if (type === 'success') {\n return new DOMParser().parseFromString(`<svg class=\"svg-icon svg-icon-success\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" version=\"1.1\" x=\"0px\" y=\"0px\" viewBox=\"0 0 38 38\" style=\"enable-background:new 0 0 38 38;\" xml:space=\"preserve\" width=\"38px\" height=\"38px\">\n <g>\n <g class=\"check\">\n <g>\n <path d=\"M29.6,11.9c-0.5-0.5-1.3-0.5-1.8,0L16.3,23.4l-6.1-6.1c-0.5-0.5-1.3-0.5-1.8,0s-0.5,1.3,0,1.8l7,7c0.3,0.3,0.6,0.4,0.9,0.4s0.7-0.1,0.9-0.4l12.4-12.4C30.1,13.2,30.1,12.4,29.6,11.9z\"/>\n </g>\n </g>\n </g>\n </svg>`, 'text/xml').firstChild;\n }\n\n if (type === 'process') {\n return new DOMParser().parseFromString(`<svg class=\"svg-icon svg-icon-process\" width=\"38\" height=\"38\" viewBox=\"0 0 38 38\" xmlns=\"http://www.w3.org/2000/svg\">\n <g fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(1 1)\" stroke-width=\"2\"><circle stroke-opacity=\".5\" cx=\"18\" cy=\"18\" r=\"18\"/>\n <path d=\"M36 18c0-9.94-8.06-18-18-18\"><animateTransform attributeName=\"transform\" type=\"rotate\" from=\"0 18 18\" to=\"360 18 18\" dur=\".7s\" repeatCount=\"indefinite\"/></path>\n </g>\n </g>\n </svg>`, 'text/xml').firstChild;\n }\n\n if (type === 'error') {\n return new DOMParser().parseFromString(`<svg class=\"svg-icon svg-icon-error\" xmlns=\"http://www.w3.org/2000/svg\" width=\"38px\" height=\"38px\" viewBox=\"0 0 16 16\"><g><path d=\"M8 1c3.9 0 7 3.1 7 7s-3.1 7-7 7-7-3.1-7-7 3.1-7 7-7zM8 0c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8-3.6-8-8-8v0z\" data-original=\"#444444\" data-old_color=\"#444444\"/><path d=\"M12.2 10.8l-2.8-2.8 2.8-2.8-1.4-1.4-2.8 2.8-2.8-2.8-1.4 1.4 2.8 2.8-2.8 2.8 1.4 1.4 2.8-2.8 2.8 2.8z\"/></g> </svg>`, 'text/xml').firstChild;\n }\n }\n}\n","import { Directive, Input, OnChanges } from '@angular/core';\nimport { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { Observable, of } from 'rxjs';\n\nimport { FsControlDirective } from './control.directive';\nimport { FsValidators } from '../../validators/validators';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\nimport { FsAsyncValidator } from '../../interfaces/async-validator';\n\n\n@Directive({\n selector: '[validate]',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormValidateDirective extends FsControlDirective implements OnChanges, FsAsyncValidator {\n\n @Input('validate')\n public validateFn;\n\n @Input('validateData')\n public validateFnData;\n\n @Input()\n public validateOnSubmit = false;\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n public validateAsync(control: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> {\n if(this.validateOnSubmit && !this.formDirective.validating) {\n return of(null);\n }\n\n return FsValidators.func(this._control, this.validateFn, this.validateFnData);\n }\n\n}\n","import { Component, OnInit, ChangeDetectionStrategy, Input, Optional, ChangeDetectorRef, OnDestroy } from '@angular/core';\r\n\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport { Subject } from 'rxjs';\r\nimport { delay, filter, takeUntil } from 'rxjs/operators';\r\n\r\nimport { FsFormDirective } from '../../directives/form/form.directive';\r\nimport { ConfirmResult } from '../../enums/confirm-result';\r\n\r\n\r\n@Component({\r\n selector: 'fs-form-dialog-actions',\r\n templateUrl: './form-dialog-actions.component.html',\r\n styleUrls: ['./form-dialog-actions.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FsFormDialogActionsComponent implements OnInit, OnDestroy {\r\n\r\n @Input() public save = true;\r\n @Input() public create = false;\r\n @Input() public close = false;\r\n @Input() public done = false;\r\n @Input() public closeData = null;\r\n @Input() public name: string;\r\n\r\n public dirty = false;\r\n\r\n private _destroy$ = new Subject<void>();\r\n \r\n constructor(\r\n @Optional() private _form: FsFormDirective,\r\n @Optional() private _dialogRef: MatDialogRef<any>,\r\n private _cdRef: ChangeDetectorRef, \r\n ) {}\r\n\r\n public ngOnInit(): void {\r\n if(this._form) {\r\n this._form.ngForm.valueChanges\r\n .pipe( \r\n filter(() => (!this.dirty)),\r\n takeUntil(this._destroy$),\r\n )\r\n .subscribe(() => {\r\n this.dirty = this._form.ngForm.dirty;\r\n this._cdRef.markForCheck();\r\n });\r\n\r\n this._form.submitted\r\n .pipe(\r\n delay(50),\r\n takeUntil(this._destroy$),\r\n )\r\n .subscribe(() => {\r\n this.dirty = false;\r\n this._cdRef.markForCheck();\r\n });\r\n\r\n this._form.reseted\r\n .pipe(\r\n takeUntil(this._destroy$),\r\n )\r\n .subscribe(() => {\r\n this.dirty = false;\r\n this._cdRef.markForCheck();\r\n });\r\n }\r\n }\r\n \r\n public closeClick(): void {\r\n if(this._form) {\r\n this._form.triggerConfirm()\r\n .pipe(\r\n filter((confirmResult: ConfirmResult) => (confirmResult !== ConfirmResult.Review)),\r\n takeUntil(this._destroy$),\r\n )\r\n .subscribe(() => {\r\n this._dialogRef.close(this.closeData);\r\n });\r\n } else {\r\n this._dialogRef.close(this.closeData);\r\n }\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n}\r\n","<div class=\"buttons\" [ngClass]=\"{ 'save-create': save || create }\">\n <ng-container *ngIf=\"save\">\n <button\n mat-button\n type=\"submit\"\n color=\"primary\"\n [name]=\"name\">\n {{create ? 'Create' : 'Save'}}\n </button>\n <button\n mat-button\n type=\"button\"\n [disabled]=\"close && !dirty && !create\"\n [matDialogClose]=\"null\">\n Cancel\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"done\">\n <button\n mat-button\n type=\"button\"\n color=\"primary\"\n [matDialogClose]=\"null\">\n Done\n </button>\n </ng-container>\n\n <ng-container *ngIf=\"save || create\">\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-container>\n\n <div class=\"close\" *ngIf=\"close\">\n <button\n mat-button\n type=\"button\"\n [color]=\"dirty ? 'basic' : 'primary'\"\n (click)=\"closeClick()\">\n Close\n </button>\n </div>\n\n <ng-container *ngIf=\"!(save || create)\">\n <ng-template [ngTemplateOutlet]=\"content\"></ng-template>\n </ng-container>\n</div>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { Directive, Input, OnChanges } from '@angular/core';\n\nimport { FsControlDirective } from './control.directive';\nimport { VALIDATE_MESSAGE_PROVIDER } from '../../providers/validate-messages.provider';\n\n\n/**\n * This directive required for cases when we have custom Control like <fs-phone-field> but without any of our validators applied\n *\n * This directive required for automatic validation messages\n */\n@Directive({\n selector: '[ngModel]' +\n ':not([required])' +\n ':not([fsFormRequired])' +\n ':not([fsFormCompare])' +\n ':not([fsFormDateRange])' +\n ':not([fsFormEmail])' +\n ':not([fsFormEmails])' +\n ':not([fsFormFunction])' +\n ':not([fsFormGreater])' +\n ':not([fsFormInteger])' +\n ':not([fsFormLesser])' +\n ':not([fsFormMax])' +\n ':not([fsFormMaxLength])' +\n ':not([fsFormMin])' +\n ':not([fsFormMinLength])' +\n ':not([fsFormNumeric])' +\n ':not([fsFormPattern])' +\n ':not([fsFormPhone])' +\n ':not([fsFormUrl])' +\n ':not([validate])',\n providers: [\n VALIDATE_MESSAGE_PROVIDER\n ],\n})\nexport class FsFormNoFsValidatorsDirective extends FsControlDirective implements OnChanges {\n\n public ngOnChanges(): void {\n this._control.updateValueAndValidity();\n }\n\n}\n","import { Directive } from '@angular/core';\n\nimport { FsButtonDirective } from './button.directive';\n\n\n@Directive({\n selector: 'dummy-selector',\n})\nexport class FsSubmitButtonDirective extends FsButtonDirective {\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormControl, FormGroupDirective, FormsModule, NgForm } from '@angular/forms';\n\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { ErrorStateMatcher, ShowOnDirtyErrorStateMatcher } from '@angular/material/core';\n\nimport { FsFormDirective } from './directives/form/form.directive';\nimport { FsControlDirective } from './directives/validators/control.directive';\nimport { FsFormRequiredDirective } from './directives/validators/required.directive';\nimport { FsFormMinDirective } from './directives/validators/min.directive';\nimport { FsFormMaxDirective } from './directives/validators/max.directive';\nimport { FsFormMinLengthDirective } from './directives/validators/minlength.directive';\nimport { FsFormMaxLengthDirective } from './directives/validators/maxlength.directive';\nimport { FsFormEmailDirective } from './directives/validators/email.directive';\nimport { FsFormEmailsDirective } from './directives/validators/emails.directive';\nimport { FsFormPhoneDirective } from './directives/validators/phone.directive';\nimport { FsFormCompareDirective } from './directives/validators/compare.directive';\nimport { FsFormIntegerDirective } from './directives/validators/integer.directive';\nimport { FsFormNumericDirective } from './directives/validators/numeric.directive';\nimport { FsFormPatternDirective } from './directives/validators/pattern.directive';\nimport { FsFormFunctionDirective } from './directives/validators/function.directive';\nimport { FsFormGreaterDirective } from './directives/validators/greater.directive';\nimport { FsFormDateRangeDirective } from './directives/validators/daterange.directive';\nimport { FsFormLesserDirective } from './directives/validators/lesser.directive';\nimport { FsFormUrlDirective } from './directives/validators/url.directive';\nimport { FsFormDialogCloseDirective } from './directives/form-dialog-close.directive';\nimport { FsButtonDirective } from './directives/button.directive';\nimport { FsFormValidateDirective } from './directives/validators/validate.directive';\nimport { FsFormDialogActionsComponent } from './components/form-dialog-actions/form-dialog-actions.component';\nimport { FsFormNoFsValidatorsDirective } from './directives/validators/no-fs-validators.directive';\nimport { FsSubmitButtonDirective } from './directives';\n\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n\n MatButtonModule,\n MatDialogModule,\n ],\n declarations: [\n FsFormDirective,\n FsControlDirective,\n FsFormRequiredDirective,\n FsFormMinDirective,\n FsFormMaxDirective,\n FsFormMinLengthDirective,\n FsFormMaxLengthDirective,\n FsFormEmailDirective,\n FsFormEmailsDirective,\n FsFormPhoneDirective,\n FsFormCompareDirective,\n FsFormIntegerDirective,\n FsFormNumericDirective,\n FsFormPatternDirective,\n FsFormFunctionDirective,\n FsFormDateRangeDirective,\n FsFormGreaterDirective,\n FsFormLesserDirective,\n FsFormUrlDirective,\n FsFormDialogCloseDirective,\n FsFormValidateDirective,\n FsFormDialogActionsComponent,\n FsFormNoFsValidatorsDirective,\n FsButtonDirective,\n FsSubmitButtonDirective,\n ],\n exports: [\n FsFormDirective,\n FsControlDirective,\n FsFormRequiredDirective,\n FsFormMinDirective,\n FsFormMaxDirective,\n FsFormMinLengthDirective,\n FsFormMaxLengthDirective,\n FsFormEmailDirective,\n FsFormEmailsDirective,\n FsFormPhoneDirective,\n FsFormCompareDirective,\n FsFormIntegerDirective,\n FsFormNumericDirective,\n FsFormPatternDirective,\n FsFormFunctionDirective,\n FsFormDateRangeDirective,\n FsFormGreaterDirective,\n FsFormLesserDirective,\n FsFormUrlDirective,\n FsFormDialogCloseDirective,\n FsFormValidateDirective,\n FsFormDialogActionsComponent,\n FsFormNoFsValidatorsDirective,\n FsButtonDirective,\n FsSubmitButtonDirective,\n ],\n providers: [\n {\n provide: ErrorStateMatcher,\n useClass: ShowOnDirtyErrorStateMatcher,\n },\n ],\n})\nexport class FsFormModule {\n static forRoot(): ModuleWithProviders<FsFormModule> {\n\n /**\n * Hack: https://github.com/angular/components/issues/20097\n */\n ErrorStateMatcher.prototype.isErrorState = (control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean => {\n return control?.invalid && control?.touched && control?.dirty;\n };\n\n return {\n ngModule: FsFormModule,\n };\n }\n}\n","// Modules\nexport { FsFormModule } from './app/fs-form.module';\n\n// Services\nexport { FsForm } from './app/services/fsform.service';\n\n// Directives\nexport { FsFormDirective } from './app/directives/form/form.directive';\nexport { FsControlDirective } from './app/directives/validators/control.directive';\nexport { FsFormRequiredDirective } from './app/directives/validators/required.directive';\nexport { FsFormMinDirective } from './app/directives/validators/min.directive';\nexport { FsFormMaxDirective } from './app/directives/validators/max.directive';\nexport { FsFormMinLengthDirective } from './app/directives/validators/minlength.directive';\nexport { FsFormMaxLengthDirective } from './app/directives/validators/maxlength.directive';\nexport { FsFormEmailDirective } from './app/directives/validators/email.directive';\nexport { FsFormEmailsDirective } from './app/directives/validators/emails.directive';\nexport { FsFormPhoneDirective } from './app/directives/validators/phone.directive';\nexport { FsFormCompareDirective } from './app/directives/validators/compare.directive';\nexport { FsFormIntegerDirective } from './app/directives/validators/integer.directive';\nexport { FsFormNumericDirective } from './app/directives/validators/numeric.directive';\nexport { FsFormPatternDirective } from './app/directives/validators/pattern.directive';\nexport { FsFormFunctionDirective } from './app/directives/validators/function.directive';\nexport { FsFormDateRangeDirective } from './app/directives/validators/daterange.directive';\nexport { FsFormGreaterDirective } from './app/directives/validators/greater.directive';\nexport { FsFormLesserDirective } from './app/directives/validators/lesser.directive';\nexport { FsFormUrlDirective } from './app/directives/validators/url.directive';\nexport { FsFormDialogCloseDirective } from './app/directives/form-dialog-close.directive';\nexport { FsButtonDirective } from './app/directives/button.directive';\nexport { FsSubmitButtonDirective } from './app/directives/submit-button.directive';\nexport { FsFormValidateDirective } from './app/directives/validators/validate.directive';\nexport { FsFormNoFsValidatorsDirective } from './app/directives/validators/no-fs-validators.directive';\n\n// Components\nexport { FsFormDialogActionsComponent } from './app/components/form-dialog-actions/form-dialog-actions.component';\n\nexport { FsValidators } from './app/validators/validators';\n\nexport { FormDeactivateGuard } from './app/guards/form-deactivate.guard';\n\n// Interfaces\nexport { SubmitEvent } from './app/interfaces/submit-event';\nexport { SubmittedEvent } from './app/interfaces/submitted-event';\nexport { ConfirmConfig } from './app/interfaces/confirm-config';\n\n// Enums\nexport { ConfirmResult } from './app/enums/confirm-result';\nexport { FormStatus } from './app/enums/form-status';\n\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["ConfirmResult","Observable","first","Subject","Directive","HostBinding","HostListener","FormStatus","FormGroup","filter","map","Injectable","of","EventEmitter","QueryList","BehaviorSubject","isObservable","MessageMode","throwError","take","mergeMap","tap","switchMap","mapTo","catchError","takeUntil","fromEvent","delay","iif","defer","guid","startWith","NgForm","MatDialogRef","DrawerRef","MatTabGroup","Inject","Optional","Input","Output","ContentChildren","InjectionToken","values","keys","Self","Validators","email","isEmpty","isNumeric","phone","url","isObject","isValid","from","Host","Component","ChangeDetectionStrategy","ErrorStateMatcher","CommonModule","FormsModule","MatButtonModule","MatDialogModule","ShowOnDirtyErrorStateMatcher","NgModule"],"mappings":"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"}