@coolon/angular-ui-powerups 0.0.42 → 0.0.44

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 (132) hide show
  1. package/bundles/coolon-angular-ui-powerups.umd.js +1173 -1188
  2. package/bundles/coolon-angular-ui-powerups.umd.js.map +1 -1
  3. package/bundles/coolon-angular-ui-powerups.umd.min.js +1 -1
  4. package/bundles/coolon-angular-ui-powerups.umd.min.js.map +1 -1
  5. package/coolon-angular-ui-powerups.d.ts +16 -15
  6. package/coolon-angular-ui-powerups.metadata.json +1 -1
  7. package/esm2015/coolon-angular-ui-powerups.js +16 -15
  8. package/esm2015/index.js +2 -2
  9. package/esm2015/lib/components/disposable-component.js +1 -1
  10. package/esm2015/lib/components/forms/number-input/number-input.component.js +1 -1
  11. package/esm2015/lib/components/forms/password-input/password-input.component.js +1 -1
  12. package/esm2015/lib/components/forms/string-input/string-input.component.js +1 -1
  13. package/esm2015/lib/components/resize-aware.component.js +1 -1
  14. package/esm2015/lib/components/types/bounds.class.js +1 -1
  15. package/esm2015/lib/components/types/dimension.class.js +1 -1
  16. package/esm2015/lib/components/types/point.class.js +1 -1
  17. package/esm2015/lib/directives/command.directive.js +1 -1
  18. package/esm2015/lib/directives/focus-binding.directive.js +2 -2
  19. package/esm2015/lib/interaction/alert.js +1 -1
  20. package/esm2015/lib/interaction/components/activity-container/activity-container.component.js +12 -12
  21. package/esm2015/lib/interaction/components/activity-outlet/activity-outlet.component.js +6 -1
  22. package/esm2015/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +2 -2
  23. package/esm2015/lib/interaction/confirm.js +1 -1
  24. package/esm2015/lib/interaction/interaction.module.js +3 -2
  25. package/esm2015/lib/interaction/result.js +1 -1
  26. package/esm2015/lib/interaction/services/dialog-interaction.service.js +2 -2
  27. package/esm2015/lib/place/components/abstract-place-navigation.component.js +3 -2
  28. package/esm2015/lib/place/components/place-outlet/place-outlet.component.js +132 -86
  29. package/esm2015/lib/place/components/place-outlet/route-animations.js +2 -2
  30. package/esm2015/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  31. package/esm2015/lib/place/guards/leave-place.guard.js +12 -10
  32. package/esm2015/lib/place/guards/place-route.guard.js +40 -33
  33. package/esm2015/lib/place/index.js +5 -5
  34. package/esm2015/lib/place/nav-item.js +1 -1
  35. package/esm2015/lib/place/place-component.js +38 -168
  36. package/esm2015/lib/place/place-definition.js +79 -0
  37. package/esm2015/lib/place/place-history.js +54 -0
  38. package/esm2015/lib/place/place-router.js +83 -0
  39. package/esm2015/lib/place/place.decorator.js +30 -3
  40. package/esm2015/lib/place/place.module.js +2 -5
  41. package/esm2015/lib/place/route/default-parameter-sanitiser.js +10 -22
  42. package/esm2015/lib/place/route/json-types.js +1 -1
  43. package/esm2015/lib/place/route/parameter-decorators.js +7 -60
  44. package/esm2015/lib/place/route/parameter-definition.class.js +103 -8
  45. package/esm2015/lib/place/route/parameter-sanitiser.js +1 -15
  46. package/esm2015/lib/place/route/parameter-snapshot.js +13 -55
  47. package/esm2015/lib/place/route/parameter-type.js +2 -2
  48. package/esm2015/lib/place/route/route-parameter-sanitiser.js +6 -20
  49. package/esm2015/lib/place/visit.js +1 -1
  50. package/esm2015/public_api.js +2 -2
  51. package/esm5/coolon-angular-ui-powerups.js +16 -15
  52. package/esm5/index.js +2 -2
  53. package/esm5/lib/components/disposable-component.js +1 -1
  54. package/esm5/lib/components/forms/number-input/number-input.component.js +1 -1
  55. package/esm5/lib/components/forms/password-input/password-input.component.js +1 -1
  56. package/esm5/lib/components/forms/string-input/string-input.component.js +1 -1
  57. package/esm5/lib/components/resize-aware.component.js +1 -1
  58. package/esm5/lib/components/types/bounds.class.js +1 -1
  59. package/esm5/lib/components/types/dimension.class.js +1 -1
  60. package/esm5/lib/components/types/point.class.js +1 -1
  61. package/esm5/lib/directives/command.directive.js +1 -1
  62. package/esm5/lib/directives/focus-binding.directive.js +2 -2
  63. package/esm5/lib/interaction/alert.js +1 -1
  64. package/esm5/lib/interaction/components/activity-container/activity-container.component.js +12 -12
  65. package/esm5/lib/interaction/components/activity-outlet/activity-outlet.component.js +6 -1
  66. package/esm5/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.js +2 -2
  67. package/esm5/lib/interaction/confirm.js +1 -1
  68. package/esm5/lib/interaction/interaction.module.js +3 -2
  69. package/esm5/lib/interaction/result.js +1 -1
  70. package/esm5/lib/interaction/services/dialog-interaction.service.js +2 -2
  71. package/esm5/lib/place/components/abstract-place-navigation.component.js +3 -2
  72. package/esm5/lib/place/components/place-outlet/place-outlet.component.js +150 -115
  73. package/esm5/lib/place/components/place-outlet/route-animations.js +2 -2
  74. package/esm5/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.js +1 -1
  75. package/esm5/lib/place/guards/leave-place.guard.js +12 -10
  76. package/esm5/lib/place/guards/place-route.guard.js +40 -32
  77. package/esm5/lib/place/index.js +5 -5
  78. package/esm5/lib/place/nav-item.js +1 -1
  79. package/esm5/lib/place/place-component.js +52 -198
  80. package/esm5/lib/place/place-definition.js +88 -0
  81. package/esm5/lib/place/place-history.js +57 -0
  82. package/esm5/lib/place/place-router.js +101 -0
  83. package/esm5/lib/place/place.decorator.js +30 -3
  84. package/esm5/lib/place/place.module.js +2 -5
  85. package/esm5/lib/place/route/default-parameter-sanitiser.js +8 -20
  86. package/esm5/lib/place/route/json-types.js +1 -1
  87. package/esm5/lib/place/route/parameter-decorators.js +7 -60
  88. package/esm5/lib/place/route/parameter-definition.class.js +131 -8
  89. package/esm5/lib/place/route/parameter-sanitiser.js +1 -15
  90. package/esm5/lib/place/route/parameter-snapshot.js +25 -63
  91. package/esm5/lib/place/route/parameter-type.js +2 -2
  92. package/esm5/lib/place/route/route-parameter-sanitiser.js +6 -19
  93. package/esm5/lib/place/visit.js +1 -1
  94. package/esm5/public_api.js +2 -2
  95. package/fesm2015/coolon-angular-ui-powerups.js +955 -969
  96. package/fesm2015/coolon-angular-ui-powerups.js.map +1 -1
  97. package/fesm5/coolon-angular-ui-powerups.js +1158 -1177
  98. package/fesm5/coolon-angular-ui-powerups.js.map +1 -1
  99. package/index.d.ts +1 -1
  100. package/lib/interaction/components/activity-container/activity-container.component.d.ts +2 -2
  101. package/lib/interaction/components/activity-outlet/activity-outlet.component.d.ts +7 -0
  102. package/lib/place/components/abstract-place-navigation.component.d.ts +3 -2
  103. package/lib/place/components/place-outlet/place-outlet.component.d.ts +31 -19
  104. package/lib/place/guards/place-route.guard.d.ts +7 -6
  105. package/lib/place/index.d.ts +3 -3
  106. package/lib/place/place-component.d.ts +13 -41
  107. package/lib/place/place-definition.d.ts +20 -0
  108. package/lib/place/place-history.d.ts +10 -0
  109. package/lib/place/place-router.d.ts +9 -0
  110. package/lib/place/place.decorator.d.ts +13 -1
  111. package/lib/place/route/default-parameter-sanitiser.d.ts +3 -5
  112. package/lib/place/route/parameter-decorators.d.ts +0 -4
  113. package/lib/place/route/parameter-definition.class.d.ts +29 -6
  114. package/lib/place/route/parameter-sanitiser.d.ts +0 -6
  115. package/lib/place/route/parameter-snapshot.d.ts +7 -7
  116. package/lib/place/route/route-parameter-sanitiser.d.ts +1 -3
  117. package/lib/place/visit.d.ts +2 -2
  118. package/package.json +1 -1
  119. package/schematics/place-routes/index.js.map +1 -1
  120. package/schematics/place-routes/place-def.js +1 -1
  121. package/schematics/place-routes/place-def.js.map +1 -1
  122. package/schematics/place-routes/templates/place-destinations.ts.template +21 -0
  123. package/schematics/place-routes/templates/{places.ts.template → place-routes.ts.template} +1 -13
  124. package/esm2015/lib/place/place-component-like.js +0 -17
  125. package/esm2015/lib/place/place-updates-service.js +0 -16
  126. package/esm2015/lib/place/place.service.js +0 -102
  127. package/esm5/lib/place/place-component-like.js +0 -17
  128. package/esm5/lib/place/place-updates-service.js +0 -16
  129. package/esm5/lib/place/place.service.js +0 -136
  130. package/lib/place/place-component-like.d.ts +0 -5
  131. package/lib/place/place-updates-service.d.ts +0 -10
  132. package/lib/place/place.service.d.ts +0 -22
