@wavemaker/app-ng-runtime 11.4.0-next.28151 → 11.4.0-next.28701

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 (77) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +1 -1
  2. app-ng-runtime/build-task/bundles/index.umd.js.map +1 -1
  3. app-ng-runtime/build-task/esm2015/data/form/form-field/form-field.build.js +2 -2
  4. app-ng-runtime/build-task/fesm2015/index.js +1 -1
  5. app-ng-runtime/build-task/fesm2015/index.js.map +1 -1
  6. app-ng-runtime/components/base/bundles/index.umd.js +23 -1
  7. app-ng-runtime/components/base/bundles/index.umd.js.map +1 -1
  8. app-ng-runtime/components/base/esm2015/public_api.js +2 -2
  9. app-ng-runtime/components/base/esm2015/utils/widget-utils.js +16 -1
  10. app-ng-runtime/components/base/esm2015/widgets/common/base/base-field-validations.js +3 -2
  11. app-ng-runtime/components/base/esm2015/widgets/common/dialog/dialog.service.js +7 -1
  12. app-ng-runtime/components/base/fesm2015/index.js +23 -2
  13. app-ng-runtime/components/base/fesm2015/index.js.map +1 -1
  14. app-ng-runtime/components/base/index.metadata.json +1 -1
  15. app-ng-runtime/components/base/public_api.d.ts +1 -1
  16. app-ng-runtime/components/base/utils/widget-utils.d.ts +7 -0
  17. app-ng-runtime/components/data/form/bundles/index.umd.js +37 -13
  18. app-ng-runtime/components/data/form/bundles/index.umd.js.map +1 -1
  19. app-ng-runtime/components/data/form/esm2015/form-field/form-field.directive.js +26 -7
  20. app-ng-runtime/components/data/form/esm2015/form.component.js +10 -5
  21. app-ng-runtime/components/data/form/fesm2015/index.js +34 -10
  22. app-ng-runtime/components/data/form/fesm2015/index.js.map +1 -1
  23. app-ng-runtime/components/data/form/index.metadata.json +1 -1
  24. app-ng-runtime/components/data/list/bundles/index.umd.js +2 -2
  25. app-ng-runtime/components/data/list/bundles/index.umd.js.map +1 -1
  26. app-ng-runtime/components/data/list/esm2015/list.component.js +3 -3
  27. app-ng-runtime/components/data/list/fesm2015/index.js +2 -2
  28. app-ng-runtime/components/data/list/fesm2015/index.js.map +1 -1
  29. app-ng-runtime/components/data/list/index.metadata.json +1 -1
  30. app-ng-runtime/components/data/list/list.component.d.ts +1 -1
  31. app-ng-runtime/components/data/pagination/bundles/index.umd.js +1 -1
  32. app-ng-runtime/components/data/pagination/bundles/index.umd.js.map +1 -1
  33. app-ng-runtime/components/data/pagination/esm2015/pagination.component.js +2 -2
  34. app-ng-runtime/components/data/pagination/fesm2015/index.js +1 -1
  35. app-ng-runtime/components/data/pagination/fesm2015/index.js.map +1 -1
  36. app-ng-runtime/components/data/table/bundles/index.umd.js +57 -12
  37. app-ng-runtime/components/data/table/bundles/index.umd.js.map +1 -1
  38. app-ng-runtime/components/data/table/esm2015/table.component.js +56 -13
  39. app-ng-runtime/components/data/table/esm2015/table.props.js +3 -1
  40. app-ng-runtime/components/data/table/fesm2015/index.js +57 -12
  41. app-ng-runtime/components/data/table/fesm2015/index.js.map +1 -1
  42. app-ng-runtime/components/data/table/index.metadata.json +1 -1
  43. app-ng-runtime/components/data/table/table.component.d.ts +9 -0
  44. app-ng-runtime/components/dialogs/default/bundles/index.umd.js +5 -0
  45. app-ng-runtime/components/dialogs/default/bundles/index.umd.js.map +1 -1
  46. app-ng-runtime/components/dialogs/default/esm2015/base-dialog.js +7 -2
  47. app-ng-runtime/components/dialogs/default/fesm2015/index.js +6 -1
  48. app-ng-runtime/components/dialogs/default/fesm2015/index.js.map +1 -1
  49. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +1 -0
  50. app-ng-runtime/components/input/epoch/bundles/index.umd.js +13 -7
  51. app-ng-runtime/components/input/epoch/bundles/index.umd.js.map +1 -1
  52. app-ng-runtime/components/input/epoch/esm2015/base-date-time.component.js +13 -7
  53. app-ng-runtime/components/input/epoch/esm2015/date/date.component.js +2 -2
  54. app-ng-runtime/components/input/epoch/fesm2015/index.js +13 -7
  55. app-ng-runtime/components/input/epoch/fesm2015/index.js.map +1 -1
  56. app-ng-runtime/components/input/epoch/index.metadata.json +1 -1
  57. app-ng-runtime/components/navigation/menu/bundles/index.umd.js +25 -19
  58. app-ng-runtime/components/navigation/menu/bundles/index.umd.js.map +1 -1
  59. app-ng-runtime/components/navigation/menu/esm2015/menu-dropdown-item/menu-dropdown-item.component.js +15 -5
  60. app-ng-runtime/components/navigation/menu/esm2015/menu.component.js +14 -19
  61. app-ng-runtime/components/navigation/menu/fesm2015/index.js +25 -20
  62. app-ng-runtime/components/navigation/menu/fesm2015/index.js.map +1 -1
  63. app-ng-runtime/components/navigation/menu/index.metadata.json +1 -1
  64. app-ng-runtime/components/navigation/menu/menu-dropdown-item/menu-dropdown-item.component.d.ts +7 -4
  65. app-ng-runtime/components/navigation/menu/menu.component.d.ts +3 -7
  66. app-ng-runtime/components/navigation/popover/bundles/index.umd.js +3 -0
  67. app-ng-runtime/components/navigation/popover/bundles/index.umd.js.map +1 -1
  68. app-ng-runtime/components/navigation/popover/esm2015/popover.component.js +4 -1
  69. app-ng-runtime/components/navigation/popover/fesm2015/index.js +3 -0
  70. app-ng-runtime/components/navigation/popover/fesm2015/index.js.map +1 -1
  71. app-ng-runtime/core/bundles/index.umd.js +7 -1
  72. app-ng-runtime/core/bundles/index.umd.js.map +1 -1
  73. app-ng-runtime/core/esm2015/services/pagination.service.js +8 -2
  74. app-ng-runtime/core/fesm2015/index.js +7 -1
  75. app-ng-runtime/core/fesm2015/index.js.map +1 -1
  76. app-ng-runtime/package.json +1 -1
  77. app-ng-runtime/scripts/datatable/datatable.js +63 -13