@@ -1 +1 @@
1
- {"version":3,"file":"coolon-angular-ui-powerups.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@coolon/angular-ui-powerups/lib/components/disposable-component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/abstract-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/number-input/number-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/password-input/password-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/select-input/select-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/string-input/string-input.component.ts","ng://@coolon/angular-ui-powerups/lib/directives/command.directive.ts","ng://@coolon/angular-ui-powerups/lib/directives/focus-binding.directive.ts","ng://@coolon/angular-ui-powerups/lib/interaction/interaction-context.ts","ng://@coolon/angular-ui-powerups/lib/interaction/activity.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-outlet/activity-outlet.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/abstract-activity.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/alert-dialog/alert-dialog.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-container/activity-container.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/services/dialog-interaction.service.ts","ng://@coolon/angular-ui-powerups/lib/interaction/interaction.module.ts","ng://@coolon/angular-ui-powerups/lib/place/components/busy-overlay/busy-overlay.component.ts","ng://@coolon/angular-ui-powerups/lib/place/components/empty-state/empty-state.component.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-snapshot.ts","ng://@coolon/angular-ui-powerups/lib/place/place-component.ts","ng://@coolon/angular-ui-powerups/lib/place/components/abstract-place-navigation.component.ts","ng://@coolon/angular-ui-powerups/lib/place/components/list-place-nav/list-place-nav.component.ts","ng://@coolon/angular-ui-powerups/lib/place/place.service.ts","ng://@coolon/angular-ui-powerups/lib/place/components/place-outlet/route-animations.ts","ng://@coolon/angular-ui-powerups/lib/place/components/place-outlet/place-outlet.component.ts","ng://@coolon/angular-ui-powerups/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.ts","ng://@coolon/angular-ui-powerups/lib/place/place.module.ts","ng://@coolon/angular-ui-powerups/lib/angular-ui-powerups.module.ts","ng://@coolon/angular-ui-powerups/lib/animations/slideDownAndUpAnimation.ts","ng://@coolon/angular-ui-powerups/lib/components/types/dimension.class.ts","ng://@coolon/angular-ui-powerups/lib/components/types/point.class.ts","ng://@coolon/angular-ui-powerups/lib/components/types/bounds.class.ts","ng://@coolon/angular-ui-powerups/lib/components/resize-aware.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/alert.ts","ng://@coolon/angular-ui-powerups/lib/interaction/confirm.ts","ng://@coolon/angular-ui-powerups/lib/interaction/result.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-outlet/activity-outlet-context.ts","ng://@coolon/angular-ui-powerups/lib/place/nav-item.ts","ng://@coolon/angular-ui-powerups/lib/place/place-component-like.ts","ng://@coolon/angular-ui-powerups/lib/place/place-updates-service.ts","ng://@coolon/angular-ui-powerups/lib/place/place.decorator.ts","ng://@coolon/angular-ui-powerups/lib/place/visit.ts","ng://@coolon/angular-ui-powerups/lib/place/guards/leave-place.guard.ts","ng://@coolon/angular-ui-powerups/lib/place/guards/place-route.guard.ts","ng://@coolon/angular-ui-powerups/lib/place/route/default-parameter-sanitiser.ts","ng://@coolon/angular-ui-powerups/lib/place/route/json-types.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-decorators.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-definition.class.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-sanitiser.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-type.ts","ng://@coolon/angular-ui-powerups/lib/place/route/route-parameter-sanitiser.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import {OnDestroy} from '@angular/core';\nimport {GarbageCollector} from '@coolon/pectin';\n\nexport class DisposableComponent extends GarbageCollector implements OnDestroy {\n\n ngOnDestroy(): void {\n this.dispose();\n }\n}\n","/* tslint:disable:no-input-rename */\nimport { EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material';\nimport { Command, DelegatingFormValueModel, ListModel, UseDelegate, ValueModel } from '@coolon/pectin';\nimport { DisposableComponent } from '../disposable-component';\n\nexport abstract class AbstractInputComponent<T> extends DisposableComponent implements OnInit {\n\n readonly valueModel = new DelegatingFormValueModel<T>();\n\n @Input('valueModel') @UseDelegate()\n set userValueModel(model: ValueModel<T>) {\n this.valueModel.setDelegate(model);\n }\n\n @Input() label: string;\n @Input() floatLabel: 'auto' | 'always' | 'never';\n @Input() hint: string;\n @Input() placeholder: string;\n\n @Input('command.focus') focusCommand: Command<any>;\n @Input('command.blur') blurCommand: Command<any>;\n @Input('command.enter') enterCommand: Command<any>;\n @Input('command.escape') escapeCommand: Command<any>;\n @Input('command.click') clickCommand: Command<any>;\n\n // TODO: fix this.\n // tslint:disable-next-line:no-output-native\n @Output() focus = new EventEmitter();\n // tslint:disable-next-line:no-output-native\n @Output() blur = new EventEmitter();\n // tslint:disable-next-line:no-output-native\n @Output() enterKey = new EventEmitter();\n // tslint:disable-next-line:no-output-native\n @Output() escapeKey = new EventEmitter();\n\n readonly errorStateMatcher: ErrorStateMatcher;\n\n @HostListener('click')\n notifyClick() {\n this.safelyInvoke(this.clickCommand);\n }\n\n @HostListener('focusin')\n notifyFocusIn() {\n this.safelyInvoke(this.focusCommand);\n this.focus.emit();\n }\n\n @HostListener('focusout')\n notifyFocusOut() {\n this.safelyInvoke(this.blurCommand);\n this.blur.emit();\n }\n\n\n notifyEnterKey() {\n this.safelyInvoke(this.enterCommand);\n this.enterKey.emit();\n }\n\n notifyEscapeKey() {\n this.safelyInvoke(this.escapeCommand);\n this.escapeKey.emit();\n }\n\n protected safelyInvoke(command: Command<any>) {\n if (command && command.enabled.value) {\n command.execute();\n }\n }\n\n constructor() {\n super();\n const self = this;\n this.errorStateMatcher = {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return self.hasErrors();\n }\n };\n }\n\n ngOnInit(): void {\n }\n\n isEnabled(): boolean {\n return this.enabled.value;\n }\n\n get enabled(): ValueModel<boolean> {\n return this.valueModel.enabled;\n }\n\n hasErrors(): boolean {\n return !this.errorList.query().isEmpty();\n }\n\n get errorList(): ListModel<string> {\n return this.valueModel.errorList;\n }\n\n get firstError() {\n return this.hasErrors() ? this.errorList.value[0] : null;\n }\n\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n\n@Component({\n selector: 'angular-ui-powerups-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss']\n})\nexport class NumberInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {Component, OnInit} from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-password-input',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss']\n})\nexport class PasswordInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ListModel, StoreInListModel, UseDelegate } from '@coolon/pectin';\nimport { AbstractInputComponent } from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-select-input',\n templateUrl: './select-input.component.html',\n styleUrls: ['./select-input.component.scss']\n})\nexport class SelectInputComponent<T = any> extends AbstractInputComponent<T> implements OnInit {\n\n @Input() @UseDelegate()\n optionsModel: ListModel<T>;\n\n @Input() @StoreInListModel('optionsModel')\n options: T[];\n\n @Input()\n optionLabel: keyof T;\n\n @Input()\n optionLabelFormat: (option: T) => any = (option) => (option && this.optionLabel) ? option[this.optionLabel] : option;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import {Component, OnInit} from '@angular/core';\nimport {AbstractInputComponent} from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-string-input',\n templateUrl: './string-input.component.html',\n styleUrls: ['./string-input.component.scss']\n})\nexport class StringInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { assert, Command, Dsl, GarbageCollector, lang, UnaryCommand } from '@coolon/pectin';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[pectinCommand]'\n})\nexport class CommandDirective<P = any> extends GarbageCollector implements OnInit, OnDestroy, AfterViewInit {\n\n @Input()\n pectinCommand: Command<any> | UnaryCommand<P>;\n\n private _commandParameter:P;\n private _commandParameterProvided = false;\n\n @Input()\n set commandParameter(value: P) {\n this._commandParameterProvided = true;\n this._commandParameter = value;\n }\n\n get commandParameter(): P {\n return this._commandParameter;\n }\n\n constructor(@Inject(ElementRef) private elementRef: ElementRef) {\n super();\n }\n\n ngOnInit(): void {\n assert.notNil(this.pectinCommand);\n if (this.pectinCommand instanceof UnaryCommand) {\n if (!this._commandParameterProvided) {\n lang.illegalState('UnaryCommands required the command parameter to be specified.');\n }\n } else {\n if (this._commandParameterProvided) {\n lang.illegalState('command parameters are only supported by UnaryCommands');\n }\n }\n }\n\n ngAfterViewInit(): void {\n // for some reason mat-buttons kills the disabled host binding. It works on a regular button but for now\n // we need to do this.\n const { chain } = Dsl.disposeWith(this);\n chain(this.pectinCommand.enabled).subscribe(enabled => {\n if (enabled) {\n this.elementRef.nativeElement.removeAttribute('disabled');\n if (this.elementRef.nativeElement.tagName === 'A') {\n this.elementRef.nativeElement.setAttribute('href', 'javascript:void');\n }\n } else {\n this.elementRef.nativeElement.setAttribute('disabled', 'disabled');\n if (this.elementRef.nativeElement.tagName === 'A') {\n this.elementRef.nativeElement.removeAttribute('href');\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n this.dispose();\n }\n\n\n @HostListener('click', ['$event'])\n notifyClick($event: Event) {\n $event.preventDefault();\n $event.stopPropagation();\n if (this.pectinCommand.enabled.value) {\n if (this.pectinCommand instanceof UnaryCommand) {\n this.pectinCommand.withContext({ event: $event }).execute(this.commandParameter);\n } else {\n this.pectinCommand.withContext({ event: $event }).execute();\n }\n } else {\n console.warn('disabled command clicked, ignoring.');\n }\n }\n}\n","import {DOCUMENT} from '@angular/common';\nimport {AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, NgZone, OnInit} from '@angular/core';\nimport {Dsl, HasFocusTracking, Logger} from '@coolon/pectin';\nimport {DisposableComponent} from '../components/disposable-component';\n\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[pectinFocusBinding]'\n})\nexport class FocusBindingDirective extends DisposableComponent implements OnInit, AfterViewInit {\n\n private readonly document: Document;\n\n @Input() pectinFocusBinding: HasFocusTracking;\n @Input() focusBindingTarget: HTMLElement;\n\n @HostListener('focusin')\n onFocusIn() {\n if (this.hasBinding()) {\n this.pectinFocusBinding.focusContext.notifyFocusIn();\n }\n }\n\n @HostListener('focusout')\n onFocusOut() {\n if (this.hasBinding()) {\n this.pectinFocusBinding.focusContext.notifyFocusOut();\n }\n }\n\n constructor(@Inject(ElementRef) private readonly el: ElementRef,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(DOCUMENT) document: any) {\n super();\n // @see https://stackoverflow.com/questions/49513359/could-not-resolve-type-document-in-angular5/53715642#53715642\n this.document = document as Document;\n }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit(): void {\n // TODO: Make this also track the current enabled/disabled state.\n if (this.hasBinding()) {\n const {chain} = Dsl.disposeWith(this);\n chain(this.pectinFocusBinding.focusContext.focused).subscribe((focused) => {\n if (focused && !this.alreadyHasFocus()) {\n this.tryAndFocus();\n }\n });\n } else {\n Logger.get(this).warn(\"pectinFocusBinding was nil\");\n }\n }\n\n private hasBinding() {\n return !!this.pectinFocusBinding && !!this.pectinFocusBinding.focusContext;\n }\n\n// Hook method for debugging via tracing.\n alreadyHasFocus() {\n return this.isFocused(this.focusTarget);\n }\n\n // Hook method for debugging via tracing.\n isFocused(element: Element): boolean {\n return this.document.activeElement === element;\n }\n\n tryAndFocus(retries: number = 5) {\n if (this.modelShouldStillHaveFocus() && this.canFocus()) {\n if (!this.alreadyHasFocus()) {\n this.focusTarget.focus();\n }\n // if we didn't get the focus we try again later.\n if (!this.alreadyHasFocus()) {\n Logger.get(this).log(`focus failed, trying ${retries} more times`);\n if (retries > 0) {\n // try again on the next paint\n // TODO: is there an angular way of doing this without calling a window function.\n requestAnimationFrame(() => {\n this.tryAndFocus(retries - 1);\n });\n } else {\n Logger.get(this).warn(`Tried to focus but gave up as the component wasn't enabled or visible.`);\n }\n }\n }\n }\n\n get focusTarget(): HTMLElement {\n return this.focusBindingTarget || this.el.nativeElement;\n }\n\n // Hook method for debugging via tracing.\n modelShouldStillHaveFocus() {\n return this.hasBinding() && this.pectinFocusBinding.focusContext.focused.value;\n }\n\n // Hook method for debugging via tracing.\n canFocus(): boolean {\n const dimension = this.focusTarget.getBoundingClientRect();\n const hasSize = dimension.height >= 0 && dimension.height >= 0;\n // tslint:disable-next-line:no-string-literal\n return hasSize && !this.focusTarget['disabled'];\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Constructable } from '@coolon/pectin';\nimport { Activity } from './activity';\nimport { Alert } from './alert';\nimport { Confirm } from './confirm';\n\nexport const INTERACTION_CONTEXT = new InjectionToken<any>('InteractionContext');\n\nexport abstract class InteractionContext {\n\n abstract startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;\n\n abstract confirm(confirm: Confirm): Promise<boolean>;\n\n abstract alert(alert: Alert): Promise<void>;\n}\n","import { InjectionToken } from '@angular/core';\nimport { ValueModel } from '@coolon/pectin';\n\nexport const ACTIVITY_DATA = new InjectionToken<any>('InteractionActivityData');\n\nexport interface Activity<D, R, E = any> {\n readonly busy: ValueModel<boolean>;\n\n onDone(callback: Activity.CallBack<R>);\n\n onCancel(callback: Activity.CallBack<E>);\n\n}\n\nexport namespace Activity {\n export type CallBack<T> = (value: T) => void | Promise<any>;\n}\n","import {\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n Injector,\n Input,\n OnInit,\n ViewContainerRef\n} from '@angular/core';\nimport { Constructable, lang, Trace } from '@coolon/pectin';\nimport { Activity, ACTIVITY_DATA } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { ActivityOutletContext } from './activity-outlet-context';\n\n@Component({\n selector: 'angular-ui-powerups-activity-outlet',\n template: '',\n styleUrls: ['./activity-outlet.component.scss']\n})\nexport class ActivityOutletComponent<D, R, E> implements OnInit, InteractionContext {\n\n @Input()\n interactionContext: InteractionContext;\n\n @Input()\n set activityContext(activityContext: ActivityOutletContext<D, R, E>) {\n this.loadActivity(activityContext);\n };\n\n private activityComponentRef: ComponentRef<Activity<D, R, E>>;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n ) {\n }\n\n ngOnInit() {\n }\n\n loadActivity(activityContext: ActivityOutletContext<D, R, E>) {\n const injector = Injector.create({\n providers: [\n {\n provide: InteractionContext,\n useValue: this\n },\n { provide: ACTIVITY_DATA, useValue: activityContext.activityData }\n ],\n parent: this.injector\n });\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(activityContext.activityClass);\n this.viewContainerRef.clear();\n this.activityComponentRef = this.viewContainerRef.createComponent(componentFactory, 0, injector);\n this.activityComponentRef.instance.onDone(activityContext.onDone);\n this.activityComponentRef.instance.onCancel(activityContext.onCancel);\n }\n\n alert(alert: Alert): Promise<void> {\n return this.interactionContext.alert(alert);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.interactionContext.confirm(confirm);\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return this.interactionContext.startActivity(activityType, data);\n }\n\n notifyReady() {\n if (this.activityComponentRef.instance['onActivityReady']) {\n this.activityComponentRef.instance['onActivityReady']();\n }\n }\n}\n\nexport namespace ActivityOutletComponent {\n\n export class OutletInteractionContext<D, R, E> implements InteractionContext {\n\n constructor(private readonly context: ActivityOutletContext<D, R, E>) {\n }\n\n alert(alert: Alert): Promise<void> {\n return lang.notImplemented();\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return lang.notImplemented();\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return lang.notImplemented();\n }\n }\n\n}\n","import { DelegatingValueModel, EventListenerList, Trace, ValueModel } from '@coolon/pectin';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { Activity } from './activity';\n\nexport class AbstractActivity<D, R, E = any> extends DisposableComponent implements Activity<D, R, E> {\n\n private readonly _doneListeners = new EventListenerList<Activity.CallBack<R>>();\n private readonly _cancelListeners = new EventListenerList<Activity.CallBack<E>>();\n private readonly _finishListeners = new EventListenerList<() => void>();\n\n private readonly _busyModel = new DelegatingValueModel<boolean>().withDefault(false);\n\n onDone(callback: Activity.CallBack<R>) {\n this._doneListeners.add(callback);\n }\n\n onCancel(callback: Activity.CallBack<E>) {\n this._cancelListeners.add(callback);\n }\n\n done(result?: R): Promise<any> {\n return this._doneListeners\n .fireAndWait(l => l(result))\n .finally(() => this.finalizeAndDispose());\n }\n\n cancel(error?: E): Promise<any> {\n return this._cancelListeners\n .fireAndWait(l => l(error))\n .finally(() => this.finalizeAndDispose());\n }\n\n @Trace()\n onActivityReady() {\n }\n\n private finalizeAndDispose() {\n // this._activeModel.value = false;\n this._finishListeners.fire(l => l());\n // this._interactionContext = null;\n // this._initialized = false;\n [\n this._finishListeners,\n this._doneListeners,\n this._cancelListeners\n ].forEach(l => l.dispose());\n }\n\n\n get busy(): ValueModel<boolean> {\n return this._busyModel.readonly;\n }\n\n busyWhile(busyModel: ValueModel<boolean>) {\n this._busyModel.setDelegate(busyModel);\n }\n\n isBusy() {\n return this._busyModel.value;\n }\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { AbstractActivity } from '../../abstract-activity';\nimport { ACTIVITY_DATA } from '../../activity';\nimport { Alert } from '../../alert';\n\n@Component({\n selector: 'angular-ui-powerups-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n styleUrls: ['./alert-dialog.component.scss']\n})\nexport class AlertDialogComponent extends AbstractActivity<Alert, void> implements OnInit {\n\n constructor(@Inject(ACTIVITY_DATA) readonly alert: Alert) {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { assert } from '@coolon/pectin';\nimport { AbstractActivity } from '../../abstract-activity';\nimport { ACTIVITY_DATA } from '../../activity';\nimport { Confirm } from '../../confirm';\n\n@Component({\n selector: 'angular-ui-powerups-confirmation-dialog',\n templateUrl: './confirmation-dialog.component.html',\n styleUrls: ['./confirmation-dialog.component.scss']\n})\nexport class ConfirmationDialogComponent extends AbstractActivity<Confirm, boolean> implements OnInit {\n\n constructor(@Inject(ACTIVITY_DATA) readonly confirm: Confirm) {\n super();\n assert.notNil(confirm);\n }\n\n ngOnInit() {\n }\n\n isDestructive(): boolean {\n return this.confirm.destructive && this.confirm.destructive();\n }\n}\n","import { AfterViewInit, Component, Input, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { MatTabGroup } from '@angular/material';\nimport { Constructable, Dsl, MutableListModel, ValueModelChain } from '@coolon/pectin';\nimport { Deferred } from '@coolon/pectin/lib/promise/deferred.class';\nimport { DisposableComponent } from '../../../components/disposable-component';\n\nimport { Activity } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { ActivityOutletContext } from '../activity-outlet/activity-outlet-context';\nimport { ActivityOutletComponent } from '../activity-outlet/activity-outlet.component';\nimport { AlertDialogComponent } from '../alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from '../confirmation-dialog/confirmation-dialog.component';\n\n@Component({\n selector: 'angular-ui-powerups-activity-container',\n templateUrl: './activity-container.component.html',\n styleUrls: ['./activity-container.component.scss']\n})\nexport class ActivityContainerComponent extends DisposableComponent implements OnInit, AfterViewInit, InteractionContext {\n\n @Input()\n parentInteractionContext: InteractionContext;\n\n @Input()\n initialActivity: ActivityOutletContext<any, any, any>;\n\n @ViewChild('tabs', { static: true })\n tabs: MatTabGroup;\n\n @ViewChildren(ActivityOutletComponent)\n outlets: QueryList<ActivityOutletComponent<any,any,any>>;\n\n readonly activityTabs = new MutableListModel<ActivityOutletContext<any, any, any>>();\n private obsoleteTabs: ActivityOutletContext<any, any, any>[] = [];\n private lastActivityTab: ValueModelChain<ActivityOutletContext<any, any, any>>;\n\n constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.lastActivityTab = chain(this.activityTabs).last().otherwise(this.initialActivity);\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n const { observe } = Dsl.disposeWith(this);\n observe.valuesFrom(this.tabs.animationDone).subscribe(() => this.onAnimationFinished());\n }\n\n initialise<D, R, E>(options: ActivityContainerComponent.ActivityContext<D, R, E>) {\n this.initialActivity = {\n ...options,\n interactionContext: this\n };\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n const deferred = Deferred.defer<R>();\n const context = {\n interactionContext: this,\n activityClass: activityType,\n activityData: data,\n onDone: deferred.resolve,\n onCancel: deferred.reject\n };\n this.activityTabs.push(context);\n this.tabs.selectedIndex = this.activityTabs.length;\n return deferred.promise.finally(() => {\n this.obsoleteTabs.push(context);\n this.tabs.selectedIndex = this.activityTabs.length - 1;\n });\n }\n\n alert(alert: Alert): Promise<void> {\n return this.startActivity(AlertDialogComponent, alert);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.startActivity(ConfirmationDialogComponent, confirm);\n }\n\n private onAnimationFinished() {\n this.activityTabs.value = this.activityTabs.value.filter(tab => {\n return !this.obsoleteTabs.includes(tab);\n });\n this.outlets.toArray()[this.tabs.selectedIndex].notifyReady()\n }\n}\n\nexport namespace ActivityContainerComponent {\n\n export interface ActivityContext<D, R, E> {\n activityClass: Constructable<Activity<D, R, E>>,\n activityData: D,\n onDone: (result: R) => void,\n onCancel: (error: E) => void,\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material';\nimport { Constructable } from '@coolon/pectin';\nimport { Activity } from '../activity';\nimport { Alert } from '../alert';\nimport { ActivityContainerComponent } from '../components/activity-container/activity-container.component';\nimport { AlertDialogComponent } from '../components/alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from '../components/confirmation-dialog/confirmation-dialog.component';\nimport { Confirm } from '../confirm';\nimport { InteractionContext } from '../interaction-context';\nimport { assert } from '@coolon/typescript-utilities';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogInteractionService extends InteractionContext {\n\n constructor(private readonly dialogService: MatDialog) {\n super();\n assert.notNil(dialogService);\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n return this._startActivity(activityType, data);\n }\n\n private _startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data: D, disableClose: boolean = true) {\n const config = {\n data,\n disableClose,\n panelClass: 'dialog-interaction-service',\n autoFocus: false\n };\n const matDialogRef = this.dialogService.open(ActivityContainerComponent, config) as MatDialogRef<ActivityContainerComponent>;\n return new Promise<R>((resolve, reject) => {\n const activityContainer = matDialogRef.componentInstance;\n activityContainer.parentInteractionContext = this;\n activityContainer.initialise({\n activityClass: activityType,\n activityData: data,\n onDone(result) {\n resolve(result);\n matDialogRef.close(result);\n },\n onCancel(error) {\n reject(error);\n matDialogRef.close(error);\n }\n });\n\n matDialogRef.updateSize();\n });\n }\n\n alert(alert: Alert): Promise<void> {\n return this._startActivity(AlertDialogComponent, alert, false);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this._startActivity(ConfirmationDialogComponent, confirm, true);\n }\n\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule, MatDialogModule, MatTabsModule } from '@angular/material';\nimport { ActivityContainerComponent } from './components/activity-container/activity-container.component';\nimport { AlertDialogComponent } from './components/alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';\nimport { ActivityOutletComponent } from './components/activity-outlet/activity-outlet.component';\nimport { DialogInteractionService } from './services/dialog-interaction.service';\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n MatDialogModule,\n MatTabsModule,\n PortalModule\n ],\n declarations: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n AlertDialogComponent,\n ActivityOutletComponent\n ],\n exports: [\n ActivityContainerComponent,\n ],\n entryComponents: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n AlertDialogComponent\n ],\n providers: [\n DialogInteractionService\n ]\n})\nexport class InteractionModule {\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { StoreInValueModel, UseDelegate, ValueModel } from '@coolon/pectin';\n\n@Component({\n selector: 'angular-ui-powerups-busy-overlay',\n templateUrl: `./busy-overlay.component.html`,\n styleUrls: ['./busy-overlay.component.scss']\n})\nexport class BusyOverlayComponent implements OnInit {\n\n @Input() @UseDelegate()\n busyModel: ValueModel<boolean>;\n\n @Input() @StoreInValueModel('busyModel')\n busy: boolean;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'angular-ui-powerups-empty-state',\n template: `\n <div class=\"container\">\n <ng-content></ng-content>\n </div>\n `,\n styleUrls: ['./empty-state.component.scss']\n})\nexport class EmptyStateComponent implements OnInit {\n\n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","import { ParamMap, UrlSegment } from '@angular/router';\nimport { assert, Trace } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport * as _ from 'lodash';\nimport { PlaceComponent } from '../place-component';\nimport { Visit } from '../visit';\nimport { ParameterDefinition } from './parameter-definition.class';\n\n// TODO: there are really two types of snapshot, ones with id's and ones without.\n// Id snapshot are repesented by 2 url segments\n// ID => [{'/basePath', params}, {'id', params}]\n// NO ID => [{'/basePath', params}]\nexport class ParameterSnapshot implements Visit {\n\n constructor(readonly placeDefinition: PlaceComponent.Definition, private readonly resolved: ParameterSnapshot.ResolvedParameter<any, any>[]) {\n }\n\n hasChanged(other: ParameterSnapshot): boolean {\n const changed = this.resolved.find((r) => {\n return !r.isSame(other.getResolvedParameterValue(r.parameterDef));\n });\n if (changed) {\n console.log({ mine: changed, theirs: other.getResolvedParameter(changed.parameterDef) });\n }\n return !!changed;\n }\n\n asUrlSegment(other: ParameterSnapshot): any[] {\n assert.isTruthy(this.hasChanged(other));\n const routeParts = [];\n const gainedId = this.getFormattedRouteId() && !other.getFormattedRouteId();\n const sameId = this.getFormattedRouteId() === other.getFormattedRouteId();\n const lostId = (!this.getFormattedRouteId() && other.getFormattedRouteId());\n const changedId = (this.getFormattedRouteId() !== other.getFormattedRouteId());\n if (lostId || changedId) {\n routeParts.push('..');\n if (changedId) {\n routeParts.push(this.getFormattedRouteId());\n }\n } else {\n routeParts.push('.');\n }\n routeParts.push(this.getFormattedParameters());\n return routeParts;\n }\n\n @Memoize()\n getResolvedParameter<T, S>(parameterDef: ParameterDefinition<T, S>): ParameterSnapshot.ResolvedParameter<T, S> {\n return this.resolved.find(r => r.parameterDef === parameterDef);\n }\n\n @Memoize()\n getResolvedParameterValue<T, S>(parameterDef: ParameterDefinition<T, S>): S {\n const resolvedParameter = this.getResolvedParameter(parameterDef);\n return resolvedParameter ? resolvedParameter.value : null;\n }\n\n getRouteId(): any {\n return this.getResolvedRouteId() ? this.getResolvedRouteId().value : null;\n }\n\n @Memoize()\n getRouteParameter(name: string): any {\n const resolvedParameter = this.resolved.find(r => r.parameterDef.name === name);\n return resolvedParameter ? resolvedParameter.value : null;\n }\n\n @Memoize()\n private getResolvedRouteId(): ParameterSnapshot.ResolvedValueParameter<any> {\n // RouteId's are never arrays: see parameter-decorators.ts createDefinition methods. It would be nice to\n // capture this in the type system though\n return this.resolved.find(p => p.parameterDef.isRouteId) as ParameterSnapshot.ResolvedValueParameter<any>;\n }\n\n hasRouteId() {\n return !!this.getResolvedRouteId();\n }\n\n getFormattedRouteId(): string {\n const routeIdParam = this.getResolvedRouteId();\n return routeIdParam ? routeIdParam.formattedValue() : null;\n }\n\n getFormattedParameters() {\n const params = {};\n const routeIdParam = this.resolved.filter(p => !p.parameterDef.isRouteId).forEach(p => {\n params[p.parameterDef.name] = p.formattedValue();\n });\n return params;\n }\n\n replace<T, S>(parameter: ParameterDefinition<T, S>, value: S): ParameterSnapshot {\n return new ParameterSnapshot(this.placeDefinition, this.resolved.map(p => {\n return p.parameterDef === parameter ? p.replace(value) : p;\n }));\n }\n\n updateUrl(url: UrlSegment[]) {\n return url;\n }\n}\n\nexport namespace ParameterSnapshot {\n\n export function create(placeDef: PlaceComponent.Definition, paramMap: ParamMap): ParameterSnapshot {\n const resolvedParameters: ResolvedParameter<any, any>[] = placeDef.getRouteParameters()\n .map(def => {\n if (def.isArray) {\n const value = paramMap.has(def.name) ? paramMap.getAll(def.name).map(raw => def.type.parse(raw)) : null;\n return new ResolvedArrayParameter(def, value);\n } else {\n const value = paramMap.has(def.name) ? def.type.parse(paramMap.get(def.name)) : null;\n return new ResolvedValueParameter(def, value);\n }\n });\n return new ParameterSnapshot(placeDef, resolvedParameters);\n }\n\n\n export abstract class ResolvedParameter<T, S = T> {\n constructor(readonly parameterDef: ParameterDefinition<T, S>, readonly value: S) {\n }\n\n abstract injectRouteParam(dest: {}): void;\n\n abstract isSame(otherValue: S): boolean;\n\n isRouteId(): boolean {\n return this.parameterDef.isRouteId;\n }\n\n abstract formattedValue(): string | string[];\n\n abstract replace(value: S): ResolvedParameter<T, S>;\n }\n\n export class ResolvedValueParameter<T> extends ResolvedParameter<T, T> {\n @Trace()\n isSame(otherValue: T): boolean {\n return this.value === otherValue;\n }\n\n injectRouteParam(dest: {}): void {\n dest[this.parameterDef.name] = this.parameterDef.type.format(this.value);\n }\n\n replace(value: T): ParameterSnapshot.ResolvedParameter<T, T> {\n return new ResolvedValueParameter<T>(this.parameterDef, value);\n }\n\n formattedValue(): string {\n return !_.isNil(this.value) ? this.parameterDef.type.format(this.value) : null;\n }\n }\n\n export class ResolvedArrayParameter<T> extends ResolvedParameter<T, T[]> {\n @Trace()\n isSame(otherValue: T[]): boolean {\n return _.isEqual(this.value, otherValue);\n }\n\n injectRouteParam(dest: {}): void {\n dest[this.parameterDef.name] = this.value.map(v => this.parameterDef.type.format(v));\n }\n\n replace(value: T[]): ParameterSnapshot.ResolvedParameter<T, T[]> {\n return new ResolvedArrayParameter<T>(this.parameterDef, value);\n }\n\n formattedValue(): string[] {\n return this.value ? this.value.map(v => this.parameterDef.type.format(v)) : [];\n }\n\n }\n\n\n}\n","import { ActivatedRoute } from '@angular/router';\nimport {\n assert,\n Binding,\n Constructable,\n Dsl,\n IMutableHasValue,\n lang,\n MutableValueModel,\n Trace,\n ValueModel\n} from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator';\nimport * as _ from 'lodash';\nimport 'reflect-metadata';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { PlaceComponentLike } from './place-component-like';\nimport { PlaceUpdatesService } from './place-updates-service';\nimport { ParameterDefinition } from './route/parameter-definition.class';\nimport { ParameterSnapshot } from './route/parameter-snapshot';\n\n// RAKE: making this Symbol(...) broke things.\nexport const DEFINITION_META_DATA_KEY = 'PLACE_DEFINITION_OPTIONS';\n// this one seems ok.\nexport const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');\n\nexport class PlaceComponent extends DisposableComponent implements PlaceComponentLike {\n\n public readonly _incomingRouteChange = new MutableValueModel<boolean>(false);\n private readonly resolvedParameters = new MutableValueModel<ParameterSnapshot>();\n\n constructor(readonly activatedRoute: ActivatedRoute, placeService: PlaceUpdatesService) {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n\n this.placeDefinition.getRouteParameters().forEach(p => this.installBinding(p));\n\n observe.valuesFrom(activatedRoute.paramMap)\n .last()\n .map(params => ParameterSnapshot.create(this.placeDefinition, params))\n .subscribe(resolvedParameters => {\n this._incomingRouteChange.value = true;\n this.resolvedParameters.value = resolvedParameters;\n this._incomingRouteChange.value = false;\n });\n\n when.valueOf(this.resolvedParameters).changes((params, previous) => {\n placeService.notifyRouteParametersChanged({\n activatedRoute: this.activatedRoute,\n next: params,\n previous: previous,\n updateRoute: !this.incomingRouteChange.value // we update the route if it's a component triggered change.\n });\n });\n }\n\n get incomingRouteChange(): ValueModel<boolean> {\n return this._incomingRouteChange.readonly;\n }\n\n private installBinding<T, S>(parameterDef: ParameterDefinition<T, S>) {\n const model = this[parameterDef.propertyName] as IMutableHasValue<S>;\n // this.txo.observe(parameterDef.propertyName, model);\n this.registerDisposable(new Binding(this.resolvedParameters, model, {\n toRight(parameters: ParameterSnapshot): S {\n return parameters.getResolvedParameterValue(parameterDef);\n },\n toLeft(value: S, currentParameters?: ParameterSnapshot): ParameterSnapshot {\n return currentParameters.replace(parameterDef, value);\n }\n }));\n }\n\n\n @Memoize()\n get placeDefinition(): PlaceComponent.Definition {\n return PlaceComponent.getDefinition(this.constructor as any as Constructable<PlaceComponent>);\n }\n\n canDeactivate(): boolean | Promise<boolean> {\n return true;\n }\n\n // @Trace()\n onPlaceReady() {\n }\n\n}\n\nexport namespace PlaceComponent {\n\n export class Definition {\n readonly path: string;\n readonly authenticate: boolean;\n readonly order: number;\n readonly data: { [key: string]: any };\n readonly children: Constructable<PlaceComponent>[];\n\n constructor(readonly component: Constructable<PlaceComponent>, options: PlaceComponent.Options) {\n assert.notNil(options);\n this.path = options.path;\n this.order = options.order;\n this.data = options.data;\n this.authenticate = _.isNil(options.authenticate) || options.authenticate;\n this.children = (options.children ||[]).map(c => PlaceComponent.getDefinition(c).component);\n }\n\n @Memoize()\n getRouteParameters(): ParameterDefinition<any>[] {\n return Klass.get(this.component).getMetadataList(ROUTE_PARAMETER_LIST_KEY);\n }\n\n isDescriptorForType(constructable: Constructable<PlaceComponent>) {\n return lang.constructorChain(constructable).includes(PlaceComponent);\n }\n\n isDescriptorFor(placeComponent: PlaceComponent) {\n return placeComponent.constructor === this.component;\n }\n\n getData<T>(key: string, defaultValue?: T): T {\n return this.data ?\n _.isNil(this.data[key]) ? defaultValue : this.data[key] :\n defaultValue;\n }\n\n searchData<T>(keys: string[], defaultValue?: T): T {\n if (this.data) {\n const found = keys.find(key => !_.isNil(this.data[key]));\n return found ? this.data[found] : defaultValue;\n } else {\n return defaultValue;\n }\n }\n }\n\n\n export interface Options {\n path: string,\n order: number;\n data?: { [key: string]: any }, // defaults to true\n authenticate?: boolean, // defaults to true\n children?: Constructable<PlaceComponent>[]\n }\n\n export interface ChildOptions extends Options {\n parent: Constructable<PlaceComponent>\n }\n\n export function getDefinition(klass: Constructable<PlaceComponent>): Definition {\n return Reflect.getMetadata(DEFINITION_META_DATA_KEY, klass);\n }\n\n export function injectDefinition(klass: Constructable<PlaceComponent>, options: Options) {\n Reflect.defineMetadata(DEFINITION_META_DATA_KEY, new Definition(klass, options), klass);\n }\n\n\n}\n","import { Input, OnInit } from '@angular/core';\nimport { Constructable, Dsl, ListModel, ListModelChain, StoreInListModel, UseDelegate } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport { DisposableComponent } from '../../components/disposable-component';\nimport { NavItem } from '../nav-item';\nimport { PlaceComponent } from '../place-component';\n\nexport class AbstractPlaceNavigationComponent extends DisposableComponent implements OnInit {\n\n @Input() @StoreInListModel('placesModel')\n places: Constructable<PlaceComponent>[];\n\n @Input() @UseDelegate()\n placesModel: ListModel<Constructable<PlaceComponent>>;\n\n readonly placeDefinitions: ListModelChain<PlaceComponent.Definition>;\n\n constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.placeDefinitions = chain(this.placesModel).map(c => PlaceComponent.getDefinition(c));\n }\n\n @Memoize()\n getNav(placeDef: PlaceComponent.Definition): NavItem {\n const navItem = placeDef.getData('nav') as NavItem;\n return {\n title: () => navItem ? navItem.title() : placeDef.searchData(['navTitle', 'title']),\n tooltip: () => navItem && navItem.tooltip ? navItem.tooltip() : placeDef.getData('navTooltip', null),\n icon: () => navItem && navItem.icon ? navItem.icon() : placeDef.getData('navIcon', null)\n };\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, HostBinding } from '@angular/core';\nimport { AbstractPlaceNavigationComponent } from '../abstract-place-navigation.component';\n\n@Component({\n selector: 'angular-ui-powerups-list-place-nav',\n templateUrl: './list-place-nav.component.html',\n styleUrls: ['./list-place-nav.component.scss']\n})\nexport class ListPlaceNavComponent extends AbstractPlaceNavigationComponent {\n\n @HostBinding('class.expanded')\n public expanded = true;\n\n constructor() {\n super();\n }\n\n expandMenu() {\n this.expanded = true;\n }\n\n collapseMenu() {\n this.expanded = false;\n }\n\n toggleMenu() {\n this.expanded = !this.expanded;\n }\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { GarbageCollector, MutableListModel, Trace } from '@coolon/pectin';\nimport { PlaceComponentLike } from './place-component-like';\nimport { PlaceUpdatesService } from './place-updates-service';\nimport { PlaceComponent } from './place-component';\nimport { ParameterSnapshot } from './route/parameter-snapshot';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceService extends GarbageCollector implements PlaceUpdatesService {\n\n private _activePlaces = new MutableListModel<PlaceComponent>();\n\n constructor(protected router: Router, protected injector: Injector) {\n super();\n }\n\n get activePlaces() {\n return this._activePlaces.readonly;\n }\n\n // @Trace()\n onActivate(place: PlaceComponent) {\n this._activePlaces.push(place);\n }\n\n // @Trace()\n onDeactivate(place: PlaceComponent) {\n this._activePlaces.remove(place);\n }\n\n // @Trace()\n notifyRouteParametersChanged(params: {\n activatedRoute: ActivatedRoute,\n next: ParameterSnapshot,\n previous: ParameterSnapshot,\n updateRoute: boolean\n }) {\n // We update the router state...\n if (params.updateRoute) {\n const routeId = params.next.getFormattedRouteId();\n const relativePath = !!params.previous.hasRouteId() ? '..' : '.';\n const path = routeId ? [relativePath, routeId, params.next.getFormattedParameters()] : [relativePath, params.next.getFormattedParameters()];\n this.router.navigate(path, {\n relativeTo: params.activatedRoute\n });\n }\n }\n\n // @Trace()\n async sanitise(snapshot: ParameterSnapshot): Promise<ParameterSnapshot> {\n return snapshot;\n }\n\n\n}\n","import { animate, group, query, style, transition, trigger } from '@angular/animations';\n\n// Freezes the state of the components at the start of the animation.\nconst animationStartStyle = style({ position: 'absolute', top: '0', left: '0', bottom: '0', right: '0' });\n\nconst left = [\n query(':enter, :leave', animationStartStyle, { optional: true }),\n group([\n query(':enter', [\n style({ transform: 'translateX(-100%)' }),\n animate('{{duration}} ease-out', style({ transform: 'translateX(0%)' }))\n ], {\n optional: true\n }),\n query(':leave', [\n style({ transform: 'translateX(0%)' }),\n animate('{{duration}} ease-out', style({ transform: 'translateX(100%)' }))\n ], {\n optional: true\n })\n ])\n];\n\nconst right = [\n query(':enter, :leave', animationStartStyle, { optional: true }),\n group([\n query(':enter', [\n style({ transform: 'translateX(100%)' }),\n animate('{{duration}} ease-out', style({ transform: 'translateX(0%)' }))\n ], {\n optional: true\n }),\n query(':leave', [style({ transform: 'translateX(0%)' }), animate('{{duration}} ease-out', style({ transform: 'translateX(-100%)' }))], {\n optional: true\n })\n ])\n];\n\nexport function leftRightPlaceAnimation(duration:string) {\n return trigger('routeAnimations', [\n transition(':increment', right, { params: { duration: duration } }),\n transition(':decrement', left, { params: { duration: duration } })\n ]);\n}\n\nexport const LEFT_RIGHT_PLACE_ANIMATION = leftRightPlaceAnimation(\"0.3s\");\n","import { AfterViewChecked, AfterViewInit, Component, Input, OnInit, QueryList, ViewChildren } from '@angular/core';\nimport { ActivatedRoute, RouterOutlet, UrlSegment } from '@angular/router';\nimport { Dsl, MutableListModel, Trace, ValueModelChain } from '@coolon/pectin';\nimport { DisposableComponent } from '../../../components/disposable-component';\nimport { PlaceComponent } from '../../place-component';\nimport { PlaceService } from '../../place.service';\nimport { LEFT_RIGHT_PLACE_ANIMATION } from './route-animations';\n\n@Component({\n selector: 'angular-ui-powerups-place-outlet',\n templateUrl: './place-outlet.component.html',\n styleUrls: ['./place-outlet.component.scss'],\n animations: [LEFT_RIGHT_PLACE_ANIMATION]\n})\nexport class PlaceOutletComponent extends DisposableComponent implements OnInit, AfterViewInit, AfterViewChecked {\n\n @Input()\n animate = true;\n\n @ViewChildren(RouterOutlet)\n routerOutLetQuery: QueryList<RouterOutlet>;\n\n private currentPlace: PlaceComponent;\n private myPath: ValueModelChain<string>;\n private outletUrlSegment = new MutableListModel<UrlSegment>();\n private outletChildPath: ValueModelChain<string>;\n private state: ValueModelChain<string>;\n\n constructor(private readonly placeService: PlaceService, private activatedRoute: ActivatedRoute) {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.myPath = observe.listsFrom(activatedRoute.url).last().map(s => s.toString()).reduce(bits => bits.join(','));\n console.log(`new outlet@(${this.myPath.value})`);\n this.outletChildPath = chain(this.outletUrlSegment).map(s => s.toString()).reduce(bits => bits.join(\",\"));\n this.state = chain(this.myPath).map(path => {\n return `outlet@(${path}), child path->${this.outletChildPath.value}`\n }, {dependsOn: this.outletChildPath});\n\n when.valueOf(this.state).changes(debug => {\n console.log(`Outlet Changed -> ${debug}`);\n });\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n // this.routerOutLetQuery.changes.subscribe(() => {\n // this.updateRouterOutlet(this.routerOutLetQuery.first);\n // });\n }\n\n ngAfterViewChecked(): void {\n // console.log(`@AfterViewChecked: ${this.state.value}`);\n this.updateRouterOutlet(this.routerOutLetQuery.first)\n }\n\n // @Trace()\n // ngOnDestroy(): void {\n // console.log('outletSegments', this.outletUrlSegment.value);\n // console.log('mySegments', this.myPath.value);\n // super.ngOnDestroy();\n // }\n\n // @Trace()\n onOutletActivated($event: PlaceComponent) {\n // console.log(this.routerOutLet.activatedRoute.snapshot.url);\n this.currentPlace = $event;\n this.placeService.onActivate($event);\n if (!this.animate) {\n // we're not animating so trigger any post animation callbacks now.\n this.animationDone();\n }\n }\n\n onOutletDeactivated($event: PlaceComponent) {\n this.currentPlace = null;\n this.placeService.onDeactivate($event);\n }\n\n getPlaceOrder(outlet: RouterOutlet) {\n return this.animate && outlet && outlet.activatedRouteData && outlet.activatedRouteData['placeOrder'];\n }\n\n animationDone() {\n if (this.currentPlace) {\n this.currentPlace.onPlaceReady();\n }\n }\n\n // @Trace()\n private updateRouterOutlet(first: RouterOutlet) {\n if (first.isActivated) {\n this.outletUrlSegment.value = first.activatedRoute.snapshot.url;\n }\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Constructable, Dsl, ListModel, ListModelChain, StoreInListModel, UseDelegate } from '@coolon/pectin';\nimport { DisposableComponent } from '../../../components/disposable-component';\nimport { PlaceComponent } from '../../place-component';\nimport { AbstractPlaceNavigationComponent } from '../abstract-place-navigation.component';\n\n@Component({\n selector: 'angular-ui-powerups-tabbed-place-navigation',\n templateUrl: './tabbed-place-navigation.component.html',\n styleUrls: ['./tabbed-place-navigation.component.scss']\n})\nexport class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {\n constructor() {\n super();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterModule } from '@angular/router';\nimport { BusyOverlayComponent } from './components/busy-overlay/busy-overlay.component';\nimport { EmptyStateComponent } from './components/empty-state/empty-state.component';\nimport { ListPlaceNavComponent } from './components/list-place-nav/list-place-nav.component';\nimport { PlaceOutletComponent } from './components/place-outlet/place-outlet.component';\nimport { TabbedPlaceNavigationComponent } from './components/tabbed-place-navigation/tabbed-place-navigation.component';\nimport { PlaceService } from './place.service';\n\n@NgModule({\n imports: [\n CommonModule,\n BrowserAnimationsModule,\n MatProgressSpinnerModule,\n RouterModule,\n MatTabsModule,\n MatListModule,\n MatTooltipModule,\n MatIconModule\n ],\n declarations: [\n EmptyStateComponent,\n BusyOverlayComponent,\n PlaceOutletComponent,\n TabbedPlaceNavigationComponent,\n ListPlaceNavComponent\n ],\n entryComponents: [BusyOverlayComponent],\n exports: [\n BusyOverlayComponent,\n PlaceOutletComponent,\n EmptyStateComponent,\n TabbedPlaceNavigationComponent,\n ListPlaceNavComponent\n ],\n providers: [\n PlaceService\n ]\n})\nexport class PlaceModule {\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule, MatInputModule, MatSelectModule } from '@angular/material';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NumberInputComponent } from './components/forms/number-input/number-input.component';\nimport { PasswordInputComponent } from './components/forms/password-input/password-input.component';\nimport { SelectInputComponent } from './components/forms/select-input/select-input.component';\nimport { StringInputComponent } from './components/forms/string-input/string-input.component';\nimport { CommandDirective } from './directives/command.directive';\nimport { FocusBindingDirective } from './directives/focus-binding.directive';\nimport { InteractionModule } from './interaction/interaction.module';\nimport { PlaceModule } from './place/place.module';\n\n@NgModule({\n declarations: [\n CommandDirective,\n FocusBindingDirective,\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent\n ],\n imports: [\n CommonModule,\n BrowserAnimationsModule,\n FormsModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n MatTabsModule,\n PlaceModule,\n InteractionModule\n ],\n exports: [\n CommandDirective,\n FocusBindingDirective,\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent,\n InteractionModule,\n PlaceModule\n ]\n\n})\nexport class AngularUiPowerupsModule {\n}\n","import { animate, AnimationStyleMetadata, style, transition, trigger } from '@angular/animations';\nimport { OptionsHelper } from '@coolon/pectin';\n\nconst defaultHiddenStyleDef = style({\n opacity: 0,\n 'height': '0',\n paddingTop: '0',\n paddingBottom: '0'\n});\n\nexport function slideDownAndUpAnimation(triggerName: string, options?: {\n duration?: string;\n hiddenStyleDef?: AnimationStyleMetadata;\n}) {\n // SEE to fix this: https://github.com/angular/angular/issues/15587#issuecomment-351510501\n const duration = OptionsHelper.get(options).getOptional('duration', '100ms');\n const hiddenStyleDef = OptionsHelper.get(options).getOptional('hiddenStyleDef', defaultHiddenStyleDef);\n return trigger(triggerName, [\n transition(':enter', [hiddenStyleDef, animate('100ms')]),\n transition(':leave', [animate('100ms', hiddenStyleDef)])\n ]);\n}\n\n// export function slideOutLeftAnimation(triggerName: string, duration:string = \"100ms\") {\n// return trigger(triggerName, [\n// state('true', style(\n// {\n// 'width': '*',\n// 'overflow': 'hidden',\n// 'opacity': '1'\n// })),\n// state('false', style({\n// 'width': '0px',\n// 'overflow': 'hidden',\n// 'opacity': '0'\n// })),\n// transition('* => *', [animate(duration)])\n// ]);\n// }\n","export class Dimension {\n constructor(readonly width: number, readonly height: number){}\n}\n","export class Point {\n\n static from(data: { x: number, y: number }) {\n return new Point(data.x, data.y);\n }\n\n constructor(readonly x: number, readonly y: number) {\n }\n\n translate(x: number, y: number): Point {\n return new Point(this.x + x, this.y + y);\n }\n}\n","import { Dimension } from './dimension.class';\nimport { Point } from './point.class';\n\nexport class Bounds extends Dimension {\n\n constructor(readonly top: number, readonly left: number, readonly width: number, readonly height: number) {\n super(width, height);\n }\n\n relativePositionOf(point: { x: number, y: number } | MouseEvent) {\n if (point instanceof MouseEvent) {\n return new Point(point.clientX - this.left, point.clientY - this.top);\n } else {\n return new Point(point.x - this.left, point.y - this.top);\n }\n }\n}\n\nexport namespace Bounds {\n export function ofElement(element: HTMLElement): Bounds {\n const rect = element.getBoundingClientRect();\n return new Bounds(rect.top, rect.left, rect.width, rect.height);\n }\n}\n\n","import {AfterViewInit, ElementRef, NgZone} from '@angular/core';\nimport {ValueHolder, ValueModel} from '@coolon/pectin';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport {DisposableComponent} from './disposable-component';\nimport {Bounds} from './types/bounds.class';\nimport {Point} from './types/point.class';\n\nexport class ResizeAwareComponent extends DisposableComponent implements AfterViewInit {\n\n private _boundsModel = new ValueHolder<Bounds>(new Bounds(0, 0, 0, 0));\n\n constructor(protected readonly elementRef: ElementRef, protected readonly ngZone: NgZone) {\n super();\n }\n\n ngAfterViewInit(): void {\n this.updateBounds();\n const element = this.elementRef.nativeElement;\n const ro = new ResizeObserver((entries, observer) => {\n this.ngZone.run(() => this.updateBounds());\n });\n ro.observe(element);\n this.onDispose(() => ro.disconnect());\n }\n\n get boundsModel(): ValueModel<Bounds> {\n return this._boundsModel.readonly;\n }\n\n get nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n // TODO: Make this handle body scroll\n public relativePositionOf(point: { x: number, y: number } | MouseEvent): Point {\n return this.bounds.relativePositionOf(point);\n }\n\n get bounds(): Bounds {\n return this._boundsModel.value;\n }\n\n private updateBounds() {\n this._boundsModel.value = Bounds.ofElement(this.nativeElement);\n }\n\n\n}\n\nexport namespace ResizeAwareComponent {\n\n}\n","\nexport interface Alert {\n title?():string;\n content():string[];\n ok():string;\n}\n","import { Alert } from './alert';\n\nexport interface Confirm extends Alert {\n destructive?: () => boolean;\n cancel(): string;\n}\n","export interface Result<R, E> {\n // catch(callback: (error: E) => void): Result<R,E>;\n}\n\nexport namespace Result {\n export interface Callback<R,E> {\n then: <T>(result:R)=>T;\n catch: <T>(result:E)=>T;\n }\n\n}\n\n// const r:Result<string, number> = null;\n\n// r.catch(e => {}).then();\n\n","import { Constructable } from '@coolon/pectin';\nimport { Activity } from '../../activity';\nimport { InteractionContext } from '../../interaction-context';\n\n\nexport interface ActivityOutletContext<D, R, E> {\n interactionContext: InteractionContext,\n activityClass: Constructable<Activity<D, R, E>>,\n activityData: D,\n onDone: (result: R) => void,\n onCancel: (error: E) => void,\n}\n","export interface NavItem {\n title():string;\n icon?():string;\n tooltip?():string;\n}\n","import { ActivatedRoute } from '@angular/router';\n\nexport interface PlaceComponentLike {\n readonly activatedRoute: ActivatedRoute;\n onPlaceReady();\n}\n","import { ActivatedRoute } from '@angular/router';\nimport { PlaceComponentLike } from './place-component-like';\nimport { ParameterSnapshot } from './route/parameter-snapshot';\n\nexport interface PlaceUpdatesService {\n notifyRouteParametersChanged(params: {\n activatedRoute: ActivatedRoute,\n next: ParameterSnapshot,\n previous: ParameterSnapshot,\n updateRoute: boolean\n });\n}\n","import { Constructable, lang } from '@coolon/pectin';\nimport { PlaceComponent } from './place-component';\n\nexport function Place(options: PlaceComponent.Options) {\n return (target: Function) => {\n if (!lang.constructorChain(target as Constructable<any>).includes(PlaceComponent)) {\n lang.illegalState(`${target} must extend PlaceComponent to use the @Place decorator`)\n }\n PlaceComponent.injectDefinition(target as Constructable<any>, options);\n };\n}\n","import { PlaceComponent } from './place-component';\n\n// TODO: It'd be nice if we generated a type for this...\nexport interface Visit {\n readonly placeDefinition: PlaceComponent.Definition;\n\n getRouteId(): any;\n\n getRouteParameter(name: string): any;\n}\n","import { Injectable, Injector } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanDeactivate,\n PRIMARY_OUTLET,\n Router,\n RouterStateSnapshot,\n UrlTree\n} from '@angular/router';\nimport { Constructable, lang } from '@coolon/pectin';\nimport { Observable } from 'rxjs';\nimport { PlaceComponent } from '../place-component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LeavePlaceGuard implements CanDeactivate<PlaceComponent> {\n\n constructor(private router: Router, private injector: Injector) {\n }\n\n canDeactivate(component: PlaceComponent, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n // HACK: this will break with child routes...\n const path = `/${component.placeDefinition.path}`;\n console.log({\n placePath: path,\n currentRoute: currentRoute.toString(),\n currentStateUrl: currentState.url,\n nextStateUrl: nextState.url,\n currentStateUrlTree: this.router.parseUrl(currentState.url).root.children[PRIMARY_OUTLET].segments,\n nextStateUrlTree: this.router.parseUrl(nextState.url).root.children[PRIMARY_OUTLET].segments\n });\n // nextState is the full path...\n if (!nextState.url.startsWith(path)) {\n return component.canDeactivate();\n } else {\n return true;\n }\n }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { PlaceService } from '../place.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceRouteGuard implements CanActivate {\n\n constructor(private readonly placeService: PlaceService, private readonly router: Router) {\n }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n // Implement this when adding child routes.\n // TODO: there are really two types of snapshot, ones with id's and ones without.\n // Id snapshot are repesented by 2 url segments\n // ID => [{'/basePath', params}, {'id', params}]\n // NO ID => [{'/basePath', params}]\n // console.log({urlSegments: route.url});\n // const snapshot = ParameterSnapshot.create(PlaceComponent.getDefinition(route.component as Constructable<PlaceComponent>), route.paramMap);\n\n // return this.placeService.sanitise(snapshot).then(sanitised => {\n // if (sanitised.hasChanged(snapshot)) {\n // return this.router.createUrlTree(snapshot.updateUrl(route.url))\n // } else {\n // return true;\n // }\n // });\n return true;\n }\n\n}\n","import { Trace } from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport { PlaceService } from '../place.service';\nimport { Visit } from '../visit';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterSanitiser } from './parameter-sanitiser';\n\nexport class DefaultParameterSanitiser<T, S> implements ParameterSanitiser<S> {\n\n private remember: boolean;\n private defaultValue: S;\n\n constructor(private def: ParameterDefinition<T, S>, private readonly placeService: PlaceService, options: ParameterSanitiser.Options<S>) {\n this.remember = _.isNil(options.remember) ? false : options.remember;\n this.defaultValue = _.isNil(options.defaultValue) ? null : options.defaultValue;\n }\n\n @Trace()\n sanitise(value: S, visit: Visit): Promise<S> | S {\n if (this.isBlank(value)) {\n if (this.remember) {\n // value = null;\n }\n return this.isBlank(value) && !_.isNil(this.defaultValue) ? this.defaultValue : value;\n\n } else {\n return value;\n }\n }\n\n private isBlank(value: S) {\n const isNil = _.isNil(value);\n return this.def.isArray ? !isNil || value['length'] < 1 : isNil;\n }\n}\n","export type JsonPrimitive = boolean | number | string;\nexport type AnyJson = JsonPrimitive | null | JsonArray | JsonMap;\nexport interface JsonArray extends Array<AnyJson> {}\nexport interface JsonMap { [key: string]: AnyJson; }\n\n","import { assert, Constructable, UseDelegate } from '@coolon/pectin';\nimport { Klass, Opts } from '@coolon/typescript-utilities';\nimport { ROUTE_PARAMETER_LIST_KEY } from '../place-component';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterSanitiser } from './parameter-sanitiser';\nimport { ParameterType } from './parameter-type';\n\nexport interface ParameterOptions<T> {\n as?: string;\n optional?: boolean;\n remember?: boolean;\n defaultValue?: T;\n sanitiser?: Constructable<ParameterSanitiser<T>> | ParameterSanitiser.Options<T>;\n}\n\nexport interface ListParameterOptions<T> {\n as?: string;\n optional?: boolean;\n remember?: boolean;\n defaultValue?: T[];\n sanitiser?: Constructable<ParameterSanitiser<T[]>> | ParameterSanitiser.Options<T[]>;\n}\n\nexport function RouteId<T extends string | number>(type: ParameterType<T>, options?: ParameterOptions<T>): PropertyDecorator {\n // assert.isTruthy(type.isValid());\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createDefinition(propertyKey, type, options, true);\n Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\nexport function RouteParameter<T>(type: ParameterType<T>, options?: ParameterOptions<T>): PropertyDecorator {\n // assert.isTruthy(type.isValid());\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createDefinition(propertyKey, type, options, false);\n Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\nexport function RouteParameterList<E>(elementType: ParameterType<E>, options?: ListParameterOptions<E>): PropertyDecorator {\n // assert.isTruthy(type.isValid());\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = createArrayDefinition(propertyKey, elementType, options);\n Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\nfunction createDefinition<T>(propertyName: symbol | string, type: ParameterType<T>, options: ParameterOptions<T>, routeId: boolean) {\n const opts = Opts.get(options);\n const propertyNameAsString = assert.notNil(propertyName).toString();\n const def: ParameterDefinition<T, T> = {\n name: opts.getOptional('as', propertyNameAsString),\n propertyName: propertyNameAsString,\n type: assert.notNil(type),\n sanitiser: opts.getOptional('sanitiser', null),\n isRouteId: routeId,\n isArray: false\n };\n return def;\n}\n\nfunction createArrayDefinition<T>(propertyName: symbol | string, type: ParameterType<T>, options: ListParameterOptions<T>) {\n const opts = Opts.get(options);\n const propertyNameAsString = assert.notNil(propertyName).toString();\n\n const def: ParameterDefinition<T, T[]> = {\n name: opts.getOptional('as', propertyNameAsString),\n propertyName: propertyNameAsString,\n type: assert.notNil(type),\n sanitiser: opts.getOptional('sanitiser', null),\n isRouteId: false,\n isArray: true\n };\n return def;\n}\n","import { Constructable } from '@coolon/pectin';\nimport { ParameterSanitiser } from './parameter-sanitiser';\nimport { ParameterType } from './parameter-type';\n\nexport interface ParameterDefinition<T,S=T> {\n readonly name: string;\n readonly propertyName: string;\n readonly type: ParameterType<T>;\n readonly sanitiser: Constructable<ParameterSanitiser<S>> | ParameterSanitiser.Options<S>;\n readonly isRouteId: boolean;\n readonly isArray: boolean;\n}\n","import { Visit } from '../visit';\n\nexport interface ParameterSanitiser<T> {\n sanitise(value: T, visit?: Visit): T | Promise<T>;\n}\n\nexport namespace ParameterSanitiser {\n export interface Options<T> {\n remember?: boolean\n defaultValue?: T\n }\n}\n","import * as _ from 'lodash';\n\nexport interface ParameterType<T> {\n format(value: T): string;\n\n parse(value: string): T;\n}\n\nexport namespace ParameterType {\n\n class StringType implements ParameterType<string> {\n format(value: string): string {\n return value;\n }\n\n parse(value: string): string {\n return value;\n }\n }\n\n class NumberType implements ParameterType<number> {\n format(value: number): string {\n return `${value}`;\n }\n\n parse(value: string): number {\n return _.isNil(value) || _.isEmpty(value) ? null : +value;\n }\n }\n\n class BooleanType implements ParameterType<boolean> {\n format(value: boolean): string {\n return value ? 'true' : 'false';\n }\n\n parse(value: string): boolean {\n return value === 'true';\n }\n }\n\n export const STRING = new StringType();\n export const NUMBER = new NumberType();\n export const BOOLEAN = new BooleanType();\n}\n","import { Injector, Type } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { assert, Constructable, lang, Trace } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport * as _ from 'lodash';\nimport { PlaceService } from '../place.service';\nimport { DefaultParameterSanitiser } from './default-parameter-sanitiser';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterSanitiser } from './parameter-sanitiser';\n\nexport class Sanitiser<T, S> {\n\n private initialValue: S;\n private _sanitisedValue: S;\n\n constructor(readonly parameterDef: ParameterDefinition<T, S>, readonly snapshot: ActivatedRouteSnapshot, readonly sanitiser: ParameterSanitiser<S>) {\n }\n\n isRouteId(): boolean {\n return this.parameterDef.isRouteId;\n }\n\n get valueChanged(): boolean {\n return !_.isNil(this.initialValue) && this.hasChanged(this.initialValue, this.sanitisedValue);\n }\n\n get sanitisedValue(): S {\n return this._sanitisedValue;\n }\n\n protected readFrom(snapshot: ActivatedRouteSnapshot): S {\n return lang.abstractMethod(this.constructor);\n }\n\n protected hasChanged(initialValue: S, sanitisedValue: S): boolean {\n return lang.abstractMethod(this.constructor);\n }\n\n injectRouteParam(dest: {}) {\n lang.abstractMethod(this.constructor);\n }\n\n async sanitize(): Promise<boolean> {\n if (this.sanitiser) {\n this.initialValue = this.readFrom(this.snapshot);\n this._sanitisedValue = await this.sanitiser.sanitise(this.initialValue);\n if (this.initialValue !== this._sanitisedValue) {\n return false;\n }\n }\n return true;\n }\n}\n\n\nexport class RouteParameterSanitiser {\n\n private readonly routeIdSanitiser: Sanitiser<any, any>;\n private readonly parameterSanitisers: Sanitiser<any, any>[] = [];\n\n constructor(readonly parameterDefs: ParameterDefinition<any>[],\n readonly snapshot: ActivatedRouteSnapshot,\n readonly placeService: PlaceService,\n readonly injector: Injector) {\n const sanitisers = parameterDefs.map(def => {\n return def.isArray ?\n new Sanitiser.Array(def, snapshot, this.getSanitiser(def)) :\n new Sanitiser.Value(def, snapshot, this.getSanitiser(def));\n });\n this.routeIdSanitiser = sanitisers.find(p => p.isRouteId());\n this.parameterSanitisers = sanitisers.filter(p => !p.isRouteId());\n }\n\n async sanitise(): Promise<boolean> {\n if (this.routeIdSanitiser) {\n await this.routeIdSanitiser.sanitize();\n if (this.routeIdSanitiser.valueChanged) {\n // if the route id isn't ok we redirect immediately as the query params may need to be sanitised in the\n // context of the route id.\n return false;\n }\n }\n for (const sanitiser of this.parameterSanitisers) {\n await sanitiser.sanitize();\n }\n return !this.parameterSanitisers.find(s => s.valueChanged);\n }\n\n @Memoize()\n private getSanitiser<T, S>(def: ParameterDefinition<T, S>): ParameterSanitiser<S> {\n if (def.sanitiser) {\n if (this.isSanitiserContructor<S>(def.sanitiser)) {\n return this.injector.get<ParameterSanitiser<S>>(def.sanitiser, new def.sanitiser());\n } else {\n return new DefaultParameterSanitiser(def, this.placeService, def.sanitiser);\n }\n } else {\n return null;\n }\n }\n\n routeIdHasChanged():boolean {\n assert.isTruthy(this.parameterSanitisers.length !== 0);\n return this.routeIdSanitiser && this.routeIdSanitiser.valueChanged;\n }\n\n @Trace()\n getRedirectParams(): any[] {\n if (this.routeIdHasChanged()) {\n return [this.routeIdSanitiser.sanitisedValue];\n } else {\n const routeParams = {};\n this.parameterSanitisers.forEach(s => s.injectRouteParam(routeParams));\n return [routeParams];\n }\n }\n\n private isSanitiserContructor<S>(value: any): value is Type<ParameterSanitiser<S>> {\n return _.isFunction(value) && lang.constructorChain(value as unknown as Constructable<any>).includes(Sanitiser);\n }\n}\n\nexport namespace Sanitiser {\n\n export class Value<T> extends Sanitiser<T, T> {\n\n readFrom(snapshot: ActivatedRouteSnapshot): T {\n const rawValue = snapshot.paramMap.get(this.parameterDef.name);\n return this.parameterDef.type.parse(rawValue);\n }\n\n protected hasChanged(initialValue: T, sanitisedValue: T): boolean {\n return initialValue !== sanitisedValue;\n }\n\n injectRouteParam(dest: {}) {\n dest[this.parameterDef.name] = this.parameterDef.type.format(this.sanitisedValue);\n }\n\n }\n\n export class Array<T> extends Sanitiser<T, T[]> {\n\n readFrom(snapshot: ActivatedRouteSnapshot): T[] {\n const rawValues = snapshot.paramMap.getAll(this.parameterDef.name);\n return rawValues.map(value => this.parameterDef.type.parse(value));\n }\n\n protected hasChanged(initialValue: T[], sanitisedValue: T[]): boolean {\n return initialValue !== sanitisedValue;\n }\n\n injectRouteParam(dest: {}) {\n dest[this.parameterDef.name] = this.sanitisedValue.map(v => this.parameterDef.type.format(v));\n }\n\n\n }\n\n}\n"],"names":["tslib_1.__extends","GarbageCollector","DelegatingFormValueModel","EventEmitter","Input","Output","HostListener","tslib_1.__decorate","UseDelegate","ValueModel","Component","ListModel","StoreInListModel","assert","UnaryCommand","lang","Directive","ElementRef","Inject","Logger","NgZone","DOCUMENT","InjectionToken","Injector","ComponentFactoryResolver","ViewContainerRef","ActivityOutletComponent","EventListenerList","DelegatingValueModel","Trace","MutableListModel","Deferred","ViewChild","ViewChildren","ActivityContainerComponent","Injectable","MatDialog","NgModule","CommonModule","MatButtonModule","MatDialogModule","MatTabsModule","PortalModule","StoreInValueModel","Memoize","ParameterSnapshot","_.isNil","_.isEqual","MutableValueModel","Binding","PlaceComponent","Klass","HostBinding","Router","style","query","group","animate","trigger","transition","ActivatedRoute","RouterOutlet","BrowserAnimationsModule","MatProgressSpinnerModule","RouterModule","MatListModule","MatTooltipModule","MatIconModule","FormsModule","MatInputModule","MatFormFieldModule","MatSelectModule","OptionsHelper","Bounds","ValueHolder","PRIMARY_OUTLET","isNil","Opts","_.isEmpty","ParameterType","Sanitiser","tslib_1.__values","_.isFunction"],"mappings":"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"}
1
+ {"version":3,"file":"coolon-angular-ui-powerups.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","ng://@coolon/angular-ui-powerups/lib/components/disposable-component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/abstract-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/number-input/number-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/password-input/password-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/select-input/select-input.component.ts","ng://@coolon/angular-ui-powerups/lib/components/forms/string-input/string-input.component.ts","ng://@coolon/angular-ui-powerups/lib/directives/command.directive.ts","ng://@coolon/angular-ui-powerups/lib/directives/focus-binding.directive.ts","ng://@coolon/angular-ui-powerups/lib/interaction/interaction-context.ts","ng://@coolon/angular-ui-powerups/lib/interaction/activity.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-outlet/activity-outlet.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/abstract-activity.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/alert-dialog/alert-dialog.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/confirmation-dialog/confirmation-dialog.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-container/activity-container.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/services/dialog-interaction.service.ts","ng://@coolon/angular-ui-powerups/lib/interaction/interaction.module.ts","ng://@coolon/angular-ui-powerups/lib/place/components/busy-overlay/busy-overlay.component.ts","ng://@coolon/angular-ui-powerups/lib/place/components/empty-state/empty-state.component.ts","ng://@coolon/angular-ui-powerups/lib/place/place-definition.ts","ng://@coolon/angular-ui-powerups/lib/place/place-component.ts","ng://@coolon/angular-ui-powerups/lib/place/components/abstract-place-navigation.component.ts","ng://@coolon/angular-ui-powerups/lib/place/components/list-place-nav/list-place-nav.component.ts","ng://@coolon/angular-ui-powerups/lib/place/place-history.ts","ng://@coolon/angular-ui-powerups/lib/place/place-router.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-definition.class.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-snapshot.ts","ng://@coolon/angular-ui-powerups/lib/place/components/place-outlet/route-animations.ts","ng://@coolon/angular-ui-powerups/lib/place/components/place-outlet/place-outlet.component.ts","ng://@coolon/angular-ui-powerups/lib/place/components/tabbed-place-navigation/tabbed-place-navigation.component.ts","ng://@coolon/angular-ui-powerups/lib/place/place.module.ts","ng://@coolon/angular-ui-powerups/lib/angular-ui-powerups.module.ts","ng://@coolon/angular-ui-powerups/lib/animations/slideDownAndUpAnimation.ts","ng://@coolon/angular-ui-powerups/lib/components/types/dimension.class.ts","ng://@coolon/angular-ui-powerups/lib/components/types/point.class.ts","ng://@coolon/angular-ui-powerups/lib/components/types/bounds.class.ts","ng://@coolon/angular-ui-powerups/lib/components/resize-aware.component.ts","ng://@coolon/angular-ui-powerups/lib/interaction/alert.ts","ng://@coolon/angular-ui-powerups/lib/interaction/confirm.ts","ng://@coolon/angular-ui-powerups/lib/interaction/result.ts","ng://@coolon/angular-ui-powerups/lib/interaction/components/activity-outlet/activity-outlet-context.ts","ng://@coolon/angular-ui-powerups/lib/place/nav-item.ts","ng://@coolon/angular-ui-powerups/lib/place/place.decorator.ts","ng://@coolon/angular-ui-powerups/lib/place/visit.ts","ng://@coolon/angular-ui-powerups/lib/place/guards/leave-place.guard.ts","ng://@coolon/angular-ui-powerups/lib/place/guards/place-route.guard.ts","ng://@coolon/angular-ui-powerups/lib/place/route/default-parameter-sanitiser.ts","ng://@coolon/angular-ui-powerups/lib/place/route/json-types.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-decorators.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-sanitiser.ts","ng://@coolon/angular-ui-powerups/lib/place/route/parameter-type.ts","ng://@coolon/angular-ui-powerups/lib/place/route/route-parameter-sanitiser.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\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 (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\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 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) : new P(function (resolve) { resolve(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 function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n 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}\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\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\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 __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\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 (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = 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","import { OnDestroy } from '@angular/core';\nimport { GarbageCollector } from '@coolon/pectin';\n\nexport class DisposableComponent extends GarbageCollector implements OnDestroy {\n\n ngOnDestroy(): void {\n this.dispose();\n }\n}\n","/* tslint:disable:no-input-rename */\nimport { EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material';\nimport { Command, DelegatingFormValueModel, ListModel, UseDelegate, ValueModel } from '@coolon/pectin';\nimport { DisposableComponent } from '../disposable-component';\n\nexport abstract class AbstractInputComponent<T> extends DisposableComponent implements OnInit {\n\n readonly valueModel = new DelegatingFormValueModel<T>();\n\n @Input('valueModel') @UseDelegate()\n set userValueModel(model: ValueModel<T>) {\n this.valueModel.setDelegate(model);\n }\n\n @Input() label: string;\n @Input() floatLabel: 'auto' | 'always' | 'never';\n @Input() hint: string;\n @Input() placeholder: string;\n\n @Input('command.focus') focusCommand: Command<any>;\n @Input('command.blur') blurCommand: Command<any>;\n @Input('command.enter') enterCommand: Command<any>;\n @Input('command.escape') escapeCommand: Command<any>;\n @Input('command.click') clickCommand: Command<any>;\n\n // TODO: fix this.\n // tslint:disable-next-line:no-output-native\n @Output() focus = new EventEmitter();\n // tslint:disable-next-line:no-output-native\n @Output() blur = new EventEmitter();\n // tslint:disable-next-line:no-output-native\n @Output() enterKey = new EventEmitter();\n // tslint:disable-next-line:no-output-native\n @Output() escapeKey = new EventEmitter();\n\n readonly errorStateMatcher: ErrorStateMatcher;\n\n @HostListener('click')\n notifyClick() {\n this.safelyInvoke(this.clickCommand);\n }\n\n @HostListener('focusin')\n notifyFocusIn() {\n this.safelyInvoke(this.focusCommand);\n this.focus.emit();\n }\n\n @HostListener('focusout')\n notifyFocusOut() {\n this.safelyInvoke(this.blurCommand);\n this.blur.emit();\n }\n\n\n notifyEnterKey() {\n this.safelyInvoke(this.enterCommand);\n this.enterKey.emit();\n }\n\n notifyEscapeKey() {\n this.safelyInvoke(this.escapeCommand);\n this.escapeKey.emit();\n }\n\n protected safelyInvoke(command: Command<any>) {\n if (command && command.enabled.value) {\n command.execute();\n }\n }\n\n constructor() {\n super();\n const self = this;\n this.errorStateMatcher = {\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n return self.hasErrors();\n }\n };\n }\n\n ngOnInit(): void {\n }\n\n isEnabled(): boolean {\n return this.enabled.value;\n }\n\n get enabled(): ValueModel<boolean> {\n return this.valueModel.enabled;\n }\n\n hasErrors(): boolean {\n return !this.errorList.query().isEmpty();\n }\n\n get errorList(): ListModel<string> {\n return this.valueModel.errorList;\n }\n\n get firstError() {\n return this.hasErrors() ? this.errorList.value[0] : null;\n }\n\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AbstractInputComponent } from '../abstract-input.component';\n\n\n@Component({\n selector: 'angular-ui-powerups-number-input',\n templateUrl: './number-input.component.html',\n styleUrls: ['./number-input.component.scss']\n})\nexport class NumberInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AbstractInputComponent } from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-password-input',\n templateUrl: './password-input.component.html',\n styleUrls: ['./password-input.component.scss']\n})\nexport class PasswordInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { ListModel, StoreInListModel, UseDelegate } from '@coolon/pectin';\nimport { AbstractInputComponent } from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-select-input',\n templateUrl: './select-input.component.html',\n styleUrls: ['./select-input.component.scss']\n})\nexport class SelectInputComponent<T = any> extends AbstractInputComponent<T> implements OnInit {\n\n @Input() @UseDelegate()\n optionsModel: ListModel<T>;\n\n @Input() @StoreInListModel('optionsModel')\n options: T[];\n\n @Input()\n optionLabel: keyof T;\n\n @Input()\n optionLabelFormat: (option: T) => any = (option) => (option && this.optionLabel) ? option[this.optionLabel] : option;\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\nimport { AbstractInputComponent } from '../abstract-input.component';\n\n@Component({\n selector: 'angular-ui-powerups-string-input',\n templateUrl: './string-input.component.html',\n styleUrls: ['./string-input.component.scss']\n})\nexport class StringInputComponent extends AbstractInputComponent<string> implements OnInit {\n\n constructor() {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, OnDestroy, OnInit } from '@angular/core';\nimport { assert, Command, Dsl, GarbageCollector, lang, UnaryCommand } from '@coolon/pectin';\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[pectinCommand]'\n})\nexport class CommandDirective<P = any> extends GarbageCollector implements OnInit, OnDestroy, AfterViewInit {\n\n @Input()\n pectinCommand: Command<any> | UnaryCommand<P>;\n\n private _commandParameter: P;\n private _commandParameterProvided = false;\n\n @Input()\n set commandParameter(value: P) {\n this._commandParameterProvided = true;\n this._commandParameter = value;\n }\n\n get commandParameter(): P {\n return this._commandParameter;\n }\n\n constructor(@Inject(ElementRef) private elementRef: ElementRef) {\n super();\n }\n\n ngOnInit(): void {\n assert.notNil(this.pectinCommand);\n if (this.pectinCommand instanceof UnaryCommand) {\n if (!this._commandParameterProvided) {\n lang.illegalState('UnaryCommands required the command parameter to be specified.');\n }\n } else {\n if (this._commandParameterProvided) {\n lang.illegalState('command parameters are only supported by UnaryCommands');\n }\n }\n }\n\n ngAfterViewInit(): void {\n // for some reason mat-buttons kills the disabled host binding. It works on a regular button but for now\n // we need to do this.\n const { chain } = Dsl.disposeWith(this);\n chain(this.pectinCommand.enabled).subscribe(enabled => {\n if (enabled) {\n this.elementRef.nativeElement.removeAttribute('disabled');\n if (this.elementRef.nativeElement.tagName === 'A') {\n this.elementRef.nativeElement.setAttribute('href', 'javascript:void');\n }\n } else {\n this.elementRef.nativeElement.setAttribute('disabled', 'disabled');\n if (this.elementRef.nativeElement.tagName === 'A') {\n this.elementRef.nativeElement.removeAttribute('href');\n }\n }\n });\n }\n\n ngOnDestroy(): void {\n this.dispose();\n }\n\n\n @HostListener('click', ['$event'])\n notifyClick($event: Event) {\n $event.preventDefault();\n $event.stopPropagation();\n if (this.pectinCommand.enabled.value) {\n if (this.pectinCommand instanceof UnaryCommand) {\n this.pectinCommand.withContext({ event: $event }).execute(this.commandParameter);\n } else {\n this.pectinCommand.withContext({ event: $event }).execute();\n }\n } else {\n console.warn('disabled command clicked, ignoring.');\n }\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { AfterViewInit, Directive, ElementRef, HostListener, Inject, Input, NgZone, OnInit } from '@angular/core';\nimport { Dsl, HasFocusTracking, Logger } from '@coolon/pectin';\nimport { DisposableComponent } from '../components/disposable-component';\n\n\n@Directive({\n // tslint:disable-next-line:directive-selector\n selector: '[pectinFocusBinding]'\n})\nexport class FocusBindingDirective extends DisposableComponent implements OnInit, AfterViewInit {\n\n private readonly document: Document;\n\n @Input() pectinFocusBinding: HasFocusTracking;\n @Input() focusBindingTarget: HTMLElement;\n\n @HostListener('focusin')\n onFocusIn() {\n if (this.hasBinding()) {\n this.pectinFocusBinding.focusContext.notifyFocusIn();\n }\n }\n\n @HostListener('focusout')\n onFocusOut() {\n if (this.hasBinding()) {\n this.pectinFocusBinding.focusContext.notifyFocusOut();\n }\n }\n\n constructor(@Inject(ElementRef) private readonly el: ElementRef,\n @Inject(NgZone) private readonly ngZone: NgZone,\n @Inject(DOCUMENT) document: any) {\n super();\n // @see https://stackoverflow.com/questions/49513359/could-not-resolve-type-document-in-angular5/53715642#53715642\n this.document = document as Document;\n }\n\n ngOnInit(): void {\n }\n\n ngAfterViewInit(): void {\n // TODO: Make this also track the current enabled/disabled state.\n if (this.hasBinding()) {\n const { chain } = Dsl.disposeWith(this);\n chain(this.pectinFocusBinding.focusContext.focused).subscribe((focused) => {\n if (focused && !this.alreadyHasFocus()) {\n this.tryAndFocus();\n }\n });\n } else {\n Logger.get(this).warn('pectinFocusBinding was nil');\n }\n }\n\n private hasBinding() {\n return !!this.pectinFocusBinding && !!this.pectinFocusBinding.focusContext;\n }\n\n// Hook method for debugging via tracing.\n alreadyHasFocus() {\n return this.isFocused(this.focusTarget);\n }\n\n // Hook method for debugging via tracing.\n isFocused(element: Element): boolean {\n return this.document.activeElement === element;\n }\n\n tryAndFocus(retries: number = 5) {\n if (this.modelShouldStillHaveFocus() && this.canFocus()) {\n if (!this.alreadyHasFocus()) {\n this.focusTarget.focus();\n }\n // if we didn't get the focus we try again later.\n if (!this.alreadyHasFocus()) {\n Logger.get(this).log(`focus failed, trying ${retries} more times`);\n if (retries > 0) {\n // try again on the next paint\n // TODO: is there an angular way of doing this without calling a window function.\n requestAnimationFrame(() => {\n this.tryAndFocus(retries - 1);\n });\n } else {\n Logger.get(this).warn(`Tried to focus but gave up as the component wasn't enabled or visible.`);\n }\n }\n }\n }\n\n get focusTarget(): HTMLElement {\n return this.focusBindingTarget || this.el.nativeElement;\n }\n\n // Hook method for debugging via tracing.\n modelShouldStillHaveFocus() {\n return this.hasBinding() && this.pectinFocusBinding.focusContext.focused.value;\n }\n\n // Hook method for debugging via tracing.\n canFocus(): boolean {\n const dimension = this.focusTarget.getBoundingClientRect();\n const hasSize = dimension.height >= 0 && dimension.height >= 0;\n // tslint:disable-next-line:no-string-literal\n return hasSize && !this.focusTarget['disabled'];\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Constructable } from '@coolon/pectin';\nimport { Activity } from './activity';\nimport { Alert } from './alert';\nimport { Confirm } from './confirm';\n\nexport const INTERACTION_CONTEXT = new InjectionToken<any>('InteractionContext');\n\nexport abstract class InteractionContext {\n\n abstract startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R>;\n\n abstract confirm(confirm: Confirm): Promise<boolean>;\n\n abstract alert(alert: Alert): Promise<void>;\n}\n","import { InjectionToken } from '@angular/core';\nimport { ValueModel } from '@coolon/pectin';\n\nexport const ACTIVITY_DATA = new InjectionToken<any>('InteractionActivityData');\n\nexport interface Activity<D, R, E = any> {\n readonly busy: ValueModel<boolean>;\n\n onDone(callback: Activity.CallBack<R>);\n\n onCancel(callback: Activity.CallBack<E>);\n\n}\n\nexport namespace Activity {\n export type CallBack<T> = (value: T) => void | Promise<any>;\n}\n","import {\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n Injector,\n Input,\n OnInit,\n ViewContainerRef\n} from '@angular/core';\nimport { Constructable, lang } from '@coolon/pectin';\nimport { Activity, ACTIVITY_DATA } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { ActivityOutletContext } from './activity-outlet-context';\n\n/**\n * ActivityOutletComponent creates and displays an activity and delegates the interaction context functionality to an\n * external service.\n *\n * It might be nice to have wrapper component that allows more declarative use, i.e.\n * <activity-view [activityClass]=\"...\", [activityData]=\"...\" (done)=\"..\" (cancel)=\"...\"></activity-view>\n */\n@Component({\n selector: 'angular-ui-powerups-activity-outlet',\n template: '',\n styleUrls: ['./activity-outlet.component.scss']\n})\nexport class ActivityOutletComponent<D, R, E> implements OnInit, InteractionContext {\n\n @Input()\n interactionContext: InteractionContext;\n\n @Input()\n set activityContext(activityContext: ActivityOutletContext<D, R, E>) {\n this.loadActivity(activityContext);\n };\n\n private activityComponentRef: ComponentRef<Activity<D, R, E>>;\n\n constructor(\n private componentFactoryResolver: ComponentFactoryResolver,\n private viewContainerRef: ViewContainerRef,\n private injector: Injector\n ) {\n }\n\n ngOnInit() {\n }\n\n loadActivity(activityContext: ActivityOutletContext<D, R, E>) {\n const injector = Injector.create({\n providers: [\n {\n provide: InteractionContext,\n useValue: this\n },\n { provide: ACTIVITY_DATA, useValue: activityContext.activityData }\n ],\n parent: this.injector\n });\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(activityContext.activityClass);\n this.viewContainerRef.clear();\n this.activityComponentRef = this.viewContainerRef.createComponent(componentFactory, 0, injector);\n this.activityComponentRef.instance.onDone(activityContext.onDone);\n this.activityComponentRef.instance.onCancel(activityContext.onCancel);\n }\n\n alert(alert: Alert): Promise<void> {\n return this.interactionContext.alert(alert);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.interactionContext.confirm(confirm);\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return this.interactionContext.startActivity(activityType, data);\n }\n\n notifyReady() {\n if (this.activityComponentRef.instance['onActivityReady']) {\n this.activityComponentRef.instance['onActivityReady']();\n }\n }\n}\n\nexport namespace ActivityOutletComponent {\n\n export class OutletInteractionContext<D, R, E> implements InteractionContext {\n\n constructor(private readonly context: ActivityOutletContext<D, R, E>) {\n }\n\n alert(alert: Alert): Promise<void> {\n return lang.notImplemented();\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return lang.notImplemented();\n }\n\n startActivity<D1, R1, E1>(activityType: Constructable<Activity<D1, R1, E1>>, data?: D1): Promise<R1> {\n return lang.notImplemented();\n }\n }\n\n}\n","import { DelegatingValueModel, EventListenerList, Trace, ValueModel } from '@coolon/pectin';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { Activity } from './activity';\n\nexport class AbstractActivity<D, R, E = any> extends DisposableComponent implements Activity<D, R, E> {\n\n private readonly _doneListeners = new EventListenerList<Activity.CallBack<R>>();\n private readonly _cancelListeners = new EventListenerList<Activity.CallBack<E>>();\n private readonly _finishListeners = new EventListenerList<() => void>();\n\n private readonly _busyModel = new DelegatingValueModel<boolean>().withDefault(false);\n\n onDone(callback: Activity.CallBack<R>) {\n this._doneListeners.add(callback);\n }\n\n onCancel(callback: Activity.CallBack<E>) {\n this._cancelListeners.add(callback);\n }\n\n done(result?: R): Promise<any> {\n return this._doneListeners\n .fireAndWait(l => l(result))\n .finally(() => this.finalizeAndDispose());\n }\n\n cancel(error?: E): Promise<any> {\n return this._cancelListeners\n .fireAndWait(l => l(error))\n .finally(() => this.finalizeAndDispose());\n }\n\n @Trace()\n onActivityReady() {\n }\n\n private finalizeAndDispose() {\n // this._activeModel.value = false;\n this._finishListeners.fire(l => l());\n // this._interactionContext = null;\n // this._initialized = false;\n [\n this._finishListeners,\n this._doneListeners,\n this._cancelListeners\n ].forEach(l => l.dispose());\n }\n\n\n get busy(): ValueModel<boolean> {\n return this._busyModel.readonly;\n }\n\n busyWhile(busyModel: ValueModel<boolean>) {\n this._busyModel.setDelegate(busyModel);\n }\n\n isBusy() {\n return this._busyModel.value;\n }\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { AbstractActivity } from '../../abstract-activity';\nimport { ACTIVITY_DATA } from '../../activity';\nimport { Alert } from '../../alert';\n\n@Component({\n selector: 'angular-ui-powerups-alert-dialog',\n templateUrl: './alert-dialog.component.html',\n styleUrls: ['./alert-dialog.component.scss']\n})\nexport class AlertDialogComponent extends AbstractActivity<Alert, void> implements OnInit {\n\n constructor(@Inject(ACTIVITY_DATA) readonly alert: Alert) {\n super();\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, Inject, OnInit } from '@angular/core';\nimport { assert } from '@coolon/pectin';\nimport { AbstractActivity } from '../../abstract-activity';\nimport { ACTIVITY_DATA } from '../../activity';\nimport { Confirm } from '../../confirm';\n\n@Component({\n selector: 'angular-ui-powerups-confirmation-dialog',\n templateUrl: './confirmation-dialog.component.html',\n styleUrls: ['./confirmation-dialog.component.scss']\n})\nexport class ConfirmationDialogComponent extends AbstractActivity<Confirm, boolean> implements OnInit {\n\n constructor(@Inject(ACTIVITY_DATA) readonly confirm: Confirm) {\n super();\n assert.notNil(confirm);\n }\n\n ngOnInit() {\n }\n\n isDestructive(): boolean {\n return this.confirm.destructive && this.confirm.destructive();\n }\n}\n","import { AfterViewInit, Component, Input, OnInit, QueryList, ViewChild, ViewChildren } from '@angular/core';\nimport { MatTabGroup } from '@angular/material';\nimport { Constructable, Dsl, MutableListModel, ValueModelChain } from '@coolon/pectin';\nimport { Deferred } from '@coolon/pectin/lib/promise/deferred.class';\nimport { DisposableComponent } from '../../../components/disposable-component';\n\nimport { Activity } from '../../activity';\nimport { Alert } from '../../alert';\nimport { Confirm } from '../../confirm';\nimport { InteractionContext } from '../../interaction-context';\nimport { ActivityOutletContext } from '../activity-outlet/activity-outlet-context';\nimport { ActivityOutletComponent } from '../activity-outlet/activity-outlet.component';\nimport { AlertDialogComponent } from '../alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from '../confirmation-dialog/confirmation-dialog.component';\n\n@Component({\n selector: 'angular-ui-powerups-activity-container',\n templateUrl: './activity-container.component.html',\n styleUrls: ['./activity-container.component.scss']\n})\nexport class ActivityContainerComponent extends DisposableComponent implements OnInit, AfterViewInit, InteractionContext {\n\n @Input()\n parentInteractionContext: InteractionContext;\n\n @Input()\n initialActivityOutlet: ActivityOutletContext<any, any, any>;\n\n @ViewChild('tabs', { static: true })\n tabs: MatTabGroup;\n\n @ViewChildren(ActivityOutletComponent)\n outlets: QueryList<ActivityOutletComponent<any, any, any>>;\n\n readonly activityOutletTabs = new MutableListModel<ActivityOutletContext<any, any, any>>();\n private obsoleteTabs: ActivityOutletContext<any, any, any>[] = [];\n private lastActivityTab: ValueModelChain<ActivityOutletContext<any, any, any>>;\n\n constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.lastActivityTab = chain(this.activityOutletTabs).last().otherwise(this.initialActivityOutlet);\n }\n\n ngOnInit() {\n }\n\n ngAfterViewInit(): void {\n const { observe } = Dsl.disposeWith(this);\n observe.valuesFrom(this.tabs.animationDone).subscribe(() => this.onAnimationFinished());\n }\n\n initialise<D, R, E>(options: ActivityContainerComponent.ActivityContext<D, R, E>) {\n this.initialActivityOutlet = {\n ...options,\n interactionContext: this\n };\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n const deferred = Deferred.defer<R>();\n const context = {\n interactionContext: this,\n activityClass: activityType,\n activityData: data,\n onDone: deferred.resolve,\n onCancel: deferred.reject\n };\n this.activityOutletTabs.push(context);\n this.tabs.selectedIndex = this.activityOutletTabs.length;\n return deferred.promise.finally(() => {\n this.obsoleteTabs.push(context);\n this.tabs.selectedIndex = this.activityOutletTabs.length - 1;\n });\n }\n\n alert(alert: Alert): Promise<void> {\n return this.startActivity(AlertDialogComponent, alert);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this.startActivity(ConfirmationDialogComponent, confirm);\n }\n\n private onAnimationFinished() {\n this.activityOutletTabs.value = this.activityOutletTabs.value.filter(tab => {\n return !this.obsoleteTabs.includes(tab);\n });\n this.outlets.toArray()[this.tabs.selectedIndex].notifyReady();\n }\n}\n\nexport namespace ActivityContainerComponent {\n\n export interface ActivityContext<D, R, E> {\n activityClass: Constructable<Activity<D, R, E>>,\n activityData: D,\n onDone: (result: R) => void,\n onCancel: (error: E) => void,\n }\n}\n","import { Injectable } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material';\nimport { Constructable } from '@coolon/pectin';\nimport { assert } from '@coolon/typescript-utilities';\nimport { Activity } from '../activity';\nimport { Alert } from '../alert';\nimport { ActivityContainerComponent } from '../components/activity-container/activity-container.component';\nimport { AlertDialogComponent } from '../components/alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from '../components/confirmation-dialog/confirmation-dialog.component';\nimport { Confirm } from '../confirm';\nimport { InteractionContext } from '../interaction-context';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogInteractionService extends InteractionContext {\n\n constructor(private readonly dialogService: MatDialog) {\n super();\n assert.notNil(dialogService);\n }\n\n startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data?: D): Promise<R> {\n return this._startActivity(activityType, data);\n }\n\n private _startActivity<D, R, E>(activityType: Constructable<Activity<D, R, E>>, data: D, disableClose: boolean = true) {\n const config = {\n data,\n disableClose,\n panelClass: 'dialog-interaction-service',\n autoFocus: false\n };\n const matDialogRef = this.dialogService.open(ActivityContainerComponent, config) as MatDialogRef<ActivityContainerComponent>;\n return new Promise<R>((resolve, reject) => {\n const activityContainer = matDialogRef.componentInstance;\n activityContainer.parentInteractionContext = this;\n activityContainer.initialise({\n activityClass: activityType,\n activityData: data,\n onDone(result) {\n resolve(result);\n matDialogRef.close(result);\n },\n onCancel(error) {\n reject(error);\n matDialogRef.close(error);\n }\n });\n\n matDialogRef.updateSize();\n });\n }\n\n alert(alert: Alert): Promise<void> {\n return this._startActivity(AlertDialogComponent, alert, false);\n }\n\n confirm(confirm: Confirm): Promise<boolean> {\n return this._startActivity(ConfirmationDialogComponent, confirm, true);\n }\n\n}\n","import { PortalModule } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule, MatDialogModule, MatTabsModule } from '@angular/material';\nimport { ActivityContainerComponent } from './components/activity-container/activity-container.component';\nimport { ActivityOutletComponent } from './components/activity-outlet/activity-outlet.component';\nimport { AlertDialogComponent } from './components/alert-dialog/alert-dialog.component';\nimport { ConfirmationDialogComponent } from './components/confirmation-dialog/confirmation-dialog.component';\nimport { DialogInteractionService } from './services/dialog-interaction.service';\n\n@NgModule({\n imports: [\n CommonModule,\n MatButtonModule,\n MatDialogModule,\n MatTabsModule,\n PortalModule\n ],\n declarations: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n AlertDialogComponent,\n ActivityOutletComponent\n ],\n exports: [\n ActivityContainerComponent,\n ActivityOutletComponent\n ],\n entryComponents: [\n ActivityContainerComponent,\n ConfirmationDialogComponent,\n AlertDialogComponent\n ],\n providers: [\n DialogInteractionService\n ]\n})\nexport class InteractionModule {\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { StoreInValueModel, UseDelegate, ValueModel } from '@coolon/pectin';\n\n@Component({\n selector: 'angular-ui-powerups-busy-overlay',\n templateUrl: `./busy-overlay.component.html`,\n styleUrls: ['./busy-overlay.component.scss']\n})\nexport class BusyOverlayComponent implements OnInit {\n\n @Input() @UseDelegate()\n busyModel: ValueModel<boolean>;\n\n @Input() @StoreInValueModel('busyModel')\n busy: boolean;\n\n constructor() {\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'angular-ui-powerups-empty-state',\n template: `\n <div class=\"container\">\n <ng-content></ng-content>\n </div>\n `,\n styleUrls: ['./empty-state.component.scss']\n})\nexport class EmptyStateComponent implements OnInit {\n\n constructor() {\n }\n\n ngOnInit() {\n }\n}\n","import { Constructable } from '@coolon/pectin';\nimport _ from 'lodash';\nimport { PlaceComponent } from './place-component';\nimport { ParameterDefinition } from './route/parameter-definition.class';\n\nexport class PlaceDefinition {\n\n constructor(readonly component:Constructable<PlaceComponent>,\n readonly path: string,\n readonly authenticate: boolean,\n readonly order: number,\n readonly data: { [key: string]: any },\n readonly routeParameters: ParameterDefinition<any>[],\n readonly children: PlaceDefinition[]) {\n }\n\n getRouteParameters(): ParameterDefinition<any>[] {\n return this.routeParameters;\n }\n\n getData<T>(key: string, defaultValue?: T): T {\n return this.data ?\n _.isNil(this.data[key]) ? defaultValue : this.data[key] :\n defaultValue;\n }\n\n searchData<T>(keys: string[], defaultValue?: T): T {\n if (this.data) {\n const found = keys.find(key => !_.isNil(this.data[key]));\n return found ? this.data[found] : defaultValue;\n } else {\n return defaultValue;\n }\n }\n}\n","import { assert, Binding, Constructable, IMutableHasValue, lang, ValueModel } from '@coolon/pectin';\nimport { Klass } from '@coolon/typescript-utilities';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator';\nimport 'reflect-metadata';\nimport { DisposableComponent } from '../components/disposable-component';\nimport { PlaceDefinition } from './place-definition';\nimport { ParameterDefinition } from './route/parameter-definition.class';\nimport { ParameterSnapshot } from './route/parameter-snapshot';\n\n// RAKE: making this Symbol(...) broke things.\nexport const DEFINITION_META_DATA_KEY = 'PLACE_DEFINITION_OPTIONS';\n// this one seems ok.\nexport const ROUTE_PARAMETER_LIST_KEY = Symbol('place:route:parameters');\n\nexport class PlaceComponent extends DisposableComponent {\n\n private resolvedParameters: ValueModel<ParameterSnapshot>;\n\n constructor() {\n super();\n }\n\n public initialiseBindings(resolvedParameters: ValueModel<ParameterSnapshot>) {\n assert.isNil(this.resolvedParameters);\n this.resolvedParameters = resolvedParameters;\n this.placeDefinition.getRouteParameters().forEach(parameterDef => {\n this.installBinding(parameterDef);\n });\n }\n\n private installBinding<T, S>(parameterDef: ParameterDefinition<T, S>) {\n const model = this[parameterDef.propertyName] as IMutableHasValue<S>;\n // this.txo.observe(parameterDef.propertyName, model);\n this.registerDisposable(new Binding(this.resolvedParameters, model, {\n toRight(parameters: ParameterSnapshot): S {\n return parameters.getResolvedParameterValue(parameterDef);\n },\n toLeft(value: S, currentParameters?: ParameterSnapshot): ParameterSnapshot {\n return currentParameters.replace(parameterDef, value);\n }\n }));\n }\n\n @Memoize()\n get placeDefinition(): PlaceDefinition {\n return PlaceComponent.getDefinition(this.constructor as any as Constructable<PlaceComponent>);\n }\n\n get childPlaces(): Constructable<PlaceComponent>[] {\n return this.placeDefinition.children.map(d => d.component);\n }\n\n canDeactivate(): boolean | Promise<boolean> {\n return true;\n }\n\n onPlaceReady() {\n }\n\n}\n\nexport namespace PlaceComponent {\n\n export function isPlaceComponentConstructor(target: any): target is Constructable<PlaceComponent> {\n return lang.constructorChain(target as Constructable<any>).includes(PlaceComponent);\n }\n\n export function getRouteParameters(klass: Constructable<PlaceComponent>): ParameterDefinition<any>[] {\n return Klass.get(klass).getMetadataList(ROUTE_PARAMETER_LIST_KEY);\n }\n\n export function getDefinition(klass: Constructable<PlaceComponent>): PlaceDefinition {\n return Reflect.getMetadata(DEFINITION_META_DATA_KEY, klass);\n }\n\n export function injectDefinition(klass: Constructable<PlaceComponent>, definition: PlaceDefinition) {\n Reflect.defineMetadata(DEFINITION_META_DATA_KEY, definition, klass);\n }\n\n}\n","import { Input, OnInit } from '@angular/core';\nimport { Constructable, Dsl, ListModel, ListModelChain, StoreInListModel, UseDelegate } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport { DisposableComponent } from '../../components/disposable-component';\nimport { NavItem } from '../nav-item';\nimport { PlaceComponent } from '../place-component';\nimport { PlaceDefinition } from '../place-definition';\n\nexport class AbstractPlaceNavigationComponent extends DisposableComponent implements OnInit {\n\n @Input() @StoreInListModel('placesModel')\n places: Constructable<PlaceComponent>[];\n\n @Input() @UseDelegate()\n placesModel: ListModel<Constructable<PlaceComponent>>;\n\n readonly placeDefinitions: ListModelChain<PlaceDefinition>;\n\n constructor() {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n this.placeDefinitions = chain(this.placesModel).map(c => PlaceComponent.getDefinition(c));\n }\n\n @Memoize()\n getNav(placeDef: PlaceDefinition): NavItem {\n const navItem = placeDef.getData('nav') as NavItem;\n return {\n title: () => navItem ? navItem.title() : placeDef.searchData(['navTitle', 'title']),\n tooltip: () => navItem && navItem.tooltip ? navItem.tooltip() : placeDef.getData('navTooltip', null),\n icon: () => navItem && navItem.icon ? navItem.icon() : placeDef.getData('navIcon', null)\n };\n }\n\n ngOnInit() {\n }\n\n}\n","import { Component, HostBinding } from '@angular/core';\nimport { AbstractPlaceNavigationComponent } from '../abstract-place-navigation.component';\n\n@Component({\n selector: 'angular-ui-powerups-list-place-nav',\n templateUrl: './list-place-nav.component.html',\n styleUrls: ['./list-place-nav.component.scss']\n})\nexport class ListPlaceNavComponent extends AbstractPlaceNavigationComponent {\n\n @HostBinding('class.expanded')\n public expanded = true;\n\n constructor() {\n super();\n }\n\n expandMenu() {\n this.expanded = true;\n }\n\n collapseMenu() {\n this.expanded = false;\n }\n\n toggleMenu() {\n this.expanded = !this.expanded;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Logger, Trace } from '@coolon/pectin';\nimport _ from 'lodash';\nimport { ParameterSnapshot } from './route/parameter-snapshot';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceHistory {\n\n private _history: ParameterSnapshot[];\n\n constructor(private readonly router: Router) {\n this._history = [];\n }\n\n add(state: ParameterSnapshot) {\n const previousState = _.last(this._history);\n if (!previousState || state.hasChanged(previousState)) {\n this._history.push(state);\n // limit our history to 100 visits\n this._history = this._history.slice(-100);\n }\n }\n\n // previousVisit(): Visit {\n // return _.last(this._history);\n // }\n //\n // withPreviousVisit<R>(callback:(previousVisit:Visit)=>R, defaultValue:R = null):R{\n // const visit = this.previousVisit();\n // return visit ? callback(visit) : defaultValue;\n // }\n //\n // previousVisitTo(place: Place): Visit {\n // return new VisitHistory.Query(this._history).to(place).last();\n // }\n}\n\nexport namespace VisitHistory {\n\n // export class Query {\n // private _history: Visit.State[];\n // private _places: Place[];\n // private _predicate: (visit: any) => boolean;\n // private _limit: number;\n //\n // constructor(history, limit = history.length) {\n // this._history = history;\n // this._places = [];\n // this._predicate = (visit => true);\n // this._limit = limit;\n // }\n //\n // to(...places:Place[]):this {\n // this._places = places;\n // return this;\n // }\n //\n // with(parameters: { [parameter: string]: any }): this {\n // this.matching(state => {\n // return Object.keys(parameters).reduce((acc, key) => {\n // const matchValue = parameters[key];\n // const visitValue = state.get(key);\n // const matched = matchValue === '*' ? !_.isNil(visitValue) : visitValue == matchValue;\n // // Logger.get(this).info(`matched=${matched}`, parameters, visitValue);\n // return acc && matched;\n // }, true);\n // });\n // return this;\n // }\n //\n // last(): Visit.State {\n // return _.findLast(this._history, visit => this._matches(visit))\n // }\n //\n // // @trace\n // allThatMatch(): Visit.State[] {\n // return _.filter(this._history, visit => this._matches(visit)).slice(-this._limit);\n // }\n //\n // // @trace\n // mostRecentValueOf<T=any>(param: string, defaultValue: T = null): T {\n // const lastStateWithParam = _.findLast(this.allThatMatch(), state => !_.isNil(state.get(param)));\n // return _.isNil(lastStateWithParam) ? defaultValue : lastStateWithParam.get(param);\n // }\n //\n // limit(limit: number): this {\n // this._limit = limit;\n // return this;\n // }\n //\n // matching(predicate: (visit: Visit.State) => boolean): this {\n // this._predicate = predicate;\n // return this;\n // }\n //\n // _matches(visit: Visit.State) {\n // return this._isPlaceMatch(visit) && this._predicate(visit);\n // }\n //\n // _isPlaceMatch(visit: Visit.State) {\n // return this._places.length < 1 || this._places.includes(visit.place)\n // }\n //\n // }\n\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute, ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { Trace } from '@coolon/pectin';\nimport _ from 'lodash';\nimport { ParameterSnapshot } from './route/parameter-snapshot';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceRouter {\n constructor(private readonly router: Router) {\n }\n\n pushParameterChangesToRoute(activatedRoute: ActivatedRoute, previous: ParameterSnapshot, next: ParameterSnapshot) {\n this.router.navigate(this.redirect(activatedRoute.snapshot, previous, next), {\n relativeTo: activatedRoute\n });\n }\n\n createUrlTree(activatedRoute: ActivatedRouteSnapshot, sanitised: ParameterSnapshot, snapshot: ParameterSnapshot) {\n return this.router.createUrlTree(this.redirect(activatedRoute, snapshot, sanitised));\n }\n\n protected redirect(activatedRoute: ActivatedRouteSnapshot, previous: ParameterSnapshot, next: ParameterSnapshot) {\n const childSegments = _.flatten(activatedRoute.children.map(child => child.url));\n const relativePath = !!previous.hasRouteId() ? '..' : '.';\n const routeId = next.getFormattedRouteId();\n const path = routeId ?\n [relativePath, routeId, next.getFormattedParameters()] :\n [relativePath, next.getFormattedParameters()];\n return path.concat(childSegments.map(s => s.path));\n }\n\n}\n","import { Injector } from '@angular/core';\nimport { Opts } from '@coolon/typescript-utilities';\nimport { DefaultParameterSanitiser } from './default-parameter-sanitiser';\nimport { ParameterSanitiser } from './parameter-sanitiser';\nimport { ParameterType } from './parameter-type';\n\nexport abstract class ParameterDefinition<T, S = T> {\n abstract readonly isRouteId: boolean;\n abstract readonly isArray: boolean;\n\n readonly name: string;\n readonly sanitiser: DefaultParameterSanitiser<T, S>;\n\n constructor(readonly propertyName: string, readonly type: ParameterType<T>, options: ParameterDefinition.Options<S>) {\n const opts = Opts.get(options);\n this.name = opts.getOptional('as', propertyName);\n // this.sanitiser = new DefaultParameterSanitiser(\n // this,\n // opts.getOptional('remember', false),\n // opts.getOptional('defaultValue', null)\n // );\n }\n\n getSanitiser(injector:Injector):ParameterSanitiser<S> {\n return this.sanitiser;\n }\n}\n\nexport namespace ParameterDefinition {\n\n export interface Options<T> {\n as?: string;\n optional?: boolean;\n remember?: boolean;\n defaultValue?: T;\n // sanitiser?: Constructable<ParameterSanitiser<T>> | ParameterSanitiser.Options<T>;\n }\n\n export class RouteId<T> extends ParameterDefinition<T> {\n readonly isRouteId = true;\n readonly isArray = false;\n }\n\n export class ValueParameter<T> extends ParameterDefinition<T> {\n readonly isRouteId = false;\n readonly isArray = false;\n }\n\n export class ArrayParameter<T> extends ParameterDefinition<T, T[]> {\n readonly isRouteId = false;\n readonly isArray = true;\n }\n\n\n}\n","import { Injector } from '@angular/core';\nimport { ParamMap, UrlSegment } from '@angular/router';\nimport { assert, Trace } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport _ from 'lodash';\nimport { PlaceDefinition } from '../place-definition';\nimport { Visit } from '../visit';\nimport { ParameterDefinition } from './parameter-definition.class';\n\nexport class ParameterSnapshot implements Visit {\n\n constructor(readonly placeDefinition: PlaceDefinition, private readonly resolved: ParameterSnapshot.ResolvedParameter<any, any>[]) {\n }\n\n hasChanged(other: ParameterSnapshot): boolean {\n const changed = this.resolved.find((r) => {\n return !r.isSame(other.getResolvedParameterValue(r.parameterDef));\n });\n // if (changed) {\n // console.log({ mine: changed, theirs: other.getResolvedParameter(changed.parameterDef) });\n // }\n return !!changed;\n }\n\n @Memoize()\n getResolvedParameter<T, S>(parameterDef: ParameterDefinition<T, S>): ParameterSnapshot.ResolvedParameter<T, S> {\n return this.resolved.find(r => r.parameterDef === parameterDef);\n }\n\n @Memoize()\n getResolvedParameterValue<T, S>(parameterDef: ParameterDefinition<T, S>): S {\n const resolvedParameter = this.getResolvedParameter(parameterDef);\n return resolvedParameter ? resolvedParameter.value : null;\n }\n\n getRouteId(): any {\n return this.getResolvedRouteId() ? this.getResolvedRouteId().value : null;\n }\n\n @Memoize()\n getRouteParameter(name: string): any {\n const resolvedParameter = this.resolved.find(r => r.parameterDef.name === name);\n return resolvedParameter ? resolvedParameter.value : null;\n }\n\n @Memoize()\n private getResolvedRouteId(): ParameterSnapshot.ResolvedValueParameter<any> {\n // RouteId's are never arrays: see parameter-decorators.ts createDefinition methods. It would be nice to\n // capture this in the type system though\n return this.resolved.find(p => p.parameterDef.isRouteId) as ParameterSnapshot.ResolvedValueParameter<any>;\n }\n\n hasRouteId() {\n return !!this.getResolvedRouteId();\n }\n\n getFormattedRouteId(): string {\n const routeIdParam = this.getResolvedRouteId();\n return routeIdParam ? routeIdParam.formattedValue() : null;\n }\n\n getFormattedParameters() {\n const params = {};\n const routeIdParam = this.resolved.filter(p => !p.parameterDef.isRouteId).forEach(p => {\n params[p.parameterDef.name] = p.formattedValue();\n });\n return params;\n }\n\n replace<T, S>(parameter: ParameterDefinition<T, S>, value: S): ParameterSnapshot {\n return new ParameterSnapshot(this.placeDefinition, this.resolved.map(p => {\n return p.parameterDef === parameter ? p.replace(value) : p;\n }));\n }\n\n async sanitise(injector: Injector):Promise<ParameterSnapshot> {\n return this;\n }\n}\n\nexport namespace ParameterSnapshot {\n\n export function create(placeDef: PlaceDefinition, paramMap: ParamMap): ParameterSnapshot {\n const resolvedParameters: ResolvedParameter<any, any>[] = placeDef.getRouteParameters()\n .map(def => {\n if (def.isArray) {\n const value = paramMap.has(def.name) ? paramMap.getAll(def.name).map(raw => def.type.parse(raw)) : null;\n return new ResolvedArrayParameter(def, value);\n } else {\n const value = paramMap.has(def.name) ? def.type.parse(paramMap.get(def.name)) : null;\n return new ResolvedValueParameter(def, value);\n }\n });\n return new ParameterSnapshot(placeDef, resolvedParameters);\n }\n\n\n export abstract class ResolvedParameter<T, S = T> {\n constructor(readonly parameterDef: ParameterDefinition<T, S>, readonly value: S) {\n }\n\n abstract injectRouteParam(dest: {}): void;\n\n abstract isSame(otherValue: S): boolean;\n\n isRouteId(): boolean {\n return this.parameterDef.isRouteId;\n }\n\n abstract formattedValue(): string | string[];\n\n abstract replace(value: S): ResolvedParameter<T, S>;\n }\n\n export class ResolvedValueParameter<T> extends ResolvedParameter<T, T> {\n\n isSame(otherValue: T): boolean {\n return this.value === otherValue;\n }\n\n injectRouteParam(dest: {}): void {\n dest[this.parameterDef.name] = this.parameterDef.type.format(this.value);\n }\n\n replace(value: T): ParameterSnapshot.ResolvedParameter<T, T> {\n return new ResolvedValueParameter<T>(this.parameterDef, value);\n }\n\n formattedValue(): string {\n return !_.isNil(this.value) ? this.parameterDef.type.format(this.value) : null;\n }\n }\n\n export class ResolvedArrayParameter<T> extends ResolvedParameter<T, T[]> {\n\n isSame(otherValue: T[]): boolean {\n return _.isEqual(this.value, otherValue);\n }\n\n injectRouteParam(dest: {}): void {\n dest[this.parameterDef.name] = this.value.map(v => this.parameterDef.type.format(v));\n }\n\n replace(value: T[]): ParameterSnapshot.ResolvedParameter<T, T[]> {\n return new ResolvedArrayParameter<T>(this.parameterDef, value);\n }\n\n formattedValue(): string[] {\n return this.value ? this.value.map(v => this.parameterDef.type.format(v)) : [];\n }\n\n }\n\n}\n","import { animate, group, query, style, transition, trigger } from '@angular/animations';\n\n// Freezes the state of the components at the start of the animation.\nconst animationStartStyle = style({ position: 'absolute', top: '0', left: '0', bottom: '0', right: '0' });\n\nconst left = [\n query(':enter, :leave', animationStartStyle, { optional: true }),\n group([\n query(':enter', [\n style({ transform: 'translateX(-100%)' }),\n animate('{{duration}} ease-out', style({ transform: 'translateX(0%)' }))\n ], {\n optional: true\n }),\n query(':leave', [\n style({ transform: 'translateX(0%)' }),\n animate('{{duration}} ease-out', style({ transform: 'translateX(100%)' }))\n ], {\n optional: true\n })\n ])\n];\n\nconst right = [\n query(':enter, :leave', animationStartStyle, { optional: true }),\n group([\n query(':enter', [\n style({ transform: 'translateX(100%)' }),\n animate('{{duration}} ease-out', style({ transform: 'translateX(0%)' }))\n ], {\n optional: true\n }),\n query(':leave', [style({ transform: 'translateX(0%)' }), animate('{{duration}} ease-out', style({ transform: 'translateX(-100%)' }))], {\n optional: true\n })\n ])\n];\n\nexport function leftRightPlaceAnimation(duration: string) {\n return trigger('routeAnimations', [\n transition(':increment', right, { params: { duration: duration } }),\n transition(':decrement', left, { params: { duration: duration } })\n ]);\n}\n\nexport const LEFT_RIGHT_PLACE_ANIMATION = leftRightPlaceAnimation('0.3s');\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { ActivatedRoute, ParamMap, RouterOutlet } from '@angular/router';\nimport { BooleanValueModelChain, Dsl, Guard, MutableValueModel, ValueModel, ValueModelChain } from '@coolon/pectin';\nimport { DisposableComponent } from '../../../components/disposable-component';\nimport { PlaceDefinition } from '../../place-definition';\nimport { PlaceHistory } from '../../place-history';\nimport { PlaceRouter } from '../../place-router';\n\nimport { ParameterSnapshot } from '../../route/parameter-snapshot';\nimport { LEFT_RIGHT_PLACE_ANIMATION } from './route-animations';\n\n// Quick hack to avoid circular references between this and PlaceComponents.\ninterface PlaceRef {\n readonly placeDefinition: PlaceDefinition\n\n initialiseBindings(param: ValueModel<ParameterSnapshot>): void;\n\n onPlaceReady(): void;\n}\n\n@Component({\n selector: 'angular-ui-powerups-place-outlet',\n templateUrl: './place-outlet.component.html',\n styleUrls: ['./place-outlet.component.scss'],\n animations: [LEFT_RIGHT_PLACE_ANIMATION]\n})\nexport class PlaceOutletComponent extends DisposableComponent implements OnInit {\n\n @Input()\n animate = true;\n\n @ViewChild('routeOutlet', { static: true })\n routerOut: RouterOutlet;\n\n private _currentPlace: PlaceRef;\n\n private readonly _incomingRouteChange = new Guard();\n private readonly _inOutletUpdate = new Guard();\n private readonly _activatedRouteModel = new MutableValueModel<ActivatedRoute>();\n private readonly _placeDefinition = new MutableValueModel<PlaceDefinition>();\n private readonly _paramMap: ValueModelChain<ParamMap>;\n\n readonly _resolvedParameters = new MutableValueModel<ParameterSnapshot>();\n private placeConfigured: BooleanValueModelChain;\n\n constructor(private readonly router: PlaceRouter, private readonly placeHistory: PlaceHistory) {\n super();\n const { chain, valueOf, before, when, after, observe, switchOn } = Dsl.disposeWith(this);\n\n this._paramMap = chain(this._activatedRouteModel).pullObservableValue(ar => ar.paramMap);\n\n this.placeConfigured = valueOf.all(\n chain(this._inOutletUpdate).isFalsey(),\n this._placeDefinition,\n this._paramMap\n ).areTruthy();\n\n when.valueOf(this._paramMap).changes((params) => {\n const snapshot = ParameterSnapshot.create(this._placeDefinition.value, params);\n this._incomingRouteChange.whileTrue(() => {\n this._resolvedParameters.value = snapshot;\n this.placeHistory.add(snapshot);\n });\n }, {\n postponeUntil: this.placeConfigured\n });\n\n when.valueOf(this._resolvedParameters).changes((next, previous) => {\n this.pushChangesToRoute(next, previous);\n this.placeHistory.add(next); // the above route change doesn't seem to propagate back in, so I'm add the state to the history manually for now.\n }, {\n unless: this.incomingRouteChange\n });\n }\n\n get incomingRouteChange(): ValueModel<boolean> {\n return this._incomingRouteChange;\n }\n\n ngOnInit() {\n }\n\n onOutletActivated(routerOutlet: RouterOutlet, place: PlaceRef) {\n this._inOutletUpdate.whileTrue(() => {\n try {\n this._currentPlace = place;\n this._activatedRouteModel.value = routerOutlet.activatedRoute;\n this._placeDefinition.value = place.placeDefinition;\n place.initialiseBindings(this._resolvedParameters);\n } catch (error) {\n console.error(error);\n }\n });\n if (!this.animate) {\n // we're not animating so trigger any post animation callbacks now.\n this.animationDone();\n }\n }\n\n onOutletDeactivated(routerOutlet: RouterOutlet, $event: PlaceRef) {\n this._inOutletUpdate.whileTrue(() => {\n this._currentPlace = null;\n this._activatedRouteModel.value = null;\n this._placeDefinition.value = null;\n });\n }\n\n getPlaceOrder(outlet: RouterOutlet) {\n return this.animate && outlet && outlet.activatedRouteData && outlet.activatedRouteData['placeOrder'];\n }\n\n animationDone() {\n if (this._currentPlace) {\n this._currentPlace.onPlaceReady();\n }\n }\n\n pushChangesToRoute(next: ParameterSnapshot, previous: ParameterSnapshot) {\n const activatedRoute = this._activatedRouteModel.value;\n this.router.pushParameterChangesToRoute(activatedRoute, previous, next);\n }\n\n sanitise(snapshot: ParameterSnapshot, callback: (sanitised: ParameterSnapshot) => void) {\n return snapshot;\n }\n\n\n}\n","import { Component } from '@angular/core';\nimport { AbstractPlaceNavigationComponent } from '../abstract-place-navigation.component';\n\n@Component({\n selector: 'angular-ui-powerups-tabbed-place-navigation',\n templateUrl: './tabbed-place-navigation.component.html',\n styleUrls: ['./tabbed-place-navigation.component.scss']\n})\nexport class TabbedPlaceNavigationComponent extends AbstractPlaceNavigationComponent {\n constructor() {\n super();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatProgressSpinnerModule } from '@angular/material';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { RouterModule } from '@angular/router';\nimport { BusyOverlayComponent } from './components/busy-overlay/busy-overlay.component';\nimport { EmptyStateComponent } from './components/empty-state/empty-state.component';\nimport { ListPlaceNavComponent } from './components/list-place-nav/list-place-nav.component';\nimport { PlaceOutletComponent } from './components/place-outlet/place-outlet.component';\nimport { TabbedPlaceNavigationComponent } from './components/tabbed-place-navigation/tabbed-place-navigation.component';\n\n@NgModule({\n imports: [\n CommonModule,\n BrowserAnimationsModule,\n MatProgressSpinnerModule,\n RouterModule,\n MatTabsModule,\n MatListModule,\n MatTooltipModule,\n MatIconModule\n ],\n declarations: [\n EmptyStateComponent,\n BusyOverlayComponent,\n PlaceOutletComponent,\n TabbedPlaceNavigationComponent,\n ListPlaceNavComponent\n ],\n entryComponents: [BusyOverlayComponent],\n exports: [\n BusyOverlayComponent,\n PlaceOutletComponent,\n EmptyStateComponent,\n TabbedPlaceNavigationComponent,\n ListPlaceNavComponent\n ],\n providers: []\n})\nexport class PlaceModule {\n\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatFormFieldModule, MatInputModule, MatSelectModule } from '@angular/material';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\nimport { NumberInputComponent } from './components/forms/number-input/number-input.component';\nimport { PasswordInputComponent } from './components/forms/password-input/password-input.component';\nimport { SelectInputComponent } from './components/forms/select-input/select-input.component';\nimport { StringInputComponent } from './components/forms/string-input/string-input.component';\nimport { CommandDirective } from './directives/command.directive';\nimport { FocusBindingDirective } from './directives/focus-binding.directive';\nimport { InteractionModule } from './interaction/interaction.module';\nimport { PlaceModule } from './place/place.module';\n\n@NgModule({\n declarations: [\n CommandDirective,\n FocusBindingDirective,\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent\n ],\n imports: [\n CommonModule,\n BrowserAnimationsModule,\n FormsModule,\n MatInputModule,\n MatFormFieldModule,\n MatSelectModule,\n MatTabsModule,\n PlaceModule,\n InteractionModule\n ],\n exports: [\n CommandDirective,\n FocusBindingDirective,\n NumberInputComponent,\n StringInputComponent,\n PasswordInputComponent,\n SelectInputComponent,\n InteractionModule,\n PlaceModule\n ]\n\n})\nexport class AngularUiPowerupsModule {\n}\n","import { animate, AnimationStyleMetadata, style, transition, trigger } from '@angular/animations';\nimport { OptionsHelper } from '@coolon/pectin';\n\nconst defaultHiddenStyleDef = style({\n opacity: 0,\n 'height': '0',\n paddingTop: '0',\n paddingBottom: '0'\n});\n\nexport function slideDownAndUpAnimation(triggerName: string, options?: {\n duration?: string;\n hiddenStyleDef?: AnimationStyleMetadata;\n}) {\n // SEE to fix this: https://github.com/angular/angular/issues/15587#issuecomment-351510501\n const duration = OptionsHelper.get(options).getOptional('duration', '100ms');\n const hiddenStyleDef = OptionsHelper.get(options).getOptional('hiddenStyleDef', defaultHiddenStyleDef);\n return trigger(triggerName, [\n transition(':enter', [hiddenStyleDef, animate('100ms')]),\n transition(':leave', [animate('100ms', hiddenStyleDef)])\n ]);\n}\n\n// export function slideOutLeftAnimation(triggerName: string, duration:string = \"100ms\") {\n// return trigger(triggerName, [\n// state('true', style(\n// {\n// 'width': '*',\n// 'overflow': 'hidden',\n// 'opacity': '1'\n// })),\n// state('false', style({\n// 'width': '0px',\n// 'overflow': 'hidden',\n// 'opacity': '0'\n// })),\n// transition('* => *', [animate(duration)])\n// ]);\n// }\n","export class Dimension {\n constructor(readonly width: number, readonly height: number) {\n }\n}\n","export class Point {\n\n static from(data: { x: number, y: number }) {\n return new Point(data.x, data.y);\n }\n\n constructor(readonly x: number, readonly y: number) {\n }\n\n translate(x: number, y: number): Point {\n return new Point(this.x + x, this.y + y);\n }\n}\n","import { Dimension } from './dimension.class';\nimport { Point } from './point.class';\n\nexport class Bounds extends Dimension {\n\n constructor(readonly top: number, readonly left: number, readonly width: number, readonly height: number) {\n super(width, height);\n }\n\n relativePositionOf(point: { x: number, y: number } | MouseEvent) {\n if (point instanceof MouseEvent) {\n return new Point(point.clientX - this.left, point.clientY - this.top);\n } else {\n return new Point(point.x - this.left, point.y - this.top);\n }\n }\n}\n\nexport namespace Bounds {\n export function ofElement(element: HTMLElement): Bounds {\n const rect = element.getBoundingClientRect();\n return new Bounds(rect.top, rect.left, rect.width, rect.height);\n }\n}\n\n","import { AfterViewInit, ElementRef, NgZone } from '@angular/core';\nimport { ValueHolder, ValueModel } from '@coolon/pectin';\nimport ResizeObserver from 'resize-observer-polyfill';\nimport { DisposableComponent } from './disposable-component';\nimport { Bounds } from './types/bounds.class';\nimport { Point } from './types/point.class';\n\nexport class ResizeAwareComponent extends DisposableComponent implements AfterViewInit {\n\n private _boundsModel = new ValueHolder<Bounds>(new Bounds(0, 0, 0, 0));\n\n constructor(protected readonly elementRef: ElementRef, protected readonly ngZone: NgZone) {\n super();\n }\n\n ngAfterViewInit(): void {\n this.updateBounds();\n const element = this.elementRef.nativeElement;\n const ro = new ResizeObserver((entries, observer) => {\n this.ngZone.run(() => this.updateBounds());\n });\n ro.observe(element);\n this.onDispose(() => ro.disconnect());\n }\n\n get boundsModel(): ValueModel<Bounds> {\n return this._boundsModel.readonly;\n }\n\n get nativeElement() {\n return this.elementRef.nativeElement;\n }\n\n // TODO: Make this handle body scroll\n public relativePositionOf(point: { x: number, y: number } | MouseEvent): Point {\n return this.bounds.relativePositionOf(point);\n }\n\n get bounds(): Bounds {\n return this._boundsModel.value;\n }\n\n private updateBounds() {\n this._boundsModel.value = Bounds.ofElement(this.nativeElement);\n }\n\n\n}\n\nexport namespace ResizeAwareComponent {\n\n}\n","export interface Alert {\n title?(): string;\n\n content(): string[];\n\n ok(): string;\n}\n","import { Alert } from './alert';\n\nexport interface Confirm extends Alert {\n destructive?: () => boolean;\n\n cancel(): string;\n}\n","export interface Result<R, E> {\n // catch(callback: (error: E) => void): Result<R,E>;\n}\n\nexport namespace Result {\n export interface Callback<R, E> {\n then: <T>(result: R) => T;\n catch: <T>(result: E) => T;\n }\n\n}\n\n// const r:Result<string, number> = null;\n\n// r.catch(e => {}).then();\n\n","import { Constructable } from '@coolon/pectin';\nimport { Activity } from '../../activity';\nimport { InteractionContext } from '../../interaction-context';\n\n\nexport interface ActivityOutletContext<D, R, E> {\n interactionContext: InteractionContext,\n activityClass: Constructable<Activity<D, R, E>>,\n activityData: D,\n onDone: (result: R) => void,\n onCancel: (error: E) => void,\n}\n","export interface NavItem {\n title(): string;\n\n icon?(): string;\n\n tooltip?(): string;\n}\n","import { Constructable, lang } from '@coolon/pectin';\nimport * as _ from 'lodash';\nimport { PlaceComponent } from './place-component';\nimport { PlaceDefinition } from './place-definition';\n\nexport function Place(options: Place.Options) {\n return (target: Function) => {\n if (PlaceComponent.isPlaceComponentConstructor(target)) {\n PlaceComponent.injectDefinition(target, new PlaceDefinition(\n target,\n options.path,\n _.isNil(options.authenticate) ? false : options.authenticate,\n options.order,\n options.data,\n PlaceComponent.getRouteParameters(target),\n (options.children || []).map(c => PlaceComponent.getDefinition(c))\n ));\n\n } else {\n lang.illegalState(`${target} must extend PlaceComponent to use the @Place decorator`);\n }\n };\n}\n\nexport namespace Place {\n\n export interface Options {\n path: string,\n order: number;\n data?: { [key: string]: any }, // defaults to true\n authenticate?: boolean, // defaults to true\n children?: Constructable<PlaceComponent>[]\n }\n\n}\n","import { PlaceDefinition } from './place-definition';\n\n// TODO: It'd be nice if we generated a type for this...\nexport interface Visit {\n readonly placeDefinition: PlaceDefinition;\n\n getRouteId(): any;\n\n getRouteParameter(name: string): any;\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanDeactivate, Router, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { PlaceComponent } from '../place-component';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LeavePlaceGuard implements CanDeactivate<PlaceComponent> {\n\n constructor(private router: Router, private injector: Injector) {\n }\n\n canDeactivate(component: PlaceComponent, currentRoute: ActivatedRouteSnapshot, currentState: RouterStateSnapshot, nextState?: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n // HACK: this will break with child routes...\n const path = `/${component.placeDefinition.path}`;\n // let thisTree = this.router.parseUrl(currentState.url);\n // let nextTree = this.router.parseUrl(nextState.url);\n // console.log({\n // placePath: path,\n // currentRoute: currentRoute.toString(),\n // currentStateUrl: currentState.url,\n // nextStateUrl: nextState.url,\n // currentStateUrlTree: thisTree.root.children[PRIMARY_OUTLET].segments,\n // nextStateUrlTree: nextTree.root.children[PRIMARY_OUTLET].segments\n // });\n\n // nextState is the full path...\n if (!nextState.url.startsWith(path)) {\n return component.canDeactivate();\n } else {\n return true;\n }\n }\n\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot, UrlTree } from '@angular/router';\nimport { lang } from '@coolon/pectin';\nimport { Observable } from 'rxjs';\nimport { PlaceComponent } from '../place-component';\nimport { PlaceRouter } from '../place-router';\nimport { ParameterSnapshot } from '../route/parameter-snapshot';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlaceRouteGuard implements CanActivate {\n\n constructor(private readonly placeRouter: PlaceRouter, private readonly injector: Injector) {\n }\n\n canActivate(activatedRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {\n\n if (PlaceComponent.isPlaceComponentConstructor(activatedRoute.component)) {\n const placeDefinition = PlaceComponent.getDefinition(activatedRoute.component);\n const snapshot = ParameterSnapshot.create(placeDefinition, activatedRoute.paramMap);\n\n return snapshot.sanitise(this.injector).then(sanitised => {\n if (sanitised.hasChanged(snapshot)) {\n return this.placeRouter.createUrlTree(activatedRoute, snapshot, sanitised);\n } else {\n return true;\n }\n });\n } else {\n return lang.illegalState(`expected component to be an instance of PlaceComponent, got ${activatedRoute.component}`);\n }\n }\n\n}\n","import { Trace } from '@coolon/pectin';\nimport _ from 'lodash';\nimport { Visit } from '../visit';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterSanitiser } from './parameter-sanitiser';\n\nexport class DefaultParameterSanitiser<T, S> implements ParameterSanitiser<S> {\n\n constructor(private def: ParameterDefinition<T, S>, readonly remember:boolean, readonly defaultValue:S) {\n }\n\n @Trace()\n sanitise(value: S, visit: Visit): Promise<S> | S {\n if (this.isBlank(value)) {\n if (this.remember) {\n // value = null;\n }\n return this.isBlank(value) && !_.isNil(this.defaultValue) ? this.defaultValue : value;\n\n } else {\n return value;\n }\n }\n\n private isBlank(value: S) {\n const isNil = _.isNil(value);\n return this.def.isArray ? !isNil || value['length'] < 1 : isNil;\n }\n}\n","export type JsonPrimitive = boolean | number | string;\nexport type AnyJson = JsonPrimitive | null | JsonArray | JsonMap;\n\nexport interface JsonArray extends Array<AnyJson> {\n}\n\nexport interface JsonMap {\n [key: string]: AnyJson;\n}\n\n","import { assert, UseDelegate } from '@coolon/pectin';\nimport { Klass, Opts } from '@coolon/typescript-utilities';\nimport { ROUTE_PARAMETER_LIST_KEY } from '../place-component';\nimport { DefaultParameterSanitiser } from './default-parameter-sanitiser';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterType } from './parameter-type';\n\nexport interface ParameterOptions<T> {\n as?: string;\n optional?: boolean;\n remember?: boolean;\n defaultValue?: T;\n // sanitiser?: Constructable<ParameterSanitiser<T>> | ParameterSanitiser.Options<T>;\n}\n\nexport interface ListParameterOptions<T> {\n as?: string;\n optional?: boolean;\n remember?: boolean;\n defaultValue?: T[];\n // sanitiser?: Constructable<ParameterSanitiser<T[]>> | ParameterSanitiser.Options<T[]>;\n}\n\nexport function RouteId<T extends string | number>(type: ParameterType<T>, options?: ParameterOptions<T>): PropertyDecorator {\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = new ParameterDefinition.RouteId(propertyKey.toString(), type, options);\n Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\nexport function RouteParameter<T>(type: ParameterType<T>, options?: ParameterOptions<T>): PropertyDecorator {\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = new ParameterDefinition.ValueParameter(propertyKey.toString(), type, options);\n Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n\nexport function RouteParameterList<E>(elementType: ParameterType<E>, options?: ListParameterOptions<E>): PropertyDecorator {\n return (prototype: Object, propertyKey: string | symbol) => {\n const param = new ParameterDefinition.ArrayParameter(propertyKey.toString(), elementType, options);\n Klass.get(prototype).addToOwnMetadataList(ROUTE_PARAMETER_LIST_KEY, param);\n UseDelegate()(prototype, propertyKey);\n };\n}\n","import { Visit } from '../visit';\n\nexport interface ParameterSanitiser<T> {\n sanitise(value: T, visit?: Visit): T | Promise<T>;\n}\n","import _ from 'lodash';\n\nexport interface ParameterType<T> {\n format(value: T): string;\n\n parse(value: string): T;\n}\n\nexport namespace ParameterType {\n\n class StringType implements ParameterType<string> {\n format(value: string): string {\n return value;\n }\n\n parse(value: string): string {\n return value;\n }\n }\n\n class NumberType implements ParameterType<number> {\n format(value: number): string {\n return `${value}`;\n }\n\n parse(value: string): number {\n return _.isNil(value) || _.isEmpty(value) ? null : +value;\n }\n }\n\n class BooleanType implements ParameterType<boolean> {\n format(value: boolean): string {\n return value ? 'true' : 'false';\n }\n\n parse(value: string): boolean {\n return value === 'true';\n }\n }\n\n export const STRING = new StringType();\n export const NUMBER = new NumberType();\n export const BOOLEAN = new BooleanType();\n}\n","import { Injector, Type } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { assert, Constructable, lang, Trace } from '@coolon/pectin';\nimport { Memoize } from '@typescript-plus/fast-memoize-decorator/dist/src';\nimport _ from 'lodash';\nimport { DefaultParameterSanitiser } from './default-parameter-sanitiser';\nimport { ParameterDefinition } from './parameter-definition.class';\nimport { ParameterSanitiser } from './parameter-sanitiser';\n\nexport class Sanitiser<T, S> {\n\n private initialValue: S;\n private _sanitisedValue: S;\n\n constructor(readonly parameterDef: ParameterDefinition<T, S>, readonly snapshot: ActivatedRouteSnapshot, readonly sanitiser: ParameterSanitiser<S>) {\n }\n\n isRouteId(): boolean {\n return this.parameterDef.isRouteId;\n }\n\n get valueChanged(): boolean {\n return !_.isNil(this.initialValue) && this.hasChanged(this.initialValue, this.sanitisedValue);\n }\n\n get sanitisedValue(): S {\n return this._sanitisedValue;\n }\n\n protected readFrom(snapshot: ActivatedRouteSnapshot): S {\n return lang.abstractMethod(this.constructor);\n }\n\n protected hasChanged(initialValue: S, sanitisedValue: S): boolean {\n return lang.abstractMethod(this.constructor);\n }\n\n injectRouteParam(dest: {}) {\n lang.abstractMethod(this.constructor);\n }\n\n async sanitize(): Promise<boolean> {\n if (this.sanitiser) {\n this.initialValue = this.readFrom(this.snapshot);\n this._sanitisedValue = await this.sanitiser.sanitise(this.initialValue);\n if (this.initialValue !== this._sanitisedValue) {\n return false;\n }\n }\n return true;\n }\n}\n\n\nexport class RouteParameterSanitiser {\n\n private readonly routeIdSanitiser: Sanitiser<any, any>;\n private readonly parameterSanitisers: Sanitiser<any, any>[] = [];\n\n constructor(readonly parameterDefs: ParameterDefinition<any>[],\n readonly snapshot: ActivatedRouteSnapshot,\n readonly injector: Injector) {\n const sanitisers = parameterDefs.map(def => {\n return def.isArray ?\n new Sanitiser.Array(def, snapshot, this.getSanitiser(def)) :\n new Sanitiser.Value(def, snapshot, this.getSanitiser(def));\n });\n this.routeIdSanitiser = sanitisers.find(p => p.isRouteId());\n this.parameterSanitisers = sanitisers.filter(p => !p.isRouteId());\n }\n\n async sanitise(): Promise<boolean> {\n if (this.routeIdSanitiser) {\n await this.routeIdSanitiser.sanitize();\n if (this.routeIdSanitiser.valueChanged) {\n // if the route id isn't ok we redirect immediately as the query params may need to be sanitised in the\n // context of the route id.\n return false;\n }\n }\n for (const sanitiser of this.parameterSanitisers) {\n await sanitiser.sanitize();\n }\n return !this.parameterSanitisers.find(s => s.valueChanged);\n }\n\n @Memoize()\n private getSanitiser<T, S>(def: ParameterDefinition<T, S>): ParameterSanitiser<S> {\n return def.getSanitiser(this.injector);\n }\n\n routeIdHasChanged(): boolean {\n assert.isTruthy(this.parameterSanitisers.length !== 0);\n return this.routeIdSanitiser && this.routeIdSanitiser.valueChanged;\n }\n\n @Trace()\n getRedirectParams(): any[] {\n if (this.routeIdHasChanged()) {\n return [this.routeIdSanitiser.sanitisedValue];\n } else {\n const routeParams = {};\n this.parameterSanitisers.forEach(s => s.injectRouteParam(routeParams));\n return [routeParams];\n }\n }\n\n private isSanitiserContructor<S>(value: any): value is Type<ParameterSanitiser<S>> {\n return _.isFunction(value) && lang.constructorChain(value as unknown as Constructable<any>).includes(Sanitiser);\n }\n}\n\nexport namespace Sanitiser {\n\n export class Value<T> extends Sanitiser<T, T> {\n\n readFrom(snapshot: ActivatedRouteSnapshot): T {\n const rawValue = snapshot.paramMap.get(this.parameterDef.name);\n return this.parameterDef.type.parse(rawValue);\n }\n\n protected hasChanged(initialValue: T, sanitisedValue: T): boolean {\n return initialValue !== sanitisedValue;\n }\n\n injectRouteParam(dest: {}) {\n dest[this.parameterDef.name] = this.parameterDef.type.format(this.sanitisedValue);\n }\n\n }\n\n export class Array<T> extends Sanitiser<T, T[]> {\n\n readFrom(snapshot: ActivatedRouteSnapshot): T[] {\n const rawValues = snapshot.paramMap.getAll(this.parameterDef.name);\n return rawValues.map(value => this.parameterDef.type.parse(value));\n }\n\n protected hasChanged(initialValue: T[], sanitisedValue: T[]): boolean {\n return initialValue !== sanitisedValue;\n }\n\n injectRouteParam(dest: {}) {\n dest[this.parameterDef.name] = this.sanitisedValue.map(v => this.parameterDef.type.format(v));\n }\n\n\n }\n\n}\n"],"names":["tslib_1.__extends","GarbageCollector","DelegatingFormValueModel","EventEmitter","Input","Output","HostListener","tslib_1.__decorate","UseDelegate","ValueModel","Component","ListModel","StoreInListModel","assert","UnaryCommand","lang","Directive","ElementRef","Inject","Logger","NgZone","DOCUMENT","InjectionToken","Injector","ComponentFactoryResolver","ViewContainerRef","ActivityOutletComponent","EventListenerList","DelegatingValueModel","Trace","MutableListModel","Deferred","ViewChild","ViewChildren","ActivityContainerComponent","Injectable","MatDialog","NgModule","CommonModule","MatButtonModule","MatDialogModule","MatTabsModule","PortalModule","StoreInValueModel","_","Binding","Memoize","PlaceComponent","Klass","HostBinding","Router","Opts","ParameterDefinition","ParameterSnapshot","style","query","group","animate","trigger","transition","Guard","MutableValueModel","BrowserAnimationsModule","MatProgressSpinnerModule","RouterModule","MatListModule","MatTooltipModule","MatIconModule","FormsModule","MatInputModule","MatFormFieldModule","MatSelectModule","OptionsHelper","Bounds","ValueHolder","_.isNil","ParameterType","Sanitiser","tslib_1.__values"],"mappings":";;;;;;;;;IAAA;IACA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;;IAEA;IACA;IACA;IACA;;IAEA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;IACnC,IAAI,aAAa,GAAG,MAAM,CAAC,cAAc;IACzC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;IACpF,QAAQ,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,IAAI,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;;AAEF,IAAO,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;IAChC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,IAAI,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IAC3C,IAAI,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;;AAED,IAAO,IAAI,QAAQ,GAAG,WAAW;IACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,MAAK;IACL,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,EAAC;;AAED,IAAO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;IACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAChF,YAAY,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;IAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,SAAS;IACT,IAAI,OAAO,CAAC,CAAC;IACb,CAAC;;AAED,IAAO,SAAS,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IAC1D,IAAI,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;IACjI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,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;IACtJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;;AAED,IAAO,SAAS,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE;IAC/C,IAAI,OAAO,UAAU,MAAM,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE;IACzE,CAAC;;AAED,IAAO,SAAS,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE;IACvD,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;;AAED,IAAO,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;IAC7D,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;IAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;IACvJ,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,CAAC;IACP,CAAC;;AAED,IAAO,SAAS,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;IAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,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;IACrH,IAAI,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,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7J,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;IACtE,IAAI,SAAS,IAAI,CAAC,EAAE,EAAE;IACtB,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACtE,QAAQ,OAAO,CAAC,EAAE,IAAI;IACtB,YAAY,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,EAAE,OAAO,CAAC,CAAC;IACzK,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzB,gBAAgB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM;IAC9C,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxE,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IACjE,gBAAgB,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IACjE,gBAAgB;IAChB,oBAAoB,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,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;IAChI,oBAAoB,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,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;IAC1G,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACzF,oBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;IACvF,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAC1C,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IAC3C,aAAa;IACb,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IAClE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzF,KAAK;IACL,CAAC;;AAED,IAAO,SAAS,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE;IACzC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;;AAED,IAAO,SAAS,QAAQ,CAAC,CAAC,EAAE;IAC5B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACtE,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,OAAO;IACX,QAAQ,IAAI,EAAE,YAAY;IAC1B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/C,YAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IACpD,SAAS;IACT,KAAK,CAAC;IACN,CAAC;;AAED,IAAO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,IAAI;IACR,QAAQ,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnF,KAAK;IACL,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;IAC3C,YAAY;IACZ,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,SAAS;IACT,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;IACzC,KAAK;IACL,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;;AAED,IAAO,SAAS,QAAQ,GAAG;IAC3B,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IACtD,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;;AAED,IAAO,SAAS,cAAc,GAAG;IACjC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxF,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;IACpD,QAAQ,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;IACzE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;;AAEF,IAAO,SAAS,OAAO,CAAC,CAAC,EAAE;IAC3B,IAAI,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;;AAED,IAAO,SAAS,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;IACjE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAClE,IAAI,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,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1H,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,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;IAC9I,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IACtF,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,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;IAC5H,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;;AAED,IAAO,SAAS,gBAAgB,CAAC,CAAC,EAAE;IACpC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAChJ,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,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;;AAED,IAAO,SAAS,aAAa,CAAC,CAAC,EAAE;IACjC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,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,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrN,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE,EAAE,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;IACpK,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;;AAED,IAAO,SAAS,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE;IAClD,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE;IACnH,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;;AAEF,IAAO,SAAS,YAAY,CAAC,GAAG,EAAE;IAClC,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnG,IAAI,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;IACzB,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;;AAED,IAAO,SAAS,eAAe,CAAC,GAAG,EAAE;IACrC,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;;;;;;;QChMwCA,uCAAgB;QAAzD;;SAKC;;;;QAHC,yCAAW;;;QAAX;YACE,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;QACH,0BAAC;KALD,CAAyCC,uBAAgB;;;;;;;;;;ACIzD;QAAwDD,0CAAmB;QAkEzE;YAAA,YACE,iBAAO,SAOR;YAxEQ,gBAAU,GAAG,IAAIE,+BAAwB,EAAK,CAAC;;;YAoB9C,WAAK,GAAG,IAAIC,iBAAY,EAAE,CAAC;;YAE3B,UAAI,GAAG,IAAIA,iBAAY,EAAE,CAAC;;YAE1B,cAAQ,GAAG,IAAIA,iBAAY,EAAE,CAAC;;YAE9B,eAAS,GAAG,IAAIA,iBAAY,EAAE,CAAC;;gBAwCjC,IAAI,GAAG,KAAI;YACjB,KAAI,CAAC,iBAAiB,GAAG;gBACvB,YAAY;;;;;gBAAZ,UAAa,OAA2B,EAAE,IAAwC;oBAChF,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC;iBACzB;aACF,CAAC;;SACH;QArED,sBAAI,kDAAc;;;;;YAAlB,UAAmB,KAAoB;gBACrC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;aACpC;;;WAAA;;;;QA0BD,4CAAW;;;QADX;YAEE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SACtC;;;;QAGD,8CAAa;;;QADb;YAEE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;SACnB;;;;QAGD,+CAAc;;;QADd;YAEE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAClB;;;;QAGD,+CAAc;;;QAAd;YACE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;SACtB;;;;QAED,gDAAe;;;QAAf;YACE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;SACvB;;;;;;QAES,6CAAY;;;;;QAAtB,UAAuB,OAAqB;YAC1C,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE;gBACpC,OAAO,CAAC,OAAO,EAAE,CAAC;aACnB;SACF;;;;QAYD,yCAAQ;;;QAAR;SACC;;;;QAED,0CAAS;;;QAAT;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;SAC3B;QAED,sBAAI,2CAAO;;;;YAAX;gBACE,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;aAChC;;;WAAA;;;;QAED,0CAAS;;;QAAT;YACE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;SAC1C;QAED,sBAAI,6CAAS;;;;YAAb;gBACE,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;aAClC;;;WAAA;QAED,sBAAI,8CAAU;;;;YAAd;gBACE,OAAO,IAAI,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;aAC1D;;;WAAA;;qCA7FAC,UAAK,SAAC,YAAY;4BAKlBA,UAAK;iCACLA,UAAK;2BACLA,UAAK;kCACLA,UAAK;mCAELA,UAAK,SAAC,eAAe;kCACrBA,UAAK,SAAC,cAAc;mCACpBA,UAAK,SAAC,eAAe;oCACrBA,UAAK,SAAC,gBAAgB;mCACtBA,UAAK,SAAC,eAAe;4BAIrBC,WAAM;2BAENA,WAAM;+BAENA,WAAM;gCAENA,WAAM;kCAINC,iBAAY,SAAC,OAAO;oCAKpBA,iBAAY,SAAC,SAAS;qCAMtBA,iBAAY,SAAC,UAAU;;QAtCxBC;YADsBC,kBAAW,EAAE;sCACTC,iBAAU;6CAAVA,iBAAU;oEAEnC;QA6FH,6BAAC;KAAA,CApGuD,mBAAmB,GAoG1E;;;QAlGC,4CAAwD;;QAOxD,uCAAuB;;QACvB,4CAAiD;;QACjD,sCAAsB;;QACtB,6CAA6B;;QAE7B,8CAAmD;;QACnD,6CAAiD;;QACjD,8CAAmD;;QACnD,+CAAqD;;QACrD,8CAAmD;;QAInD,uCAAqC;;QAErC,sCAAoC;;QAEpC,0CAAwC;;QAExC,2CAAyC;;QAEzC,mDAA8C;;;;;;;;QC5BNT,wCAA8B;QAEtE;mBACE,iBAAO;SACR;;;;QAED,uCAAQ;;;QAAR;SACC;;oBAZFU,cAAS,SAAC;wBACT,QAAQ,EAAE,kCAAkC;wBAC5C,unBAA4C;;qBAE7C;;;;QAUD,2BAAC;KAAA,CATyC,sBAAsB;;;;;;;QCDpBV,0CAA8B;QAExE;mBACE,iBAAO;SACR;;;;QAED,yCAAQ;;;QAAR;SACC;;oBAZFU,cAAS,SAAC;wBACT,QAAQ,EAAE,oCAAoC;wBAC9C,2nBAA8C;;qBAE/C;;;;QAUD,6BAAC;KAAA,CAT2C,sBAAsB;;;;;;;;;ACJlE;QAKmDV,wCAAyB;QAc1E;YAAA,YACE,iBAAO,SACR;YAJD,uBAAiB;;;;YAAuB,UAAC,MAAM,IAAK,OAAA,CAAC,MAAM,IAAI,KAAI,CAAC,WAAW,IAAI,MAAM,CAAC,KAAI,CAAC,WAAW,CAAC,GAAG,MAAM,GAAA,EAAC;;SAIpH;;;;QAED,uCAAQ;;;QAAR;SACC;;oBAxBFU,cAAS,SAAC;wBACT,QAAQ,EAAE,kCAAkC;wBAC5C,+vBAA4C;;qBAE7C;;;;;mCAGEN,UAAK;8BAGLA,UAAK;kCAGLA,UAAK;wCAGLA,UAAK;;QARNG;YADUC,kBAAW,EAAE;sCACTG,gBAAS;kEAAI;QAG3BJ;YADUK,uBAAgB,CAAC,cAAc,CAAC;;6DAC7B;QAef,2BAAC;KAAA,CArBkD,sBAAsB,GAqBxE;;;QAnBC,4CAC2B;;QAE3B,uCACa;;QAEb,2CACqB;;QAErB,iDACqH;;;;;;;;QCb7EZ,wCAA8B;QAEtE;mBACE,iBAAO;SACR;;;;QAED,uCAAQ;;;QAAR;SACC;;oBAZFU,cAAS,SAAC;wBACT,QAAQ,EAAE,kCAAkC;wBAC5C,+lBAA4C;;qBAE7C;;;;QAUD,2BAAC;KAAA,CATyC,sBAAsB;;;;;;;;;ACLhE;QAI+CV,oCAAgB;QAkB7D,0BAAwC,UAAsB;YAA9D,YACE,iBAAO,SACR;YAFuC,gBAAU,GAAV,UAAU,CAAY;YAZtD,+BAAyB,GAAG,KAAK,CAAC;;SAczC;QAZD,sBACI,8CAAgB;;;;YAKpB;gBACE,OAAO,IAAI,CAAC,iBAAiB,CAAC;aAC/B;;;;;YARD,UACqB,KAAQ;gBAC3B,IAAI,CAAC,yBAAyB,GAAG,IAAI,CAAC;gBACtC,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;aAChC;;;WAAA;;;;QAUD,mCAAQ;;;QAAR;YACEa,aAAM,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,IAAI,CAAC,aAAa,YAAYC,mBAAY,EAAE;gBAC9C,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE;oBACnCC,WAAI,CAAC,YAAY,CAAC,+DAA+D,CAAC,CAAC;iBACpF;aACF;iBAAM;gBACL,IAAI,IAAI,CAAC,yBAAyB,EAAE;oBAClCA,WAAI,CAAC,YAAY,CAAC,wDAAwD,CAAC,CAAC;iBAC7E;aACF;SACF;;;;QAED,0CAAe;;;QAAf;YAAA,iBAiBC;;;YAdS,IAAA,0CAAK;YACb,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,SAAS;;;;YAAC,UAAA,OAAO;gBACjD,IAAI,OAAO,EAAE;oBACX,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;oBAC1D,IAAI,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,KAAK,GAAG,EAAE;wBACjD,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;qBACvE;iBACF;qBAAM;oBACL,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;oBACnE,IAAI,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,OAAO,KAAK,GAAG,EAAE;wBACjD,KAAI,CAAC,UAAU,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;qBACvD;iBACF;aACF,EAAC,CAAC;SACJ;;;;QAED,sCAAW;;;QAAX;YACE,IAAI,CAAC,OAAO,EAAE,CAAC;SAChB;;;;;QAID,sCAAW;;;;QADX,UACY,MAAa;YACvB,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE;gBACpC,IAAI,IAAI,CAAC,aAAa,YAAYD,mBAAY,EAAE;oBAC9C,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;iBAClF;qBAAM;oBACL,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;iBAC7D;aACF;iBAAM;gBACL,OAAO,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;aACrD;SACF;;oBA5EFE,cAAS,SAAC;;wBAET,QAAQ,EAAE,iBAAiB;qBAC5B;;;;oBANkCC,eAAU,uBAyB9BC,WAAM,SAACD,eAAU;;;oCAhB7Bb,UAAK;uCAMLA,UAAK;kCAmDLE,iBAAY,SAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;;QAcnC,uBAAC;KAAA,CAzE8CL,uBAAgB,GAyE9D;;;QAvEC,yCAC8C;;;;;QAE9C,6CAA6B;;;;;QAC7B,qDAA0C;;;;;QAY9B,sCAAkD;;;;;;;;QCfrBD,yCAAmB;QAqB5D,+BAAiD,EAAc,EAClB,MAAc,EAC7B,QAAa;YAF3C,YAGE,iBAAO,SAGR;YANgD,QAAE,GAAF,EAAE,CAAY;YAClB,YAAM,GAAN,MAAM,CAAQ;;YAIzD,KAAI,CAAC,QAAQ,sBAAG,QAAQ,EAAY,CAAC;;SACtC;;;;QAnBD,yCAAS;;;QADT;YAEE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBACrB,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,aAAa,EAAE,CAAC;aACtD;SACF;;;;QAGD,0CAAU;;;QADV;YAEE,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBACrB,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;aACvD;SACF;;;;QAUD,wCAAQ;;;QAAR;SACC;;;;QAED,+CAAe;;;QAAf;YAAA,iBAYC;;YAVC,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;gBACb,IAAA,0CAAK;gBACb,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS;;;;gBAAC,UAAC,OAAO;oBACpE,IAAI,OAAO,IAAI,CAAC,KAAI,CAAC,eAAe,EAAE,EAAE;wBACtC,KAAI,CAAC,WAAW,EAAE,CAAC;qBACpB;iBACF,EAAC,CAAC;aACJ;iBAAM;gBACLmB,aAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;aACrD;SACF;;;;;QAEO,0CAAU;;;;QAAlB;YACE,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC;SAC5E;;;;;;QAGD,+CAAe;;;;;QAAf;YACE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACzC;;;;;;;QAGD,yCAAS;;;;;;QAAT,UAAU,OAAgB;YACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,aAAa,KAAK,OAAO,CAAC;SAChD;;;;;QAED,2CAAW;;;;QAAX,UAAY,OAAmB;YAA/B,iBAmBC;YAnBW,wBAAA,EAAA,WAAmB;YAC7B,IAAI,IAAI,CAAC,yBAAyB,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;gBACvD,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE;oBAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;iBAC1B;;gBAED,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE;oBAC3BA,aAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,0BAAwB,OAAO,gBAAa,CAAC,CAAC;oBACnE,IAAI,OAAO,GAAG,CAAC,EAAE;;;wBAGf,qBAAqB;;;wBAAC;4BACpB,KAAI,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;yBAC/B,EAAC,CAAC;qBACJ;yBAAM;wBACLA,aAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;qBACjG;iBACF;aACF;SACF;QAED,sBAAI,8CAAW;;;;YAAf;gBACE,OAAO,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC;aACzD;;;WAAA;;;;;;QAGD,yDAAyB;;;;;QAAzB;YACE,OAAO,IAAI,CAAC,UAAU,EAAE,IAAI,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC;SAChF;;;;;;QAGD,wCAAQ;;;;;QAAR;;gBACQ,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,qBAAqB,EAAE;;gBACpD,OAAO,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,IAAI,SAAS,CAAC,MAAM,IAAI,CAAC;;YAE9D,OAAO,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;SACjD;;oBApGFH,cAAS,SAAC;;wBAET,QAAQ,EAAE,sBAAsB;qBACjC;;;;oBARkCC,eAAU,uBA8B9BC,WAAM,SAACD,eAAU;oBA9B4CG,WAAM,uBA+BnEF,WAAM,SAACE,WAAM;oDACbF,WAAM,SAACG,eAAQ;;;yCAnB3BjB,UAAK;yCACLA,UAAK;gCAELE,iBAAY,SAAC,SAAS;iCAOtBA,iBAAY,SAAC,UAAU;;QAmF1B,4BAAC;KAAA,CAjG0C,mBAAmB,GAiG7D;;;;;;QA/FC,yCAAoC;;QAEpC,mDAA8C;;QAC9C,mDAAyC;;;;;QAgB7B,mCAAmD;;;;;QACnD,uCAA+C;;;;;;;IChC7D;AAMA,QAAa,mBAAmB,GAAG,IAAIgB,mBAAc,CAAM,oBAAoB,CAAC;;;;AAEhF;;;;QAAA;SAOC;QAAD,yBAAC;KAAA,IAAA;;;;;;;;;QALC,+EAAsG;;;;;;QAEtG,8DAAqD;;;;;;QAErD,0DAA4C;;;;;;;ICd9C;AAGA,QAAa,aAAa,GAAG,IAAIA,mBAAc,CAAM,yBAAyB,CAAC;;;;;IAE/E,uBAOC;;;QANC,wBAAmC;;;;;QAEnC,oDAAuC;;;;;QAEvC,sDAAyC;;;;;;;ICV3C;;;;;;;;AAuBA;QAiBE,iCACU,wBAAkD,EAClD,gBAAkC,EAClC,QAAkB;YAFlB,6BAAwB,GAAxB,wBAAwB,CAA0B;YAClD,qBAAgB,GAAhB,gBAAgB,CAAkB;YAClC,aAAQ,GAAR,QAAQ,CAAU;SAE3B;QAZD,sBACI,oDAAe;;;;;YADnB,UACoB,eAA+C;gBACjE,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;aACpC;;;WAAA;QAAA,CAAC;;;;QAWF,0CAAQ;;;QAAR;SACC;;;;;QAED,8CAAY;;;;QAAZ,UAAa,eAA+C;;gBACpD,QAAQ,GAAGC,aAAQ,CAAC,MAAM,CAAC;gBAC/B,SAAS,EAAE;oBACT;wBACE,OAAO,EAAE,kBAAkB;wBAC3B,QAAQ,EAAE,IAAI;qBACf;oBACD,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,CAAC,YAAY,EAAE;iBACnE;gBACD,MAAM,EAAE,IAAI,CAAC,QAAQ;aACtB,CAAC;;gBACI,gBAAgB,GAAG,IAAI,CAAC,wBAAwB,CAAC,uBAAuB,CAAC,eAAe,CAAC,aAAa,CAAC;YAC7G,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;YAC9B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;YACjG,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;YAClE,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;SACvE;;;;;QAED,uCAAK;;;;QAAL,UAAM,KAAY;YAChB,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;SAC7C;;;;;QAED,yCAAO;;;;QAAP,UAAQ,OAAgB;YACtB,OAAO,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;SACjD;;;;;;;QAED,+CAAa;;;;;;QAAb,UAA0B,YAAiD,EAAE,IAAS;YACpF,OAAO,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SAClE;;;;QAED,6CAAW;;;QAAX;YACE,IAAI,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE;gBACzD,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;aACzD;SACF;;oBA7DFb,cAAS,SAAC;wBACT,QAAQ,EAAE,qCAAqC;wBAC/C,QAAQ,EAAE,EAAE;;qBAEb;;;;oBAzBCc,6BAAwB;oBAKxBC,qBAAgB;oBAHhBF,aAAQ;;;yCA0BPnB,UAAK;sCAGLA,UAAK;;QAoDR,8BAAC;KA9DD,IA8DC;;;QAvDCsB,wCACuC;;;;;QAOvCA,0CAA8D;;;;;QAG5DA,8CAA0D;;;;;QAC1DA,sCAA0C;;;;;QAC1CA,8BAA0B;;;IA4C9B,WAAiB,uBAAuB;;;;QAEtC;;;;YAEE,kCAA6B,OAAuC;gBAAvC,YAAO,GAAP,OAAO,CAAgC;aACnE;;;;;YAED,wCAAK;;;;YAAL,UAAM,KAAY;gBAChB,OAAOX,WAAI,CAAC,cAAc,EAAE,CAAC;aAC9B;;;;;YAED,0CAAO;;;;YAAP,UAAQ,OAAgB;gBACtB,OAAOA,WAAI,CAAC,cAAc,EAAE,CAAC;aAC9B;;;;;;;YAED,gDAAa;;;;;;YAAb,UAA0B,YAAiD,EAAE,IAAS;gBACpF,OAAOA,WAAI,CAAC,cAAc,EAAE,CAAC;aAC9B;YACH,+BAAC;SAAA,IAAA;QAhBY,gDAAwB,2BAgBpC,CAAA;;;;;;YAda,2CAAwD;;KAgBvE,EApBgBW,UAAuB,KAAvBA,UAAuB,QAoBvC;;;;;;;;;ACvGD;QAAqD1B,oCAAmB;QAAxE;YAAA,qEAwDC;YAtDkB,oBAAc,GAAG,IAAI2B,wBAAiB,EAAwB,CAAC;YAC/D,sBAAgB,GAAG,IAAIA,wBAAiB,EAAwB,CAAC;YACjE,sBAAgB,GAAG,IAAIA,wBAAiB,EAAc,CAAC;YAEvD,gBAAU,GAAG,IAAIC,2BAAoB,EAAW,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;;SAkDtF;;;;;QAhDC,iCAAM;;;;QAAN,UAAO,QAA8B;YACnC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SACnC;;;;;QAED,mCAAQ;;;;QAAR,UAAS,QAA8B;YACrC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;SACrC;;;;;QAED,+BAAI;;;;QAAJ,UAAK,MAAU;YAAf,iBAIC;YAHC,OAAO,IAAI,CAAC,cAAc;iBACvB,WAAW;;;;YAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,MAAM,CAAC,GAAA,EAAC;iBAC3B,OAAO;;;YAAC,cAAM,OAAA,KAAI,CAAC,kBAAkB,EAAE,GAAA,EAAC,CAAC;SAC7C;;;;;QAED,iCAAM;;;;QAAN,UAAO,KAAS;YAAhB,iBAIC;YAHC,OAAO,IAAI,CAAC,gBAAgB;iBACzB,WAAW;;;;YAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,CAAC,GAAA,EAAC;iBAC1B,OAAO;;;YAAC,cAAM,OAAA,KAAI,CAAC,kBAAkB,EAAE,GAAA,EAAC,CAAC;SAC7C;;;;QAGD,0CAAe;;;QAAf;SACC;;;;;QAEO,6CAAkB;;;;QAA1B;;YAEE,IAAI,CAAC,gBAAgB,CAAC,IAAI;;;;YAAC,UAAA,CAAC,IAAI,OAAA,CAAC,EAAE,GAAA,EAAC,CAAC;;;YAGrC;gBACE,IAAI,CAAC,gBAAgB;gBACrB,IAAI,CAAC,cAAc;gBACnB,IAAI,CAAC,gBAAgB;aACtB,CAAC,OAAO;;;;YAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,OAAO,EAAE,GAAA,EAAC,CAAC;SAC7B;QAGD,sBAAI,kCAAI;;;;YAAR;gBACE,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;aACjC;;;WAAA;;;;;QAED,oCAAS;;;;QAAT,UAAU,SAA8B;YACtC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;SACxC;;;;QAED,iCAAM;;;QAAN;YACE,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;SAC9B;QA1BDrB;YADCsB,YAAK,EAAE;;;;+DAEP;QA0BH,uBAAC;KAAA,CAxDoD,mBAAmB,GAwDvE;;;;;;QAtDC,0CAAgF;;;;;QAChF,4CAAkF;;;;;QAClF,4CAAwE;;;;;QAExE,sCAAqF;;;;;;;;QCA7C7B,wCAA6B;QAErE,8BAA4C,KAAY;YAAxD,YACE,iBAAO,SACR;YAF2C,WAAK,GAAL,KAAK,CAAO;;SAEvD;;;;QAED,uCAAQ;;;QAAR;SACC;;oBAZFU,cAAS,SAAC;wBACT,QAAQ,EAAE,kCAAkC;wBAC5C,6RAA4C;;qBAE7C;;;;oDAGcQ,WAAM,SAAC,aAAa;;QAOnC,2BAAC;KAAA,CATyC,gBAAgB,GASzD;;;QAPa,qCAA4C;;;;;;;;QCDTlB,+CAAkC;QAEjF,qCAA4C,OAAgB;YAA5D,YACE,iBAAO,SAER;YAH2C,aAAO,GAAP,OAAO,CAAS;YAE1Da,aAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;;SACxB;;;;QAED,8CAAQ;;;QAAR;SACC;;;;QAED,mDAAa;;;QAAb;YACE,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;SAC/D;;oBAjBFH,cAAS,SAAC;wBACT,QAAQ,EAAE,yCAAyC;wBACnD,8ZAAmD;;qBAEpD;;;;oDAGcQ,WAAM,SAAC,aAAa;;QAWnC,kCAAC;KAAA,CAbgD,gBAAgB,GAahE;;;QAXa,8CAAgD;;;;;;;;QCOdlB,8CAAmB;QAkBjE;YAAA,YACE,iBAAO,SAGR;YARQ,wBAAkB,GAAG,IAAI8B,uBAAgB,EAAwC,CAAC;YACnF,kBAAY,GAA2C,EAAE,CAAC;YAK1D,IAAA,kCAAkF,EAAhF,gBAAK,EAAE,oBAAO,EAAE,kBAAM,EAAE,cAAI,EAAE,gBAAK,EAAE,oBAAO,EAAE,sBAAkC;YACxF,KAAI,CAAC,eAAe,GAAG,KAAK,CAAC,KAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,CAAC,KAAI,CAAC,qBAAqB,CAAC,CAAC;;SACpG;;;;QAED,6CAAQ;;;QAAR;SACC;;;;QAED,oDAAe;;;QAAf;YAAA,iBAGC;YAFS,IAAA,8CAAO;YACf,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,SAAS;;;YAAC,cAAM,OAAA,KAAI,CAAC,mBAAmB,EAAE,GAAA,EAAC,CAAC;SACzF;;;;;;QAED,+CAAU;;;;;QAAV,UAAoB,OAA4D;YAC9E,IAAI,CAAC,qBAAqB,gBACrB,OAAO,IACV,kBAAkB,EAAE,IAAI,GACzB,CAAC;SACH;;;;;;;QAED,kDAAa;;;;;;QAAb,UAAuB,YAA8C,EAAE,IAAQ;YAA/E,iBAeC;;gBAdO,QAAQ,GAAGC,uBAAQ,CAAC,KAAK,EAAK;;gBAC9B,OAAO,GAAG;gBACd,kBAAkB,EAAE,IAAI;gBACxB,aAAa,EAAE,YAAY;gBAC3B,YAAY,EAAE,IAAI;gBAClB,MAAM,EAAE,QAAQ,CAAC,OAAO;gBACxB,QAAQ,EAAE,QAAQ,CAAC,MAAM;aAC1B;YACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YACzD,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO;;;YAAC;gBAC9B,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAChC,KAAI,CAAC,IAAI,CAAC,aAAa,GAAG,KAAI,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAC;aAC9D,EAAC,CAAC;SACJ;;;;;QAED,0CAAK;;;;QAAL,UAAM,KAAY;YAChB,OAAO,IAAI,CAAC,aAAa,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;SACxD;;;;;QAED,4CAAO;;;;QAAP,UAAQ,OAAgB;YACtB,OAAO,IAAI,CAAC,aAAa,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;SACjE;;;;;QAEO,wDAAmB;;;;QAA3B;YAAA,iBAKC;YAJC,IAAI,CAAC,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM;;;;YAAC,UAAA,GAAG;gBACtE,OAAO,CAAC,KAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;aACzC,EAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;SAC/D;;oBA1EFrB,cAAS,SAAC;wBACT,QAAQ,EAAE,wCAAwC;wBAClD,yjBAAkD;;qBAEnD;;;;;+CAGEN,UAAK;4CAGLA,UAAK;2BAGL4B,cAAS,SAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;8BAGlCC,iBAAY,SAACP,UAAuB;;QA2DvC,iCAAC;KAAA,CAtE+C,mBAAmB,GAsElE;;;QApECQ,8CAC6C;;QAE7CA,2CAC4D;;QAE5DA,0BACkB;;QAElBA,6BAC2D;;QAE3DA,wCAA2F;;;;;QAC3FA,kCAAkE;;;;;QAClEA,qCAA+E;;IAwDjF,WAAiB,0BAA0B;;;;;QAEzC,8BAKC;;;;YAJC,wCAAgD;;YAChD,uCAAgB;;YAChB,iCAA4B;;YAC5B,mCAA6B;;KAEhC,EARgBA,UAA0B,KAA1BA,UAA0B,QAQ1C;;;;;;;QCrF6ClC,4CAAkB;QAE9D,kCAA6B,aAAwB;YAArD,YACE,iBAAO,SAER;YAH4B,mBAAa,GAAb,aAAa,CAAW;YAEnDa,0BAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;;SAC9B;;;;;;;QAED,gDAAa;;;;;;QAAb,UAAuB,YAA8C,EAAE,IAAQ;YAC7E,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;SAChD;;;;;;;;;QAEO,iDAAc;;;;;;;;QAAtB,UAAgC,YAA8C,EAAE,IAAO,EAAE,YAA4B;YAArH,iBA0BC;YA1BwF,6BAAA,EAAA,mBAA4B;;gBAC7G,MAAM,GAAG;gBACb,IAAI,MAAA;gBACJ,YAAY,cAAA;gBACZ,UAAU,EAAE,4BAA4B;gBACxC,SAAS,EAAE,KAAK;aACjB;;gBACK,YAAY,sBAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAACqB,UAA0B,EAAE,MAAM,CAAC,EAA4C;YAC5H,OAAO,IAAI,OAAO;;;;;YAAI,UAAC,OAAO,EAAE,MAAM;;oBAC9B,iBAAiB,GAAG,YAAY,CAAC,iBAAiB;gBACxD,iBAAiB,CAAC,wBAAwB,GAAG,KAAI,CAAC;gBAClD,iBAAiB,CAAC,UAAU,CAAC;oBAC3B,aAAa,EAAE,YAAY;oBAC3B,YAAY,EAAE,IAAI;oBAClB,MAAM;;;;8BAAC,MAAM;wBACX,OAAO,CAAC,MAAM,CAAC,CAAC;wBAChB,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;qBAC5B;oBACD,QAAQ;;;;8BAAC,KAAK;wBACZ,MAAM,CAAC,KAAK,CAAC,CAAC;wBACd,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;qBAC3B;iBACF,CAAC,CAAC;gBAEH,YAAY,CAAC,UAAU,EAAE,CAAC;aAC3B,EAAC,CAAC;SACJ;;;;;QAED,wCAAK;;;;QAAL,UAAM,KAAY;YAChB,OAAO,IAAI,CAAC,cAAc,CAAC,oBAAoB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SAChE;;;;;QAED,0CAAO;;;;QAAP,UAAQ,OAAgB;YACtB,OAAO,IAAI,CAAC,cAAc,CAAC,2BAA2B,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;SACxE;;oBAhDFC,eAAU,SAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;oBAbQC,kBAAS;;;uCADlB;KA8DC,CA/C6C,kBAAkB,GA+C/D;;;;;;QA7Ca,iDAAyC;;;;;;;ACjBvD;QAUA;SA4BC;;oBA5BAC,aAAQ,SAAC;wBACR,OAAO,EAAE;4BACPC,mBAAY;4BACZC,wBAAe;4BACfC,wBAAe;4BACfC,sBAAa;4BACbC,mBAAY;yBACb;wBACD,YAAY,EAAE;4BACZR,UAA0B;4BAC1B,2BAA2B;4BAC3B,oBAAoB;4BACpBR,UAAuB;yBACxB;wBACD,OAAO,EAAE;4BACPQ,UAA0B;4BAC1BR,UAAuB;yBACxB;wBACD,eAAe,EAAE;4BACfQ,UAA0B;4BAC1B,2BAA2B;4BAC3B,oBAAoB;yBACrB;wBACD,SAAS,EAAE;4BACT,wBAAwB;yBACzB;qBACF;;QAED,wBAAC;KA5BD;;;;;;;QCME;SACC;;;;QAED,uCAAQ;;;QAAR;SACC;;oBAjBFxB,cAAS,SAAC;wBACT,QAAQ,EAAE,kCAAkC;wBAC5C,0MAA4C;;qBAE7C;;;;;gCAGEN,UAAK;2BAGLA,UAAK;;QAFNG;YADUC,kBAAW,EAAE;sCACZC,iBAAU;+DAAU;QAG/BF;YADUoC,wBAAiB,CAAC,WAAW,CAAC;;0DAC1B;QAQhB,2BAAC;KAnBD,IAmBC;;;QAZC,yCAC+B;;QAE/B,oCACc;;;;;;;ACdhB;QAaE;SACC;;;;QAED,sCAAQ;;;QAAR;SACC;;oBAfFjC,cAAS,SAAC;wBACT,QAAQ,EAAE,iCAAiC;wBAC3C,QAAQ,EAAE,0FAIT;;qBAEF;;;;QAQD,0BAAC;KAhBD;;;;;;ACDA;QAME,yBAAqB,SAAuC,EACvC,IAAY,EACZ,YAAqB,EACrB,KAAa,EACb,IAA4B,EAC5B,eAA2C,EAC3C,QAA2B;YAN3B,cAAS,GAAT,SAAS,CAA8B;YACvC,SAAI,GAAJ,IAAI,CAAQ;YACZ,iBAAY,GAAZ,YAAY,CAAS;YACrB,UAAK,GAAL,KAAK,CAAQ;YACb,SAAI,GAAJ,IAAI,CAAwB;YAC5B,oBAAe,GAAf,eAAe,CAA4B;YAC3C,aAAQ,GAAR,QAAQ,CAAmB;SAC/C;;;;QAED,4CAAkB;;;QAAlB;YACE,OAAO,IAAI,CAAC,eAAe,CAAC;SAC7B;;;;;;;QAED,iCAAO;;;;;;QAAP,UAAW,GAAW,EAAE,YAAgB;YACtC,OAAO,IAAI,CAAC,IAAI;gBACdkC,mBAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBACvD,YAAY,CAAC;SAChB;;;;;;;QAED,oCAAU;;;;;;QAAV,UAAc,IAAc,EAAE,YAAgB;YAA9C,iBAOC;YANC,IAAI,IAAI,CAAC,IAAI,EAAE;;oBACP,KAAK,GAAG,IAAI,CAAC,IAAI;;;;gBAAC,UAAA,GAAG,IAAI,OAAA,CAACA,mBAAC,CAAC,KAAK,CAAC,KAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAA,EAAC;gBACxD,OAAO,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;aAChD;iBAAM;gBACL,OAAO,YAAY,CAAC;aACrB;SACF;QACH,sBAAC;KAAA,IAAA;;;QA3Ba,oCAAgD;;QAChD,+BAAqB;;QACrB,uCAA8B;;QAC9B,gCAAsB;;QACtB,+BAAqC;;QACrC,0CAAoD;;QACpD,mCAAoC;;;;;;;;;ACHlD,QAAa,wBAAwB,GAAG,0BAA0B;;;AAElE,QAAa,wBAAwB,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAExE;QAAoC5C,kCAAmB;QAIrD;mBACE,iBAAO;SACR;;;;;QAEM,2CAAkB;;;;QAAzB,UAA0B,kBAAiD;YAA3E,iBAMC;YALCa,aAAM,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACtC,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;YAC7C,IAAI,CAAC,eAAe,CAAC,kBAAkB,EAAE,CAAC,OAAO;;;;YAAC,UAAA,YAAY;gBAC5D,KAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;aACnC,EAAC,CAAC;SACJ;;;;;;;QAEO,uCAAc;;;;;;QAAtB,UAA6B,YAAuC;;gBAC5D,KAAK,sBAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAuB;;YAEpE,IAAI,CAAC,kBAAkB,CAAC,IAAIgC,cAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,KAAK,EAAE;gBAClE,OAAO;;;;gBAAP,UAAQ,UAA6B;oBACnC,OAAO,UAAU,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;iBAC3D;gBACD,MAAM;;;;;gBAAN,UAAO,KAAQ,EAAE,iBAAqC;oBACpD,OAAO,iBAAiB,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;iBACvD;aACF,CAAC,CAAC,CAAC;SACL;QAGD,sBAAI,2CAAe;;;;YAAnB;gBACE,OAAO,cAAc,CAAC,aAAa,uCAAC,IAAI,CAAC,WAAW,KAAyC,CAAC;aAC/F;;;WAAA;QAED,sBAAI,uCAAW;;;;YAAf;gBACE,OAAO,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG;;;;gBAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,SAAS,GAAA,EAAC,CAAC;aAC5D;;;WAAA;;;;QAED,sCAAa;;;QAAb;YACE,OAAO,IAAI,CAAC;SACb;;;;QAED,qCAAY;;;QAAZ;SACC;QAbDtC;YADCuC,4BAAO,EAAE;sCACa,eAAe;;6DAErC;QAaH,qBAAC;KAAA,CA7CmC,mBAAmB,GA6CtD;;;;;;QA3CCC,oDAA0D;;IA6C5D,WAAiB,cAAc;;;;;QAE7B,SAAgB,2BAA2B,CAAC,MAAW;YACrD,OAAOhC,WAAI,CAAC,gBAAgB,oBAAC,MAAM,GAAuB,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;SACrF;QAFe,0CAA2B,8BAE1C,CAAA;;;;;QAED,SAAgB,kBAAkB,CAAC,KAAoC;YACrE,OAAOiC,yBAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,wBAAwB,CAAC,CAAC;SACnE;QAFe,iCAAkB,qBAEjC,CAAA;;;;;QAED,SAAgB,aAAa,CAAC,KAAoC;YAChE,OAAO,OAAO,CAAC,WAAW,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;SAC7D;QAFe,4BAAa,gBAE5B,CAAA;;;;;;QAED,SAAgB,gBAAgB,CAAC,KAAoC,EAAE,UAA2B;YAChG,OAAO,CAAC,cAAc,CAAC,wBAAwB,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;SACrE;QAFe,+BAAgB,mBAE/B,CAAA;KAEF,EAlBgBD,sBAAc,KAAdA,sBAAc,QAkB9B;;;;;;;QCvEqD/C,oDAAmB;QAUvE;YAAA,YACE,iBAAO,SAGR;YAFO,IAAA,kCAAkF,EAAhF,gBAAK,EAAE,oBAAO,EAAE,kBAAM,EAAE,cAAI,EAAE,gBAAK,EAAE,oBAAO,EAAE,sBAAkC;YACxF,KAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC,KAAI,CAAC,WAAW,CAAC,CAAC,GAAG;;;;YAAC,UAAA,CAAC,IAAI,OAAA+C,sBAAc,CAAC,aAAa,CAAC,CAAC,CAAC,GAAA,EAAC,CAAC;;SAC3F;;;;;QAGD,iDAAM;;;;QAAN,UAAO,QAAyB;;gBACxB,OAAO,sBAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,EAAW;YAClD,OAAO;gBACL,KAAK;;;gBAAE,cAAM,OAAA,OAAO,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,GAAA,CAAA;gBACnF,OAAO;;;gBAAE,cAAM,OAAA,OAAO,IAAI,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,GAAA,CAAA;gBACpG,IAAI;;;gBAAE,cAAM,OAAA,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,GAAA,CAAA;aACzF,CAAC;SACH;;;;QAED,mDAAQ;;;QAAR;SACC;;6BAzBA3C,UAAK;kCAGLA,UAAK;;QAFNG;YADUK,uBAAgB,CAAC,aAAa,CAAC;;wEACD;QAGxCL;YADUC,kBAAW,EAAE;sCACVG,gBAAS;6EAAgC;QAWtDJ;YADCuC,WAAO,EAAE;;6CACO,eAAe;;sEAO/B;QAKH,uCAAC;KAAA,CA7BqD,mBAAmB,GA6BxE;;;QA3BC,kDACwC;;QAExC,uDACsD;;QAEtD,4DAA2D;;;;;;;;QCRlB9C,yCAAgC;QAKzE;YAAA,YACE,iBAAO,SACR;YAJM,cAAQ,GAAG,IAAI,CAAC;;SAItB;;;;QAED,0CAAU;;;QAAV;YACE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;SACtB;;;;QAED,4CAAY;;;QAAZ;YACE,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;SACvB;;;;QAED,0CAAU;;;QAAV;YACE,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;SAChC;;oBAxBFU,cAAS,SAAC;wBACT,QAAQ,EAAE,oCAAoC;wBAC9C,kaAA8C;;qBAE/C;;;;;+BAGEuC,gBAAW,SAAC,gBAAgB;;QAkB/B,4BAAC;KAAA,CApB0C,gCAAgC,GAoB1E;;;QAlBC,yCACuB;;;;;;;ACXzB;QAaE,sBAA6B,MAAc;YAAd,WAAM,GAAN,MAAM,CAAQ;YACzC,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;SACpB;;;;;QAED,0BAAG;;;;QAAH,UAAI,KAAwB;;gBACpB,aAAa,GAAGL,mBAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC3C,IAAI,CAAC,aAAa,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;gBACrD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;gBAE1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;aAC3C;SACF;;oBAlBFT,eAAU,SAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;oBAPQe,aAAM;;;2BADf;KAMA,IAgCC;;;;;;QA3BC,gCAAsC;;;;;QAE1B,8BAA+B;;;;;;;ACb7C;QAUE,qBAA6B,MAAc;YAAd,WAAM,GAAN,MAAM,CAAQ;SAC1C;;;;;;;QAED,iDAA2B;;;;;;QAA3B,UAA4B,cAA8B,EAAE,QAA2B,EAAE,IAAuB;YAC9G,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE;gBAC3E,UAAU,EAAE,cAAc;aAC3B,CAAC,CAAC;SACJ;;;;;;;QAED,mCAAa;;;;;;QAAb,UAAc,cAAsC,EAAE,SAA4B,EAAE,QAA2B;YAC7G,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;SACtF;;;;;;;;QAES,8BAAQ;;;;;;;QAAlB,UAAmB,cAAsC,EAAE,QAA2B,EAAE,IAAuB;;gBACvG,aAAa,GAAGN,mBAAC,CAAC,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG;;;;YAAC,UAAA,KAAK,IAAI,OAAA,KAAK,CAAC,GAAG,GAAA,EAAC,CAAC;;gBAC1E,YAAY,GAAG,CAAC,CAAC,QAAQ,CAAC,UAAU,EAAE,GAAG,IAAI,GAAG,GAAG;;gBACnD,OAAO,GAAG,IAAI,CAAC,mBAAmB,EAAE;;gBACpC,IAAI,GAAG,OAAO;gBAClB,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;gBACtD,CAAC,YAAY,EAAE,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC/C,OAAO,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG;;;;YAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,IAAI,GAAA,EAAC,CAAC,CAAC;SACpD;;oBAzBFT,eAAU,SAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;oBAPgDe,aAAM;;;0BADvD;KAMA,IA2BC;;;;;;QAvBa,6BAA+B;;;;;;;;;;;ACJ7C;;;;;QAOE,6BAAqB,YAAoB,EAAW,IAAsB,EAAE,OAAuC;YAA9F,iBAAY,GAAZ,YAAY,CAAQ;YAAW,SAAI,GAAJ,IAAI,CAAkB;;gBAClE,IAAI,GAAGC,wBAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAC9B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;;;;;;SAMlD;;;;;QAED,0CAAY;;;;QAAZ,UAAa,QAAiB;YAC5B,OAAO,IAAI,CAAC,SAAS,CAAC;SACvB;QACH,0BAAC;KAAA,IAAA;;;QAnBCC,gDAAqC;;QACrCA,8CAAmC;;QAEnCA,2CAAsB;;QACtBA,gDAAoD;;QAExCA,mDAA6B;;QAAEA,2CAA+B;;IAe5E,WAAiB,mBAAmB;;;;;QAElC,sBAMC;;;;YALC,qBAAY;;YACZ,2BAAmB;;YACnB,2BAAmB;;YACnB,+BAAiB;;;;;QAInB;;;;YAAgCpD,2BAAsB;YAAtD;gBAAA,qEAGC;gBAFU,eAAS,GAAG,IAAI,CAAC;gBACjB,aAAO,GAAG,KAAK,CAAC;;aAC1B;YAAD,cAAC;SAHD,CAAgC,mBAAmB,GAGlD;QAHY,2BAAO,UAGnB,CAAA;;;YAFC,4BAA0B;;YAC1B,0BAAyB;;;;;QAG3B;;;;YAAuCA,kCAAsB;YAA7D;gBAAA,qEAGC;gBAFU,eAAS,GAAG,KAAK,CAAC;gBAClB,aAAO,GAAG,KAAK,CAAC;;aAC1B;YAAD,qBAAC;SAHD,CAAuC,mBAAmB,GAGzD;QAHY,kCAAc,iBAG1B,CAAA;;;YAFC,mCAA2B;;YAC3B,iCAAyB;;;;;QAG3B;;;;YAAuCA,kCAA2B;YAAlE;gBAAA,qEAGC;gBAFU,eAAS,GAAG,KAAK,CAAC;gBAClB,aAAO,GAAG,IAAI,CAAC;;aACzB;YAAD,qBAAC;SAHD,CAAuC,mBAAmB,GAGzD;QAHY,kCAAc,iBAG1B,CAAA;;;YAFC,mCAA2B;;YAC3B,iCAAwB;;KAI3B,EA1BgBoD,2BAAmB,KAAnBA,2BAAmB,QA0BnC;;;;;;;QC3CC,2BAAqB,eAAgC,EAAmB,QAAyD;YAA5G,oBAAe,GAAf,eAAe,CAAiB;YAAmB,aAAQ,GAAR,QAAQ,CAAiD;SAChI;;;;;QAED,sCAAU;;;;QAAV,UAAW,KAAwB;;gBAC3B,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI;;;;YAAC,UAAC,CAAC;gBACnC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;aACnE,EAAC;;;;YAIF,OAAO,CAAC,CAAC,OAAO,CAAC;SAClB;;;;;;QAGD,gDAAoB;;;;;QAApB,UAA2B,YAAuC;YAChE,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI;;;;YAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,YAAY,KAAK,YAAY,GAAA,EAAC,CAAC;SACjE;;;;;;QAGD,qDAAyB;;;;;QAAzB,UAAgC,YAAuC;;gBAC/D,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC;YACjE,OAAO,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC;SAC3D;;;;QAED,sCAAU;;;QAAV;YACE,OAAO,IAAI,CAAC,kBAAkB,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;SAC3E;;;;;QAGD,6CAAiB;;;;QAAjB,UAAkB,IAAY;;gBACtB,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI;;;;YAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,YAAY,CAAC,IAAI,KAAK,IAAI,GAAA,EAAC;YAC/E,OAAO,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,GAAG,IAAI,CAAC;SAC3D;;;;;QAGO,8CAAkB;;;;QAA1B;;;YAGE,0BAAO,IAAI,CAAC,QAAQ,CAAC,IAAI;;;;YAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,YAAY,CAAC,SAAS,GAAA,EAAC,GAAkD;SAC3G;;;;QAED,sCAAU;;;QAAV;YACE,OAAO,CAAC,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;SACpC;;;;QAED,+CAAmB;;;QAAnB;;gBACQ,YAAY,GAAG,IAAI,CAAC,kBAAkB,EAAE;YAC9C,OAAO,YAAY,GAAG,YAAY,CAAC,cAAc,EAAE,GAAG,IAAI,CAAC;SAC5D;;;;QAED,kDAAsB;;;QAAtB;;gBACQ,MAAM,GAAG,EAAE;;gBACX,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM;;;;YAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,GAAA,EAAC,CAAC,OAAO;;;;YAAC,UAAA,CAAC;gBACjF,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,CAAC;aAClD,EAAC;YACF,OAAO,MAAM,CAAC;SACf;;;;;;;QAED,mCAAO;;;;;;QAAP,UAAc,SAAoC,EAAE,KAAQ;YAC1D,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;;;;YAAC,UAAA,CAAC;gBACpE,OAAO,CAAC,CAAC,YAAY,KAAK,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;aAC5D,EAAC,CAAC,CAAC;SACL;;;;;QAEK,oCAAQ;;;;QAAd,UAAe,QAAkB;;;oBAC/B,sBAAO,IAAI,EAAC;;;SACb;;QApDD7C;YADCuC,WAAO,EAAE;;6CAC+BM,2BAAmB;4CAAS,iBAAiB,CAAC,iBAAiB;qEAEvG;QAGD7C;YADCuC,WAAO,EAAE;;6CACoCM,2BAAmB;gEAAS,CAAC,oBAAD,CAAC;0EAG1E;QAOD7C;YADCuC,WAAO,EAAE;;;;kEAIT;QAGDvC;YADCuC,WAAO,EAAE;;;4CACoB,iBAAiB,CAAC,sBAAsB;mEAIrE;QA4BH,wBAAC;KArED,IAqEC;;;QAnEaO,oDAAyC;;;;;QAAEA,6CAA0E;;IAqEnI,WAAiB,iBAAiB;;;;;;QAEhC,SAAgB,MAAM,CAAC,QAAyB,EAAE,QAAkB;;gBAC5D,kBAAkB,GAAkC,QAAQ,CAAC,kBAAkB,EAAE;iBACpF,GAAG;;;;YAAC,UAAA,GAAG;gBACN,IAAI,GAAG,CAAC,OAAO,EAAE;;wBACT,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG;;;;oBAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAA,EAAC,GAAG,IAAI;oBACvG,OAAO,IAAI,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBAC/C;qBAAM;;wBACC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI;oBACpF,OAAO,IAAI,sBAAsB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;iBAC/C;aACF,EAAC;YACJ,OAAO,IAAI,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAC;SAC5D;QAZe,wBAAM,SAYrB,CAAA;;;;;QAGD;;;;;YACE,2BAAqB,YAAuC,EAAW,KAAQ;gBAA1D,iBAAY,GAAZ,YAAY,CAA2B;gBAAW,UAAK,GAAL,KAAK,CAAG;aAC9E;;;;YAMD,qCAAS;;;YAAT;gBACE,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;aACpC;YAKH,wBAAC;SAAA,IAAA;QAfqB,mCAAiB,oBAetC,CAAA;;;YAda,yCAAgD;;YAAE,kCAAiB;;;;;;YAG/E,mEAA0C;;;;;;YAE1C,+DAAwC;;;;;YAMxC,6DAA6C;;;;;;YAE7C,2DAAoD;;;;;QAGtD;;;;YAA+CrD,0CAAuB;YAAtE;;aAiBC;;;;;YAfC,uCAAM;;;;YAAN,UAAO,UAAa;gBAClB,OAAO,IAAI,CAAC,KAAK,KAAK,UAAU,CAAC;aAClC;;;;;YAED,iDAAgB;;;;YAAhB,UAAiB,IAAQ;gBACvB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC1E;;;;;YAED,wCAAO;;;;YAAP,UAAQ,KAAQ;gBACd,OAAO,IAAI,sBAAsB,CAAI,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;aAChE;;;;YAED,+CAAc;;;YAAd;gBACE,OAAO,CAAC4C,mBAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;aAChF;YACH,6BAAC;SAjBD,CAA+C,iBAAiB,GAiB/D;QAjBY,wCAAsB,yBAiBlC,CAAA;;;;QAED;;;;YAA+C5C,0CAAyB;YAAxE;;aAkBC;;;;;YAhBC,uCAAM;;;;YAAN,UAAO,UAAe;gBACpB,OAAO4C,mBAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;aAC1C;;;;;YAED,iDAAgB;;;;YAAhB,UAAiB,IAAQ;gBAAzB,iBAEC;gBADC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG;;;;gBAAC,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAA,EAAC,CAAC;aACtF;;;;;YAED,wCAAO;;;;YAAP,UAAQ,KAAU;gBAChB,OAAO,IAAI,sBAAsB,CAAI,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;aAChE;;;;YAED,+CAAc;;;YAAd;gBAAA,iBAEC;gBADC,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG;;;;gBAAC,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAA,EAAC,GAAG,EAAE,CAAC;aAChF;YAEH,6BAAC;SAlBD,CAA+C,iBAAiB,GAkB/D;QAlBY,wCAAsB,yBAkBlC,CAAA;KAEF,EAzEgBS,yBAAiB,KAAjBA,yBAAiB,QAyEjC;;;;;;ICzJD;;QAGM,mBAAmB,GAAGC,kBAAK,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;;QAEnG,IAAI,GAAG;QACXC,kBAAK,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAChEC,kBAAK,CAAC;YACJD,kBAAK,CAAC,QAAQ,EAAE;gBACdD,kBAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC;gBACzCG,oBAAO,CAAC,uBAAuB,EAAEH,kBAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;aACzE,EAAE;gBACD,QAAQ,EAAE,IAAI;aACf,CAAC;YACFC,kBAAK,CAAC,QAAQ,EAAE;gBACdD,kBAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;gBACtCG,oBAAO,CAAC,uBAAuB,EAAEH,kBAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC,CAAC;aAC3E,EAAE;gBACD,QAAQ,EAAE,IAAI;aACf,CAAC;SACH,CAAC;KACH;;QAEK,KAAK,GAAG;QACZC,kBAAK,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAChEC,kBAAK,CAAC;YACJD,kBAAK,CAAC,QAAQ,EAAE;gBACdD,kBAAK,CAAC,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gBACxCG,oBAAO,CAAC,uBAAuB,EAAEH,kBAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;aACzE,EAAE;gBACD,QAAQ,EAAE,IAAI;aACf,CAAC;YACFC,kBAAK,CAAC,QAAQ,EAAE,CAACD,kBAAK,CAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,EAAEG,oBAAO,CAAC,uBAAuB,EAAEH,kBAAK,CAAC,EAAE,SAAS,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAC,EAAE;gBACrI,QAAQ,EAAE,IAAI;aACf,CAAC;SACH,CAAC;KACH;;;;;IAED,SAAgB,uBAAuB,CAAC,QAAgB;QACtD,OAAOI,oBAAO,CAAC,iBAAiB,EAAE;YAChCC,uBAAU,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;YACnEA,uBAAU,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,CAAC;SACnE,CAAC,CAAC;KACJ;;AAED,QAAa,0BAA0B,GAAG,uBAAuB,CAAC,MAAM,CAAC;;;;;;;;;ICjCzE,uBAMC;;;QALC,mCAAyC;;;;;QAEzC,6DAA+D;;;;QAE/D,kDAAqB;;AAGvB;QAM0C3D,wCAAmB;QAmB3D,8BAA6B,MAAmB,EAAmB,YAA0B;YAA7F,YACE,iBAAO,SA2BR;YA5B4B,YAAM,GAAN,MAAM,CAAa;YAAmB,kBAAY,GAAZ,YAAY,CAAc;YAhB7F,aAAO,GAAG,IAAI,CAAC;YAOE,0BAAoB,GAAG,IAAI4D,YAAK,EAAE,CAAC;YACnC,qBAAe,GAAG,IAAIA,YAAK,EAAE,CAAC;YAC9B,0BAAoB,GAAG,IAAIC,wBAAiB,EAAkB,CAAC;YAC/D,sBAAgB,GAAG,IAAIA,wBAAiB,EAAmB,CAAC;YAGpE,yBAAmB,GAAG,IAAIA,wBAAiB,EAAqB,CAAC;YAKlE,IAAA,kCAAkF,EAAhF,gBAAK,EAAE,oBAAO,EAAE,kBAAM,EAAE,cAAI,EAAE,gBAAK,EAAE,oBAAO,EAAE,sBAAkC;YAExF,KAAI,CAAC,SAAS,GAAG,KAAK,CAAC,KAAI,CAAC,oBAAoB,CAAC,CAAC,mBAAmB;;;;YAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,QAAQ,GAAA,EAAC,CAAC;YAEzF,KAAI,CAAC,eAAe,GAAG,OAAO,CAAC,GAAG,CAChC,KAAK,CAAC,KAAI,CAAC,eAAe,CAAC,CAAC,QAAQ,EAAE,EACtC,KAAI,CAAC,gBAAgB,EACrB,KAAI,CAAC,SAAS,CACf,CAAC,SAAS,EAAE,CAAC;YAEd,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,SAAS,CAAC,CAAC,OAAO;;;;YAAC,UAAC,MAAM;;oBACpC,QAAQ,GAAGR,yBAAiB,CAAC,MAAM,CAAC,KAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC;gBAC9E,KAAI,CAAC,oBAAoB,CAAC,SAAS;;;gBAAC;oBAClC,KAAI,CAAC,mBAAmB,CAAC,KAAK,GAAG,QAAQ,CAAC;oBAC1C,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;iBACjC,EAAC,CAAC;aACJ,GAAE;gBACD,aAAa,EAAE,KAAI,CAAC,eAAe;aACpC,CAAC,CAAC;YAEH,IAAI,CAAC,OAAO,CAAC,KAAI,CAAC,mBAAmB,CAAC,CAAC,OAAO;;;;;YAAC,UAAC,IAAI,EAAE,QAAQ;gBAC5D,KAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;gBACxC,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;aAC7B,GAAE;gBACD,MAAM,EAAE,KAAI,CAAC,mBAAmB;aACjC,CAAC,CAAC;;SACJ;QAED,sBAAI,qDAAmB;;;;YAAvB;gBACE,OAAO,IAAI,CAAC,oBAAoB,CAAC;aAClC;;;WAAA;;;;QAED,uCAAQ;;;QAAR;SACC;;;;;;QAED,gDAAiB;;;;;QAAjB,UAAkB,YAA0B,EAAE,KAAe;YAA7D,iBAeC;YAdC,IAAI,CAAC,eAAe,CAAC,SAAS;;;YAAC;gBAC7B,IAAI;oBACF,KAAI,CAAC,aAAa,GAAG,KAAK,CAAC;oBAC3B,KAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,YAAY,CAAC,cAAc,CAAC;oBAC9D,KAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC;oBACpD,KAAK,CAAC,kBAAkB,CAAC,KAAI,CAAC,mBAAmB,CAAC,CAAC;iBACpD;gBAAC,OAAO,KAAK,EAAE;oBACd,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBACtB;aACF,EAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;;gBAEjB,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;SACF;;;;;;QAED,kDAAmB;;;;;QAAnB,UAAoB,YAA0B,EAAE,MAAgB;YAAhE,iBAMC;YALC,IAAI,CAAC,eAAe,CAAC,SAAS;;;YAAC;gBAC7B,KAAI,CAAC,aAAa,GAAG,IAAI,CAAC;gBAC1B,KAAI,CAAC,oBAAoB,CAAC,KAAK,GAAG,IAAI,CAAC;gBACvC,KAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,IAAI,CAAC;aACpC,EAAC,CAAC;SACJ;;;;;QAED,4CAAa;;;;QAAb,UAAc,MAAoB;YAChC,OAAO,IAAI,CAAC,OAAO,IAAI,MAAM,IAAI,MAAM,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;SACvG;;;;QAED,4CAAa;;;QAAb;YACE,IAAI,IAAI,CAAC,aAAa,EAAE;gBACtB,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;aACnC;SACF;;;;;;QAED,iDAAkB;;;;;QAAlB,UAAmB,IAAuB,EAAE,QAA2B;;gBAC/D,cAAc,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK;YACtD,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;SACzE;;;;;;QAED,uCAAQ;;;;;QAAR,UAAS,QAA2B,EAAE,QAAgD;YACpF,OAAO,QAAQ,CAAC;SACjB;;oBAxGF3C,cAAS,SAAC;wBACT,QAAQ,EAAE,kCAAkC;wBAC5C,kYAA4C;wBAE5C,UAAU,EAAE,CAAC,0BAA0B,CAAC;;qBACzC;;;;oBAnBQ,WAAW;oBADX,YAAY;;;8BAuBlBN,UAAK;gCAGL4B,cAAS,SAAC,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;QAgG5C,2BAAC;KAAA,CArGyC,mBAAmB,GAqG5D;;;QAnGC,uCACe;;QAEf,yCACwB;;;;;QAExB,6CAAgC;;;;;QAEhC,oDAAoD;;;;;QACpD,+CAA+C;;;;;QAC/C,oDAAgF;;;;;QAChF,gDAA6E;;;;;QAC7E,yCAAsD;;QAEtD,mDAA0E;;;;;QAC1E,+CAAgD;;;;;QAEpC,sCAAoC;;;;;QAAE,4CAA2C;;;;;;;;QCrC3ChC,kDAAgC;QAClF;mBACE,iBAAO;SACR;;oBARFU,cAAS,SAAC;wBACT,QAAQ,EAAE,6CAA6C;wBACvD,oZAAuD;;qBAExD;;;;QAKD,qCAAC;KAAA,CAJmD,gCAAgC;;;;;;ACRpF;QAeA;SA8BC;;oBA9BA2B,aAAQ,SAAC;wBACR,OAAO,EAAE;4BACPC,mBAAY;4BACZwB,kCAAuB;4BACvBC,iCAAwB;4BACxBC,mBAAY;4BACZvB,kBAAa;4BACbwB,kBAAa;4BACbC,wBAAgB;4BAChBC,kBAAa;yBACd;wBACD,YAAY,EAAE;4BACZ,mBAAmB;4BACnB,oBAAoB;4BACpB,oBAAoB;4BACpB,8BAA8B;4BAC9B,qBAAqB;yBACtB;wBACD,eAAe,EAAE,CAAC,oBAAoB,CAAC;wBACvC,OAAO,EAAE;4BACP,oBAAoB;4BACpB,oBAAoB;4BACpB,mBAAmB;4BACnB,8BAA8B;4BAC9B,qBAAqB;yBACtB;wBACD,SAAS,EAAE,EAAE;qBACd;;QAGD,kBAAC;KA9BD;;;;;;ACfA;QAeA;SAiCC;;oBAjCA9B,aAAQ,SAAC;wBACR,YAAY,EAAE;4BACZ,gBAAgB;4BAChB,qBAAqB;4BACrB,oBAAoB;4BACpB,oBAAoB;4BACpB,sBAAsB;4BACtB,oBAAoB;yBACrB;wBACD,OAAO,EAAE;4BACPC,mBAAY;4BACZwB,kCAAuB;4BACvBM,iBAAW;4BACXC,uBAAc;4BACdC,2BAAkB;4BAClBC,wBAAe;4BACf9B,kBAAa;4BACb,WAAW;4BACX,iBAAiB;yBAClB;wBACD,OAAO,EAAE;4BACP,gBAAgB;4BAChB,qBAAqB;4BACrB,oBAAoB;4BACpB,oBAAoB;4BACpB,sBAAsB;4BACtB,oBAAoB;4BACpB,iBAAiB;4BACjB,WAAW;yBACZ;qBAEF;;QAED,8BAAC;KAjCD;;;;;;ICfA;QAGM,qBAAqB,GAAGa,kBAAK,CAAC;QAClC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,GAAG;QACb,UAAU,EAAE,GAAG;QACf,aAAa,EAAE,GAAG;KACnB,CAAC;;;;;;IAEF,SAAgB,uBAAuB,CAAC,WAAmB,EAAE,OAG5D;;;YAEO,QAAQ,GAAGkB,oBAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC;;YACtE,cAAc,GAAGA,oBAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;QACtG,OAAOd,oBAAO,CAAC,WAAW,EAAE;YAC1BC,uBAAU,CAAC,QAAQ,EAAE,CAAC,cAAc,EAAEF,oBAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACxDE,uBAAU,CAAC,QAAQ,EAAE,CAACF,oBAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;SACzD,CAAC,CAAC;KACJ;;;;;;;;;;;ACrBD;QACE,mBAAqB,KAAa,EAAW,MAAc;YAAtC,UAAK,GAAL,KAAK,CAAQ;YAAW,WAAM,GAAN,MAAM,CAAQ;SAC1D;QACH,gBAAC;KAAA,IAAA;;;QAFa,0BAAsB;;QAAE,2BAAuB;;;;;;;ACD7D;QAME,eAAqB,CAAS,EAAW,CAAS;YAA7B,MAAC,GAAD,CAAC,CAAQ;YAAW,MAAC,GAAD,CAAC,CAAQ;SACjD;;;;;QALM,UAAI;;;;QAAX,UAAY,IAA8B;YACxC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;SAClC;;;;;;QAKD,yBAAS;;;;;QAAT,UAAU,CAAS,EAAE,CAAS;YAC5B,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SAC1C;QACH,YAAC;KAAA,IAAA;;;QANa,kBAAkB;;QAAE,kBAAkB;;;;;;;;QCHxBzD,0BAAS;QAEnC,gBAAqB,GAAW,EAAW,IAAY,EAAW,KAAa,EAAW,MAAc;YAAxG,YACE,kBAAM,KAAK,EAAE,MAAM,CAAC,SACrB;YAFoB,SAAG,GAAH,GAAG,CAAQ;YAAW,UAAI,GAAJ,IAAI,CAAQ;YAAW,WAAK,GAAL,KAAK,CAAQ;YAAW,YAAM,GAAN,MAAM,CAAQ;;SAEvG;;;;;QAED,mCAAkB;;;;QAAlB,UAAmB,KAA4C;YAC7D,IAAI,KAAK,YAAY,UAAU,EAAE;gBAC/B,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;aACvE;iBAAM;gBACL,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;aAC3D;SACF;QACH,aAAC;KAbD,CAA4B,SAAS,GAapC;;;QAXayE,6BAAoB;;QAAEA,8BAAqB;;QAAEA,+BAAsB;;QAAEA,gCAAuB;;IAa1G,WAAiB,MAAM;;;;;QACrB,SAAgB,SAAS,CAAC,OAAoB;;gBACtC,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE;YAC5C,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;SACjE;QAHe,gBAAS,YAGxB,CAAA;KACF,EALgBA,cAAM,KAANA,cAAM,QAKtB;;;;;;;QChByCzE,wCAAmB;QAI3D,8BAA+B,UAAsB,EAAqB,MAAc;YAAxF,YACE,iBAAO,SACR;YAF8B,gBAAU,GAAV,UAAU,CAAY;YAAqB,YAAM,GAAN,MAAM,CAAQ;YAFhF,kBAAY,GAAG,IAAI0E,kBAAW,CAAS,IAAID,cAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;;SAItE;;;;QAED,8CAAe;;;QAAf;YAAA,iBAQC;YAPC,IAAI,CAAC,YAAY,EAAE,CAAC;;gBACd,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa;;gBACvC,EAAE,GAAG,IAAI,cAAc;;;;;YAAC,UAAC,OAAO,EAAE,QAAQ;gBAC9C,KAAI,CAAC,MAAM,CAAC,GAAG;;;gBAAC,cAAM,OAAA,KAAI,CAAC,YAAY,EAAE,GAAA,EAAC,CAAC;aAC5C,EAAC;YACF,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACpB,IAAI,CAAC,SAAS;;;YAAC,cAAM,OAAA,EAAE,CAAC,UAAU,EAAE,GAAA,EAAC,CAAC;SACvC;QAED,sBAAI,6CAAW;;;;YAAf;gBACE,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;aACnC;;;WAAA;QAED,sBAAI,+CAAa;;;;YAAjB;gBACE,OAAO,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC;aACtC;;;WAAA;;;;;;;QAGM,iDAAkB;;;;;;QAAzB,UAA0B,KAA4C;YACpE,OAAO,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;SAC9C;QAED,sBAAI,wCAAM;;;;YAAV;gBACE,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;aAChC;;;WAAA;;;;;QAEO,2CAAY;;;;QAApB;YACE,IAAI,CAAC,YAAY,CAAC,KAAK,GAAGA,cAAM,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAChE;QAGH,2BAAC;KAxCD,CAA0C,mBAAmB,GAwC5D;;;;;;QAtCC,4CAAuE;;;;;QAE3D,0CAAyC;;;;;QAAE,sCAAiC;;;;;;;;;;;;;;;;;;;;ICX1F,oBAMC;;;;;QALC,wCAAiB;;;;QAEjB,0CAAoB;;;;QAEpB,qCAAa;;;;;;;;;;ICHf,sBAIC;;;QAHC,8BAA4B;;;;QAE5B,2CAAiB;;;;;;;;;;;ICLnB,qBAEC;IAED,WAAiB,MAAM;;;;;QACrB,uBAGC;;;;YAFC,wBAA0B;;YAC1B,yBAA2B;;KAG9B,EANgB,MAAM,KAAN,MAAM,QAMtB;;;;;;;;;;ICLD,oCAMC;;;QALC,mDAAuC;;QACvC,8CAAgD;;QAChD,6CAAgB;;QAChB,uCAA4B;;QAC5B,yCAA6B;;;;;;;;;;;;;;;ICV/B,sBAMC;;;;;QALC,0CAAgB;;;;QAEhB,yCAAgB;;;;QAEhB,4CAAmB;;;;;;;ICLrB;;;;IAKA,SAAgB,KAAK,CAAC,OAAsB;QAC1C;;;;QAAO,UAAC,MAAgB;YACtB,IAAI1B,sBAAc,CAAC,2BAA2B,CAAC,MAAM,CAAC,EAAE;gBACtDA,sBAAc,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,eAAe,CACzD,MAAM,EACN,OAAO,CAAC,IAAI,EACZ4B,gBAAO,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,KAAK,GAAG,OAAO,CAAC,YAAY,EAC5D,OAAO,CAAC,KAAK,EACb,OAAO,CAAC,IAAI,EACZ5B,sBAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,EACzC,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,GAAG;;;;gBAAC,UAAA,CAAC,IAAI,OAAAA,sBAAc,CAAC,aAAa,CAAC,CAAC,CAAC,GAAA,EAAC,CACnE,CAAC,CAAC;aAEJ;iBAAM;gBACLhC,WAAI,CAAC,YAAY,CAAI,MAAM,4DAAyD,CAAC,CAAC;aACvF;SACF,EAAC;KACH;IAED,WAAiB,KAAK;;;;QAEpB,sBAMC;;;;YALC,uBAAa;;YACb,wBAAc;;YACd,uBAA8B;;YAC9B,+BAAuB;;YACvB,2BAA0C;;KAG7C,EAVgB,KAAK,KAAL,KAAK,QAUrB;;;;;;;;;IC/BD,oBAMC;;;QALC,gCAA0C;;;;QAE1C,6CAAkB;;;;;QAElB,wDAAqC;;;;;;;ACRvC;QAUE,yBAAoB,MAAc,EAAU,QAAkB;YAA1C,WAAM,GAAN,MAAM,CAAQ;YAAU,aAAQ,GAAR,QAAQ,CAAU;SAC7D;;;;;;;;QAED,uCAAa;;;;;;;QAAb,UAAc,SAAyB,EAAE,YAAoC,EAAE,YAAiC,EAAE,SAA+B;;;gBAEzI,IAAI,GAAG,MAAI,SAAS,CAAC,eAAe,CAAC,IAAM;;;;;;;;;;;;YAajD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACnC,OAAO,SAAS,CAAC,aAAa,EAAE,CAAC;aAClC;iBAAM;gBACL,OAAO,IAAI,CAAC;aACb;SACF;;oBA5BFoB,eAAU,SAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;oBAN+Ce,aAAM;oBADjC3B,aAAQ;;;8BAA7B;KAKA,IA8BC;;;;;;QAzBa,iCAAsB;;;;;QAAE,mCAA0B;;;;;;;ACVhE;QAaE,yBAA6B,WAAwB,EAAmB,QAAkB;YAA7D,gBAAW,GAAX,WAAW,CAAa;YAAmB,aAAQ,GAAR,QAAQ,CAAU;SACzF;;;;;;QAED,qCAAW;;;;;QAAX,UAAY,cAAsC,EAAE,KAA0B;YAA9E,iBAgBC;YAdC,IAAIwB,sBAAc,CAAC,2BAA2B,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE;;oBAClE,eAAe,GAAGA,sBAAc,CAAC,aAAa,CAAC,cAAc,CAAC,SAAS,CAAC;;oBACxE,UAAQ,GAAGM,yBAAiB,CAAC,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC,QAAQ,CAAC;gBAEnF,OAAO,UAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI;;;;gBAAC,UAAA,SAAS;oBACpD,IAAI,SAAS,CAAC,UAAU,CAAC,UAAQ,CAAC,EAAE;wBAClC,OAAO,KAAI,CAAC,WAAW,CAAC,aAAa,CAAC,cAAc,EAAE,UAAQ,EAAE,SAAS,CAAC,CAAC;qBAC5E;yBAAM;wBACL,OAAO,IAAI,CAAC;qBACb;iBACF,EAAC,CAAC;aACJ;iBAAM;gBACL,OAAOtC,WAAI,CAAC,YAAY,CAAC,iEAA+D,cAAc,CAAC,SAAW,CAAC,CAAC;aACrH;SACF;;oBAxBFoB,eAAU,SAAC;wBACV,UAAU,EAAE,MAAM;qBACnB;;;;oBALQ,WAAW;oBALCZ,aAAQ;;;8BAA7B;KAQA,IA0BC;;;;;;QArBa,sCAAyC;;;;;QAAE,mCAAmC;;;;;;;;;;ACP5F;QAEE,mCAAoB,GAA8B,EAAW,QAAgB,EAAW,YAAc;YAAlF,QAAG,GAAH,GAAG,CAA2B;YAAW,aAAQ,GAAR,QAAQ,CAAQ;YAAW,iBAAY,GAAZ,YAAY,CAAE;SACrG;;;;;;QAGD,4CAAQ;;;;;QAAR,UAAS,KAAQ,EAAE,KAAY;YAC7B,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACvB,IAAI,IAAI,CAAC,QAAQ,EAAE;;iBAElB;gBACD,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAACqB,mBAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;aAEvF;iBAAM;gBACL,OAAO,KAAK,CAAC;aACd;SACF;;;;;;QAEO,2CAAO;;;;;QAAf,UAAgB,KAAQ;;gBAChB,KAAK,GAAGA,mBAAC,CAAC,KAAK,CAAC,KAAK,CAAC;YAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;SACjE;QAfDrC;YADCsB,YAAK,EAAE;;;;iEAWP;QAMH,gCAAC;KAtBD,IAsBC;;;;;;QApBa,wCAAsC;;QAAE,6CAAyB;;QAAE,iDAAuB;;;;;;;;;;ICLxG,wBACC;;;;IAED,sBAEC;;;;;;ICRD;;;;IAOA,+BAMC;;;QALC,8BAAY;;QACZ,oCAAmB;;QACnB,oCAAmB;;QACnB,wCAAiB;;;;;;IAInB,mCAMC;;;QALC,kCAAY;;QACZ,wCAAmB;;QACnB,wCAAmB;;QACnB,4CAAmB;;;;;;;;IAIrB,SAAgB,OAAO,CAA4B,IAAsB,EAAE,OAA6B;QACtG;;;;;QAAO,UAAC,SAAiB,EAAE,WAA4B;;gBAC/C,KAAK,GAAG,IAAIuB,2BAAmB,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC;YACpFJ,yBAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC3ExC,kBAAW,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SACvC,EAAC;KACH;;;;;;;IAED,SAAgB,cAAc,CAAI,IAAsB,EAAE,OAA6B;QACrF;;;;;QAAO,UAAC,SAAiB,EAAE,WAA4B;;gBAC/C,KAAK,GAAG,IAAI4C,2BAAmB,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC;YAC3FJ,yBAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC3ExC,kBAAW,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SACvC,EAAC;KACH;;;;;;;IAED,SAAgB,kBAAkB,CAAI,WAA6B,EAAE,OAAiC;QACpG;;;;;QAAO,UAAC,SAAiB,EAAE,WAA4B;;gBAC/C,KAAK,GAAG,IAAI4C,2BAAmB,CAAC,cAAc,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC;YAClGJ,yBAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,oBAAoB,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;YAC3ExC,kBAAW,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;SACvC,EAAC;KACH;;;;;;;;;;IC3CD,iCAEC;;;;;;;QADC,oEAAkD;;;;;;;ICHpD;AAQA,AAmCC;IAnCD,WAAiB,aAAa;QAE5B;YAAA;aAQC;;;;;YAPC,2BAAM;;;;YAAN,UAAO,KAAa;gBAClB,OAAO,KAAK,CAAC;aACd;;;;;YAED,0BAAK;;;;YAAL,UAAM,KAAa;gBACjB,OAAO,KAAK,CAAC;aACd;YACH,iBAAC;SAAA,IAAA;QAED;YAAA;aAQC;;;;;YAPC,2BAAM;;;;YAAN,UAAO,KAAa;gBAClB,OAAO,KAAG,KAAO,CAAC;aACnB;;;;;YAED,0BAAK;;;;YAAL,UAAM,KAAa;gBACjB,OAAOoC,mBAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAIA,mBAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC;aAC3D;YACH,iBAAC;SAAA,IAAA;QAED;YAAA;aAQC;;;;;YAPC,4BAAM;;;;YAAN,UAAO,KAAc;gBACnB,OAAO,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;aACjC;;;;;YAED,2BAAK;;;;YAAL,UAAM,KAAa;gBACjB,OAAO,KAAK,KAAK,MAAM,CAAC;aACzB;YACH,kBAAC;SAAA,IAAA;QAEY,oBAAM,GAAG,IAAI,UAAU,EAAE;QACzB,oBAAM,GAAG,IAAI,UAAU,EAAE;QACzB,qBAAO,GAAG,IAAI,WAAW,EAAE;KACzC,EAnCgBgC,qBAAa,KAAbA,qBAAa,QAmC7B;;;;;;;;;AClCD;;;;QAKE,mBAAqB,YAAuC,EAAW,QAAgC,EAAW,SAAgC;YAA7H,iBAAY,GAAZ,YAAY,CAA2B;YAAW,aAAQ,GAAR,QAAQ,CAAwB;YAAW,cAAS,GAAT,SAAS,CAAuB;SACjJ;;;;QAED,6BAAS;;;QAAT;YACE,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC;SACpC;QAED,sBAAI,mCAAY;;;;YAAhB;gBACE,OAAO,CAAChC,mBAAC,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;aAC/F;;;WAAA;QAED,sBAAI,qCAAc;;;;YAAlB;gBACE,OAAO,IAAI,CAAC,eAAe,CAAC;aAC7B;;;WAAA;;;;;;QAES,4BAAQ;;;;;QAAlB,UAAmB,QAAgC;YACjD,OAAO7B,WAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC9C;;;;;;;QAES,8BAAU;;;;;;QAApB,UAAqB,YAAe,EAAE,cAAiB;YACrD,OAAOA,WAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SAC9C;;;;;QAED,oCAAgB;;;;QAAhB,UAAiB,IAAQ;YACvBA,WAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACvC;;;;QAEK,4BAAQ;;;QAAd;;;;;;iCACM,IAAI,CAAC,SAAS,EAAd,wBAAc;4BAChB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;4BACjD,KAAA,IAAI,CAAA;4BAAmB,qBAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAA;;4BAAvE,GAAK,eAAe,GAAG,SAAgD,CAAC;4BACxE,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,eAAe,EAAE;gCAC9C,sBAAO,KAAK,EAAC;6BACd;;gCAEH,sBAAO,IAAI,EAAC;;;;SACb;QACH,gBAAC;KAAA,IAAA;;;;;;QAxCC8D,yCAAwB;;;;;QACxBA,4CAA2B;;QAEfA,yCAAgD;;QAAEA,qCAAyC;;QAAEA,sCAAyC;;AAwCpJ;QAKE,iCAAqB,aAAyC,EACzC,QAAgC,EAChC,QAAkB;YAFvC,iBAUC;YAVoB,kBAAa,GAAb,aAAa,CAA4B;YACzC,aAAQ,GAAR,QAAQ,CAAwB;YAChC,aAAQ,GAAR,QAAQ,CAAU;YAJtB,wBAAmB,GAA0B,EAAE,CAAC;;gBAKzD,UAAU,GAAG,aAAa,CAAC,GAAG;;;;YAAC,UAAA,GAAG;gBACtC,OAAO,GAAG,CAAC,OAAO;oBAChB,IAAIA,iBAAS,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;oBAC1D,IAAIA,iBAAS,CAAC,KAAK,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;aAC9D,EAAC;YACF,IAAI,CAAC,gBAAgB,GAAG,UAAU,CAAC,IAAI;;;;YAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,SAAS,EAAE,GAAA,EAAC,CAAC;YAC5D,IAAI,CAAC,mBAAmB,GAAG,UAAU,CAAC,MAAM;;;;YAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,SAAS,EAAE,GAAA,EAAC,CAAC;SACnE;;;;QAEK,0CAAQ;;;QAAd;;;;;;iCACM,IAAI,CAAC,gBAAgB,EAArB,wBAAqB;4BACvB,qBAAM,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAA;;4BAAtC,SAAsC,CAAC;4BACvC,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;;;gCAGtC,sBAAO,KAAK,EAAC;6BACd;;;;4BAEqB,KAAAC,SAAA,IAAI,CAAC,mBAAmB,CAAA;;;;4BAArC,SAAS;4BAClB,qBAAM,SAAS,CAAC,QAAQ,EAAE,EAAA;;4BAA1B,SAA0B,CAAC;;;;;;;;;;;;;;;;gCAE7B,sBAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI;;;;4BAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,YAAY,GAAA,EAAC,EAAC;;;;SAC5D;;;;;;;QAGO,8CAAY;;;;;;QAApB,UAA2B,GAA8B;YACvD,OAAO,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;SACxC;;;;QAED,mDAAiB;;;QAAjB;YACEjE,aAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC;SACpE;;;;QAGD,mDAAiB;;;QAAjB;YACE,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;gBAC5B,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;aAC/C;iBAAM;;oBACC,aAAW,GAAG,EAAE;gBACtB,IAAI,CAAC,mBAAmB,CAAC,OAAO;;;;gBAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,gBAAgB,CAAC,aAAW,CAAC,GAAA,EAAC,CAAC;gBACvE,OAAO,CAAC,aAAW,CAAC,CAAC;aACtB;SACF;;;;;;;QAEO,uDAAqB;;;;;;QAA7B,UAAiC,KAAU;YACzC,OAAO+B,mBAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI7B,WAAI,CAAC,gBAAgB,uCAAC,KAAK,KAAkC,CAAC,QAAQ,CAAC8D,iBAAS,CAAC,CAAC;SACjH;QAtBDtE;YADCuC,WAAO,EAAE;;6CACsBM,2BAAmB;;mEAElD;QAQD7C;YADCsB,YAAK,EAAE;;;;wEASP;QAKH,8BAAC;KAxDD,IAwDC;;;;;;QAtDC,mDAAuD;;;;;QACvD,sDAAiE;;QAErD,gDAAkD;;QAClD,2CAAyC;;QACzC,2CAA2B;;IAmDzC,WAAiB,SAAS;;;;QAExB;;;;YAA8B7B,yBAAe;YAA7C;;aAeC;;;;;YAbC,wBAAQ;;;;YAAR,UAAS,QAAgC;;oBACjC,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;aAC/C;;;;;;;YAES,0BAAU;;;;;;YAApB,UAAqB,YAAe,EAAE,cAAiB;gBACrD,OAAO,YAAY,KAAK,cAAc,CAAC;aACxC;;;;;YAED,gCAAgB;;;;YAAhB,UAAiB,IAAQ;gBACvB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;aACnF;YAEH,YAAC;SAfD,CAA8B,SAAS,GAetC;QAfY,eAAK,QAejB,CAAA;;;;QAED;;;;YAA8BA,yBAAiB;YAA/C;;aAgBC;;;;;YAdC,wBAAQ;;;;YAAR,UAAS,QAAgC;gBAAzC,iBAGC;;oBAFO,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;gBAClE,OAAO,SAAS,CAAC,GAAG;;;;gBAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAA,EAAC,CAAC;aACpE;;;;;;;YAES,0BAAU;;;;;;YAApB,UAAqB,YAAiB,EAAE,cAAmB;gBACzD,OAAO,YAAY,KAAK,cAAc,CAAC;aACxC;;;;;YAED,gCAAgB;;;;YAAhB,UAAiB,IAAQ;gBAAzB,iBAEC;gBADC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG;;;;gBAAC,UAAA,CAAC,IAAI,OAAA,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAA,EAAC,CAAC;aAC/F;YAGH,YAAC;SAhBD,CAA8B,SAAS,GAgBtC;QAhBY,eAAK,QAgBjB,CAAA;KAEF,EArCgB6E,iBAAS,KAATA,iBAAS,QAqCzB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}