@@ -1 +1 @@
1
- {"version":3,"file":"index.umd.js","sources":["../../../../../node_modules/tslib/tslib.es6.js","../../../../../projects/components/widgets/navigation/menu/src/nav/nav.props.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav.component.ts","../../../../../projects/components/widgets/navigation/menu/src/menu.props.ts","../../../../../projects/components/widgets/navigation/menu/src/menu.component.ts","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown/menu-dropdown.component.ts","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown-item/menu-dropdown-item.component.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav-item/nav-item.props.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav-item/nav-item.directive.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/navigation-control.directive.ts","../../../../../projects/components/widgets/navigation/menu/src/menu.module.ts","../../../../../projects/components/widgets/navigation/menu/src/menu-adapator.component.ts","../../../../../projects/components/widgets/navigation/menu/src/index.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { PROP_ANY, PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-nav',\n new Map(\n [\n ['autoclose', {value: 'always', ...PROP_STRING}],\n ['autoopen', {value: 'never', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['iconposition', {value: 'left', ...PROP_STRING}],\n ['isactive', PROP_STRING],\n ['itemlabel', PROP_STRING],\n ['itemlink', PROP_STRING],\n ['itemicon', PROP_STRING],\n ['itemclass', PROP_STRING],\n ['itemchildren', PROP_STRING],\n ['itemaction', PROP_STRING],\n ['itembadge', PROP_STRING],\n ['itemtarget', PROP_STRING],\n ['layout', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['type', PROP_STRING],\n ['userrole', PROP_STRING]\n ]\n )\n );\n};\n","import { Attribute, ChangeDetectorRef, Component, Injector, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { addClass, App, removeClass, triggerItemAction, UserDefinedExecutionContext } from '@wm/core';\nimport { APPLY_STYLES_TYPE, DatasetAwareNavComponent, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './nav.props';\n\ndeclare const _;\n\nconst DEFAULT_CLS = 'nav app-nav';\nconst WIDGET_CONFIG = {widgetType: 'wm-nav', hostClass: DEFAULT_CLS};\n\nconst NavClassMap = {\n pills: 'nav-pills',\n tabs: 'nav-tabs',\n navbar: 'navbar-nav'\n};\n\n@Component({\n selector: '[wmNav]',\n templateUrl: './nav.component.html',\n providers: [\n provideAsWidgetRef(NavComponent)\n ]\n})\nexport class NavComponent extends DatasetAwareNavComponent implements OnInit {\n static initializeProps = registerProps();\n\n public selecteditem;\n public type;\n public disableMenuContext: boolean;\n public layout;\n\n private activeNavLINode: HTMLElement;\n private itemActionFn: Function;\n private pageScope: any;\n private get activePageName() {\n return this.app.activePageName;\n }\n\n constructor(\n inj: Injector,\n private cdRef: ChangeDetectorRef,\n private route: Router,\n private userDefinedExecutionContext: UserDefinedExecutionContext,\n private app: App,\n @Attribute('select.event') selectEventCB\n ) {\n super(inj, WIDGET_CONFIG);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n this.disableMenuContext = !!selectEventCB;\n this.pageScope = this.viewParent;\n // For selecting the item on load\n const datasetSubscription = this.nodes$.subscribe(() => {\n if (!_.isEmpty(this.nodes)) {\n let itemFound = false;\n const getItem = (nodes, isMenuWidget?) => {\n _.forEach(nodes, (item) => {\n if (itemFound) {\n return;\n }\n if (item.isactive) {\n itemFound = true;\n this.selecteditem = isMenuWidget ? _.omit(item, ['children', 'value']) : item.value;\n this.invokeEventCallback('select', {$event: {}, $item: item.value});\n // Trigger the action associated with active item\n triggerItemAction(this, item);\n // _selected is used to add active class for nav item. If we have children inside nav widget then it is not required.\n if (!isMenuWidget) {\n item._selected = true;\n }\n return false;\n }\n if (!_.isEmpty(item.children)) {\n getItem(item.children, 'menu');\n }\n });\n };\n getItem(this.nodes);\n }\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n }\n\n\n private setNavType(type) {\n addClass(this.nativeElement, NavClassMap[type]);\n }\n\n private setNavLayout(layout) {\n addClass(this.nativeElement, `nav-${layout}`);\n }\n\n public onNavSelect($event: Event, item: any, liRef: HTMLElement) {\n $event.preventDefault();\n\n const selectedItem = _.find(this.nodes, '_selected');\n if (selectedItem) {\n delete selectedItem._selected;\n }\n\n if (this.activeNavLINode) {\n removeClass(this.activeNavLINode, 'active');\n }\n\n this.activeNavLINode = liRef;\n\n addClass(liRef, 'active');\n\n this.selecteditem = item.value;\n\n this.invokeEventCallback('select', {$event, $item: item.value});\n // Trigger the action associated with active item\n triggerItemAction(this, item);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.setNavType(this.type);\n this.setNavLayout(this.layout);\n }\n\n /**\n * invoked from the menu widget when a menu item is selected.\n * @param $event\n * @param widget\n * @param $item\n */\n onMenuItemSelect($event, widget, $item) {\n this.selecteditem = _.omit($item, ['children', 'value']);\n this.invokeEventCallback('select', {$event, $item: this.selecteditem});\n }\n}\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-menu',\n new Map(\n [\n ['accessroles', {value: 'Everyone', ...PROP_STRING}],\n ['animateitems', PROP_STRING],\n ['autoclose', {value: 'always', ...PROP_STRING}],\n ['autoopen', {value: 'never', ...PROP_STRING}],\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['dataset', {value: 'Menu Item 1, Menu Item 2, Menu Item 3', ...PROP_ANY}],\n ['hint', {value: '', ...PROP_STRING}],\n ['isactive', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['iconposition', {value: 'left', ...PROP_STRING}],\n ['itemaction', PROP_STRING],\n ['itemchildren', PROP_STRING],\n ['itemclass', PROP_STRING],\n ['itemicon', PROP_STRING],\n ['itemlabel', PROP_STRING],\n ['itemlink', PROP_STRING],\n ['itemtarget', PROP_STRING],\n ['linktarget', {value: '_self', ...PROP_STRING}],\n ['menuclass', PROP_STRING],\n ['menulayout', PROP_STRING],\n ['menuposition', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'menu', ...PROP_STRING}],\n ['userrole', PROP_STRING]\n ]\n )\n );\n};\n","import { AfterViewInit, Attribute, Component, HostListener, Injector, OnDestroy, OnInit, Optional, Self } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { BsDropdownDirective } from 'ngx-bootstrap/dropdown';\n\nimport { $appDigest, addClass, removeClass, triggerItemAction, UserDefinedExecutionContext } from '@wm/core';\nimport { DatasetAwareNavComponent, isActiveNavItem, NavNode, provideAsWidgetRef, styler, AUTOCLOSE_TYPE } from '@wm/components/base';\nimport { NavComponent } from './nav/nav.component';\n\nimport { registerProps } from './menu.props';\n\ndeclare const _;\n\nexport const KEYBOARD_MOVEMENTS = {\n MOVE_UP: 'UP-ARROW',\n MOVE_LEFT: 'LEFT-ARROW',\n MOVE_RIGHT: 'RIGHT-ARROW',\n MOVE_DOWN: 'DOWN-ARROW',\n ON_ENTER: 'ENTER',\n ON_TAB: 'TAB',\n ON_SHIFT_TAB: 'SHIFT-TAB',\n ON_ESCAPE: 'ESC'\n};\n\nexport const MENU_POSITION = {\n UP_LEFT: 'up,left',\n UP_RIGHT: 'up,right',\n DOWN_LEFT: 'down,left',\n DOWN_RIGHT: 'down,right',\n INLINE: 'inline'\n};\n\nconst POSITION = {\n DOWN_RIGHT: 'down,right',\n DOWN_LEFT: 'down,left',\n UP_RIGHT: 'up,right',\n UP_LEFT: 'up,left',\n INLINE: 'inline'\n};\nconst CARET_CLS = {\n UP: 'fa-caret-up',\n DOWN: 'fa-caret-down'\n};\nconst PULL_CLS = {\n LEFT: 'pull-left',\n RIGHT: 'pull-right'\n};\n\nconst AUTO_OPEN = {\n NEVER: 'never',\n ACTIVE_PAGE: 'activepage',\n ALWAYS: 'always'\n};\n\nconst WIDGET_CONFIG = { widgetType: 'wm-menu', hostClass: 'dropdown app-menu' };\n@Component({\n selector: '[wmMenu]',\n templateUrl: './menu.component.html',\n providers: [\n provideAsWidgetRef(MenuComponent)\n ]\n})\nexport class MenuComponent extends DatasetAwareNavComponent implements OnInit, OnDestroy, AfterViewInit {\n static initializeProps = registerProps();\n\n public menualign: string;\n public menuposition: string;\n public menulayout: string;\n public menuclass: string;\n public linktarget: string;\n public iconclass: string;\n public animateitems: string;\n public disableMenuContext: boolean;\n public autoclose: string;\n public autoopen: string;\n public hint: string;\n\n private itemActionFn: Function;\n private menuCaret = 'fa-caret-down';\n private _selectFirstItem = false;\n\n public type: any;\n\n @HostListener('onShown') onShow() {\n if (this._selectFirstItem) {\n setTimeout(() => {\n this.$element.find('> ul[wmmenudropdown] li.app-menu-item').first().find('> a').focus();\n });\n }\n $appDigest();\n }\n @HostListener('onHidden') onHide() {\n this.$element.find('>.dropdown-toggle').focus();\n this.$element.find('li').removeClass('open');\n this._selectFirstItem = false;\n $appDigest();\n }\n\n @HostListener('keydown.arrowup', ['$event', '\"UP-ARROW\"'])\n @HostListener('keydown.arrowdown', ['$event', '\"DOWN-ARROW\"'])\n @HostListener('keydown.arrowright', ['$event', '\"RIGHT-ARROW\"'])\n @HostListener('keydown.arrowleft', ['$event', '\"LEFT-ARROW\"'])\n @HostListener('keydown.enter', ['$event', '\"ENTER\"']) onKeyDown($event, eventAction) {\n const KEY_MOVEMENTS = _.clone(KEYBOARD_MOVEMENTS);\n if (this.menuposition === MENU_POSITION.UP_RIGHT) {\n KEY_MOVEMENTS.MOVE_UP = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'UP-ARROW';\n } else if (this.menuposition === MENU_POSITION.UP_LEFT) {\n KEY_MOVEMENTS.MOVE_UP = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'UP-ARROW';\n KEY_MOVEMENTS.MOVE_LEFT = 'RIGHT-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'LEFT-ARROW';\n } else if (this.menuposition === MENU_POSITION.DOWN_LEFT) {\n KEY_MOVEMENTS.MOVE_LEFT = 'RIGHT-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'LEFT-ARROW';\n }\n\n if (_.includes([KEY_MOVEMENTS.MOVE_DOWN, KEY_MOVEMENTS.MOVE_RIGHT], eventAction)) {\n if (!this.bsDropdown.isOpen) {\n this._selectFirstItem = true;\n this.bsDropdown.show();\n } else {\n this.$element.find('> ul[wmmenudropdown] li.app-menu-item').first().find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.ON_ENTER) {\n this.bsDropdown.toggle(true);\n } else if (_.includes([KEY_MOVEMENTS.MOVE_UP, KEY_MOVEMENTS.MOVE_LEFT], eventAction)) {\n this.bsDropdown.hide();\n }\n $event.preventDefault();\n }\n\n constructor(\n inj: Injector,\n public route: Router,\n private userDefinedExecutionContext: UserDefinedExecutionContext,\n @Self() @Optional() public bsDropdown: BsDropdownDirective,\n @Optional() private parentNav: NavComponent,\n @Attribute('select.event') public selectEventCB: string\n ) {\n super(inj, WIDGET_CONFIG);\n if (parentNav) {\n this.disableMenuContext = !!parentNav.disableMenuContext;\n } else {\n this.disableMenuContext = !!selectEventCB;\n }\n // For selecting the item on load\n const datasetSubscription = this.nodes$.subscribe(() => {\n if (!_.isEmpty(this.nodes)) {\n // If menu widget is inside nav widget then dont check for item isactive property because these will be handled form nav widget.\n if (this.parentNav) {\n return;\n }\n let itemFound = false;\n const getItem = (nodes) => {\n _.forEach(nodes, (item) => {\n if (itemFound) {\n return;\n }\n if (item.isactive) {\n itemFound = true;\n this.onMenuItemSelect({ $event: {}, $item: item });\n // Trigger the action associated with active item\n triggerItemAction(this, item);\n return false;\n }\n if (!_.isEmpty(item.children)) {\n getItem(item.children);\n }\n\n });\n };\n getItem(this.nodes);\n }\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n }\n\n /**\n * returns true if the menu has link to the current page.\n * @param nodes\n */\n private hasLinkToCurrentPage(nodes: Array<NavNode>) {\n return nodes.some(node => {\n if (isActiveNavItem(node.link, this.route.url)) {\n return true;\n }\n if (node.children) {\n return this.hasLinkToCurrentPage(node.children);\n }\n });\n }\n\n protected resetNodes() {\n super.resetNodes();\n // open the menu if any of its menu items has link to current page and if autoopen value is 'active page'\n if ((this.autoopen === AUTO_OPEN.ACTIVE_PAGE && this.hasLinkToCurrentPage(this.nodes)) || this.autoopen === AUTO_OPEN.ALWAYS) {\n this.bsDropdown.show();\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.setMenuPosition();\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n\n if (key === 'tabindex') {\n return;\n }\n\n if (key === 'autoclose') {\n this.bsDropdown.autoClose = nv !== AUTOCLOSE_TYPE.DISABLED;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n private setMenuPosition() {\n switch (this.menuposition) {\n case POSITION.DOWN_RIGHT:\n removeClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.LEFT;\n this.menuCaret = CARET_CLS.DOWN;\n break;\n case POSITION.DOWN_LEFT:\n removeClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.RIGHT;\n this.menuCaret = CARET_CLS.DOWN;\n break;\n case POSITION.UP_LEFT:\n addClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.RIGHT;\n this.menuCaret = CARET_CLS.UP;\n break;\n case POSITION.UP_RIGHT:\n addClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.LEFT;\n this.menuCaret = CARET_CLS.UP;\n break;\n case POSITION.INLINE:\n this.menualign = 'dropinline-menu';\n break;\n }\n }\n\n public onMenuItemSelect(args) {\n const { $event } = args;\n const $item = args.$item.value;\n this.invokeEventCallback('select', { $event, $item });\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.nativeElement.querySelector('.dropdown-toggle') as HTMLElement, this);\n }\n}\n","import { AfterViewInit, Component, ElementRef, Input } from '@angular/core';\n\nimport { addClass } from '@wm/core';\n\nimport { MenuComponent } from '../menu.component';\n\nconst animationClasses = {\n scale: {\n 'name': 'wmScaleInLeft',\n 'down,right': 'wmScaleInLeft',\n 'down,left': 'wmScaleInRight',\n 'up,right': 'wmScaleInTopLeft',\n 'up,left': 'wmScaleInTopRight'\n },\n fade: {\n 'name': 'fadeIn',\n 'down,right': 'fadeIn',\n 'down,left': 'fadeIn',\n 'up,right': 'fadeIn',\n 'up,left': 'fadeIn'\n },\n slide: {\n 'name': 'wmSlideInDown',\n 'down,right': 'wmSlideInDown',\n 'down,left': 'wmSlideInDown',\n 'up,right': 'wmSlideInUp',\n 'up,left': 'wmSlideInUp'\n }\n};\n\nconst DEFAULT_CLS = 'dropdown-menu';\n\n@Component({\n selector: 'ul[wmMenuDropdown]',\n templateUrl: './menu-dropdown.component.html'\n})\nexport class MenuDropdownComponent implements AfterViewInit {\n private readonly nativeElement;\n\n @Input() items;\n\n constructor(elRef: ElementRef, private menuRef: MenuComponent) {\n this.nativeElement = elRef.nativeElement;\n addClass(this.nativeElement, DEFAULT_CLS);\n }\n\n ngAfterViewInit() {\n const animateItems = this.menuRef.animateitems;\n let animationClass = '';\n if (animateItems) {\n animationClass = `animated ${(animationClasses[animateItems][this.menuRef.menuposition] || animationClasses[animateItems].name)}`;\n }\n addClass(this.nativeElement, `dropdown-menu ${this.menuRef.menualign} ${animationClass}`, true);\n }\n}\n","import { Component, ElementRef, HostListener, Input, OnInit, Optional } from '@angular/core';\n\nimport { addClass, triggerItemAction, UserDefinedExecutionContext } from '@wm/core';\nimport { isActiveNavItem } from '@wm/components/base';\nimport { NavComponent } from '../nav/nav.component';\n\nimport { KEYBOARD_MOVEMENTS, MENU_POSITION, MenuComponent } from '../menu.component';\n\ndeclare const _, $;\n\nconst menuAlignClass = {\n 'pull-right' : 'fa-caret-left',\n 'dropinline-menu' : 'fa-caret-down',\n 'pull-left' : 'fa-caret-right'\n};\n\nconst MENU_LAYOUT_TYPE = {\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical'\n};\n\n@Component({\n selector: 'li[wmMenuDropdownItem]',\n templateUrl: './menu-dropdown-item.component.html',\n})\nexport class MenuDropdownItemComponent implements OnInit {\n\n public menualign: string;\n\n private itemActionFn: Function;\n\n @Input() item;\n\n private readonly nativeElement;\n\n constructor(\n public menuRef: MenuComponent,\n private userDefinedExecutionContext: UserDefinedExecutionContext,\n @Optional() private parentNav: NavComponent,\n elRef: ElementRef,\n ) {\n this.nativeElement = elRef.nativeElement;\n addClass(this.nativeElement, 'app-menu-item');\n\n this.menualign = menuAlignClass[this.menuRef.menualign] || menuAlignClass['pull-left'];\n }\n\n ngOnInit() {\n // add active class to the item only if it is in nav component.\n if (this.parentNav) {\n if (isActiveNavItem(this.item.link, this.menuRef.route.url)) {\n // add active class to the li, if the menu item's link is same as the current page name.\n addClass(this.nativeElement, 'active');\n }\n }\n }\n\n getInitialKeyMovements() {\n const KEY_MOVEMENTS = _.clone(KEYBOARD_MOVEMENTS);\n if (this.menuRef.menulayout === MENU_LAYOUT_TYPE.HORIZONTAL) {\n KEY_MOVEMENTS.MOVE_UP = 'LEFT-ARROW';\n KEY_MOVEMENTS.MOVE_LEFT = 'UP-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'RIGHT-ARROW';\n } else {\n if (this.menuRef.menuposition === MENU_POSITION.DOWN_LEFT || this.menuRef.menuposition === MENU_POSITION.UP_LEFT) {\n KEY_MOVEMENTS.MOVE_LEFT = 'RIGHT-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'LEFT-ARROW';\n } else if (this.menuRef.menuposition === 'inline') {\n KEY_MOVEMENTS.MOVE_UP = 'LEFT-ARROW';\n KEY_MOVEMENTS.MOVE_LEFT = 'UP-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'RIGHT-ARROW';\n }\n }\n return KEY_MOVEMENTS;\n }\n\n @HostListener('keydown.tab', ['$event', '\"TAB\"'])\n @HostListener('keydown.shift.tab', ['$event', '\"SHIFT-TAB\"'])\n @HostListener('keydown.escape', ['$event', '\"ESC\"'])\n @HostListener('keydown.enter', ['$event', '\"ENTER\"'])\n @HostListener('keydown.arrowup', ['$event', '\"UP-ARROW\"'])\n @HostListener('keydown.arrowdown', ['$event', '\"DOWN-ARROW\"'])\n @HostListener('keydown.arrowright', ['$event', '\"RIGHT-ARROW\"'])\n @HostListener('keydown.arrowleft', ['$event', '\"LEFT-ARROW\"'])\n onKeyDown($event, eventAction) {\n const $li = $(this.nativeElement);\n const $ul = $(this.nativeElement).closest('ul.dropdown-menu');\n const $parentUl = this.menuRef.$element.find('> ul.dropdown-menu');\n const ARROW_KEYS = ['LEFT-ARROW', 'RIGHT-ARROW', 'UP-ARROW', 'DOWN-ARROW'];\n const KEY_MOVEMENTS = this.getInitialKeyMovements();\n\n if (_.includes(ARROW_KEYS, eventAction)) {\n // preventing from page scroll when up/down arrow is pressed, in case of menu is opened.\n $event.preventDefault();\n }\n\n if ((eventAction === KEY_MOVEMENTS.ON_TAB && $parentUl.children().last()[0] === this.nativeElement)\n || (eventAction === KEY_MOVEMENTS.ON_SHIFT_TAB && $parentUl.children().first()[0] === this.nativeElement)\n || eventAction === KEY_MOVEMENTS.ON_ESCAPE) {\n /*closing all the children elements when\n * 1. Tab is clicked on the last $element\n * 2. Shift Tab is clicked on the first $element\n * 3. When Escape key is clicked*/\n $event.preventDefault();\n this.menuRef.bsDropdown.hide();\n } else if ((eventAction === KEY_MOVEMENTS.ON_ENTER && !this.item.link) || eventAction === KEY_MOVEMENTS.MOVE_RIGHT) {\n // when there is no link for the menu, on enter open the inner child elements and focus the first $element\n $event.stopPropagation();\n if (this.item.children.length) {\n $li.toggleClass('open');\n $li.find('li').first().find('> a').focus();\n } else {\n $li.find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.MOVE_LEFT\n || (eventAction === KEY_MOVEMENTS.ON_TAB && $ul.children().last()[0] === this.nativeElement)\n || (eventAction === KEY_MOVEMENTS.ON_SHIFT_TAB && $ul.children().first()[0] === this.nativeElement)) {\n if ($parentUl[0] !== $ul[0]) {\n const $parentItem = $ul.parent();\n $parentItem.toggleClass('open').find('li.open').removeClass('open');\n $parentItem.find('> a').focus();\n $event.preventDefault();\n $event.stopPropagation();\n }\n } else if (eventAction === KEY_MOVEMENTS.MOVE_UP) {\n if ($parentUl[0] !== $ul[0] || $parentUl.find('> li').first()[0] !== this.nativeElement) {\n $event.stopPropagation();\n $li.prev().find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.MOVE_DOWN) {\n $event.stopPropagation();\n if ($parentUl.find('> li').last()[0] === this.nativeElement\n && (this.menuRef.menulayout !== MENU_LAYOUT_TYPE.HORIZONTAL\n && this.menuRef.menuposition === MENU_POSITION.UP_RIGHT\n || this.menuRef.menuposition === MENU_POSITION.UP_LEFT)) {\n this.menuRef.bsDropdown.hide();\n } else {\n $li.next().find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.ON_ENTER) {\n this.onSelect($event, this.item);\n } else {\n $event.stopPropagation();\n }\n }\n\n @HostListener('click', ['$event', 'item'])\n onSelect = ($event, item) => {\n if (this.nativeElement !== $($event.target).closest('.app-menu-item').get(0)) {\n return;\n }\n // prevent event event propagation if auto close is outside click.\n if (this.menuRef.autoclose === 'outsideClick') {\n $event.stopPropagation();\n }\n\n $event.preventDefault();\n const args = {$event, $item: item};\n this.menuRef.onMenuItemSelect(args);\n const selectedItem = _.clone(item);\n selectedItem.target = selectedItem.target || this.menuRef.linktarget;\n // Trigger the action associated with active item\n triggerItemAction(this, selectedItem);\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-nav-item',\n new Map(\n [\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import { ContentChild, Directive, HostListener, Injector, AfterViewInit } from '@angular/core';\n\nimport { addClass, removeClass } from '@wm/core';\nimport { APPLY_STYLES_TYPE, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { AnchorComponent } from '@wm/components/basic';\n\nimport { registerProps } from './nav-item.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-nav-item';\nconst WIDGET_CONFIG = {widgetType: 'wm-nav-item', hostClass: DEFAULT_CLS};\n\n@Directive({\n selector: '[wmNavItem]',\n providers: [\n provideAsWidgetRef(NavItemDirective)\n ]\n})\nexport class NavItemDirective extends StylableComponent implements AfterViewInit{\n static initializeProps = registerProps();\n @ContentChild(AnchorComponent) innerLink;\n\n @HostListener('click')\n @HostListener('keydown.enter')\n makeActive() {\n const parentNode = this.nativeElement.parentNode;\n $(parentNode as HTMLElement).find('> li.active').removeClass('active');\n if (this.isAttached) {\n addClass(this.nativeElement, 'active');\n }\n }\n\n constructor(inj: Injector) {\n super(inj, WIDGET_CONFIG);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n\n public ngAfterViewInit() {\n if (this.innerLink) {\n this.innerLink.onActive(() => this.makeActive());\n }\n }\n\n public ngOnDetach() {\n removeClass(this.nativeElement, 'active', true);\n super.ngOnDetach();\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\n\nimport { setAttr } from '@wm/core';\n\nexport const disableContextMenu = ($event: Event) => {\n $event.preventDefault();\n};\n\n@Directive({selector: '[wmNavigationControl]'})\nexport class NavigationControlDirective {\n\n private nativeElement: HTMLElement;\n private _link: string;\n\n @Input() disableMenuContext: boolean;\n\n @Input() set wmNavigationControl(val) {\n this._link = val;\n if (val && !this.disableMenuContext) {\n setAttr(this.nativeElement, 'href', val);\n this.nativeElement.removeEventListener('contextmenu', disableContextMenu);\n } else {\n setAttr(this.nativeElement, 'href', 'javascript:void(0)');\n this.nativeElement.addEventListener('contextmenu', disableContextMenu);\n }\n }\n\n constructor(eleRef: ElementRef) {\n this.nativeElement = eleRef.nativeElement;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { BasicModule } from '@wm/components/basic';\nimport { InputModule } from '@wm/components/input';\n\nimport { MenuComponent } from './menu.component';\nimport { MenuDropdownComponent } from './menu-dropdown/menu-dropdown.component';\nimport { MenuDropdownItemComponent } from './menu-dropdown-item/menu-dropdown-item.component';\nimport { NavComponent } from './nav/nav.component';\nimport { NavItemDirective } from './nav/nav-item/nav-item.directive';\nimport { NavigationControlDirective } from './nav/navigation-control.directive';\n\nconst components = [\n MenuComponent,\n MenuDropdownComponent,\n MenuDropdownItemComponent,\n NavigationControlDirective,\n NavComponent,\n NavItemDirective\n];\n\n@NgModule({\n imports: [\n BasicModule,\n BsDropdownModule,\n CommonModule,\n InputModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components],\n entryComponents: [\n MenuComponent,\n MenuDropdownComponent\n ]\n})\nexport class MenuModule {\n}\n","import { AfterViewInit, QueryList, ViewChildren, Directive } from '@angular/core';\n\nimport { StylableComponent } from '@wm/components/base';\nimport { MenuComponent } from './menu.component';\nimport {BaseContainerComponent} from '@wm/components/base';\n\ndeclare const _;\n\nconst menuProps = ['itemlabel', 'itemicon', 'itemlink', 'itemaction', 'itemchildren', 'userrole'];\n\n@Directive()\nexport class MenuAdapterComponent extends BaseContainerComponent implements AfterViewInit {\n\n private itemlabel;\n private menuRef;\n private pageScope;\n\n private binditemlabel;\n private binditemicon;\n private binditemaction;\n private binditemchildren;\n private binditemlink;\n private binduserrole;\n\n @ViewChildren(MenuComponent) private menuRefQL: QueryList<MenuComponent>;\n\n constructor(\n inj,\n WIDGET_CONFIG,\n ) {\n super(inj, WIDGET_CONFIG);\n\n this.pageScope = this.viewParent;\n this.binditemlabel = this.nativeElement.getAttribute('itemlabel.bind');\n this.binditemicon = this.nativeElement.getAttribute('itemicon.bind');\n this.binditemaction = this.nativeElement.getAttribute('itemaction.bind');\n this.binditemlink = this.nativeElement.getAttribute('itemlink.bind');\n this.binduserrole = this.nativeElement.getAttribute('userrole.bind');\n this.binditemchildren = this.nativeElement.getAttribute('itemchildren.bind');\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (_.includes(menuProps, key) && this.menuRef) {\n this.menuRef.itemlabel = nv;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n const subscriber = this.menuRefQL.changes.subscribe((menuRefQL: QueryList<MenuComponent>) => {\n if (menuRefQL.first) {\n this.menuRef = menuRefQL.first;\n menuProps.forEach((prop) => {\n const bindProp = `bind${prop}`;\n if (this[bindProp]) {\n this.menuRef[bindProp] = this[bindProp];\n }\n this.menuRef[prop] = this[prop];\n });\n subscriber.unsubscribe();\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {registerProps as ɵb} from './menu.props';\nexport {registerProps as ɵc} from './nav/nav-item/nav-item.props';\nexport {registerProps as ɵa} from './nav/nav.props';"],"names":["registerProps","register","PROP_STRING","PROP_ANY","PROP_BOOLEAN","DEFAULT_CLS","WIDGET_CONFIG","styler","APPLY_STYLES_TYPE","triggerItemAction","addClass","removeClass","DatasetAwareNavComponent","Component","provideAsWidgetRef","Injector","ChangeDetectorRef","Router","UserDefinedExecutionContext","App","Attribute","PROP_NUMBER","$appDigest","isActiveNavItem","AUTOCLOSE_TYPE","BsDropdownDirective","Self","Optional","HostListener","ElementRef","Input","StylableComponent","Directive","ContentChild","AnchorComponent","setAttr","NgModule","BasicModule","BsDropdownModule","CommonModule","InputModule","WmComponentsModule","BaseContainerComponent","ViewChildren"],"mappings":"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"}
1
+ {"version":3,"file":"index.umd.js","sources":["../../../../../node_modules/tslib/tslib.es6.js","../../../../../projects/components/widgets/navigation/menu/src/nav/nav.props.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav.component.ts","../../../../../projects/components/widgets/navigation/menu/src/menu.props.ts","../../../../../projects/components/widgets/navigation/menu/src/menu.component.ts","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown/menu-dropdown.component.ts","../../../../../projects/components/widgets/navigation/menu/src/menu-dropdown-item/menu-dropdown-item.component.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav-item/nav-item.props.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/nav-item/nav-item.directive.ts","../../../../../projects/components/widgets/navigation/menu/src/nav/navigation-control.directive.ts","../../../../../projects/components/widgets/navigation/menu/src/menu.module.ts","../../../../../projects/components/widgets/navigation/menu/src/menu-adapator.component.ts","../../../../../projects/components/widgets/navigation/menu/src/index.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { PROP_ANY, PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-nav',\n new Map(\n [\n ['autoclose', {value: 'always', ...PROP_STRING}],\n ['autoopen', {value: 'never', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['iconposition', {value: 'left', ...PROP_STRING}],\n ['isactive', PROP_STRING],\n ['itemlabel', PROP_STRING],\n ['itemlink', PROP_STRING],\n ['itemicon', PROP_STRING],\n ['itemclass', PROP_STRING],\n ['itemchildren', PROP_STRING],\n ['itemaction', PROP_STRING],\n ['itembadge', PROP_STRING],\n ['itemtarget', PROP_STRING],\n ['layout', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['type', PROP_STRING],\n ['userrole', PROP_STRING]\n ]\n )\n );\n};\n","import { Attribute, ChangeDetectorRef, Component, Injector, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { addClass, App, removeClass, triggerItemAction, UserDefinedExecutionContext } from '@wm/core';\nimport { APPLY_STYLES_TYPE, DatasetAwareNavComponent, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\n\nimport { registerProps } from './nav.props';\n\ndeclare const _;\n\nconst DEFAULT_CLS = 'nav app-nav';\nconst WIDGET_CONFIG = {widgetType: 'wm-nav', hostClass: DEFAULT_CLS};\n\nconst NavClassMap = {\n pills: 'nav-pills',\n tabs: 'nav-tabs',\n navbar: 'navbar-nav'\n};\n\n@Component({\n selector: '[wmNav]',\n templateUrl: './nav.component.html',\n providers: [\n provideAsWidgetRef(NavComponent)\n ]\n})\nexport class NavComponent extends DatasetAwareNavComponent implements OnInit {\n static initializeProps = registerProps();\n\n public selecteditem;\n public type;\n public disableMenuContext: boolean;\n public layout;\n\n private activeNavLINode: HTMLElement;\n private itemActionFn: Function;\n private pageScope: any;\n private get activePageName() {\n return this.app.activePageName;\n }\n\n constructor(\n inj: Injector,\n private cdRef: ChangeDetectorRef,\n private route: Router,\n private userDefinedExecutionContext: UserDefinedExecutionContext,\n private app: App,\n @Attribute('select.event') selectEventCB\n ) {\n super(inj, WIDGET_CONFIG);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n this.disableMenuContext = !!selectEventCB;\n this.pageScope = this.viewParent;\n // For selecting the item on load\n const datasetSubscription = this.nodes$.subscribe(() => {\n if (!_.isEmpty(this.nodes)) {\n let itemFound = false;\n const getItem = (nodes, isMenuWidget?) => {\n _.forEach(nodes, (item) => {\n if (itemFound) {\n return;\n }\n if (item.isactive) {\n itemFound = true;\n this.selecteditem = isMenuWidget ? _.omit(item, ['children', 'value']) : item.value;\n this.invokeEventCallback('select', {$event: {}, $item: item.value});\n // Trigger the action associated with active item\n triggerItemAction(this, item);\n // _selected is used to add active class for nav item. If we have children inside nav widget then it is not required.\n if (!isMenuWidget) {\n item._selected = true;\n }\n return false;\n }\n if (!_.isEmpty(item.children)) {\n getItem(item.children, 'menu');\n }\n });\n };\n getItem(this.nodes);\n }\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n }\n\n\n private setNavType(type) {\n addClass(this.nativeElement, NavClassMap[type]);\n }\n\n private setNavLayout(layout) {\n addClass(this.nativeElement, `nav-${layout}`);\n }\n\n public onNavSelect($event: Event, item: any, liRef: HTMLElement) {\n $event.preventDefault();\n\n const selectedItem = _.find(this.nodes, '_selected');\n if (selectedItem) {\n delete selectedItem._selected;\n }\n\n if (this.activeNavLINode) {\n removeClass(this.activeNavLINode, 'active');\n }\n\n this.activeNavLINode = liRef;\n\n addClass(liRef, 'active');\n\n this.selecteditem = item.value;\n\n this.invokeEventCallback('select', {$event, $item: item.value});\n // Trigger the action associated with active item\n triggerItemAction(this, item);\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.setNavType(this.type);\n this.setNavLayout(this.layout);\n }\n\n /**\n * invoked from the menu widget when a menu item is selected.\n * @param $event\n * @param widget\n * @param $item\n */\n onMenuItemSelect($event, widget, $item) {\n this.selecteditem = _.omit($item, ['children', 'value']);\n this.invokeEventCallback('select', {$event, $item: this.selecteditem});\n }\n}\n","import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-menu',\n new Map(\n [\n ['accessroles', {value: 'Everyone', ...PROP_STRING}],\n ['animateitems', PROP_STRING],\n ['autoclose', {value: 'always', ...PROP_STRING}],\n ['autoopen', {value: 'never', ...PROP_STRING}],\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['dataset', {value: 'Menu Item 1, Menu Item 2, Menu Item 3', ...PROP_ANY}],\n ['hint', {value: '', ...PROP_STRING}],\n ['isactive', PROP_STRING],\n ['iconclass', PROP_STRING],\n ['iconposition', {value: 'left', ...PROP_STRING}],\n ['itemaction', PROP_STRING],\n ['itemchildren', PROP_STRING],\n ['itemclass', PROP_STRING],\n ['itemicon', PROP_STRING],\n ['itemlabel', PROP_STRING],\n ['itemlink', PROP_STRING],\n ['itemtarget', PROP_STRING],\n ['linktarget', {value: '_self', ...PROP_STRING}],\n ['menuclass', PROP_STRING],\n ['menulayout', PROP_STRING],\n ['menuposition', PROP_STRING],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['shortcutkey', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'menu', ...PROP_STRING}],\n ['userrole', PROP_STRING]\n ]\n )\n );\n};\n","import { AfterViewInit, Attribute, Component, HostListener, Injector, OnDestroy, OnInit, Optional, Self } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { BsDropdownDirective } from 'ngx-bootstrap/dropdown';\n\nimport { $appDigest, addClass, removeClass, triggerItemAction, UserDefinedExecutionContext, App, toggleClass } from '@wm/core';\nimport { DatasetAwareNavComponent, hasLinkToCurrentPage, provideAsWidgetRef, styler, AUTOCLOSE_TYPE } from '@wm/components/base';\nimport { NavComponent } from './nav/nav.component';\n\nimport { registerProps } from './menu.props';\n\ndeclare const _;\n\nexport const KEYBOARD_MOVEMENTS = {\n MOVE_UP: 'UP-ARROW',\n MOVE_LEFT: 'LEFT-ARROW',\n MOVE_RIGHT: 'RIGHT-ARROW',\n MOVE_DOWN: 'DOWN-ARROW',\n ON_ENTER: 'ENTER',\n ON_TAB: 'TAB',\n ON_SHIFT_TAB: 'SHIFT-TAB',\n ON_ESCAPE: 'ESC'\n};\n\nexport const MENU_POSITION = {\n UP_LEFT: 'up,left',\n UP_RIGHT: 'up,right',\n DOWN_LEFT: 'down,left',\n DOWN_RIGHT: 'down,right',\n INLINE: 'inline'\n};\n\nconst POSITION = {\n DOWN_RIGHT: 'down,right',\n DOWN_LEFT: 'down,left',\n UP_RIGHT: 'up,right',\n UP_LEFT: 'up,left',\n INLINE: 'inline'\n};\nconst CARET_CLS = {\n UP: 'fa-caret-up',\n DOWN: 'fa-caret-down'\n};\nconst PULL_CLS = {\n LEFT: 'pull-left',\n RIGHT: 'pull-right'\n};\n\nconst AUTO_OPEN = {\n NEVER: 'never',\n ACTIVE_PAGE: 'activepage',\n ALWAYS: 'always'\n};\n\nconst WIDGET_CONFIG = { widgetType: 'wm-menu', hostClass: 'dropdown app-menu' };\n@Component({\n selector: '[wmMenu]',\n templateUrl: './menu.component.html',\n providers: [\n provideAsWidgetRef(MenuComponent)\n ]\n})\nexport class MenuComponent extends DatasetAwareNavComponent implements OnInit, OnDestroy, AfterViewInit {\n static initializeProps = registerProps();\n\n public menualign: string;\n public menuposition: string;\n public menulayout: string;\n public menuclass: string;\n public linktarget: string;\n public iconclass: string;\n public animateitems: string;\n public disableMenuContext: boolean;\n public autoclose: string;\n public autoopen: string;\n public hint: string;\n\n private itemActionFn: Function;\n private menuCaret = 'fa-caret-down';\n private _selectFirstItem = false;\n\n public type: any;\n\n @HostListener('onShown') onShow() {\n if (this._selectFirstItem) {\n setTimeout(() => {\n this.$element.find('> ul[wmmenudropdown] li.app-menu-item').first().find('> a').focus();\n });\n }\n $appDigest();\n }\n @HostListener('onHidden') onHide() {\n this.$element.find('>.dropdown-toggle').focus();\n this.$element.find('li').removeClass('open');\n this._selectFirstItem = false;\n $appDigest();\n }\n\n @HostListener('keydown.arrowup', ['$event', '\"UP-ARROW\"'])\n @HostListener('keydown.arrowdown', ['$event', '\"DOWN-ARROW\"'])\n @HostListener('keydown.arrowright', ['$event', '\"RIGHT-ARROW\"'])\n @HostListener('keydown.arrowleft', ['$event', '\"LEFT-ARROW\"'])\n @HostListener('keydown.enter', ['$event', '\"ENTER\"']) onKeyDown($event, eventAction) {\n const KEY_MOVEMENTS = _.clone(KEYBOARD_MOVEMENTS);\n if (this.menuposition === MENU_POSITION.UP_RIGHT) {\n KEY_MOVEMENTS.MOVE_UP = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'UP-ARROW';\n } else if (this.menuposition === MENU_POSITION.UP_LEFT) {\n KEY_MOVEMENTS.MOVE_UP = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'UP-ARROW';\n KEY_MOVEMENTS.MOVE_LEFT = 'RIGHT-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'LEFT-ARROW';\n } else if (this.menuposition === MENU_POSITION.DOWN_LEFT) {\n KEY_MOVEMENTS.MOVE_LEFT = 'RIGHT-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'LEFT-ARROW';\n }\n\n if (_.includes([KEY_MOVEMENTS.MOVE_DOWN, KEY_MOVEMENTS.MOVE_RIGHT], eventAction)) {\n if (!this.bsDropdown.isOpen) {\n this._selectFirstItem = true;\n this.bsDropdown.show();\n } else {\n this.$element.find('> ul[wmmenudropdown] li.app-menu-item').first().find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.ON_ENTER) {\n this.bsDropdown.toggle(true);\n } else if (_.includes([KEY_MOVEMENTS.MOVE_UP, KEY_MOVEMENTS.MOVE_LEFT], eventAction)) {\n this.bsDropdown.hide();\n }\n $event.preventDefault();\n }\n\n constructor(\n inj: Injector,\n public route: Router,\n private app: App,\n private userDefinedExecutionContext: UserDefinedExecutionContext,\n @Self() @Optional() public bsDropdown: BsDropdownDirective,\n @Optional() private parentNav: NavComponent,\n @Attribute('select.event') public selectEventCB: string\n ) {\n super(inj, WIDGET_CONFIG);\n if (parentNav) {\n this.disableMenuContext = !!parentNav.disableMenuContext;\n } else {\n this.disableMenuContext = !!selectEventCB;\n }\n // For selecting the item on load\n const datasetSubscription = this.nodes$.subscribe(() => {\n if (!_.isEmpty(this.nodes)) {\n if (hasLinkToCurrentPage(this.nodes, this.route.url)) {\n addClass(this.nativeElement.querySelector('.dropdown-toggle') as HTMLElement, 'active');\n }\n // If menu widget is inside nav widget then dont check for item isactive property because these will be handled form nav widget.\n if (this.parentNav) {\n return;\n }\n let itemFound = false;\n const getItem = (nodes) => {\n _.forEach(nodes, (item) => {\n if (itemFound) {\n return;\n }\n if (item.isactive) {\n itemFound = true;\n this.onMenuItemSelect({ $event: {}, $item: item });\n // Trigger the action associated with active item\n triggerItemAction(this, item);\n return false;\n }\n if (!_.isEmpty(item.children)) {\n getItem(item.children);\n }\n\n });\n };\n getItem(this.nodes);\n }\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n }\n\n protected resetNodes() {\n super.resetNodes();\n // open the menu if any of its menu items has link to current page and if autoopen value is 'active page'\n if ((this.autoopen === AUTO_OPEN.ACTIVE_PAGE && hasLinkToCurrentPage(this.nodes, this.route.url)) || this.autoopen === AUTO_OPEN.ALWAYS) {\n this.bsDropdown.show();\n }\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.setMenuPosition();\n\n const cancelSubscription = this.app.subscribe(\"highlightActiveLink\", (data) => {\n toggleClass(this.nativeElement.querySelector('.dropdown-toggle') as HTMLElement, 'active', hasLinkToCurrentPage(this.nodes, this.route.url ));\n });\n this.registerDestroyListener(() => cancelSubscription());\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n\n if (key === 'tabindex') {\n return;\n }\n\n if (key === 'autoclose') {\n this.bsDropdown.autoClose = nv !== AUTOCLOSE_TYPE.DISABLED;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n private setMenuPosition() {\n switch (this.menuposition) {\n case POSITION.DOWN_RIGHT:\n removeClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.LEFT;\n this.menuCaret = CARET_CLS.DOWN;\n break;\n case POSITION.DOWN_LEFT:\n removeClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.RIGHT;\n this.menuCaret = CARET_CLS.DOWN;\n break;\n case POSITION.UP_LEFT:\n addClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.RIGHT;\n this.menuCaret = CARET_CLS.UP;\n break;\n case POSITION.UP_RIGHT:\n addClass(this.nativeElement, 'dropup');\n this.menualign = PULL_CLS.LEFT;\n this.menuCaret = CARET_CLS.UP;\n break;\n case POSITION.INLINE:\n this.menualign = 'dropinline-menu';\n break;\n }\n }\n\n public onMenuItemSelect(args) {\n const { $event } = args;\n const $item = args.$item.value;\n this.invokeEventCallback('select', { $event, $item });\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n styler(this.nativeElement.querySelector('.dropdown-toggle') as HTMLElement, this);\n }\n}\n","import { AfterViewInit, Component, ElementRef, Input } from '@angular/core';\n\nimport { addClass } from '@wm/core';\n\nimport { MenuComponent } from '../menu.component';\n\nconst animationClasses = {\n scale: {\n 'name': 'wmScaleInLeft',\n 'down,right': 'wmScaleInLeft',\n 'down,left': 'wmScaleInRight',\n 'up,right': 'wmScaleInTopLeft',\n 'up,left': 'wmScaleInTopRight'\n },\n fade: {\n 'name': 'fadeIn',\n 'down,right': 'fadeIn',\n 'down,left': 'fadeIn',\n 'up,right': 'fadeIn',\n 'up,left': 'fadeIn'\n },\n slide: {\n 'name': 'wmSlideInDown',\n 'down,right': 'wmSlideInDown',\n 'down,left': 'wmSlideInDown',\n 'up,right': 'wmSlideInUp',\n 'up,left': 'wmSlideInUp'\n }\n};\n\nconst DEFAULT_CLS = 'dropdown-menu';\n\n@Component({\n selector: 'ul[wmMenuDropdown]',\n templateUrl: './menu-dropdown.component.html'\n})\nexport class MenuDropdownComponent implements AfterViewInit {\n private readonly nativeElement;\n\n @Input() items;\n\n constructor(elRef: ElementRef, private menuRef: MenuComponent) {\n this.nativeElement = elRef.nativeElement;\n addClass(this.nativeElement, DEFAULT_CLS);\n }\n\n ngAfterViewInit() {\n const animateItems = this.menuRef.animateitems;\n let animationClass = '';\n if (animateItems) {\n animationClass = `animated ${(animationClasses[animateItems][this.menuRef.menuposition] || animationClasses[animateItems].name)}`;\n }\n addClass(this.nativeElement, `dropdown-menu ${this.menuRef.menualign} ${animationClass}`, true);\n }\n}\n","import { Component, ElementRef, HostListener, Input, OnDestroy, OnInit, Optional } from '@angular/core';\n\nimport { addClass, triggerItemAction, UserDefinedExecutionContext, App, toggleClass } from '@wm/core';\nimport { hasLinkToCurrentPage } from '@wm/components/base';\nimport { NavComponent } from '../nav/nav.component';\n\nimport { KEYBOARD_MOVEMENTS, MENU_POSITION, MenuComponent } from '../menu.component';\n\ndeclare const _, $;\n\nconst menuAlignClass = {\n 'pull-right' : 'fa-caret-left',\n 'dropinline-menu' : 'fa-caret-down',\n 'pull-left' : 'fa-caret-right'\n};\n\nconst MENU_LAYOUT_TYPE = {\n HORIZONTAL: 'horizontal',\n VERTICAL: 'vertical'\n};\n\n@Component({\n selector: 'li[wmMenuDropdownItem]',\n templateUrl: './menu-dropdown-item.component.html',\n})\nexport class MenuDropdownItemComponent implements OnInit, OnDestroy {\n\n public menualign: string;\n\n private itemActionFn: Function;\n\n @Input() item;\n\n private readonly nativeElement;\n private highlightActiveLinkSubscription: () => void;\n\n constructor(\n private app: App,\n public menuRef: MenuComponent,\n private userDefinedExecutionContext: UserDefinedExecutionContext,\n @Optional() private parentNav: NavComponent,\n elRef: ElementRef,\n ) {\n this.nativeElement = elRef.nativeElement;\n addClass(this.nativeElement, 'app-menu-item');\n\n this.menualign = menuAlignClass[this.menuRef.menualign] || menuAlignClass['pull-left'];\n }\n\n ngOnInit() {\n // add active class to the item only if it is in nav component.\n if (this.parentNav) {\n if (hasLinkToCurrentPage([this.item], this.menuRef.route.url)) {\n // add active class to the li, if the menu item's link is same as the current page name.\n addClass(this.nativeElement, 'active');\n }\n this.highlightActiveLinkSubscription = this.app.subscribe(\"highlightActiveLink\", (data) => {\n toggleClass(this.nativeElement, 'active', hasLinkToCurrentPage([this.item], this.menuRef.route.url));\n });\n }\n }\n\n getInitialKeyMovements() {\n const KEY_MOVEMENTS = _.clone(KEYBOARD_MOVEMENTS);\n if (this.menuRef.menulayout === MENU_LAYOUT_TYPE.HORIZONTAL) {\n KEY_MOVEMENTS.MOVE_UP = 'LEFT-ARROW';\n KEY_MOVEMENTS.MOVE_LEFT = 'UP-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'RIGHT-ARROW';\n } else {\n if (this.menuRef.menuposition === MENU_POSITION.DOWN_LEFT || this.menuRef.menuposition === MENU_POSITION.UP_LEFT) {\n KEY_MOVEMENTS.MOVE_LEFT = 'RIGHT-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'LEFT-ARROW';\n } else if (this.menuRef.menuposition === 'inline') {\n KEY_MOVEMENTS.MOVE_UP = 'LEFT-ARROW';\n KEY_MOVEMENTS.MOVE_LEFT = 'UP-ARROW';\n KEY_MOVEMENTS.MOVE_RIGHT = 'DOWN-ARROW';\n KEY_MOVEMENTS.MOVE_DOWN = 'RIGHT-ARROW';\n }\n }\n return KEY_MOVEMENTS;\n }\n\n @HostListener('keydown.tab', ['$event', '\"TAB\"'])\n @HostListener('keydown.shift.tab', ['$event', '\"SHIFT-TAB\"'])\n @HostListener('keydown.escape', ['$event', '\"ESC\"'])\n @HostListener('keydown.enter', ['$event', '\"ENTER\"'])\n @HostListener('keydown.arrowup', ['$event', '\"UP-ARROW\"'])\n @HostListener('keydown.arrowdown', ['$event', '\"DOWN-ARROW\"'])\n @HostListener('keydown.arrowright', ['$event', '\"RIGHT-ARROW\"'])\n @HostListener('keydown.arrowleft', ['$event', '\"LEFT-ARROW\"'])\n onKeyDown($event, eventAction) {\n const $li = $(this.nativeElement);\n const $ul = $(this.nativeElement).closest('ul.dropdown-menu');\n const $parentUl = this.menuRef.$element.find('> ul.dropdown-menu');\n const ARROW_KEYS = ['LEFT-ARROW', 'RIGHT-ARROW', 'UP-ARROW', 'DOWN-ARROW'];\n const KEY_MOVEMENTS = this.getInitialKeyMovements();\n\n if (_.includes(ARROW_KEYS, eventAction)) {\n // preventing from page scroll when up/down arrow is pressed, in case of menu is opened.\n $event.preventDefault();\n }\n\n if ((eventAction === KEY_MOVEMENTS.ON_TAB && $parentUl.children().last()[0] === this.nativeElement)\n || (eventAction === KEY_MOVEMENTS.ON_SHIFT_TAB && $parentUl.children().first()[0] === this.nativeElement)\n || eventAction === KEY_MOVEMENTS.ON_ESCAPE) {\n /*closing all the children elements when\n * 1. Tab is clicked on the last $element\n * 2. Shift Tab is clicked on the first $element\n * 3. When Escape key is clicked*/\n $event.preventDefault();\n this.menuRef.bsDropdown.hide();\n } else if ((eventAction === KEY_MOVEMENTS.ON_ENTER && !this.item.link) || eventAction === KEY_MOVEMENTS.MOVE_RIGHT) {\n // when there is no link for the menu, on enter open the inner child elements and focus the first $element\n $event.stopPropagation();\n if (this.item.children.length) {\n $li.toggleClass('open');\n $li.find('li').first().find('> a').focus();\n } else {\n $li.find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.MOVE_LEFT\n || (eventAction === KEY_MOVEMENTS.ON_TAB && $ul.children().last()[0] === this.nativeElement)\n || (eventAction === KEY_MOVEMENTS.ON_SHIFT_TAB && $ul.children().first()[0] === this.nativeElement)) {\n if ($parentUl[0] !== $ul[0]) {\n const $parentItem = $ul.parent();\n $parentItem.toggleClass('open').find('li.open').removeClass('open');\n $parentItem.find('> a').focus();\n $event.preventDefault();\n $event.stopPropagation();\n }\n } else if (eventAction === KEY_MOVEMENTS.MOVE_UP) {\n if ($parentUl[0] !== $ul[0] || $parentUl.find('> li').first()[0] !== this.nativeElement) {\n $event.stopPropagation();\n $li.prev().find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.MOVE_DOWN) {\n $event.stopPropagation();\n if ($parentUl.find('> li').last()[0] === this.nativeElement\n && (this.menuRef.menulayout !== MENU_LAYOUT_TYPE.HORIZONTAL\n && this.menuRef.menuposition === MENU_POSITION.UP_RIGHT\n || this.menuRef.menuposition === MENU_POSITION.UP_LEFT)) {\n this.menuRef.bsDropdown.hide();\n } else {\n $li.next().find('> a').focus();\n }\n } else if (eventAction === KEY_MOVEMENTS.ON_ENTER) {\n this.onSelect($event, this.item);\n } else {\n $event.stopPropagation();\n }\n }\n\n @HostListener('click', ['$event', 'item'])\n onSelect = ($event, item) => {\n if (this.nativeElement !== $($event.target).closest('.app-menu-item').get(0)) {\n return;\n }\n // prevent event event propagation if auto close is outside click.\n if (this.menuRef.autoclose === 'outsideClick') {\n $event.stopPropagation();\n }\n\n $event.preventDefault();\n const args = {$event, $item: item};\n this.menuRef.onMenuItemSelect(args);\n const selectedItem = _.clone(item);\n selectedItem.target = selectedItem.target || this.menuRef.linktarget;\n // Trigger the action associated with active item\n triggerItemAction(this, selectedItem);\n }\n\n ngOnDestroy(): void {\n if(this.highlightActiveLinkSubscription) {\n this.highlightActiveLinkSubscription();\n }\n }\n}\n","import { PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-nav-item',\n new Map(\n [\n ['class', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","import { ContentChild, Directive, HostListener, Injector, AfterViewInit } from '@angular/core';\n\nimport { addClass, removeClass } from '@wm/core';\nimport { APPLY_STYLES_TYPE, provideAsWidgetRef, StylableComponent, styler } from '@wm/components/base';\nimport { AnchorComponent } from '@wm/components/basic';\n\nimport { registerProps } from './nav-item.props';\n\ndeclare const $;\n\nconst DEFAULT_CLS = 'app-nav-item';\nconst WIDGET_CONFIG = {widgetType: 'wm-nav-item', hostClass: DEFAULT_CLS};\n\n@Directive({\n selector: '[wmNavItem]',\n providers: [\n provideAsWidgetRef(NavItemDirective)\n ]\n})\nexport class NavItemDirective extends StylableComponent implements AfterViewInit{\n static initializeProps = registerProps();\n @ContentChild(AnchorComponent) innerLink;\n\n @HostListener('click')\n @HostListener('keydown.enter')\n makeActive() {\n const parentNode = this.nativeElement.parentNode;\n $(parentNode as HTMLElement).find('> li.active').removeClass('active');\n if (this.isAttached) {\n addClass(this.nativeElement, 'active');\n }\n }\n\n constructor(inj: Injector) {\n super(inj, WIDGET_CONFIG);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n }\n\n public ngAfterViewInit() {\n if (this.innerLink) {\n this.innerLink.onActive(() => this.makeActive());\n }\n }\n\n public ngOnDetach() {\n removeClass(this.nativeElement, 'active', true);\n super.ngOnDetach();\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\n\nimport { setAttr } from '@wm/core';\n\nexport const disableContextMenu = ($event: Event) => {\n $event.preventDefault();\n};\n\n@Directive({selector: '[wmNavigationControl]'})\nexport class NavigationControlDirective {\n\n private nativeElement: HTMLElement;\n private _link: string;\n\n @Input() disableMenuContext: boolean;\n\n @Input() set wmNavigationControl(val) {\n this._link = val;\n if (val && !this.disableMenuContext) {\n setAttr(this.nativeElement, 'href', val);\n this.nativeElement.removeEventListener('contextmenu', disableContextMenu);\n } else {\n setAttr(this.nativeElement, 'href', 'javascript:void(0)');\n this.nativeElement.addEventListener('contextmenu', disableContextMenu);\n }\n }\n\n constructor(eleRef: ElementRef) {\n this.nativeElement = eleRef.nativeElement;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BsDropdownModule } from 'ngx-bootstrap/dropdown';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { BasicModule } from '@wm/components/basic';\nimport { InputModule } from '@wm/components/input';\n\nimport { MenuComponent } from './menu.component';\nimport { MenuDropdownComponent } from './menu-dropdown/menu-dropdown.component';\nimport { MenuDropdownItemComponent } from './menu-dropdown-item/menu-dropdown-item.component';\nimport { NavComponent } from './nav/nav.component';\nimport { NavItemDirective } from './nav/nav-item/nav-item.directive';\nimport { NavigationControlDirective } from './nav/navigation-control.directive';\n\nconst components = [\n MenuComponent,\n MenuDropdownComponent,\n MenuDropdownItemComponent,\n NavigationControlDirective,\n NavComponent,\n NavItemDirective\n];\n\n@NgModule({\n imports: [\n BasicModule,\n BsDropdownModule,\n CommonModule,\n InputModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components],\n entryComponents: [\n MenuComponent,\n MenuDropdownComponent\n ]\n})\nexport class MenuModule {\n}\n","import { AfterViewInit, QueryList, ViewChildren, Directive } from '@angular/core';\n\nimport { StylableComponent } from '@wm/components/base';\nimport { MenuComponent } from './menu.component';\nimport {BaseContainerComponent} from '@wm/components/base';\n\ndeclare const _;\n\nconst menuProps = ['itemlabel', 'itemicon', 'itemlink', 'itemaction', 'itemchildren', 'userrole'];\n\n@Directive()\nexport class MenuAdapterComponent extends BaseContainerComponent implements AfterViewInit {\n\n private itemlabel;\n private menuRef;\n private pageScope;\n\n private binditemlabel;\n private binditemicon;\n private binditemaction;\n private binditemchildren;\n private binditemlink;\n private binduserrole;\n\n @ViewChildren(MenuComponent) private menuRefQL: QueryList<MenuComponent>;\n\n constructor(\n inj,\n WIDGET_CONFIG,\n ) {\n super(inj, WIDGET_CONFIG);\n\n this.pageScope = this.viewParent;\n this.binditemlabel = this.nativeElement.getAttribute('itemlabel.bind');\n this.binditemicon = this.nativeElement.getAttribute('itemicon.bind');\n this.binditemaction = this.nativeElement.getAttribute('itemaction.bind');\n this.binditemlink = this.nativeElement.getAttribute('itemlink.bind');\n this.binduserrole = this.nativeElement.getAttribute('userrole.bind');\n this.binditemchildren = this.nativeElement.getAttribute('itemchildren.bind');\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (_.includes(menuProps, key) && this.menuRef) {\n this.menuRef.itemlabel = nv;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n const subscriber = this.menuRefQL.changes.subscribe((menuRefQL: QueryList<MenuComponent>) => {\n if (menuRefQL.first) {\n this.menuRef = menuRefQL.first;\n menuProps.forEach((prop) => {\n const bindProp = `bind${prop}`;\n if (this[bindProp]) {\n this.menuRef[bindProp] = this[bindProp];\n }\n this.menuRef[prop] = this[prop];\n });\n subscriber.unsubscribe();\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n\nexport {registerProps as ɵb} from './menu.props';\nexport {registerProps as ɵc} from './nav/nav-item/nav-item.props';\nexport {registerProps as ɵa} from './nav/nav.props';"],"names":["registerProps","register","PROP_STRING","PROP_ANY","PROP_BOOLEAN","DEFAULT_CLS","WIDGET_CONFIG","styler","APPLY_STYLES_TYPE","triggerItemAction","addClass","removeClass","DatasetAwareNavComponent","Component","provideAsWidgetRef","Injector","ChangeDetectorRef","Router","UserDefinedExecutionContext","App","Attribute","PROP_NUMBER","hasLinkToCurrentPage","$appDigest","toggleClass","AUTOCLOSE_TYPE","BsDropdownDirective","Self","Optional","HostListener","ElementRef","Input","StylableComponent","Directive","ContentChild","AnchorComponent","setAttr","NgModule","BasicModule","BsDropdownModule","CommonModule","InputModule","WmComponentsModule","BaseContainerComponent","ViewChildren"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { Component, ElementRef, HostListener, Input, Optional } from '@angular/core';
2
- import { addClass, triggerItemAction, UserDefinedExecutionContext } from '@wm/core';
3
- import { isActiveNavItem } from '@wm/components/base';
2
+ import { addClass, triggerItemAction, UserDefinedExecutionContext, App, toggleClass } from '@wm/core';
3
+ import { hasLinkToCurrentPage } from '@wm/components/base';
4
4
  import { NavComponent } from '../nav/nav.component';
5
5
  import { KEYBOARD_MOVEMENTS, MENU_POSITION, MenuComponent } from '../menu.component';
6
6
  const menuAlignClass = {
@@ -13,7 +13,8 @@ const MENU_LAYOUT_TYPE = {
13
13
  VERTICAL: 'vertical'
14
14
  };
15
15
  export class MenuDropdownItemComponent {
16
- constructor(menuRef, userDefinedExecutionContext, parentNav, elRef) {
16
+ constructor(app, menuRef, userDefinedExecutionContext, parentNav, elRef) {
17
+ this.app = app;
17
18
  this.menuRef = menuRef;
18
19
  this.userDefinedExecutionContext = userDefinedExecutionContext;
19
20
  this.parentNav = parentNav;
@@ -40,10 +41,13 @@ export class MenuDropdownItemComponent {
40
41
  ngOnInit() {
41
42
  // add active class to the item only if it is in nav component.
42
43
  if (this.parentNav) {
43
- if (isActiveNavItem(this.item.link, this.menuRef.route.url)) {
44
+ if (hasLinkToCurrentPage([this.item], this.menuRef.route.url)) {
44
45
  // add active class to the li, if the menu item's link is same as the current page name.
45
46
  addClass(this.nativeElement, 'active');
46
47
  }
48
+ this.highlightActiveLinkSubscription = this.app.subscribe("highlightActiveLink", (data) => {
49
+ toggleClass(this.nativeElement, 'active', hasLinkToCurrentPage([this.item], this.menuRef.route.url));
50
+ });
47
51
  }
48
52
  }
49
53
  getInitialKeyMovements() {
@@ -135,6 +139,11 @@ export class MenuDropdownItemComponent {
135
139
  $event.stopPropagation();
136
140
  }
137
141
  }
142
+ ngOnDestroy() {
143
+ if (this.highlightActiveLinkSubscription) {
144
+ this.highlightActiveLinkSubscription();
145
+ }
146
+ }
138
147
  }
139
148
  MenuDropdownItemComponent.decorators = [
140
149
  { type: Component, args: [{
@@ -143,6 +152,7 @@ MenuDropdownItemComponent.decorators = [
143
152
  },] }
144
153
  ];
145
154
  MenuDropdownItemComponent.ctorParameters = () => [
155
+ { type: App },
146
156
  { type: MenuComponent },
147
157
  { type: UserDefinedExecutionContext },
148
158
  { type: NavComponent, decorators: [{ type: Optional }] },
@@ -153,4 +163,4 @@ MenuDropdownItemComponent.propDecorators = {
153
163
  onKeyDown: [{ type: HostListener, args: ['keydown.tab', ['$event', '"TAB"'],] }, { type: HostListener, args: ['keydown.shift.tab', ['$event', '"SHIFT-TAB"'],] }, { type: HostListener, args: ['keydown.escape', ['$event', '"ESC"'],] }, { type: HostListener, args: ['keydown.enter', ['$event', '"ENTER"'],] }, { type: HostListener, args: ['keydown.arrowup', ['$event', '"UP-ARROW"'],] }, { type: HostListener, args: ['keydown.arrowdown', ['$event', '"DOWN-ARROW"'],] }, { type: HostListener, args: ['keydown.arrowright', ['$event', '"RIGHT-ARROW"'],] }, { type: HostListener, args: ['keydown.arrowleft', ['$event', '"LEFT-ARROW"'],] }],
154
164
  onSelect: [{ type: HostListener, args: ['click', ['$event', 'item'],] }]
155
165
  };
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1kcm9wZG93bi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL21lbnUvc3JjL21lbnUtZHJvcGRvd24taXRlbS9tZW51LWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdGLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVwRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBSXJGLE1BQU0sY0FBYyxHQUFHO0lBQ25CLFlBQVksRUFBRyxlQUFlO0lBQzlCLGlCQUFpQixFQUFHLGVBQWU7SUFDbkMsV0FBVyxFQUFHLGdCQUFnQjtDQUNqQyxDQUFDO0FBRUYsTUFBTSxnQkFBZ0IsR0FBRztJQUNyQixVQUFVLEVBQUUsWUFBWTtJQUN4QixRQUFRLEVBQUUsVUFBVTtDQUN2QixDQUFDO0FBTUYsTUFBTSxPQUFPLHlCQUF5QjtJQVVsQyxZQUNXLE9BQXNCLEVBQ3JCLDJCQUF3RCxFQUM1QyxTQUF1QixFQUMzQyxLQUFpQjtRQUhWLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDckIsZ0NBQTJCLEdBQTNCLDJCQUEyQixDQUE2QjtRQUM1QyxjQUFTLEdBQVQsU0FBUyxDQUFjO1FBK0cvQyxhQUFRLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUU7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Q0FBQztTQUNwQzthQUFNO1lBQ0gsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1NBQzVCO0lBQ0wsQ0FBQzs7O1lBN0hKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsd0JBQXdCO2dCQUNsQyw0dUJBQWtEO2FBQ3JEOzs7WUFsQjJDLGFBQWE7WUFKbkIsMkJBQTJCO1lBRXhELFlBQVksdUJBa0NaLFFBQVE7WUF0Q0csVUFBVTs7O21CQStCekIsS0FBSzt3QkErQ0wsWUFBWSxTQUFDLGFBQWEsRUFBRSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsY0FDL0MsWUFBWSxTQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxjQUMzRCxZQUFZLFNBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLGNBQ2xELFlBQVksU0FBQyxlQUFlLEVBQUUsQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLGNBQ25ELFlBQVksU0FBQyxpQkFBaUIsRUFBRSxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsY0FDeEQsWUFBWSxTQUFDLG1CQUFtQixFQUFFLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxjQUM1RCxZQUFZLFNBQUMsb0JBQW9CLEVBQUUsQ0FBQyxRQUFRLEVBQUUsZUFBZSxDQUFDLGNBQzlELFlBQVksU0FBQyxtQkFBbUIsRUFBRSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUM7dUJBK0Q1RCxZQUFZLFNBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBhZGRDbGFzcywgdHJpZ2dlckl0ZW1BY3Rpb24sIFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dCB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IGlzQWN0aXZlTmF2SXRlbSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL2Jhc2UnO1xuaW1wb3J0IHsgTmF2Q29tcG9uZW50IH0gZnJvbSAnLi4vbmF2L25hdi5jb21wb25lbnQnO1xuXG5pbXBvcnQgeyBLRVlCT0FSRF9NT1ZFTUVOVFMsIE1FTlVfUE9TSVRJT04sIE1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9tZW51LmNvbXBvbmVudCc7XG5cbmRlY2xhcmUgY29uc3QgXywgJDtcblxuY29uc3QgbWVudUFsaWduQ2xhc3MgPSB7XG4gICAgJ3B1bGwtcmlnaHQnIDogJ2ZhLWNhcmV0LWxlZnQnLFxuICAgICdkcm9waW5saW5lLW1lbnUnIDogJ2ZhLWNhcmV0LWRvd24nLFxuICAgICdwdWxsLWxlZnQnIDogJ2ZhLWNhcmV0LXJpZ2h0J1xufTtcblxuY29uc3QgTUVOVV9MQVlPVVRfVFlQRSA9IHtcbiAgICBIT1JJWk9OVEFMOiAnaG9yaXpvbnRhbCcsXG4gICAgVkVSVElDQUw6ICd2ZXJ0aWNhbCdcbn07XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGlbd21NZW51RHJvcGRvd25JdGVtXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL21lbnUtZHJvcGRvd24taXRlbS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIE1lbnVEcm9wZG93bkl0ZW1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgcHVibGljIG1lbnVhbGlnbjogc3RyaW5nO1xuXG4gICAgcHJpdmF0ZSBpdGVtQWN0aW9uRm46IEZ1bmN0aW9uO1xuXG4gICAgQElucHV0KCkgaXRlbTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmF0aXZlRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbWVudVJlZjogTWVudUNvbXBvbmVudCxcbiAgICAgICAgcHJpdmF0ZSB1c2VyRGVmaW5lZEV4ZWN1dGlvbkNvbnRleHQ6IFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnROYXY6IE5hdkNvbXBvbmVudCxcbiAgICAgICAgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgKSB7XG4gICAgICAgIHRoaXMubmF0aXZlRWxlbWVudCA9IGVsUmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FwcC1tZW51LWl0ZW0nKTtcblxuICAgICAgICB0aGlzLm1lbnVhbGlnbiA9IG1lbnVBbGlnbkNsYXNzW3RoaXMubWVudVJlZi5tZW51YWxpZ25dIHx8IG1lbnVBbGlnbkNsYXNzWydwdWxsLWxlZnQnXTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gYWRkIGFjdGl2ZSBjbGFzcyB0byB0aGUgaXRlbSBvbmx5IGlmIGl0IGlzIGluIG5hdiBjb21wb25lbnQuXG4gICAgICAgIGlmICh0aGlzLnBhcmVudE5hdikge1xuICAgICAgICAgICAgaWYgKGlzQWN0aXZlTmF2SXRlbSh0aGlzLml0ZW0ubGluaywgdGhpcy5tZW51UmVmLnJvdXRlLnVybCkpIHtcbiAgICAgICAgICAgICAgICAvLyBhZGQgYWN0aXZlIGNsYXNzIHRvIHRoZSBsaSwgaWYgdGhlIG1lbnUgaXRlbSdzIGxpbmsgaXMgc2FtZSBhcyB0aGUgY3VycmVudCBwYWdlIG5hbWUuXG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnYWN0aXZlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRJbml0aWFsS2V5TW92ZW1lbnRzKCkge1xuICAgICAgICBjb25zdCBLRVlfTU9WRU1FTlRTID0gXy5jbG9uZShLRVlCT0FSRF9NT1ZFTUVOVFMpO1xuICAgICAgICBpZiAodGhpcy5tZW51UmVmLm1lbnVsYXlvdXQgPT09IE1FTlVfTEFZT1VUX1RZUEUuSE9SSVpPTlRBTCkge1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX1VQID0gJ0xFRlQtQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0xFRlQgPSAnVVAtQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX1JJR0hUID0gJ0RPV04tQVJST1cnO1xuICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0RPV04gPSAnUklHSFQtQVJST1cnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMubWVudVJlZi5tZW51cG9zaXRpb24gPT09IE1FTlVfUE9TSVRJT04uRE9XTl9MRUZUIHx8IHRoaXMubWVudVJlZi5tZW51cG9zaXRpb24gPT09IE1FTlVfUE9TSVRJT04uVVBfTEVGVCkge1xuICAgICAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9MRUZUID0gJ1JJR0hULUFSUk9XJztcbiAgICAgICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfUklHSFQgPSAnTEVGVC1BUlJPVyc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMubWVudVJlZi5tZW51cG9zaXRpb24gPT09ICdpbmxpbmUnKSB7XG4gICAgICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX1VQID0gJ0xFRlQtQVJST1cnO1xuICAgICAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9MRUZUID0gJ1VQLUFSUk9XJztcbiAgICAgICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfUklHSFQgPSAnRE9XTi1BUlJPVyc7XG4gICAgICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0RPV04gPSAnUklHSFQtQVJST1cnO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBLRVlfTU9WRU1FTlRTO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24udGFiJywgWyckZXZlbnQnLCAnXCJUQUJcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uc2hpZnQudGFiJywgWyckZXZlbnQnLCAnXCJTSElGVC1UQUJcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZXNjYXBlJywgWyckZXZlbnQnLCAnXCJFU0NcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uZW50ZXInLCBbJyRldmVudCcsICdcIkVOVEVSXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93dXAnLCBbJyRldmVudCcsICdcIlVQLUFSUk9XXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93ZG93bicsIFsnJGV2ZW50JywgJ1wiRE9XTi1BUlJPV1wiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd3JpZ2h0JywgWyckZXZlbnQnLCAnXCJSSUdIVC1BUlJPV1wiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5hcnJvd2xlZnQnLCBbJyRldmVudCcsICdcIkxFRlQtQVJST1dcIiddKVxuICAgIG9uS2V5RG93bigkZXZlbnQsIGV2ZW50QWN0aW9uKSB7XG4gICAgICAgIGNvbnN0ICRsaSA9ICQodGhpcy5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgY29uc3QgJHVsID0gJCh0aGlzLm5hdGl2ZUVsZW1lbnQpLmNsb3Nlc3QoJ3VsLmRyb3Bkb3duLW1lbnUnKTtcbiAgICAgICAgY29uc3QgJHBhcmVudFVsID0gdGhpcy5tZW51UmVmLiRlbGVtZW50LmZpbmQoJz4gdWwuZHJvcGRvd24tbWVudScpO1xuICAgICAgICBjb25zdCBBUlJPV19LRVlTID0gWydMRUZULUFSUk9XJywgJ1JJR0hULUFSUk9XJywgJ1VQLUFSUk9XJywgJ0RPV04tQVJST1cnXTtcbiAgICAgICAgY29uc3QgS0VZX01PVkVNRU5UUyA9IHRoaXMuZ2V0SW5pdGlhbEtleU1vdmVtZW50cygpO1xuXG4gICAgICAgIGlmIChfLmluY2x1ZGVzKEFSUk9XX0tFWVMsIGV2ZW50QWN0aW9uKSkge1xuICAgICAgICAgICAgLy8gcHJldmVudGluZyBmcm9tIHBhZ2Ugc2Nyb2xsIHdoZW4gdXAvZG93biBhcnJvdyBpcyBwcmVzc2VkLCBpbiBjYXNlIG9mIG1lbnUgaXMgb3BlbmVkLlxuICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKGV2ZW50QWN0aW9uID09PSBLRVlfTU9WRU1FTlRTLk9OX1RBQiAmJiAkcGFyZW50VWwuY2hpbGRyZW4oKS5sYXN0KClbMF0gPT09IHRoaXMubmF0aXZlRWxlbWVudClcbiAgICAgICAgICAgIHx8IChldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5PTl9TSElGVF9UQUIgJiYgJHBhcmVudFVsLmNoaWxkcmVuKCkuZmlyc3QoKVswXSA9PT0gdGhpcy5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgfHwgZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuT05fRVNDQVBFKSB7XG4gICAgICAgICAgICAvKmNsb3NpbmcgYWxsIHRoZSBjaGlsZHJlbiBlbGVtZW50cyB3aGVuXG4gICAgICAgICAgICAqIDEuIFRhYiBpcyBjbGlja2VkIG9uIHRoZSBsYXN0ICRlbGVtZW50XG4gICAgICAgICAgICAqIDIuIFNoaWZ0IFRhYiBpcyBjbGlja2VkIG9uIHRoZSBmaXJzdCAkZWxlbWVudFxuICAgICAgICAgICAgKiAzLiBXaGVuIEVzY2FwZSBrZXkgaXMgY2xpY2tlZCovXG4gICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHRoaXMubWVudVJlZi5ic0Ryb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgfSBlbHNlIGlmICgoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuT05fRU5URVIgJiYgIXRoaXMuaXRlbS5saW5rKSB8fCBldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5NT1ZFX1JJR0hUKSB7XG4gICAgICAgICAgICAvLyB3aGVuIHRoZXJlIGlzIG5vIGxpbmsgZm9yIHRoZSBtZW51LCBvbiBlbnRlciBvcGVuIHRoZSBpbm5lciBjaGlsZCBlbGVtZW50cyBhbmQgZm9jdXMgdGhlIGZpcnN0ICRlbGVtZW50XG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBpZiAodGhpcy5pdGVtLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICRsaS50b2dnbGVDbGFzcygnb3BlbicpO1xuICAgICAgICAgICAgICAgICRsaS5maW5kKCdsaScpLmZpcnN0KCkuZmluZCgnPiBhJykuZm9jdXMoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgJGxpLmZpbmQoJz4gYScpLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuTU9WRV9MRUZUXG4gICAgICAgICAgICB8fCAoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuT05fVEFCICYmICR1bC5jaGlsZHJlbigpLmxhc3QoKVswXSA9PT0gdGhpcy5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgfHwgKGV2ZW50QWN0aW9uID09PSBLRVlfTU9WRU1FTlRTLk9OX1NISUZUX1RBQiAmJiAkdWwuY2hpbGRyZW4oKS5maXJzdCgpWzBdID09PSB0aGlzLm5hdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgICAgICBpZiAoJHBhcmVudFVsWzBdICE9PSAkdWxbMF0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCAkcGFyZW50SXRlbSA9ICR1bC5wYXJlbnQoKTtcbiAgICAgICAgICAgICAgICAkcGFyZW50SXRlbS50b2dnbGVDbGFzcygnb3BlbicpLmZpbmQoJ2xpLm9wZW4nKS5yZW1vdmVDbGFzcygnb3BlbicpO1xuICAgICAgICAgICAgICAgICRwYXJlbnRJdGVtLmZpbmQoJz4gYScpLmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50QWN0aW9uID09PSBLRVlfTU9WRU1FTlRTLk1PVkVfVVApIHtcbiAgICAgICAgICAgIGlmICgkcGFyZW50VWxbMF0gIT09ICR1bFswXSB8fCAkcGFyZW50VWwuZmluZCgnPiBsaScpLmZpcnN0KClbMF0gIT09IHRoaXMubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAkbGkucHJldigpLmZpbmQoJz4gYScpLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuTU9WRV9ET1dOKSB7XG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICBpZiAoJHBhcmVudFVsLmZpbmQoJz4gbGknKS5sYXN0KClbMF0gPT09IHRoaXMubmF0aXZlRWxlbWVudFxuICAgICAgICAgICAgICAgICYmICh0aGlzLm1lbnVSZWYubWVudWxheW91dCAhPT0gTUVOVV9MQVlPVVRfVFlQRS5IT1JJWk9OVEFMXG4gICAgICAgICAgICAgICAgICAgICYmIHRoaXMubWVudVJlZi5tZW51cG9zaXRpb24gPT09IE1FTlVfUE9TSVRJT04uVVBfUklHSFRcbiAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5tZW51UmVmLm1lbnVwb3NpdGlvbiA9PT0gTUVOVV9QT1NJVElPTi5VUF9MRUZUKSkge1xuICAgICAgICAgICAgICAgIHRoaXMubWVudVJlZi5ic0Ryb3Bkb3duLmhpZGUoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgJGxpLm5leHQoKS5maW5kKCc+IGEnKS5mb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKGV2ZW50QWN0aW9uID09PSBLRVlfTU9WRU1FTlRTLk9OX0VOVEVSKSB7XG4gICAgICAgICAgICB0aGlzLm9uU2VsZWN0KCRldmVudCwgdGhpcy5pdGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnLCAnaXRlbSddKVxuICAgIG9uU2VsZWN0ID0gKCRldmVudCwgaXRlbSkgPT4ge1xuICAgICAgICBpZiAodGhpcy5uYXRpdmVFbGVtZW50ICE9PSAkKCRldmVudC50YXJnZXQpLmNsb3Nlc3QoJy5hcHAtbWVudS1pdGVtJykuZ2V0KDApKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gcHJldmVudCBldmVudCBldmVudCBwcm9wYWdhdGlvbiBpZiBhdXRvIGNsb3NlIGlzIG91dHNpZGUgY2xpY2suXG4gICAgICAgIGlmICh0aGlzLm1lbnVSZWYuYXV0b2Nsb3NlID09PSAnb3V0c2lkZUNsaWNrJykge1xuICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGNvbnN0IGFyZ3MgPSB7JGV2ZW50LCAkaXRlbTogaXRlbX07XG4gICAgICAgIHRoaXMubWVudVJlZi5vbk1lbnVJdGVtU2VsZWN0KGFyZ3MpO1xuICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW0gPSBfLmNsb25lKGl0ZW0pO1xuICAgICAgICBzZWxlY3RlZEl0ZW0udGFyZ2V0ID0gc2VsZWN0ZWRJdGVtLnRhcmdldCB8fCB0aGlzLm1lbnVSZWYubGlua3RhcmdldDtcbiAgICAgICAgLy8gVHJpZ2dlciB0aGUgYWN0aW9uIGFzc29jaWF0ZWQgd2l0aCBhY3RpdmUgaXRlbVxuICAgICAgICB0cmlnZ2VySXRlbUFjdGlvbih0aGlzLCBzZWxlY3RlZEl0ZW0pO1xuICAgIH1cbn1cbiJdfQ==
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1kcm9wZG93bi1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL21lbnUvc3JjL21lbnUtZHJvcGRvd24taXRlbS9tZW51LWRyb3Bkb3duLWl0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RyxPQUFPLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFLDJCQUEyQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXBELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFJckYsTUFBTSxjQUFjLEdBQUc7SUFDbkIsWUFBWSxFQUFHLGVBQWU7SUFDOUIsaUJBQWlCLEVBQUcsZUFBZTtJQUNuQyxXQUFXLEVBQUcsZ0JBQWdCO0NBQ2pDLENBQUM7QUFFRixNQUFNLGdCQUFnQixHQUFHO0lBQ3JCLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLFFBQVEsRUFBRSxVQUFVO0NBQ3ZCLENBQUM7QUFNRixNQUFNLE9BQU8seUJBQXlCO0lBV2xDLFlBQ1ksR0FBUSxFQUNULE9BQXNCLEVBQ3JCLDJCQUF3RCxFQUM1QyxTQUF1QixFQUMzQyxLQUFpQjtRQUpULFFBQUcsR0FBSCxHQUFHLENBQUs7UUFDVCxZQUFPLEdBQVAsT0FBTyxDQUFlO1FBQ3JCLGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBNkI7UUFDNUMsY0FBUyxHQUFU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RSxDQUFDLFFBQVEsRUFBRSxjQUFjLENBQUMsY0FDNUQsWUFBWSxTQUFDLG9CQUFvQixFQUFFLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxjQUM5RCxZQUFZLFNBQUMsbUJBQW1CLEVBQUUsQ0FBQyxRQUFRLEVBQUUsY0FBYyxDQUFDO3VCQStENUQsWUFBWSxTQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBhZGRDbGFzcywgdHJpZ2dlckl0ZW1BY3Rpb24sIFVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dCwgQXBwLCB0b2dnbGVDbGFzcyB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IGhhc0xpbmtUb0N1cnJlbnRQYWdlIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBOYXZDb21wb25lbnQgfSBmcm9tICcuLi9uYXYvbmF2LmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IEtFWUJPQVJEX01PVkVNRU5UUywgTUVOVV9QT1NJVElPTiwgTWVudUNvbXBvbmVudCB9IGZyb20gJy4uL21lbnUuY29tcG9uZW50JztcblxuZGVjbGFyZSBjb25zdCBfLCAkO1xuXG5jb25zdCBtZW51QWxpZ25DbGFzcyA9IHtcbiAgICAncHVsbC1yaWdodCcgOiAnZmEtY2FyZXQtbGVmdCcsXG4gICAgJ2Ryb3BpbmxpbmUtbWVudScgOiAnZmEtY2FyZXQtZG93bicsXG4gICAgJ3B1bGwtbGVmdCcgOiAnZmEtY2FyZXQtcmlnaHQnXG59O1xuXG5jb25zdCBNRU5VX0xBWU9VVF9UWVBFID0ge1xuICAgIEhPUklaT05UQUw6ICdob3Jpem9udGFsJyxcbiAgICBWRVJUSUNBTDogJ3ZlcnRpY2FsJ1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaVt3bU1lbnVEcm9wZG93bkl0ZW1dJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWVudS1kcm9wZG93bi1pdGVtLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgTWVudURyb3Bkb3duSXRlbUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICAgIHB1YmxpYyBtZW51YWxpZ246IHN0cmluZztcblxuICAgIHByaXZhdGUgaXRlbUFjdGlvbkZuOiBGdW5jdGlvbjtcblxuICAgIEBJbnB1dCgpIGl0ZW07XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IG5hdGl2ZUVsZW1lbnQ7XG4gICAgcHJpdmF0ZSBoaWdobGlnaHRBY3RpdmVMaW5rU3Vic2NyaXB0aW9uOiAoKSA9PiB2b2lkO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYXBwOiBBcHAsXG4gICAgICAgIHB1YmxpYyBtZW51UmVmOiBNZW51Q29tcG9uZW50LFxuICAgICAgICBwcml2YXRlIHVzZXJEZWZpbmVkRXhlY3V0aW9uQ29udGV4dDogVXNlckRlZmluZWRFeGVjdXRpb25Db250ZXh0LFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHBhcmVudE5hdjogTmF2Q29tcG9uZW50LFxuICAgICAgICBlbFJlZjogRWxlbWVudFJlZixcbiAgICApIHtcbiAgICAgICAgdGhpcy5uYXRpdmVFbGVtZW50ID0gZWxSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnYXBwLW1lbnUtaXRlbScpO1xuXG4gICAgICAgIHRoaXMubWVudWFsaWduID0gbWVudUFsaWduQ2xhc3NbdGhpcy5tZW51UmVmLm1lbnVhbGlnbl0gfHwgbWVudUFsaWduQ2xhc3NbJ3B1bGwtbGVmdCddO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICAvLyBhZGQgYWN0aXZlIGNsYXNzIHRvIHRoZSBpdGVtIG9ubHkgaWYgaXQgaXMgaW4gbmF2IGNvbXBvbmVudC5cbiAgICAgICAgaWYgKHRoaXMucGFyZW50TmF2KSB7XG4gICAgICAgICAgICBpZiAoaGFzTGlua1RvQ3VycmVudFBhZ2UoW3RoaXMuaXRlbV0sIHRoaXMubWVudVJlZi5yb3V0ZS51cmwpKSB7XG4gICAgICAgICAgICAgICAgLy8gYWRkIGFjdGl2ZSBjbGFzcyB0byB0aGUgbGksIGlmIHRoZSBtZW51IGl0ZW0ncyBsaW5rIGlzIHNhbWUgYXMgdGhlIGN1cnJlbnQgcGFnZSBuYW1lLlxuICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FjdGl2ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRBY3RpdmVMaW5rU3Vic2NyaXB0aW9uID0gdGhpcy5hcHAuc3Vic2NyaWJlKFwiaGlnaGxpZ2h0QWN0aXZlTGlua1wiLCAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIHRvZ2dsZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2FjdGl2ZScsIGhhc0xpbmtUb0N1cnJlbnRQYWdlKFt0aGlzLml0ZW1dLCB0aGlzLm1lbnVSZWYucm91dGUudXJsKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEluaXRpYWxLZXlNb3ZlbWVudHMoKSB7XG4gICAgICAgIGNvbnN0IEtFWV9NT1ZFTUVOVFMgPSBfLmNsb25lKEtFWUJPQVJEX01PVkVNRU5UUyk7XG4gICAgICAgIGlmICh0aGlzLm1lbnVSZWYubWVudWxheW91dCA9PT0gTUVOVV9MQVlPVVRfVFlQRS5IT1JJWk9OVEFMKSB7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfVVAgPSAnTEVGVC1BUlJPVyc7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfTEVGVCA9ICdVUC1BUlJPVyc7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfUklHSFQgPSAnRE9XTi1BUlJPVyc7XG4gICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfRE9XTiA9ICdSSUdIVC1BUlJPVyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tZW51UmVmLm1lbnVwb3NpdGlvbiA9PT0gTUVOVV9QT1NJVElPTi5ET1dOX0xFRlQgfHwgdGhpcy5tZW51UmVmLm1lbnVwb3NpdGlvbiA9PT0gTUVOVV9QT1NJVElPTi5VUF9MRUZUKSB7XG4gICAgICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0xFRlQgPSAnUklHSFQtQVJST1cnO1xuICAgICAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9SSUdIVCA9ICdMRUZULUFSUk9XJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5tZW51UmVmLm1lbnVwb3NpdGlvbiA9PT0gJ2lubGluZScpIHtcbiAgICAgICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfVVAgPSAnTEVGVC1BUlJPVyc7XG4gICAgICAgICAgICAgICAgS0VZX01PVkVNRU5UUy5NT1ZFX0xFRlQgPSAnVVAtQVJST1cnO1xuICAgICAgICAgICAgICAgIEtFWV9NT1ZFTUVOVFMuTU9WRV9SSUdIVCA9ICdET1dOLUFSUk9XJztcbiAgICAgICAgICAgICAgICBLRVlfTU9WRU1FTlRTLk1PVkVfRE9XTiA9ICdSSUdIVC1BUlJPVyc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIEtFWV9NT1ZFTUVOVFM7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi50YWInLCBbJyRldmVudCcsICdcIlRBQlwiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5zaGlmdC50YWInLCBbJyRldmVudCcsICdcIlNISUZULVRBQlwiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lc2NhcGUnLCBbJyRldmVudCcsICdcIkVTQ1wiJ10pXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bi5lbnRlcicsIFsnJGV2ZW50JywgJ1wiRU5URVJcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3d1cCcsIFsnJGV2ZW50JywgJ1wiVVAtQVJST1dcIiddKVxuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uYXJyb3dkb3duJywgWyckZXZlbnQnLCAnXCJET1dOLUFSUk9XXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93cmlnaHQnLCBbJyRldmVudCcsICdcIlJJR0hULUFSUk9XXCInXSlcbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmFycm93bGVmdCcsIFsnJGV2ZW50JywgJ1wiTEVGVC1BUlJPV1wiJ10pXG4gICAgb25LZXlEb3duKCRldmVudCwgZXZlbnRBY3Rpb24pIHtcbiAgICAgICAgY29uc3QgJGxpID0gJCh0aGlzLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgICBjb25zdCAkdWwgPSAkKHRoaXMubmF0aXZlRWxlbWVudCkuY2xvc2VzdCgndWwuZHJvcGRvd24tbWVudScpO1xuICAgICAgICBjb25zdCAkcGFyZW50VWwgPSB0aGlzLm1lbnVSZWYuJGVsZW1lbnQuZmluZCgnPiB1bC5kcm9wZG93bi1tZW51Jyk7XG4gICAgICAgIGNvbnN0IEFSUk9XX0tFWVMgPSBbJ0xFRlQtQVJST1cnLCAnUklHSFQtQVJST1cnLCAnVVAtQVJST1cnLCAnRE9XTi1BUlJPVyddO1xuICAgICAgICBjb25zdCBLRVlfTU9WRU1FTlRTID0gdGhpcy5nZXRJbml0aWFsS2V5TW92ZW1lbnRzKCk7XG5cbiAgICAgICAgaWYgKF8uaW5jbHVkZXMoQVJST1dfS0VZUywgZXZlbnRBY3Rpb24pKSB7XG4gICAgICAgICAgICAvLyBwcmV2ZW50aW5nIGZyb20gcGFnZSBzY3JvbGwgd2hlbiB1cC9kb3duIGFycm93IGlzIHByZXNzZWQsIGluIGNhc2Ugb2YgbWVudSBpcyBvcGVuZWQuXG4gICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuT05fVEFCICYmICRwYXJlbnRVbC5jaGlsZHJlbigpLmxhc3QoKVswXSA9PT0gdGhpcy5uYXRpdmVFbGVtZW50KVxuICAgICAgICAgICAgfHwgKGV2ZW50QWN0aW9uID09PSBLRVlfTU9WRU1FTlRTLk9OX1NISUZUX1RBQiAmJiAkcGFyZW50VWwuY2hpbGRyZW4oKS5maXJzdCgpWzBdID09PSB0aGlzLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICB8fCBldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5PTl9FU0NBUEUpIHtcbiAgICAgICAgICAgIC8qY2xvc2luZyBhbGwgdGhlIGNoaWxkcmVuIGVsZW1lbnRzIHdoZW5cbiAgICAgICAgICAgICogMS4gVGFiIGlzIGNsaWNrZWQgb24gdGhlIGxhc3QgJGVsZW1lbnRcbiAgICAgICAgICAgICogMi4gU2hpZnQgVGFiIGlzIGNsaWNrZWQgb24gdGhlIGZpcnN0ICRlbGVtZW50XG4gICAgICAgICAgICAqIDMuIFdoZW4gRXNjYXBlIGtleSBpcyBjbGlja2VkKi9cbiAgICAgICAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdGhpcy5tZW51UmVmLmJzRHJvcGRvd24uaGlkZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKChldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5PTl9FTlRFUiAmJiAhdGhpcy5pdGVtLmxpbmspIHx8IGV2ZW50QWN0aW9uID09PSBLRVlfTU9WRU1FTlRTLk1PVkVfUklHSFQpIHtcbiAgICAgICAgICAgIC8vIHdoZW4gdGhlcmUgaXMgbm8gbGluayBmb3IgdGhlIG1lbnUsIG9uIGVudGVyIG9wZW4gdGhlIGlubmVyIGNoaWxkIGVsZW1lbnRzIGFuZCBmb2N1cyB0aGUgZmlyc3QgJGVsZW1lbnRcbiAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGlmICh0aGlzLml0ZW0uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgJGxpLnRvZ2dsZUNsYXNzKCdvcGVuJyk7XG4gICAgICAgICAgICAgICAgJGxpLmZpbmQoJ2xpJykuZmlyc3QoKS5maW5kKCc+IGEnKS5mb2N1cygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkbGkuZmluZCgnPiBhJykuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5NT1ZFX0xFRlRcbiAgICAgICAgICAgIHx8IChldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5PTl9UQUIgJiYgJHVsLmNoaWxkcmVuKCkubGFzdCgpWzBdID09PSB0aGlzLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICB8fCAoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuT05fU0hJRlRfVEFCICYmICR1bC5jaGlsZHJlbigpLmZpcnN0KClbMF0gPT09IHRoaXMubmF0aXZlRWxlbWVudCkpIHtcbiAgICAgICAgICAgIGlmICgkcGFyZW50VWxbMF0gIT09ICR1bFswXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0ICRwYXJlbnRJdGVtID0gJHVsLnBhcmVudCgpO1xuICAgICAgICAgICAgICAgICRwYXJlbnRJdGVtLnRvZ2dsZUNsYXNzKCdvcGVuJykuZmluZCgnbGkub3BlbicpLnJlbW92ZUNsYXNzKCdvcGVuJyk7XG4gICAgICAgICAgICAgICAgJHBhcmVudEl0ZW0uZmluZCgnPiBhJykuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuTU9WRV9VUCkge1xuICAgICAgICAgICAgaWYgKCRwYXJlbnRVbFswXSAhPT0gJHVsWzBdIHx8ICRwYXJlbnRVbC5maW5kKCc+IGxpJykuZmlyc3QoKVswXSAhPT0gdGhpcy5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICRsaS5wcmV2KCkuZmluZCgnPiBhJykuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChldmVudEFjdGlvbiA9PT0gS0VZX01PVkVNRU5UUy5NT1ZFX0RPV04pIHtcbiAgICAgICAgICAgICRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgIGlmICgkcGFyZW50VWwuZmluZCgnPiBsaScpLmxhc3QoKVswXSA9PT0gdGhpcy5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICAgICAgJiYgKHRoaXMubWVudVJlZi5tZW51bGF5b3V0ICE9PSBNRU5VX0xBWU9VVF9UWVBFLkhPUklaT05UQUxcbiAgICAgICAgICAgICAgICAgICAgJiYgdGhpcy5tZW51UmVmLm1lbnVwb3NpdGlvbiA9PT0gTUVOVV9QT1NJVElPTi5VUF9SSUdIVFxuICAgICAgICAgICAgICAgICAgICB8fCB0aGlzLm1lbnVSZWYubWVudXBvc2l0aW9uID09PSBNRU5VX1BPU0lUSU9OLlVQX0xFRlQpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZW51UmVmLmJzRHJvcGRvd24uaGlkZSgpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAkbGkubmV4dCgpLmZpbmQoJz4gYScpLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnRBY3Rpb24gPT09IEtFWV9NT1ZFTUVOVFMuT05fRU5URVIpIHtcbiAgICAgICAgICAgIHRoaXMub25TZWxlY3QoJGV2ZW50LCB0aGlzLml0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCcsICdpdGVtJ10pXG4gICAgb25TZWxlY3QgPSAoJGV2ZW50LCBpdGVtKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLm5hdGl2ZUVsZW1lbnQgIT09ICQoJGV2ZW50LnRhcmdldCkuY2xvc2VzdCgnLmFwcC1tZW51LWl0ZW0nKS5nZXQoMCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICAvLyBwcmV2ZW50IGV2ZW50IGV2ZW50IHByb3BhZ2F0aW9uIGlmIGF1dG8gY2xvc2UgaXMgb3V0c2lkZSBjbGljay5cbiAgICAgICAgaWYgKHRoaXMubWVudVJlZi5hdXRvY2xvc2UgPT09ICdvdXRzaWRlQ2xpY2snKSB7XG4gICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIH1cblxuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgYXJncyA9IHskZXZlbnQsICRpdGVtOiBpdGVtfTtcbiAgICAgICAgdGhpcy5tZW51UmVmLm9uTWVudUl0ZW1TZWxlY3QoYXJncyk7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IF8uY2xvbmUoaXRlbSk7XG4gICAgICAgIHNlbGVjdGVkSXRlbS50YXJnZXQgPSBzZWxlY3RlZEl0ZW0udGFyZ2V0IHx8IHRoaXMubWVudVJlZi5saW5rdGFyZ2V0O1xuICAgICAgICAvLyBUcmlnZ2VyIHRoZSBhY3Rpb24gYXNzb2NpYXRlZCB3aXRoIGFjdGl2ZSBpdGVtXG4gICAgICAgIHRyaWdnZXJJdGVtQWN0aW9uKHRoaXMsIHNlbGVjdGVkSXRlbSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmKHRoaXMuaGlnaGxpZ2h0QWN0aXZlTGlua1N1YnNjcmlwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRBY3RpdmVMaW5rU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=