@wavemaker/app-ng-runtime 12.0.0-next.45191 → 12.0.0-next.45197

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 (97) hide show
  1. app-ng-runtime/build-task/bundles/index.umd.js +7 -7
  2. app-ng-runtime/build-task/esm2022/containers/accordion/accordion-pane/accordion-pane.build.mjs +2 -2
  3. app-ng-runtime/build-task/esm2022/containers/accordion/accordion.build.mjs +3 -3
  4. app-ng-runtime/build-task/esm2022/containers/wizard/wizard.build.mjs +2 -2
  5. app-ng-runtime/build-task/esm2022/data/form/form-field/form-field.build.mjs +3 -3
  6. app-ng-runtime/build-task/esm2022/input/chips/chips.build.mjs +2 -2
  7. app-ng-runtime/build-task/esm2022/input/file-upload/file-upload.build.mjs +2 -2
  8. app-ng-runtime/build-task/fesm2022/index.mjs +7 -7
  9. app-ng-runtime/build-task/fesm2022/index.mjs.map +1 -1
  10. app-ng-runtime/components/base/bundles/index.umd.js +0 -5
  11. app-ng-runtime/components/base/esm2022/widgets/common/base/base.component.mjs +1 -6
  12. app-ng-runtime/components/base/fesm2022/index.mjs +0 -5
  13. app-ng-runtime/components/base/fesm2022/index.mjs.map +1 -1
  14. app-ng-runtime/components/basic/default/audio/audio.component.d.ts +2 -0
  15. app-ng-runtime/components/basic/default/bundles/index.umd.js +18 -7
  16. app-ng-runtime/components/basic/default/esm2022/audio/audio.component.mjs +13 -5
  17. app-ng-runtime/components/basic/default/esm2022/video/video.component.mjs +7 -4
  18. app-ng-runtime/components/basic/default/fesm2022/index.mjs +18 -7
  19. app-ng-runtime/components/basic/default/fesm2022/index.mjs.map +1 -1
  20. app-ng-runtime/components/basic/default/video/video.component.d.ts +1 -0
  21. app-ng-runtime/components/basic/progress/bundles/index.umd.js +7 -3
  22. app-ng-runtime/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +8 -4
  23. app-ng-runtime/components/basic/progress/fesm2022/index.mjs +7 -3
  24. app-ng-runtime/components/basic/progress/fesm2022/index.mjs.map +1 -1
  25. app-ng-runtime/components/basic/progress/progress-bar/progress-bar.component.d.ts +1 -0
  26. app-ng-runtime/components/basic/search/bundles/index.umd.js +7 -2
  27. app-ng-runtime/components/basic/search/esm2022/search.component.mjs +8 -3
  28. app-ng-runtime/components/basic/search/fesm2022/index.mjs +7 -2
  29. app-ng-runtime/components/basic/search/fesm2022/index.mjs.map +1 -1
  30. app-ng-runtime/components/basic/search/search.component.d.ts +3 -2
  31. app-ng-runtime/components/chart/bundles/index.umd.js +2 -1
  32. app-ng-runtime/components/chart/esm2022/chart.utils.mjs +3 -2
  33. app-ng-runtime/components/chart/fesm2022/index.mjs +2 -1
  34. app-ng-runtime/components/chart/fesm2022/index.mjs.map +1 -1
  35. app-ng-runtime/components/containers/accordion/accordion-pane/accordion-pane.component.d.ts +1 -0
  36. app-ng-runtime/components/containers/accordion/bundles/index.umd.js +15 -9
  37. app-ng-runtime/components/containers/accordion/esm2022/accordion-pane/accordion-pane.component.mjs +13 -10
  38. app-ng-runtime/components/containers/accordion/esm2022/accordion.directive.mjs +4 -1
  39. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs +15 -9
  40. app-ng-runtime/components/containers/accordion/fesm2022/index.mjs.map +1 -1
  41. app-ng-runtime/components/containers/wizard/bundles/index.umd.js +6 -6
  42. app-ng-runtime/components/containers/wizard/esm2022/wizard.component.mjs +7 -7
  43. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs +6 -6
  44. app-ng-runtime/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  45. app-ng-runtime/components/data/list/bundles/index.umd.js +20 -12
  46. app-ng-runtime/components/data/list/esm2022/list-item.directive.mjs +10 -1
  47. app-ng-runtime/components/data/list/esm2022/list.component.mjs +13 -13
  48. app-ng-runtime/components/data/list/fesm2022/index.mjs +21 -13
  49. app-ng-runtime/components/data/list/fesm2022/index.mjs.map +1 -1
  50. app-ng-runtime/components/input/chips/bundles/index.umd.js +24 -7
  51. app-ng-runtime/components/input/chips/esm2022/chips.component.mjs +25 -8
  52. app-ng-runtime/components/input/chips/fesm2022/index.mjs +24 -7
  53. app-ng-runtime/components/input/chips/fesm2022/index.mjs.map +1 -1
  54. app-ng-runtime/components/input/default/bundles/index.umd.js +21 -5
  55. app-ng-runtime/components/input/default/esm2022/base-form.component.mjs +3 -3
  56. app-ng-runtime/components/input/default/esm2022/text/locale/number-locale.mjs +20 -4
  57. app-ng-runtime/components/input/default/fesm2022/index.mjs +21 -5
  58. app-ng-runtime/components/input/default/fesm2022/index.mjs.map +1 -1
  59. app-ng-runtime/components/input/epoch/base-date-time.component.d.ts +3 -1
  60. app-ng-runtime/components/input/epoch/bundles/index.umd.js +22 -14
  61. app-ng-runtime/components/input/epoch/esm2022/base-date-time.component.mjs +13 -6
  62. app-ng-runtime/components/input/epoch/esm2022/date/date.component.mjs +4 -4
  63. app-ng-runtime/components/input/epoch/esm2022/date/date.props.mjs +2 -1
  64. app-ng-runtime/components/input/epoch/esm2022/date-time/date-time.component.mjs +4 -4
  65. app-ng-runtime/components/input/epoch/fesm2022/index.mjs +19 -11
  66. app-ng-runtime/components/input/epoch/fesm2022/index.mjs.map +1 -1
  67. app-ng-runtime/components/input/file-upload/bundles/index.umd.js +80 -64
  68. app-ng-runtime/components/input/file-upload/esm2022/file-upload.component.mjs +80 -65
  69. app-ng-runtime/components/input/file-upload/esm2022/file-upload.props.mjs +3 -2
  70. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs +81 -65
  71. app-ng-runtime/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  72. app-ng-runtime/components/input/file-upload/file-upload.component.d.ts +7 -2
  73. app-ng-runtime/components/input/rating/bundles/index.umd.js +2 -2
  74. app-ng-runtime/components/input/rating/esm2022/rating.component.mjs +3 -3
  75. app-ng-runtime/components/input/rating/fesm2022/index.mjs +2 -2
  76. app-ng-runtime/components/input/rating/fesm2022/index.mjs.map +1 -1
  77. app-ng-runtime/components/navigation/breadcrumb/bundles/index.umd.js +6 -6
  78. app-ng-runtime/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +7 -7
  79. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs +6 -6
  80. app-ng-runtime/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  81. app-ng-runtime/components/page/left-panel/bundles/index.umd.js +10 -3
  82. app-ng-runtime/components/page/left-panel/esm2022/left-panel.directive.mjs +11 -4
  83. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs +10 -3
  84. app-ng-runtime/components/page/left-panel/fesm2022/index.mjs.map +1 -1
  85. app-ng-runtime/components/page/left-panel/left-panel.directive.d.ts +2 -2
  86. app-ng-runtime/components/page/right-panel/bundles/index.umd.js +2 -2
  87. app-ng-runtime/components/page/right-panel/esm2022/right-panel.directive.mjs +3 -3
  88. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs +2 -2
  89. app-ng-runtime/components/page/right-panel/fesm2022/index.mjs.map +1 -1
  90. app-ng-runtime/components/page/right-panel/right-panel.directive.d.ts +1 -1
  91. app-ng-runtime/package.json +1 -1
  92. app-ng-runtime/scripts/datatable/datatable.js +9 -5
  93. app-ng-runtime/variables/bundles/index.umd.js +34 -16
  94. app-ng-runtime/variables/esm2022/manager/variable/web-socket-variable.manager.mjs +35 -17
  95. app-ng-runtime/variables/fesm2022/index.mjs +34 -16
  96. app-ng-runtime/variables/fesm2022/index.mjs.map +1 -1
  97. app-ng-runtime/variables/manager/variable/web-socket-variable.manager.d.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/rating/src/rating.props.ts","../../../../../projects/components/widgets/input/rating/src/rating.component.html","../../../../../projects/components/widgets/input/rating/src/rating.component.ts","../../../../../projects/components/widgets/input/rating/src/rating.module.ts","../../../../../projects/components/widgets/input/rating/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const ratingProps = new Map(\n [\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['iconcolor', PROP_STRING],\n ['activeiconclass', {value: 'wi wi-star', ...PROP_STRING}],\n ['inactiveiconclass', {value: 'wi wi-star-border', ...PROP_STRING}],\n ['iconsize', PROP_STRING],\n ['maxvalue', {value: 5, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcaptions', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-rating',\n ratingProps\n );\n registerFormWidget(\n FormWidgetType.RATING,\n new Map(ratingProps)\n );\n};\n","<div (focus)=\"onFocus($event)\" [(ngModel)]=\"modelByKey\" [ngModelOptions]=\"{standalone: true}\" aria-multiselectable=\"true\"\n class=\"ratings-wrapper\" ngDefaultControl>\n <div [class.disabled]=\"readonly\" class=\"rating-style\">\n <label *ngFor=\"let rate of ratingItems;\"\n [ngClass]=\"{active : rate.index <= selectedRatingValue}\"\n [ngStyle]=\"{'font-size' :iconsize, color: rate.index <= selectedRatingValue && iconcolor}\"\n [title]=\"rate.label || rate.index\"\n (touchstart)=\"onTouchStart($event)\"\n (mouseleave)=\"onMouseleave($event, rate)\"\n (mouseover)=\"onMouseOver($event, rate)\"\n [for]=\"_id + '-' + rate.index\">\n <i class=\"app-icon {{rate.index <= selectedRatingValue ? activeiconclass : inactiveiconclass}}\" aria-hidden=\"true\"></i>\n <input #ratingInput type=\"radio\" role=\"radio\" [attr.aria-label]=\"(rate.label || rate.index) + ' out of ' + ratingItems.length + ' ratings'\" [attr.aria-checked]=\"rate.label === datavalue ? 'true' : 'false'\"\n [id]=\"_id + '-' + rate.index\" (click)=\"onRatingClick($event, rate)\" name=\"ratings-id\" [value]=\"rate.key || rate.index\"/>\n </label>\n </div>\n <label *ngIf=\"showcaptions\" class=\"caption\" [textContent]=\"caption\"></label>\n</div>\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {generateGUId, setCSS, noop} from '@wm/core';\nimport { getOrderedDataset, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '@wm/components/input';\n\nimport { registerProps } from './rating.props';\nimport {find, isEmpty, isUndefined, slice, toString} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-ratings';\nconst WIDGET_CONFIG = {widgetType: 'wm-rating', hostClass: DEFAULT_CLS};\n\nconst MAX_RATING = 10;\nconst DEFAULT_RATING = 5;\n\n@Component({\n selector: '[wmRating]',\n templateUrl: './rating.component.html',\n providers: [\n provideAs(RatingComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(RatingComponent)\n ]\n})\nexport class RatingComponent extends DatasetAwareFormComponent {\n static initializeProps = registerProps();\n\n public caption: string;\n public showcaptions: boolean;\n public maxvalue;\n\n private _selectedRatingValue;\n public ratingsWidth;\n public ratingItems;\n private _id;\n\n public iconsize: string;\n public iconcolor: string;\n public onFocus: any;\n private touchEnabled:boolean;\n public activeiconclass: string = '';\n public inactiveiconclass: string = '';\n @ViewChild('ratingInput', /* TODO: add static flag */ { read: ElementRef }) ratingEl: ElementRef;\n\n get selectedRatingValue() {\n return this._selectedRatingValue;\n }\n\n set selectedRatingValue(val) {\n this._selectedRatingValue = val;\n this.calculateRatingsWidth();\n }\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n this._id = generateGUId();\n styler(this.nativeElement, this);\n\n // prepare the rating options on dataset ready.\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.prepareRatingDataset();\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n // listen to changes in datavalue.\n const datavalueSubscription = this.datavalue$.subscribe(() => this.onDatavalueChange(this.datavalue));\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n // Change event is registered from the template, Prevent the framework from registering one more event\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(this.ratingEl.nativeElement, eventName, eventCallback, locals);\n }\n }\n\n // This function returns the rating widget dataset containing the index, value and label\n private prepareRatingDataset() {\n if (!this.datasetItems.length) {\n this.ratingItems = [];\n this.caption = '';\n }\n\n let ratingItems = [];\n let data = this.datasetItems;\n const maxvalue = parseInt(this.maxvalue || this.datasetItems.length, 10);\n const maxValue = (maxvalue > MAX_RATING ? MAX_RATING : maxvalue) || DEFAULT_RATING;\n\n /**\n * 1. If datasetItems.length is more than maxValue (i.e. 10 ratings) then just extract maxValue of items from datasetItems.\n * 2. If datasetItems are not available then prepare ratings value depending on maxvalue. eg: 1,2,3 .. upto maxvalue\n * 3. If maxvalue / i value is more than datasetItems length, prepare default rating items for i values more than datasetItems.length\n */\n if (data.length && data.length > maxValue) {\n data = slice(data, 0, maxValue);\n }\n\n for (let i = maxValue; i > 0; i--) {\n if (!data.length) {\n ratingItems.push({key: i, value: i, index: i, label: i});\n } else {\n if (i > data.length) {\n ratingItems.push({key: i, value: i, index: i, label: i});\n } else {\n data = getOrderedDataset(data, 'index:desc');\n ratingItems = ratingItems.concat(data);\n break;\n }\n }\n }\n\n this.ratingItems = ratingItems;\n if (!data.length) { // constructs default datasetItems when there is no dataset binding.\n this.datasetItems = ratingItems;\n }\n this.onDatavalueChange(this.datavalue);\n }\n\n onRatingClick($event, rate) {\n this.modelByKey = rate.key;\n this.selectedRatingValue = rate.index;\n\n // support if the caption is binded in the old projects for backward compatibility\n if (!this.showcaptions) {\n this.caption = rate.label;\n }\n\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n // Update the selected flag on datasetItems and assign the ratingValue.\n /**\n * On datavalue change, update the caption, selectedRatingValue.\n * 1. if datasetItems contain the selected item (check the selected flag on item), find the index of selected item.\n * 2. if not, just check if the datavalue is provided as the index on the item.\n *\n * @param dataVal datavalue\n */\n onDatavalueChange(dataVal) {\n if (!isEmpty(this.datasetItems)) {\n let selectedItem = find(this.datasetItems, {'selected': true});\n\n if (!selectedItem && !isUndefined(dataVal)) {\n selectedItem = find(this.datasetItems, function (item) {\n return toString(item.index) === dataVal;\n });\n if (selectedItem) {\n selectedItem.selected = true;\n }\n }\n\n if (!selectedItem) {\n // reset the model if there is no item found.\n this.modelByKey = undefined;\n this.caption = '';\n }\n\n this.selectedRatingValue = selectedItem ? selectedItem.index : 0;\n if (selectedItem) {\n this.caption = selectedItem.label;\n }\n } else {\n this.selectedRatingValue = 0;\n }\n if (this.readonly) {\n // when dataset is not given but datavalue is provided which is integer\n if (!this.selectedRatingValue && !isNaN(dataVal)) {\n this.selectedRatingValue = (parseFloat(dataVal) <= this.maxvalue) ? dataVal : this.maxvalue;\n }\n this.ratingsWidth = this.calculateRatingsWidth(dataVal);\n }\n }\n\n calculateRatingsWidth(dataVal?: any) {\n const selectedRating = parseFloat(this.selectedRatingValue),\n starWidth = 0.925,\n maxValue = parseInt(this.maxvalue || this.datasetItems.length, 10) || DEFAULT_RATING;\n\n dataVal = dataVal || this.datavalue;\n if (dataVal === undefined || dataVal === '' || dataVal === null) {\n this.caption = '';\n return 0;\n }\n if (selectedRating <= maxValue && selectedRating >= 0) {\n return selectedRating * starWidth + 'em';\n }\n if (selectedRating > maxValue) {\n return maxValue * starWidth + 'em';\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'readonly') {\n if (nv) {\n this.ratingsWidth = this.calculateRatingsWidth();\n }\n } else if (key === 'maxvalue') {\n /** Storing the datavalue in temp variable and assiging back to datavalue\n * after default datalist is prepared to trigger Dataset Aware class select cycle\n * as the datavalue property change is triggering first rather than maxvalue\n * in the rating widget is used inside a datatable\n */\n let tempDataValue = this.datavalue;\n this.prepareRatingDataset();\n // reset all the items.\n this.resetDatasetItems();\n if (!isUndefined(tempDataValue)) {\n this.datavalue = tempDataValue;\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n /* Detect touch enabled devices & update hover styles*/\n onTouchStart($event) {\n this.touchEnabled = true;\n this.onTouchStart = noop;\n }\n onMouseleave() {\n this.caption = this.displayValue as string;\n }\n\n onMouseOver($event, rate) {\n this.caption = rate.label;\n !this.touchEnabled && !$event.target.classList.contains('rating-label-hover') && $event.target.classList.add('rating-label-hover');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { RatingComponent } from './rating.component';\n\nconst components = [\n RatingComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class RatingModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/input/rating/src/rating.props.ts","../../../../../projects/components/widgets/input/rating/src/rating.component.html","../../../../../projects/components/widgets/input/rating/src/rating.component.ts","../../../../../projects/components/widgets/input/rating/src/rating.module.ts","../../../../../projects/components/widgets/input/rating/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register, registerFormWidget } from '@wm/components/base';\nimport { FormWidgetType } from '@wm/core';\n\nexport const ratingProps = new Map(\n [\n ['caption', PROP_STRING],\n ['class', PROP_STRING],\n ['datafield', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['displayexpression', PROP_STRING],\n ['displayfield', PROP_STRING],\n ['iconcolor', PROP_STRING],\n ['activeiconclass', {value: 'wi wi-star', ...PROP_STRING}],\n ['inactiveiconclass', {value: 'wi wi-star-border', ...PROP_STRING}],\n ['iconsize', PROP_STRING],\n ['maxvalue', {value: 5, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['orderby', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showcaptions', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['usekeys', PROP_BOOLEAN]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-rating',\n ratingProps\n );\n registerFormWidget(\n FormWidgetType.RATING,\n new Map(ratingProps)\n );\n};\n","<div (focus)=\"onFocus($event)\" [(ngModel)]=\"modelByKey\" [ngModelOptions]=\"{standalone: true}\"\n class=\"ratings-wrapper\" ngDefaultControl>\n <div [class.disabled]=\"readonly\" class=\"rating-style\">\n <label *ngFor=\"let rate of ratingItems;\"\n [ngClass]=\"{active : rate.index <= selectedRatingValue}\"\n [ngStyle]=\"{'font-size' :iconsize, color: rate.index <= selectedRatingValue && iconcolor}\"\n [title]=\"rate.label || rate.index\"\n (touchstart)=\"onTouchStart($event)\"\n (mouseleave)=\"onMouseleave($event, rate)\"\n (mouseover)=\"onMouseOver($event, rate)\"\n [for]=\"_id + '-' + rate.index\">\n <i class=\"app-icon {{rate.index <= selectedRatingValue ? activeiconclass : inactiveiconclass}}\" aria-hidden=\"true\"></i>\n <input #ratingInput type=\"radio\" role=\"radio\" [attr.aria-label]=\"(rate.label || rate.index) + ' out of ' + ratingItems.length + ' ratings'\" [attr.aria-checked]=\"rate.label === datavalue ? 'true' : 'false'\"\n [id]=\"_id + '-' + rate.index\" (click)=\"onRatingClick($event, rate)\" name=\"ratings-id\" [value]=\"rate.key || rate.index\"/>\n </label>\n </div>\n <label *ngIf=\"showcaptions\" class=\"caption\" [textContent]=\"caption\"></label>\n</div>\n","import {Component, ElementRef, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport {generateGUId, setCSS, noop} from '@wm/core';\nimport { getOrderedDataset, provideAs, provideAsWidgetRef, styler } from '@wm/components/base';\nimport { DatasetAwareFormComponent } from '@wm/components/input';\n\nimport { registerProps } from './rating.props';\nimport {find, isEmpty, isUndefined, slice, toString} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-ratings';\nconst WIDGET_CONFIG = {widgetType: 'wm-rating', hostClass: DEFAULT_CLS};\n\nconst MAX_RATING = 10;\nconst DEFAULT_RATING = 5;\n\n@Component({\n selector: '[wmRating]',\n templateUrl: './rating.component.html',\n providers: [\n provideAs(RatingComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(RatingComponent)\n ]\n})\nexport class RatingComponent extends DatasetAwareFormComponent {\n static initializeProps = registerProps();\n\n public caption: string;\n public showcaptions: boolean;\n public maxvalue;\n\n private _selectedRatingValue;\n public ratingsWidth;\n public ratingItems;\n private _id;\n\n public iconsize: string;\n public iconcolor: string;\n public onFocus: any;\n private touchEnabled:boolean;\n public activeiconclass: string = '';\n public inactiveiconclass: string = '';\n @ViewChild('ratingInput', /* TODO: add static flag */ { read: ElementRef }) ratingEl: ElementRef;\n\n get selectedRatingValue() {\n return this._selectedRatingValue;\n }\n\n set selectedRatingValue(val) {\n this._selectedRatingValue = val;\n this.calculateRatingsWidth();\n }\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n this._id = generateGUId();\n styler(this.nativeElement, this);\n\n // prepare the rating options on dataset ready.\n const datasetSubscription = this.dataset$.subscribe(() => {\n this.prepareRatingDataset();\n });\n this.registerDestroyListener(() => datasetSubscription.unsubscribe());\n\n // listen to changes in datavalue.\n const datavalueSubscription = this.datavalue$.subscribe(() => this.onDatavalueChange(this.datavalue));\n this.registerDestroyListener(() => datavalueSubscription.unsubscribe());\n }\n\n // Change event is registered from the template, Prevent the framework from registering one more event\n protected handleEvent(node: HTMLElement, eventName: string, eventCallback: Function, locals: any) {\n if (eventName !== 'change' && eventName !== 'blur') {\n super.handleEvent(this.ratingEl.nativeElement, eventName, eventCallback, locals);\n }\n }\n\n // This function returns the rating widget dataset containing the index, value and label\n private prepareRatingDataset() {\n if (!this.datasetItems.length) {\n this.ratingItems = [];\n this.caption = '';\n }\n\n let ratingItems = [];\n let data = this.datasetItems;\n const maxvalue = parseInt(this.maxvalue || this.datasetItems.length, 10);\n const maxValue = (maxvalue > MAX_RATING ? MAX_RATING : maxvalue) || DEFAULT_RATING;\n\n /**\n * 1. If datasetItems.length is more than maxValue (i.e. 10 ratings) then just extract maxValue of items from datasetItems.\n * 2. If datasetItems are not available then prepare ratings value depending on maxvalue. eg: 1,2,3 .. upto maxvalue\n * 3. If maxvalue / i value is more than datasetItems length, prepare default rating items for i values more than datasetItems.length\n */\n if (data.length && data.length > maxValue) {\n data = slice(data, 0, maxValue);\n }\n\n for (let i = maxValue; i > 0; i--) {\n if (!data.length) {\n ratingItems.push({key: i, value: i, index: i, label: i});\n } else {\n if (i > data.length) {\n ratingItems.push({key: i, value: i, index: i, label: i});\n } else {\n data = getOrderedDataset(data, 'index:desc');\n ratingItems = ratingItems.concat(data);\n break;\n }\n }\n }\n\n this.ratingItems = ratingItems;\n if (!data.length) { // constructs default datasetItems when there is no dataset binding.\n this.datasetItems = ratingItems;\n }\n this.onDatavalueChange(this.datavalue);\n }\n\n onRatingClick($event, rate) {\n this.modelByKey = rate.key;\n this.selectedRatingValue = rate.index;\n\n // support if the caption is binded in the old projects for backward compatibility\n if (!this.showcaptions) {\n this.caption = rate.label;\n }\n\n this.invokeOnTouched();\n // invoke on datavalue change.\n this.invokeOnChange(this.datavalue, $event || {}, true);\n }\n\n // Update the selected flag on datasetItems and assign the ratingValue.\n /**\n * On datavalue change, update the caption, selectedRatingValue.\n * 1. if datasetItems contain the selected item (check the selected flag on item), find the index of selected item.\n * 2. if not, just check if the datavalue is provided as the index on the item.\n *\n * @param dataVal datavalue\n */\n onDatavalueChange(dataVal) {\n if (!isEmpty(this.datasetItems)) {\n let selectedItem = find(this.datasetItems, {'selected': true});\n\n if (!selectedItem && !isUndefined(dataVal)) {\n selectedItem = find(this.datasetItems, function (item) {\n return toString(item.index) === dataVal;\n });\n if (selectedItem) {\n selectedItem.selected = true;\n }\n }\n\n if (!selectedItem) {\n // reset the model if there is no item found.\n this.modelByKey = undefined;\n this.caption = '';\n }\n\n this.selectedRatingValue = selectedItem ? selectedItem.index : 0;\n if (selectedItem) {\n this.caption = selectedItem.label;\n }\n } else {\n this.selectedRatingValue = 0;\n }\n if (this.readonly) {\n // when dataset is not given but datavalue is provided which is integer\n if (!this.selectedRatingValue && !isNaN(dataVal)) {\n this.selectedRatingValue = (parseFloat(dataVal) <= this.maxvalue) ? dataVal : this.maxvalue;\n }\n this.ratingsWidth = this.calculateRatingsWidth(dataVal);\n }\n }\n\n calculateRatingsWidth(dataVal?: any) {\n const selectedRating = parseFloat(this.selectedRatingValue),\n starWidth = 0.925,\n maxValue = parseInt(this.maxvalue || this.datasetItems.length, 10) || DEFAULT_RATING;\n\n dataVal = dataVal || this.datavalue;\n if (dataVal === undefined || dataVal === '' || dataVal === null) {\n this.caption = '';\n return 0;\n }\n if (selectedRating <= maxValue && selectedRating >= 0) {\n return selectedRating * starWidth + 'em';\n }\n if (selectedRating > maxValue) {\n return maxValue * starWidth + 'em';\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'readonly') {\n if (nv) {\n this.ratingsWidth = this.calculateRatingsWidth();\n }\n } else if (key === 'maxvalue') {\n /** Storing the datavalue in temp variable and assiging back to datavalue\n * after default datalist is prepared to trigger Dataset Aware class select cycle\n * as the datavalue property change is triggering first rather than maxvalue\n * in the rating widget is used inside a datatable\n */\n let tempDataValue = this.datavalue;\n this.prepareRatingDataset();\n // reset all the items.\n this.resetDatasetItems();\n if (!isUndefined(tempDataValue)) {\n this.datavalue = tempDataValue;\n }\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n /* Detect touch enabled devices & update hover styles*/\n onTouchStart($event) {\n this.touchEnabled = true;\n this.onTouchStart = noop;\n }\n onMouseleave() {\n this.caption = this.displayValue as string;\n }\n\n onMouseOver($event, rate) {\n this.caption = rate.label;\n !this.touchEnabled && !$event.target.classList.contains('rating-label-hover') && $event.target.classList.add('rating-label-hover');\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { RatingComponent } from './rating.component';\n\nconst components = [\n RatingComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class RatingModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -55,16 +55,16 @@
55
55
  const ctx_r2 = i0__namespace.ɵɵnextContext();
56
56
  i0__namespace.ɵɵproperty("title", item_r2.label)("wmNavigationControl", item_r2.link)("disableMenuContext", ctx_r2.disableMenuContext || !!item_r2.action)("textContent", item_r2.label);
57
57
  } }
58
- function BreadcrumbComponent_li_0_label_3_Template(rf, ctx) { if (rf & 1) {
59
- i0__namespace.ɵɵelement(0, "label", 5);
58
+ function BreadcrumbComponent_li_0_a_3_Template(rf, ctx) { if (rf & 1) {
59
+ i0__namespace.ɵɵelement(0, "a", 5);
60
60
  } if (rf & 2) {
61
61
  const item_r2 = i0__namespace.ɵɵnextContext().$implicit;
62
- i0__namespace.ɵɵproperty("textContent", item_r2.label);
62
+ i0__namespace.ɵɵproperty("title", item_r2.label)("textContent", item_r2.label);
63
63
  } }
64
64
  function BreadcrumbComponent_li_0_Template(rf, ctx) { if (rf & 1) {
65
65
  i0__namespace.ɵɵelementStart(0, "li", 1);
66
66
  i0__namespace.ɵɵelement(1, "i");
67
- i0__namespace.ɵɵtemplate(2, BreadcrumbComponent_li_0_a_2_Template, 1, 4, "a", 2)(3, BreadcrumbComponent_li_0_label_3_Template, 1, 1, "label", 3);
67
+ i0__namespace.ɵɵtemplate(2, BreadcrumbComponent_li_0_a_2_Template, 1, 4, "a", 2)(3, BreadcrumbComponent_li_0_a_3_Template, 1, 2, "a", 3);
68
68
  i0__namespace.ɵɵelementEnd();
69
69
  } if (rf & 2) {
70
70
  const item_r2 = ctx.$implicit;
@@ -153,7 +153,7 @@
153
153
  static { this.ɵfac = function BreadcrumbComponent_Factory(t) { return new (t || BreadcrumbComponent)(i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i1__namespace.Router), i0__namespace.ɵɵdirectiveInject(i2__namespace.Location), i0__namespace.ɵɵinjectAttribute('beforenavigate.event'), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
154
154
  static { this.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: BreadcrumbComponent, selectors: [["", "wmBreadcrumb", ""]], features: [i0__namespace.ɵɵProvidersFeature([
155
155
  i4.provideAsWidgetRef(BreadcrumbComponent)
156
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 1, vars: 1, consts: [[3, "ngClass", "class", 4, "ngFor", "ngForOf"], [3, "ngClass"], ["href", "javascript:void(0)", 3, "title", "wmNavigationControl", "disableMenuContext", "textContent", "click", 4, "ngIf"], [3, "textContent", 4, "ngIf"], ["href", "javascript:void(0)", 3, "click", "title", "wmNavigationControl", "disableMenuContext", "textContent"], [3, "textContent"]], template: function BreadcrumbComponent_Template(rf, ctx) { if (rf & 1) {
156
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 1, vars: 1, consts: [[3, "ngClass", "class", 4, "ngFor", "ngForOf"], [3, "ngClass"], ["href", "javascript:void(0)", 3, "title", "wmNavigationControl", "disableMenuContext", "textContent", "click", 4, "ngIf"], ["href", "javascript:void(0)", "class", "text-muted", "tabindex", "0", "aria-current", "page", 3, "title", "textContent", 4, "ngIf"], ["href", "javascript:void(0)", 3, "click", "title", "wmNavigationControl", "disableMenuContext", "textContent"], ["href", "javascript:void(0)", "tabindex", "0", "aria-current", "page", 1, "text-muted", 3, "title", "textContent"]], template: function BreadcrumbComponent_Template(rf, ctx) { if (rf & 1) {
157
157
  i0__namespace.ɵɵtemplate(0, BreadcrumbComponent_li_0_Template, 4, 11, "li", 0);
158
158
  } if (rf & 2) {
159
159
  i0__namespace.ɵɵproperty("ngForOf", ctx.nodes);
@@ -163,7 +163,7 @@
163
163
  type: i0.Component,
164
164
  args: [{ selector: '[wmBreadcrumb]', providers: [
165
165
  i4.provideAsWidgetRef(BreadcrumbComponent)
166
- ], template: "<li *ngFor=\"let item of nodes; let last = last; let index = index\" [ngClass]=\"{active: last}\" class=\"{{item.class}}\">\n <i class=\"{{item.icon}}\"></i>\n <a [title]=\"item.label\" href=\"javascript:void(0)\" [wmNavigationControl]=\"item.link\" [disableMenuContext]=\"disableMenuContext || !!item.action\" (click)=\"onItemClick($event, item)\" *ngIf=\"!last\" [textContent]=\"item.label\"></a>\n <label *ngIf=\"last\" [textContent]=\"item.label\"></label>\n</li>\n" }]
166
+ ], template: "<li *ngFor=\"let item of nodes; let last = last; let index = index\" [ngClass]=\"{active: last}\" class=\"{{item.class}}\">\n <i class=\"{{item.icon}}\"></i>\n <a [title]=\"item.label\" href=\"javascript:void(0)\" [wmNavigationControl]=\"item.link\" [disableMenuContext]=\"disableMenuContext || !!item.action\" (click)=\"onItemClick($event, item)\" *ngIf=\"!last\" [textContent]=\"item.label\"></a>\n <a *ngIf=\"last\" [title]=\"item.label\" [textContent]=\"item.label\" href=\"javascript:void(0)\" class=\"text-muted\"\n tabindex=\"0\" aria-current=\"page\"></a>\n</li>\n" }]
167
167
  }], () => [{ type: i0__namespace.Injector }, { type: i1__namespace.Router }, { type: i2__namespace.Location }, { type: undefined, decorators: [{
168
168
  type: i0.Attribute,
169
169
  args: ['beforenavigate.event']
@@ -21,16 +21,16 @@ function BreadcrumbComponent_li_0_a_2_Template(rf, ctx) { if (rf & 1) {
21
21
  const ctx_r2 = i0.ɵɵnextContext();
22
22
  i0.ɵɵproperty("title", item_r2.label)("wmNavigationControl", item_r2.link)("disableMenuContext", ctx_r2.disableMenuContext || !!item_r2.action)("textContent", item_r2.label);
23
23
  } }
24
- function BreadcrumbComponent_li_0_label_3_Template(rf, ctx) { if (rf & 1) {
25
- i0.ɵɵelement(0, "label", 5);
24
+ function BreadcrumbComponent_li_0_a_3_Template(rf, ctx) { if (rf & 1) {
25
+ i0.ɵɵelement(0, "a", 5);
26
26
  } if (rf & 2) {
27
27
  const item_r2 = i0.ɵɵnextContext().$implicit;
28
- i0.ɵɵproperty("textContent", item_r2.label);
28
+ i0.ɵɵproperty("title", item_r2.label)("textContent", item_r2.label);
29
29
  } }
30
30
  function BreadcrumbComponent_li_0_Template(rf, ctx) { if (rf & 1) {
31
31
  i0.ɵɵelementStart(0, "li", 1);
32
32
  i0.ɵɵelement(1, "i");
33
- i0.ɵɵtemplate(2, BreadcrumbComponent_li_0_a_2_Template, 1, 4, "a", 2)(3, BreadcrumbComponent_li_0_label_3_Template, 1, 1, "label", 3);
33
+ i0.ɵɵtemplate(2, BreadcrumbComponent_li_0_a_2_Template, 1, 4, "a", 2)(3, BreadcrumbComponent_li_0_a_3_Template, 1, 2, "a", 3);
34
34
  i0.ɵɵelementEnd();
35
35
  } if (rf & 2) {
36
36
  const item_r2 = ctx.$implicit;
@@ -119,7 +119,7 @@ export class BreadcrumbComponent extends DatasetAwareNavComponent {
119
119
  static { this.ɵfac = function BreadcrumbComponent_Factory(t) { return new (t || BreadcrumbComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.Location), i0.ɵɵinjectAttribute('beforenavigate.event'), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
120
120
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BreadcrumbComponent, selectors: [["", "wmBreadcrumb", ""]], features: [i0.ɵɵProvidersFeature([
121
121
  provideAsWidgetRef(BreadcrumbComponent)
122
- ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 1, vars: 1, consts: [[3, "ngClass", "class", 4, "ngFor", "ngForOf"], [3, "ngClass"], ["href", "javascript:void(0)", 3, "title", "wmNavigationControl", "disableMenuContext", "textContent", "click", 4, "ngIf"], [3, "textContent", 4, "ngIf"], ["href", "javascript:void(0)", 3, "click", "title", "wmNavigationControl", "disableMenuContext", "textContent"], [3, "textContent"]], template: function BreadcrumbComponent_Template(rf, ctx) { if (rf & 1) {
122
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 1, vars: 1, consts: [[3, "ngClass", "class", 4, "ngFor", "ngForOf"], [3, "ngClass"], ["href", "javascript:void(0)", 3, "title", "wmNavigationControl", "disableMenuContext", "textContent", "click", 4, "ngIf"], ["href", "javascript:void(0)", "class", "text-muted", "tabindex", "0", "aria-current", "page", 3, "title", "textContent", 4, "ngIf"], ["href", "javascript:void(0)", 3, "click", "title", "wmNavigationControl", "disableMenuContext", "textContent"], ["href", "javascript:void(0)", "tabindex", "0", "aria-current", "page", 1, "text-muted", 3, "title", "textContent"]], template: function BreadcrumbComponent_Template(rf, ctx) { if (rf & 1) {
123
123
  i0.ɵɵtemplate(0, BreadcrumbComponent_li_0_Template, 4, 11, "li", 0);
124
124
  } if (rf & 2) {
125
125
  i0.ɵɵproperty("ngForOf", ctx.nodes);
@@ -129,7 +129,7 @@ export class BreadcrumbComponent extends DatasetAwareNavComponent {
129
129
  type: Component,
130
130
  args: [{ selector: '[wmBreadcrumb]', providers: [
131
131
  provideAsWidgetRef(BreadcrumbComponent)
132
- ], template: "<li *ngFor=\"let item of nodes; let last = last; let index = index\" [ngClass]=\"{active: last}\" class=\"{{item.class}}\">\n <i class=\"{{item.icon}}\"></i>\n <a [title]=\"item.label\" href=\"javascript:void(0)\" [wmNavigationControl]=\"item.link\" [disableMenuContext]=\"disableMenuContext || !!item.action\" (click)=\"onItemClick($event, item)\" *ngIf=\"!last\" [textContent]=\"item.label\"></a>\n <label *ngIf=\"last\" [textContent]=\"item.label\"></label>\n</li>\n" }]
132
+ ], template: "<li *ngFor=\"let item of nodes; let last = last; let index = index\" [ngClass]=\"{active: last}\" class=\"{{item.class}}\">\n <i class=\"{{item.icon}}\"></i>\n <a [title]=\"item.label\" href=\"javascript:void(0)\" [wmNavigationControl]=\"item.link\" [disableMenuContext]=\"disableMenuContext || !!item.action\" (click)=\"onItemClick($event, item)\" *ngIf=\"!last\" [textContent]=\"item.label\"></a>\n <a *ngIf=\"last\" [title]=\"item.label\" [textContent]=\"item.label\" href=\"javascript:void(0)\" class=\"text-muted\"\n tabindex=\"0\" aria-current=\"page\"></a>\n</li>\n" }]
133
133
  }], () => [{ type: i0.Injector }, { type: i1.Router }, { type: i2.Location }, { type: undefined, decorators: [{
134
134
  type: Attribute,
135
135
  args: ['beforenavigate.event']
@@ -140,4 +140,4 @@ export class BreadcrumbComponent extends DatasetAwareNavComponent {
140
140
  type: Optional
141
141
  }] }], null); })();
142
142
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BreadcrumbComponent, { className: "BreadcrumbComponent", filePath: "breadcrumb.component.ts", lineNumber: 20 }); })();
143
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvbmF2aWdhdGlvbi9icmVhZGNydW1iL3NyYy9icmVhZGNydW1iLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL2JyZWFkY3J1bWIvc3JjL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQVcsTUFBTSxFQUFHLE1BQU0scUJBQXFCLENBQUM7QUFFeEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7O0lDTC9DLDRCQUE0TjtJQUE3RSxpT0FBUyxtQ0FBeUIsS0FBQztJQUEwQyxpQkFBSTs7OztJQUEvQixBQUE3RyxBQUFsQyxBQUEvQyxxQ0FBb0IscUNBQTRELHFFQUEyRCw4QkFBNkU7OztJQUMzTiwyQkFBdUQ7OztJQUFuQywyQ0FBMEI7OztJQUhsRCw2QkFBcUg7SUFDakgsb0JBQTZCO0lBRTdCLEFBREEscUVBQTROLGdFQUM3SztJQUNuRCxpQkFBSzs7OztJQUp5Riw0QkFBc0I7SUFBakQsNkRBQTBCO0lBQ3RGLGNBQXFCO0lBQXJCLDJCQUFxQjtJQUM0SixjQUFXO0lBQVgsK0JBQVc7SUFDdkwsY0FBVTtJQUFWLDhCQUFVOztBRE10QixNQUFNLFdBQVcsR0FBRywyQkFBMkIsQ0FBQztBQUNoRCxNQUFNLGFBQWEsR0FBRyxFQUFDLFVBQVUsRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBQyxDQUFDO0FBUzVFLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx3QkFBd0I7YUFDdEQsb0JBQWUsR0FBRyxhQUFhLEVBQUUsQUFBbEIsQ0FBbUI7SUFHekMsWUFDSSxHQUFhLEVBQ0wsS0FBYSxFQUNiLFFBQWtCLEVBQ1MsZ0JBQXdCLEVBQ25CLGVBQW9CO1FBRTVELEtBQUssQ0FBQyxHQUFHLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBTG5DLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBSzFCLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLGdCQUFnQixDQUFDO0lBQ2pELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxPQUFPLENBQUMsSUFBeUMsRUFBRSxRQUF3QixFQUFFLElBQUksR0FBRyxFQUFFO1FBQzFGLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFjLEVBQUUsRUFBRTtZQUNoQyxnQ0FBZ0M7WUFDaEMsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUM7WUFDRCxnRUFBZ0U7WUFDaEUsSUFBSSxLQUFLLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLGdFQUFnRTtnQkFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakIsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQztZQUNELGtEQUFrRDtZQUNsRCxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ3pDLGtEQUFrRDtnQkFDbEQsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDcEIsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNmLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDSCxtQkFBbUI7UUFDbkIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLGVBQWU7UUFDbkIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELHFFQUFxRTtJQUMzRCxVQUFVO1FBQ2hCLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuQixnREFBZ0Q7UUFDaEQsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0YsQ0FBQztJQUVMLENBQUM7SUFFRCxXQUFXLENBQUUsTUFBYSxFQUFFLEtBQVU7UUFDbEMsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sTUFBTSxHQUFHLEVBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFDLENBQUM7UUFDNUMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLENBQUMsS0FBSyxLQUFLLENBQUMsQ0FBQztRQUNwRixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDO1FBQ2hDLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUM7UUFFMUIsSUFBSSxRQUFRLElBQUksV0FBVyxFQUFFLENBQUM7WUFDMUIsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLElBQUksVUFBVSxLQUFLLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZFLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDM0MsUUFBUSxHQUFHLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUMxQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFDLENBQUMsQ0FBQztZQUNwRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osUUFBUSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNuQyxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7b0ZBaEZRLG1CQUFtQiw4SEFRYixzQkFBc0Isd0JBQ3pCLGtCQUFrQjtvRUFUckIsbUJBQW1CLDBFQUpqQjtnQkFDUCxrQkFBa0IsQ0FBQyxtQkFBbUIsQ0FBQzthQUMxQztZQ2pCTCxtRUFBcUg7O1lBQWhHLG1DQUFVOzs7aUZEbUJsQixtQkFBbUI7Y0FQL0IsU0FBUzsyQkFDSSxnQkFBZ0IsYUFFZjtvQkFDUCxrQkFBa0IscUJBQXFCO2lCQUMxQzs7c0JBVUksU0FBUzt1QkFBQyxzQkFBc0I7O3NCQUNoQyxNQUFNO3VCQUFDLGtCQUFrQjs7c0JBQUcsUUFBUTs7a0ZBVGhDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXR0cmlidXRlLCBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IGdldFJvdXRlTmFtZUZyb21MaW5rLCBnZXRVcmxQYXJhbXMsIG9wZW5MaW5rIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgQVBQTFlfU1RZTEVTX1RZUEUsIHByb3ZpZGVBc1dpZGdldFJlZiwgRGF0YXNldEF3YXJlTmF2Q29tcG9uZW50LCBOYXZOb2RlLCBzdHlsZXIgIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL2JyZWFkY3J1bWIucHJvcHMnO1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdicmVhZGNydW1iIGFwcC1icmVhZGNydW1iJztcbmNvbnN0IFdJREdFVF9DT05GSUcgPSB7d2lkZ2V0VHlwZTogJ3dtLWJyZWFkY3J1bWInLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTfTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbd21CcmVhZGNydW1iXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoQnJlYWRjcnVtYkNvbXBvbmVudClcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJDb21wb25lbnQgZXh0ZW5kcyBEYXRhc2V0QXdhcmVOYXZDb21wb25lbnQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG4gICAgcHJpdmF0ZSBkaXNhYmxlTWVudUNvbnRleHQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICAgICAgQEF0dHJpYnV0ZSgnYmVmb3JlbmF2aWdhdGUuZXZlbnQnKSBiZWZvcmVOYXZpZ2F0ZUNCOiBzdHJpbmcsXG4gICAgICAgIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueVxuICAgICkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLkNPTlRBSU5FUik7XG4gICAgICAgIHRoaXMuZGlzYWJsZU1lbnVDb250ZXh0ID0gISFiZWZvcmVOYXZpZ2F0ZUNCO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGZpcnN0IHBhdGggZm91bmQgYmFzZWQgb24gdGhlIGtleSBwcm92aWRlZCBpbnNpZGUgaW5mbyBPYmplY3QuXG4gICAgICogQHBhcmFtIGluZm8gLSBJbmZvIG9iamVjdCB3aGljaCBoYXMgcHJvcGVydGllcyBrZXkoQWN0aXZlIFBhZ2UgTmFtZSkgYW5kIGlzUGF0aEZvdW5kW2Jvb2xlYW5dIGlzIHNldCB0cnVlIGlmIHBhdGggZm91bmQuXG4gICAgICogQHBhcmFtIGNoaWxkcmVuIC0gYSBjaGlsZCBPYmplY3QgZm9ybSBjaGlsZHJlbiBBcnJheS5cbiAgICAgKiBAcGFyYW0gcGF0aCAtIGZpbmFsIHBhdGguXG4gICAgICogQHJldHVybnMgeyp8QXJyYXl9OiByZXR1cm5zIGFycmF5IG9mIG9iamVjdHMgd2hpY2ggcmVwcmVzZW50cyB0aGUgZmluYWwgcGF0aC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFBhdGgoaW5mbzoge2tleTogc3RyaW5nLCBpc1BhdGhGb3VuZDogYm9vbGVhbn0sIGNoaWxkcmVuOiBBcnJheTxOYXZOb2RlPiwgcGF0aCA9IFtdKTogQXJyYXk8TmF2Tm9kZT4ge1xuICAgICAgICBjaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogTmF2Tm9kZSkgPT4ge1xuICAgICAgICAgICAgLy8gcmV0dXJuIGlmIHBhdGggYWxyZWFkeSBmb3VuZC5cbiAgICAgICAgICAgIGlmIChpbmZvLmlzUGF0aEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpZiBrZXkgaXMgbWF0Y2hlZCBzZXQgcGF0aCBmb3VuZCB0byB0cnVlIGFuZCByZXR1cm4gdGhlIHBhdGguXG4gICAgICAgICAgICBpZiAoY2hpbGQuaWQgPT09IGluZm8ua2V5KSB7XG4gICAgICAgICAgICAgICAgaW5mby5pc1BhdGhGb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgLy8gb25seSBwdXNoIHRoZSBjaGlsZCBvYmplY3QgYnkgb21pdGluZyB0aGUgY2hpbGRyZW4gd2l0aGluIGl0LlxuICAgICAgICAgICAgICAgIHBhdGgucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpZiB0aGUgbm9kZSBoYXMgY2hpbGRyZW4gbWFrZSBhIHJlY3Vyc2l2ZSBjYWxsLlxuICAgICAgICAgICAgaWYgKGNoaWxkLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHBhdGgucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRQYXRoKGluZm8sIGNoaWxkLmNoaWxkcmVuLCBwYXRoKTtcbiAgICAgICAgICAgICAgICAvLyBpZiBwYXRoIGlzIG5vdCBmb3VuZCBpbiB0aGF0IG5vZGUgcG9wIHRoZSBub2RlLlxuICAgICAgICAgICAgICAgIGlmICghaW5mby5pc1BhdGhGb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICBwYXRoLnBvcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHJldHVybiB0aGUgcGF0aC5cbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDdXJyZW50Um91dGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYXRpb24ucGF0aCgpLnN1YnN0cigxKS5zcGxpdCgnPycpWzBdO1xuICAgIH1cblxuICAgIC8vIG92ZXIgcmlkZXMgcmVzZXROb2RlIGZ1bmN0aW9uLCBnZW5lcmF0aW5nIHBhdGggZm9yIHRoZSBicmVhZGNydW1iLlxuICAgIHByb3RlY3RlZCByZXNldE5vZGVzKCkge1xuICAgICAgICBzdXBlci5yZXNldE5vZGVzKCk7XG4gICAgICAgIC8vIGdldCBwYXRoIG9ubHkgaWYgdGhlIHdpZGdldCBoYXZlIGlkIHByb3BlcnR5LlxuICAgICAgICBpZiAodGhpcy5pdGVtaWQgfHwgdGhpcy5iaW5kaXRlbWlkKSB7XG4gICAgICAgICAgICB0aGlzLm5vZGVzID0gdGhpcy5nZXRQYXRoKHtrZXk6IHRoaXMuZ2V0Q3VycmVudFJvdXRlKCksIGlzUGF0aEZvdW5kOiBmYWxzZX0sIHRoaXMubm9kZXMpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBvbkl0ZW1DbGljayAoJGV2ZW50OiBFdmVudCwgJGl0ZW06IGFueSkge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgbG9jYWxzID0geyRpdGVtOiAkaXRlbS52YWx1ZSwgJGV2ZW50fTtcbiAgICAgICAgY29uc3QgY2FuTmF2aWdhdGUgPSAhKHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnYmVmb3JlbmF2aWdhdGUnLCBsb2NhbHMpID09PSBmYWxzZSk7XG4gICAgICAgIGNvbnN0IGxpbmtUYXJnZXQgPSAkaXRlbS50YXJnZXQ7XG4gICAgICAgIGxldCBpdGVtTGluayA9ICRpdGVtLmxpbms7XG5cbiAgICAgICAgaWYgKGl0ZW1MaW5rICYmIGNhbk5hdmlnYXRlKSB7XG4gICAgICAgICAgICBpZiAoaXRlbUxpbmsuc3RhcnRzV2l0aCgnIy8nKSAmJiAoIWxpbmtUYXJnZXQgfHwgbGlua1RhcmdldCA9PT0gJ19zZWxmJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IGdldFVybFBhcmFtcyhpdGVtTGluayk7XG4gICAgICAgICAgICAgICAgaXRlbUxpbmsgPSBnZXRSb3V0ZU5hbWVGcm9tTGluayhpdGVtTGluayk7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbaXRlbUxpbmtdLCB7IHF1ZXJ5UGFyYW1zfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG9wZW5MaW5rKGl0ZW1MaW5rLCBsaW5rVGFyZ2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vZGVzOyBsZXQgbGFzdCA9IGxhc3Q7IGxldCBpbmRleCA9IGluZGV4XCIgW25nQ2xhc3NdPVwie2FjdGl2ZTogbGFzdH1cIiBjbGFzcz1cInt7aXRlbS5jbGFzc319XCI+XG4gICAgPGkgY2xhc3M9XCJ7e2l0ZW0uaWNvbn19XCI+PC9pPlxuICAgIDxhIFt0aXRsZV09XCJpdGVtLmxhYmVsXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIFt3bU5hdmlnYXRpb25Db250cm9sXT1cIml0ZW0ubGlua1wiIFtkaXNhYmxlTWVudUNvbnRleHRdPVwiZGlzYWJsZU1lbnVDb250ZXh0IHx8ICEhaXRlbS5hY3Rpb25cIiAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiICpuZ0lmPVwiIWxhc3RcIiBbdGV4dENvbnRlbnRdPVwiaXRlbS5sYWJlbFwiPjwvYT5cbiAgICA8bGFiZWwgKm5nSWY9XCJsYXN0XCIgW3RleHRDb250ZW50XT1cIml0ZW0ubGFiZWxcIj48L2xhYmVsPlxuPC9saT5cbiJdfQ==
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWRjcnVtYi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvbmF2aWdhdGlvbi9icmVhZGNydW1iL3NyYy9icmVhZGNydW1iLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvd2lkZ2V0cy9uYXZpZ2F0aW9uL2JyZWFkY3J1bWIvc3JjL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQVcsTUFBTSxFQUFHLE1BQU0scUJBQXFCLENBQUM7QUFFeEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7O0lDTC9DLDRCQUE0TjtJQUE3RSxpT0FBUyxtQ0FBeUIsS0FBQztJQUEwQyxpQkFBSTs7OztJQUEvQixBQUE3RyxBQUFsQyxBQUEvQyxxQ0FBb0IscUNBQTRELHFFQUEyRCw4QkFBNkU7OztJQUMzTix1QkFDd0M7OztJQURILEFBQXJCLHFDQUFvQiw4QkFBMkI7OztJQUhuRSw2QkFBcUg7SUFDakgsb0JBQTZCO0lBRTdCLEFBREEscUVBQTROLHdEQUV4TDtJQUN4QyxpQkFBSzs7OztJQUx5Riw0QkFBc0I7SUFBakQsNkRBQTBCO0lBQ3RGLGNBQXFC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LCBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IGdldFJvdXRlTmFtZUZyb21MaW5rLCBnZXRVcmxQYXJhbXMsIG9wZW5MaW5rIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgQVBQTFlfU1RZTEVTX1RZUEUsIHByb3ZpZGVBc1dpZGdldFJlZiwgRGF0YXNldEF3YXJlTmF2Q29tcG9uZW50LCBOYXZOb2RlLCBzdHlsZXIgIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5cbmltcG9ydCB7IHJlZ2lzdGVyUHJvcHMgfSBmcm9tICcuL2JyZWFkY3J1bWIucHJvcHMnO1xuXG5jb25zdCBERUZBVUxUX0NMUyA9ICdicmVhZGNydW1iIGFwcC1icmVhZGNydW1iJztcbmNvbnN0IFdJREdFVF9DT05GSUcgPSB7d2lkZ2V0VHlwZTogJ3dtLWJyZWFkY3J1bWInLCBob3N0Q2xhc3M6IERFRkFVTFRfQ0xTfTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdbd21CcmVhZGNydW1iXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2JyZWFkY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXNXaWRnZXRSZWYoQnJlYWRjcnVtYkNvbXBvbmVudClcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEJyZWFkY3J1bWJDb21wb25lbnQgZXh0ZW5kcyBEYXRhc2V0QXdhcmVOYXZDb21wb25lbnQge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG4gICAgcHJpdmF0ZSBkaXNhYmxlTWVudUNvbnRleHQ6IGJvb2xlYW47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgaW5qOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZTogUm91dGVyLFxuICAgICAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcbiAgICAgICAgQEF0dHJpYnV0ZSgnYmVmb3JlbmF2aWdhdGUuZXZlbnQnKSBiZWZvcmVOYXZpZ2F0ZUNCOiBzdHJpbmcsXG4gICAgICAgIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueVxuICAgICkge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLkNPTlRBSU5FUik7XG4gICAgICAgIHRoaXMuZGlzYWJsZU1lbnVDb250ZXh0ID0gISFiZWZvcmVOYXZpZ2F0ZUNCO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGZpcnN0IHBhdGggZm91bmQgYmFzZWQgb24gdGhlIGtleSBwcm92aWRlZCBpbnNpZGUgaW5mbyBPYmplY3QuXG4gICAgICogQHBhcmFtIGluZm8gLSBJbmZvIG9iamVjdCB3aGljaCBoYXMgcHJvcGVydGllcyBrZXkoQWN0aXZlIFBhZ2UgTmFtZSkgYW5kIGlzUGF0aEZvdW5kW2Jvb2xlYW5dIGlzIHNldCB0cnVlIGlmIHBhdGggZm91bmQuXG4gICAgICogQHBhcmFtIGNoaWxkcmVuIC0gYSBjaGlsZCBPYmplY3QgZm9ybSBjaGlsZHJlbiBBcnJheS5cbiAgICAgKiBAcGFyYW0gcGF0aCAtIGZpbmFsIHBhdGguXG4gICAgICogQHJldHVybnMgeyp8QXJyYXl9OiByZXR1cm5zIGFycmF5IG9mIG9iamVjdHMgd2hpY2ggcmVwcmVzZW50cyB0aGUgZmluYWwgcGF0aC5cbiAgICAgKi9cbiAgICBwcml2YXRlIGdldFBhdGgoaW5mbzoge2tleTogc3RyaW5nLCBpc1BhdGhGb3VuZDogYm9vbGVhbn0sIGNoaWxkcmVuOiBBcnJheTxOYXZOb2RlPiwgcGF0aCA9IFtdKTogQXJyYXk8TmF2Tm9kZT4ge1xuICAgICAgICBjaGlsZHJlbi5mb3JFYWNoKChjaGlsZDogTmF2Tm9kZSkgPT4ge1xuICAgICAgICAgICAgLy8gcmV0dXJuIGlmIHBhdGggYWxyZWFkeSBmb3VuZC5cbiAgICAgICAgICAgIGlmIChpbmZvLmlzUGF0aEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpZiBrZXkgaXMgbWF0Y2hlZCBzZXQgcGF0aCBmb3VuZCB0byB0cnVlIGFuZCByZXR1cm4gdGhlIHBhdGguXG4gICAgICAgICAgICBpZiAoY2hpbGQuaWQgPT09IGluZm8ua2V5KSB7XG4gICAgICAgICAgICAgICAgaW5mby5pc1BhdGhGb3VuZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgLy8gb25seSBwdXNoIHRoZSBjaGlsZCBvYmplY3QgYnkgb21pdGluZyB0aGUgY2hpbGRyZW4gd2l0aGluIGl0LlxuICAgICAgICAgICAgICAgIHBhdGgucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBpZiB0aGUgbm9kZSBoYXMgY2hpbGRyZW4gbWFrZSBhIHJlY3Vyc2l2ZSBjYWxsLlxuICAgICAgICAgICAgaWYgKGNoaWxkLmNoaWxkcmVuLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHBhdGgucHVzaChjaGlsZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRQYXRoKGluZm8sIGNoaWxkLmNoaWxkcmVuLCBwYXRoKTtcbiAgICAgICAgICAgICAgICAvLyBpZiBwYXRoIGlzIG5vdCBmb3VuZCBpbiB0aGF0IG5vZGUgcG9wIHRoZSBub2RlLlxuICAgICAgICAgICAgICAgIGlmICghaW5mby5pc1BhdGhGb3VuZCkge1xuICAgICAgICAgICAgICAgICAgICBwYXRoLnBvcCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8vIHJldHVybiB0aGUgcGF0aC5cbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDdXJyZW50Um91dGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYXRpb24ucGF0aCgpLnN1YnN0cigxKS5zcGxpdCgnPycpWzBdO1xuICAgIH1cblxuICAgIC8vIG92ZXIgcmlkZXMgcmVzZXROb2RlIGZ1bmN0aW9uLCBnZW5lcmF0aW5nIHBhdGggZm9yIHRoZSBicmVhZGNydW1iLlxuICAgIHByb3RlY3RlZCByZXNldE5vZGVzKCkge1xuICAgICAgICBzdXBlci5yZXNldE5vZGVzKCk7XG4gICAgICAgIC8vIGdldCBwYXRoIG9ubHkgaWYgdGhlIHdpZGdldCBoYXZlIGlkIHByb3BlcnR5LlxuICAgICAgICBpZiAodGhpcy5pdGVtaWQgfHwgdGhpcy5iaW5kaXRlbWlkKSB7XG4gICAgICAgICAgICB0aGlzLm5vZGVzID0gdGhpcy5nZXRQYXRoKHtrZXk6IHRoaXMuZ2V0Q3VycmVudFJvdXRlKCksIGlzUGF0aEZvdW5kOiBmYWxzZX0sIHRoaXMubm9kZXMpO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBvbkl0ZW1DbGljayAoJGV2ZW50OiBFdmVudCwgJGl0ZW06IGFueSkge1xuICAgICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgY29uc3QgbG9jYWxzID0geyRpdGVtOiAkaXRlbS52YWx1ZSwgJGV2ZW50fTtcbiAgICAgICAgY29uc3QgY2FuTmF2aWdhdGUgPSAhKHRoaXMuaW52b2tlRXZlbnRDYWxsYmFjaygnYmVmb3JlbmF2aWdhdGUnLCBsb2NhbHMpID09PSBmYWxzZSk7XG4gICAgICAgIGNvbnN0IGxpbmtUYXJnZXQgPSAkaXRlbS50YXJnZXQ7XG4gICAgICAgIGxldCBpdGVtTGluayA9ICRpdGVtLmxpbms7XG5cbiAgICAgICAgaWYgKGl0ZW1MaW5rICYmIGNhbk5hdmlnYXRlKSB7XG4gICAgICAgICAgICBpZiAoaXRlbUxpbmsuc3RhcnRzV2l0aCgnIy8nKSAmJiAoIWxpbmtUYXJnZXQgfHwgbGlua1RhcmdldCA9PT0gJ19zZWxmJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtcyA9IGdldFVybFBhcmFtcyhpdGVtTGluayk7XG4gICAgICAgICAgICAgICAgaXRlbUxpbmsgPSBnZXRSb3V0ZU5hbWVGcm9tTGluayhpdGVtTGluayk7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5uYXZpZ2F0ZShbaXRlbUxpbmtdLCB7IHF1ZXJ5UGFyYW1zfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG9wZW5MaW5rKGl0ZW1MaW5rLCBsaW5rVGFyZ2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxufVxuIiwiPGxpICpuZ0Zvcj1cImxldCBpdGVtIG9mIG5vZGVzOyBsZXQgbGFzdCA9IGxhc3Q7IGxldCBpbmRleCA9IGluZGV4XCIgW25nQ2xhc3NdPVwie2FjdGl2ZTogbGFzdH1cIiBjbGFzcz1cInt7aXRlbS5jbGFzc319XCI+XG4gICAgPGkgY2xhc3M9XCJ7e2l0ZW0uaWNvbn19XCI+PC9pPlxuICAgIDxhIFt0aXRsZV09XCJpdGVtLmxhYmVsXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIFt3bU5hdmlnYXRpb25Db250cm9sXT1cIml0ZW0ubGlua1wiIFtkaXNhYmxlTWVudUNvbnRleHRdPVwiZGlzYWJsZU1lbnVDb250ZXh0IHx8ICEhaXRlbS5hY3Rpb25cIiAoY2xpY2spPVwib25JdGVtQ2xpY2soJGV2ZW50LCBpdGVtKVwiICpuZ0lmPVwiIWxhc3RcIiBbdGV4dENvbnRlbnRdPVwiaXRlbS5sYWJlbFwiPjwvYT5cbiAgICA8YSAqbmdJZj1cImxhc3RcIiBbdGl0bGVdPVwiaXRlbS5sYWJlbFwiIFt0ZXh0Q29udGVudF09XCJpdGVtLmxhYmVsXCIgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiIGNsYXNzPVwidGV4dC1tdXRlZFwiXG4gICAgICAgdGFiaW5kZXg9XCIwXCIgYXJpYS1jdXJyZW50PVwicGFnZVwiPjwvYT5cbjwvbGk+XG4iXX0=
@@ -37,16 +37,16 @@ function BreadcrumbComponent_li_0_a_2_Template(rf, ctx) { if (rf & 1) {
37
37
  const ctx_r2 = i0.ɵɵnextContext();
38
38
  i0.ɵɵproperty("title", item_r2.label)("wmNavigationControl", item_r2.link)("disableMenuContext", ctx_r2.disableMenuContext || !!item_r2.action)("textContent", item_r2.label);
39
39
  } }
40
- function BreadcrumbComponent_li_0_label_3_Template(rf, ctx) { if (rf & 1) {
41
- i0.ɵɵelement(0, "label", 5);
40
+ function BreadcrumbComponent_li_0_a_3_Template(rf, ctx) { if (rf & 1) {
41
+ i0.ɵɵelement(0, "a", 5);
42
42
  } if (rf & 2) {
43
43
  const item_r2 = i0.ɵɵnextContext().$implicit;
44
- i0.ɵɵproperty("textContent", item_r2.label);
44
+ i0.ɵɵproperty("title", item_r2.label)("textContent", item_r2.label);
45
45
  } }
46
46
  function BreadcrumbComponent_li_0_Template(rf, ctx) { if (rf & 1) {
47
47
  i0.ɵɵelementStart(0, "li", 1);
48
48
  i0.ɵɵelement(1, "i");
49
- i0.ɵɵtemplate(2, BreadcrumbComponent_li_0_a_2_Template, 1, 4, "a", 2)(3, BreadcrumbComponent_li_0_label_3_Template, 1, 1, "label", 3);
49
+ i0.ɵɵtemplate(2, BreadcrumbComponent_li_0_a_2_Template, 1, 4, "a", 2)(3, BreadcrumbComponent_li_0_a_3_Template, 1, 2, "a", 3);
50
50
  i0.ɵɵelementEnd();
51
51
  } if (rf & 2) {
52
52
  const item_r2 = ctx.$implicit;
@@ -135,7 +135,7 @@ class BreadcrumbComponent extends DatasetAwareNavComponent {
135
135
  static { this.ɵfac = function BreadcrumbComponent_Factory(t) { return new (t || BreadcrumbComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.Location), i0.ɵɵinjectAttribute('beforenavigate.event'), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
136
136
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BreadcrumbComponent, selectors: [["", "wmBreadcrumb", ""]], features: [i0.ɵɵProvidersFeature([
137
137
  provideAsWidgetRef(BreadcrumbComponent)
138
- ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 1, vars: 1, consts: [[3, "ngClass", "class", 4, "ngFor", "ngForOf"], [3, "ngClass"], ["href", "javascript:void(0)", 3, "title", "wmNavigationControl", "disableMenuContext", "textContent", "click", 4, "ngIf"], [3, "textContent", 4, "ngIf"], ["href", "javascript:void(0)", 3, "click", "title", "wmNavigationControl", "disableMenuContext", "textContent"], [3, "textContent"]], template: function BreadcrumbComponent_Template(rf, ctx) { if (rf & 1) {
138
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 1, vars: 1, consts: [[3, "ngClass", "class", 4, "ngFor", "ngForOf"], [3, "ngClass"], ["href", "javascript:void(0)", 3, "title", "wmNavigationControl", "disableMenuContext", "textContent", "click", 4, "ngIf"], ["href", "javascript:void(0)", "class", "text-muted", "tabindex", "0", "aria-current", "page", 3, "title", "textContent", 4, "ngIf"], ["href", "javascript:void(0)", 3, "click", "title", "wmNavigationControl", "disableMenuContext", "textContent"], ["href", "javascript:void(0)", "tabindex", "0", "aria-current", "page", 1, "text-muted", 3, "title", "textContent"]], template: function BreadcrumbComponent_Template(rf, ctx) { if (rf & 1) {
139
139
  i0.ɵɵtemplate(0, BreadcrumbComponent_li_0_Template, 4, 11, "li", 0);
140
140
  } if (rf & 2) {
141
141
  i0.ɵɵproperty("ngForOf", ctx.nodes);
@@ -145,7 +145,7 @@ class BreadcrumbComponent extends DatasetAwareNavComponent {
145
145
  type: Component,
146
146
  args: [{ selector: '[wmBreadcrumb]', providers: [
147
147
  provideAsWidgetRef(BreadcrumbComponent)
148
- ], template: "<li *ngFor=\"let item of nodes; let last = last; let index = index\" [ngClass]=\"{active: last}\" class=\"{{item.class}}\">\n <i class=\"{{item.icon}}\"></i>\n <a [title]=\"item.label\" href=\"javascript:void(0)\" [wmNavigationControl]=\"item.link\" [disableMenuContext]=\"disableMenuContext || !!item.action\" (click)=\"onItemClick($event, item)\" *ngIf=\"!last\" [textContent]=\"item.label\"></a>\n <label *ngIf=\"last\" [textContent]=\"item.label\"></label>\n</li>\n" }]
148
+ ], template: "<li *ngFor=\"let item of nodes; let last = last; let index = index\" [ngClass]=\"{active: last}\" class=\"{{item.class}}\">\n <i class=\"{{item.icon}}\"></i>\n <a [title]=\"item.label\" href=\"javascript:void(0)\" [wmNavigationControl]=\"item.link\" [disableMenuContext]=\"disableMenuContext || !!item.action\" (click)=\"onItemClick($event, item)\" *ngIf=\"!last\" [textContent]=\"item.label\"></a>\n <a *ngIf=\"last\" [title]=\"item.label\" [textContent]=\"item.label\" href=\"javascript:void(0)\" class=\"text-muted\"\n tabindex=\"0\" aria-current=\"page\"></a>\n</li>\n" }]
149
149
  }], () => [{ type: i0.Injector }, { type: i1.Router }, { type: i2.Location }, { type: undefined, decorators: [{
150
150
  type: Attribute,
151
151
  args: ['beforenavigate.event']
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/navigation/breadcrumb/src/breadcrumb.props.ts","../../../../../projects/components/widgets/navigation/breadcrumb/src/breadcrumb.component.html","../../../../../projects/components/widgets/navigation/breadcrumb/src/breadcrumb.component.ts","../../../../../projects/components/widgets/navigation/breadcrumb/src/breadcrumb.module.ts","../../../../../projects/components/widgets/navigation/breadcrumb/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-breadcrumb',\n new Map(\n [\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['itemlabel', PROP_STRING],\n ['itemid', PROP_STRING],\n ['itemlink', PROP_STRING],\n ['itemicon', PROP_STRING],\n ['itemchildren', PROP_STRING],\n ['itemclass', PROP_STRING],\n ['itemtarget', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","<li *ngFor=\"let item of nodes; let last = last; let index = index\" [ngClass]=\"{active: last}\" class=\"{{item.class}}\">\n <i class=\"{{item.icon}}\"></i>\n <a [title]=\"item.label\" href=\"javascript:void(0)\" [wmNavigationControl]=\"item.link\" [disableMenuContext]=\"disableMenuContext || !!item.action\" (click)=\"onItemClick($event, item)\" *ngIf=\"!last\" [textContent]=\"item.label\"></a>\n <label *ngIf=\"last\" [textContent]=\"item.label\"></label>\n</li>\n","import {Attribute, Component, Inject, Injector, Optional} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Location } from '@angular/common';\n\nimport { getRouteNameFromLink, getUrlParams, openLink } from '@wm/core';\nimport { APPLY_STYLES_TYPE, provideAsWidgetRef, DatasetAwareNavComponent, NavNode, styler } from '@wm/components/base';\n\nimport { registerProps } from './breadcrumb.props';\n\nconst DEFAULT_CLS = 'breadcrumb app-breadcrumb';\nconst WIDGET_CONFIG = {widgetType: 'wm-breadcrumb', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: '[wmBreadcrumb]',\n templateUrl: './breadcrumb.component.html',\n providers: [\n provideAsWidgetRef(BreadcrumbComponent)\n ]\n})\nexport class BreadcrumbComponent extends DatasetAwareNavComponent {\n static initializeProps = registerProps();\n private disableMenuContext: boolean;\n\n constructor(\n inj: Injector,\n private route: Router,\n private location: Location,\n @Attribute('beforenavigate.event') beforeNavigateCB: string,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n this.disableMenuContext = !!beforeNavigateCB;\n }\n\n /**\n * Gets the first path found based on the key provided inside info Object.\n * @param info - Info object which has properties key(Active Page Name) and isPathFound[boolean] is set true if path found.\n * @param children - a child Object form children Array.\n * @param path - final path.\n * @returns {*|Array}: returns array of objects which represents the final path.\n */\n private getPath(info: {key: string, isPathFound: boolean}, children: Array<NavNode>, path = []): Array<NavNode> {\n children.forEach((child: NavNode) => {\n // return if path already found.\n if (info.isPathFound) {\n return path;\n }\n // if key is matched set path found to true and return the path.\n if (child.id === info.key) {\n info.isPathFound = true;\n // only push the child object by omiting the children within it.\n path.push(child);\n return path;\n }\n // if the node has children make a recursive call.\n if (child.children.length) {\n path.push(child);\n this.getPath(info, child.children, path);\n // if path is not found in that node pop the node.\n if (!info.isPathFound) {\n path.pop();\n }\n }\n });\n // return the path.\n return path;\n }\n\n private getCurrentRoute(): string {\n return this.location.path().substr(1).split('?')[0];\n }\n\n // over rides resetNode function, generating path for the breadcrumb.\n protected resetNodes() {\n super.resetNodes();\n // get path only if the widget have id property.\n if (this.itemid || this.binditemid) {\n this.nodes = this.getPath({key: this.getCurrentRoute(), isPathFound: false}, this.nodes);\n }\n\n }\n\n onItemClick ($event: Event, $item: any) {\n $event.preventDefault();\n const locals = {$item: $item.value, $event};\n const canNavigate = !(this.invokeEventCallback('beforenavigate', locals) === false);\n const linkTarget = $item.target;\n let itemLink = $item.link;\n\n if (itemLink && canNavigate) {\n if (itemLink.startsWith('#/') && (!linkTarget || linkTarget === '_self')) {\n const queryParams = getUrlParams(itemLink);\n itemLink = getRouteNameFromLink(itemLink);\n this.route.navigate([itemLink], { queryParams});\n } else {\n openLink(itemLink, linkTarget);\n }\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { MenuModule } from '@wm/components/navigation/menu'\n\nimport { BreadcrumbComponent } from './breadcrumb.component';\n\nconst components = [\n BreadcrumbComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n MenuModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class BreadcrumbModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/navigation/breadcrumb/src/breadcrumb.props.ts","../../../../../projects/components/widgets/navigation/breadcrumb/src/breadcrumb.component.html","../../../../../projects/components/widgets/navigation/breadcrumb/src/breadcrumb.component.ts","../../../../../projects/components/widgets/navigation/breadcrumb/src/breadcrumb.module.ts","../../../../../projects/components/widgets/navigation/breadcrumb/src/index.ts"],"sourcesContent":["import { PROP_ANY, PROP_BOOLEAN, PROP_STRING, register } from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-breadcrumb',\n new Map(\n [\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['itemlabel', PROP_STRING],\n ['itemid', PROP_STRING],\n ['itemlink', PROP_STRING],\n ['itemicon', PROP_STRING],\n ['itemchildren', PROP_STRING],\n ['itemclass', PROP_STRING],\n ['itemtarget', PROP_STRING],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}]\n ]\n )\n );\n};\n","<li *ngFor=\"let item of nodes; let last = last; let index = index\" [ngClass]=\"{active: last}\" class=\"{{item.class}}\">\n <i class=\"{{item.icon}}\"></i>\n <a [title]=\"item.label\" href=\"javascript:void(0)\" [wmNavigationControl]=\"item.link\" [disableMenuContext]=\"disableMenuContext || !!item.action\" (click)=\"onItemClick($event, item)\" *ngIf=\"!last\" [textContent]=\"item.label\"></a>\n <a *ngIf=\"last\" [title]=\"item.label\" [textContent]=\"item.label\" href=\"javascript:void(0)\" class=\"text-muted\"\n tabindex=\"0\" aria-current=\"page\"></a>\n</li>\n","import {Attribute, Component, Inject, Injector, Optional} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Location } from '@angular/common';\n\nimport { getRouteNameFromLink, getUrlParams, openLink } from '@wm/core';\nimport { APPLY_STYLES_TYPE, provideAsWidgetRef, DatasetAwareNavComponent, NavNode, styler } from '@wm/components/base';\n\nimport { registerProps } from './breadcrumb.props';\n\nconst DEFAULT_CLS = 'breadcrumb app-breadcrumb';\nconst WIDGET_CONFIG = {widgetType: 'wm-breadcrumb', hostClass: DEFAULT_CLS};\n\n@Component({\n selector: '[wmBreadcrumb]',\n templateUrl: './breadcrumb.component.html',\n providers: [\n provideAsWidgetRef(BreadcrumbComponent)\n ]\n})\nexport class BreadcrumbComponent extends DatasetAwareNavComponent {\n static initializeProps = registerProps();\n private disableMenuContext: boolean;\n\n constructor(\n inj: Injector,\n private route: Router,\n private location: Location,\n @Attribute('beforenavigate.event') beforeNavigateCB: string,\n @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any\n ) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER);\n this.disableMenuContext = !!beforeNavigateCB;\n }\n\n /**\n * Gets the first path found based on the key provided inside info Object.\n * @param info - Info object which has properties key(Active Page Name) and isPathFound[boolean] is set true if path found.\n * @param children - a child Object form children Array.\n * @param path - final path.\n * @returns {*|Array}: returns array of objects which represents the final path.\n */\n private getPath(info: {key: string, isPathFound: boolean}, children: Array<NavNode>, path = []): Array<NavNode> {\n children.forEach((child: NavNode) => {\n // return if path already found.\n if (info.isPathFound) {\n return path;\n }\n // if key is matched set path found to true and return the path.\n if (child.id === info.key) {\n info.isPathFound = true;\n // only push the child object by omiting the children within it.\n path.push(child);\n return path;\n }\n // if the node has children make a recursive call.\n if (child.children.length) {\n path.push(child);\n this.getPath(info, child.children, path);\n // if path is not found in that node pop the node.\n if (!info.isPathFound) {\n path.pop();\n }\n }\n });\n // return the path.\n return path;\n }\n\n private getCurrentRoute(): string {\n return this.location.path().substr(1).split('?')[0];\n }\n\n // over rides resetNode function, generating path for the breadcrumb.\n protected resetNodes() {\n super.resetNodes();\n // get path only if the widget have id property.\n if (this.itemid || this.binditemid) {\n this.nodes = this.getPath({key: this.getCurrentRoute(), isPathFound: false}, this.nodes);\n }\n\n }\n\n onItemClick ($event: Event, $item: any) {\n $event.preventDefault();\n const locals = {$item: $item.value, $event};\n const canNavigate = !(this.invokeEventCallback('beforenavigate', locals) === false);\n const linkTarget = $item.target;\n let itemLink = $item.link;\n\n if (itemLink && canNavigate) {\n if (itemLink.startsWith('#/') && (!linkTarget || linkTarget === '_self')) {\n const queryParams = getUrlParams(itemLink);\n itemLink = getRouteNameFromLink(itemLink);\n this.route.navigate([itemLink], { queryParams});\n } else {\n openLink(itemLink, linkTarget);\n }\n }\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\nimport { MenuModule } from '@wm/components/navigation/menu'\n\nimport { BreadcrumbComponent } from './breadcrumb.component';\n\nconst components = [\n BreadcrumbComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n MenuModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class BreadcrumbModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -183,7 +183,7 @@
183
183
  class LeftPanelDirective extends base.StylableComponent {
184
184
  static { this.initializeProps = registerProps(); }
185
185
  //If "spa" attribute is set LayoutDirective will present and PageDirective is undefined else PageDirective will present and LayoutDirective is undefined
186
- constructor(app, page, layout, inj, router, explicitContext, navtype) {
186
+ constructor(app, page, layout, inj, router, explicitContext, navtype, navHeight) {
187
187
  super(inj, WIDGET_CONFIG, explicitContext);
188
188
  this.app = app;
189
189
  this.page = page;
@@ -207,6 +207,10 @@
207
207
  if (!navtype)
208
208
  navtype = 'drawer';
209
209
  this.$element.addClass(i1.getNavClass(navtype));
210
+ if (navHeight) {
211
+ this.$element.addClass(i1.getNavClass(navHeight));
212
+ i1.addClass(this.$page[0], i1.getNavClass(navHeight));
213
+ }
210
214
  }
211
215
  collapse() {
212
216
  i1.addClass(this.nativeElement, 'swipee-transition');
@@ -358,7 +362,7 @@
358
362
  }
359
363
  });
360
364
  }
361
- static { this.ɵfac = function LeftPanelDirective_Factory(t) { return new (t || LeftPanelDirective)(i0__namespace.ɵɵdirectiveInject(i1__namespace.App), i0__namespace.ɵɵdirectiveInject(i2__namespace.PageDirective, 8), i0__namespace.ɵɵdirectiveInject(i2__namespace.LayoutDirective, 8), i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i3__namespace.Router), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8), i0__namespace.ɵɵinjectAttribute('nav-type')); }; }
365
+ static { this.ɵfac = function LeftPanelDirective_Factory(t) { return new (t || LeftPanelDirective)(i0__namespace.ɵɵdirectiveInject(i1__namespace.App), i0__namespace.ɵɵdirectiveInject(i2__namespace.PageDirective, 8), i0__namespace.ɵɵdirectiveInject(i2__namespace.LayoutDirective, 8), i0__namespace.ɵɵdirectiveInject(i0__namespace.Injector), i0__namespace.ɵɵdirectiveInject(i3__namespace.Router), i0__namespace.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8), i0__namespace.ɵɵinjectAttribute('navtype'), i0__namespace.ɵɵinjectAttribute('navheight')); }; }
362
366
  static { this.ɵdir = /*@__PURE__*/ i0__namespace.ɵɵdefineDirective({ type: LeftPanelDirective, selectors: [["", "wmLeftPanel", ""]], exportAs: ["wmLeftPanel"], features: [i0__namespace.ɵɵProvidersFeature([
363
367
  base.provideAsWidgetRef(LeftPanelDirective)
364
368
  ]), i0__namespace.ɵɵInheritDefinitionFeature] }); }
@@ -383,7 +387,10 @@
383
387
  type: i0.Optional
384
388
  }] }, { type: undefined, decorators: [{
385
389
  type: i0.Attribute,
386
- args: ['nav-type']
390
+ args: ['navtype']
391
+ }] }, { type: undefined, decorators: [{
392
+ type: i0.Attribute,
393
+ args: ['navheight']
387
394
  }] }], null); })();
388
395
 
389
396
  const components = [
@@ -22,7 +22,7 @@ export var AnimationType;
22
22
  export class LeftPanelDirective extends StylableComponent {
23
23
  static { this.initializeProps = registerProps(); }
24
24
  //If "spa" attribute is set LayoutDirective will present and PageDirective is undefined else PageDirective will present and LayoutDirective is undefined
25
- constructor(app, page, layout, inj, router, explicitContext, navtype) {
25
+ constructor(app, page, layout, inj, router, explicitContext, navtype, navHeight) {
26
26
  super(inj, WIDGET_CONFIG, explicitContext);
27
27
  this.app = app;
28
28
  this.page = page;
@@ -46,6 +46,10 @@ export class LeftPanelDirective extends StylableComponent {
46
46
  if (!navtype)
47
47
  navtype = 'drawer';
48
48
  this.$element.addClass(getNavClass(navtype));
49
+ if (navHeight) {
50
+ this.$element.addClass(getNavClass(navHeight));
51
+ addClass(this.$page[0], getNavClass(navHeight));
52
+ }
49
53
  }
50
54
  collapse() {
51
55
  addClass(this.nativeElement, 'swipee-transition');
@@ -197,7 +201,7 @@ export class LeftPanelDirective extends StylableComponent {
197
201
  }
198
202
  });
199
203
  }
200
- static { this.ɵfac = function LeftPanelDirective_Factory(t) { return new (t || LeftPanelDirective)(i0.ɵɵdirectiveInject(i1.App), i0.ɵɵdirectiveInject(i2.PageDirective, 8), i0.ɵɵdirectiveInject(i2.LayoutDirective, 8), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i3.Router), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8), i0.ɵɵinjectAttribute('nav-type')); }; }
204
+ static { this.ɵfac = function LeftPanelDirective_Factory(t) { return new (t || LeftPanelDirective)(i0.ɵɵdirectiveInject(i1.App), i0.ɵɵdirectiveInject(i2.PageDirective, 8), i0.ɵɵdirectiveInject(i2.LayoutDirective, 8), i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵdirectiveInject(i3.Router), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8), i0.ɵɵinjectAttribute('navtype'), i0.ɵɵinjectAttribute('navheight')); }; }
201
205
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: LeftPanelDirective, selectors: [["", "wmLeftPanel", ""]], exportAs: ["wmLeftPanel"], features: [i0.ɵɵProvidersFeature([
202
206
  provideAsWidgetRef(LeftPanelDirective)
203
207
  ]), i0.ɵɵInheritDefinitionFeature] }); }
@@ -222,6 +226,9 @@ export class LeftPanelDirective extends StylableComponent {
222
226
  type: Optional
223
227
  }] }, { type: undefined, decorators: [{
224
228
  type: Attribute,
225
- args: ['nav-type']
229
+ args: ['navtype']
230
+ }] }, { type: undefined, decorators: [{
231
+ type: Attribute,
232
+ args: ['navheight']
226
233
  }] }], null); })();
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVmdC1wYW5lbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvcGFnZS9sZWZ0LXBhbmVsL3NyYy9sZWZ0LXBhbmVsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFELE9BQU8sRUFBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDRCQUE0QixFQUFrQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNySixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFFMUQsTUFBTSxXQUFXLEdBQUcscUNBQXFDLENBQUM7QUFDMUQsTUFBTSxhQUFhLEdBQWtCO0lBQ2pDLFVBQVUsRUFBRSxlQUFlO0lBQzNCLFNBQVMsRUFBRSxXQUFXO0NBQ3pCLENBQUM7QUFFRixNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3JCLHNDQUFxQixDQUFBO0lBQ3JCLDBDQUF5QixDQUFBO0FBQzdCLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QjtBQVNELE1BQU0sT0FBTyxrQkFBbUIs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QixvR0FMaEI7Z0JBQ1Asa0JBQWtCLENBQUMsa0JBQWtCLENBQUM7YUFDekM7O2lGQUdRLGtCQUFrQjtjQVA5QixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLGVBQWU7Z0JBQ3pCLFNBQVMsRUFBRTtvQkFDUCxrQkFBa0Isb0JBQW9CO2lCQUN6QztnQkFDRCxRQUFRLEVBQUUsYUFBYTthQUMxQjs7c0JBaUJpQyxRQUFROztzQkFBaUMsUUFBUTs7c0JBQW9FLE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFROztzQkFBMEIsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBdHRyaWJ1dGUsIERpcmVjdGl2ZSwgSW5qZWN0LCBJbmplY3RvciwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge0FwcCwgYWRkQ2xhc3MsIHJlbW92ZUNsYXNzLCBzd2l0Y2hDbGFzcywgdG9nZ2xlQ2xhc3MsIGlzTW9iaWxlLCBnZXROYXZDbGFzcyB9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7IEFQUExZX1NUWUxFU19UWVBFLCBnZXRLZXlib2FyZEZvY3VzYWJsZUVsZW1lbnRzLCAgSVdpZGdldENvbmZpZywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBTdHlsYWJsZUNvbXBvbmVudCwgc3R5bGVyIH0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQgeyBMYXlvdXREaXJlY3RpdmUsIFBhZ2VEaXJlY3RpdmUgfSBmcm9tICdAd20vY29tcG9uZW50cy9wYWdlJztcblxuaW1wb3J0IHsgcmVnaXN0ZXJQcm9wcyB9IGZyb20gJy4vbGVmdC1wYW5lbC5wcm9wcyc7XG5pbXBvcnQgeyBMZWZ0UGFuZWxBbmltYXRvciB9IGZyb20gJy4vbGVmdC1wYW5lbC5hbmltYXRvcic7XG5cbmNvbnN0IERFRkFVTFRfQ0xTID0gJ2FwcC1sZWZ0LXBhbmVsIGxlZnQtcGFuZWwtY29sbGFwc2VkJztcbmNvbnN0IFdJREdFVF9DT05GSUc6IElXaWRnZXRDb25maWcgPSB7XG4gICAgd2lkZ2V0VHlwZTogJ3dtLWxlZnQtcGFuZWwnLFxuICAgIGhvc3RDbGFzczogREVGQVVMVF9DTFNcbn07XG5cbmV4cG9ydCBlbnVtIEFuaW1hdGlvblR5cGUge1xuICAgIFNMSURFX0lOID0gJ3NsaWRlLWluJyxcbiAgICBTTElERV9PVkVSID0gJ3NsaWRlLW92ZXInXG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3dtTGVmdFBhbmVsXScsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHByb3ZpZGVBc1dpZGdldFJlZihMZWZ0UGFuZWxEaXJlY3RpdmUpXG4gICAgXSxcbiAgICBleHBvcnRBczogJ3dtTGVmdFBhbmVsJ1xufSlcbmV4cG9ydCBjbGFzcyBMZWZ0UGFuZWxEaXJlY3RpdmUgZXh0ZW5kcyBTdHlsYWJsZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIGluaXRpYWxpemVQcm9wcyA9IHJlZ2lzdGVyUHJvcHMoKTtcblxuICAgIHB1YmxpYyBhbmltYXRpb246IEFuaW1hdGlvblR5cGU7XG4gICAgcHVibGljIGNvbHVtbndpZHRoOiBudW1iZXI7XG4gICAgcHVibGljIGV4cGFuZGVkOiBib29sZWFuO1xuICAgIHB1YmxpYyBnZXN0dXJlczogc3RyaW5nO1xuICAgIHB1YmxpYyB4c2NvbHVtbndpZHRoOiBudW1iZXI7XG5cbiAgICBwdWJsaWMgJGVsZTtcbiAgICBwdWJsaWMgJHBhZ2U7XG5cbiAgICBwcml2YXRlIF9kZXN0cm95Q29sbGFwc2VBY3Rpb25MaXN0ZW5lcjogKCkgPT4gdm9pZDtcbiAgICBwcml2YXRlIF9sZWZ0UGFuZWxBbmltYXRvcjtcblxuICAgIC8vSWYgXCJzcGFcIiBhdHRyaWJ1dGUgaXMgc2V0IExheW91dERpcmVjdGl2ZSB3aWxsIHByZXNlbnQgYW5kIFBhZ2VEaXJlY3RpdmUgaXMgdW5kZWZpbmVkIGVsc2UgUGFnZURpcmVjdGl2ZSB3aWxsIHByZXNlbnQgYW5kIExheW91dERpcmVjdGl2ZSBpcyB1bmRlZmluZWRcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgYXBwOiBBcHAsIEBPcHRpb25hbCgpIHByaXZhdGUgcGFnZTogUGFnZURpcmVjdGl2ZSwgQE9wdGlvbmFsKCkgcHJpdmF0ZSBsYXlvdXQ6IExheW91dERpcmVjdGl2ZSwgaW5qOiBJbmplY3Rvciwgcm91dGVyOiBSb3V0ZXIsIEBJbmplY3QoJ0VYUExJQ0lUX0NPTlRFWFQnKSBAT3B0aW9uYWwoKSBleHBsaWNpdENvbnRleHQ6IGFueSwgQEF0dHJpYnV0ZSgnbmF2LXR5cGUnKSBuYXZ0eXBlOiBzdHJpbmcpIHtcbiAgICAgICAgc3VwZXIoaW5qLCBXSURHRVRfQ09ORklHLCBleHBsaWNpdENvbnRleHQpO1xuICAgICAgICBzdHlsZXIodGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLCBBUFBMWV9TVFlMRVNfVFlQRS5DT05UQUlORVIpO1xuICAgICAgICB0aGlzLiRlbGUgPSB0aGlzLiRlbGVtZW50O1xuICAgICAgICB0aGlzLiRwYWdlID0gdGhpcy5nZXRBdHRyKCdzcGEnKSAmJiBsYXlvdXQgJiYgbGF5b3V0LiRlbGVtZW50IHx8IHBhZ2UgJiYgcGFnZS4kZWxlbWVudDtcbiAgICAgICAgYWRkQ2xhc3ModGhpcy4kcGFnZVswXSwgJ2xlZnQtcGFuZWwtY29sbGFwc2VkLWNvbnRhaW5lcicpO1xuICAgICAgICBpZiAodGhpcy5jb2x1bW53aWR0aCkge1xuICAgICAgICAgICAgdGhpcy5zZXRMZWZ0UGFuZWxXaWR0aChbJ21kJywgJ3NtJ10sIHRoaXMuY29sdW1ud2lkdGgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmFwcC5pc1RhYmxldEFwcGxpY2F0aW9uVHlwZSkge1xuICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnd20tdGFibGV0LWFwcC1sZWZ0LXBhbmVsJyk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgb25Sb3V0ZUNoYW5nZSA9IHJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGUgPT4ge1xuICAgICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uU3RhcnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCgpID0+IG9uUm91dGVDaGFuZ2UudW5zdWJzY3JpYmUoKSk7XG4gICAgICAgIGlmKCFuYXZ0eXBlKSBuYXZ0eXBlID0gJ2RyYXdlcic7XG4gICAgICAgIHRoaXMuJGVsZW1lbnQuYWRkQ2xhc3MoZ2V0TmF2Q2xhc3MobmF2dHlwZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb2xsYXBzZSgpOiB2b2lkIHtcbiAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnc3dpcGVlLXRyYW5zaXRpb24nKTtcbiAgICAgICAgc3dpdGNoQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnbGVmdC1wYW5lbC1jb2xsYXBzZWQnLCAnbGVmdC1wYW5lbC1leHBhbmRlZCcpO1xuICAgICAgICBpZiAodGhpcy5leHBhbmRlZCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGVmdE5hdkJ1dHRvbiA9ICQoJy5hcHAtaGVhZGVyLWFjdGlvbicpO1xuICAgICAgICAgICAgICAgIGxlZnROYXZCdXR0b24uYXR0cignYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgICAgICAgICAgICAgIGxlZnROYXZCdXR0b24uZm9jdXMoKTtcbiAgICAgICAgICAgIH0sIDUwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNNb2JpbGUoKSkge1xuICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnaGlkZGVuJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5leHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICBzd2l0Y2hDbGFzcyh0aGlzLiRwYWdlWzBdLCAnbGVmdC1wYW5lbC1jb2xsYXBzZWQtY29udGFpbmVyJywgJ2xlZnQtcGFuZWwtZXhwYW5kZWQtY29udGFpbmVyJyk7XG4gICAgICAgIGlmICh0aGlzLmFuaW1hdGlvbiA9PT0gQW5pbWF0aW9uVHlwZS5TTElERV9JTikge1xuICAgICAgICAgICAgdGhpcy5zZXRQYWdlV2lkdGhBbmRQb3NpdGlvbihbJ21kJywgJ3NtJ10sIG51bGwsIHRoaXMuY29sdW1ud2lkdGgpO1xuICAgICAgICAgICAgdGhpcy5zZXRQYWdlV2lkdGhBbmRQb3NpdGlvbihbJ3hzJ10sIG51bGwsIHRoaXMueHNjb2x1bW53aWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2Rlc3Ryb3lDb2xsYXBzZUFjdGlvbkxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9kZXN0cm95Q29sbGFwc2VBY3Rpb25MaXN0ZW5lcigpO1xuICAgICAgICB9XG4gICAgICAgICh0aGlzLmdldEF0dHIoXCJzcGFcIikgJiYgdGhpcy5sYXlvdXQgfHwgdGhpcy5wYWdlKS5ub3RpZnkoJ3dtTGVmdFBhbmVsOmNvbGxhcHNlJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4cGFuZCgpOiB2b2lkIHtcbiAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnaGlkZGVuJyk7XG4gICAgICAgIHJlbW92ZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ3N3aXBlZS10cmFuc2l0aW9uJyk7XG4gICAgICAgIHN3aXRjaENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2xlZnQtcGFuZWwtZXhwYW5kZWQnLCAnbGVmdC1wYW5lbC1jb2xsYXBzZWQnKTtcbiAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7XG4gICAgICAgIGlmICghKHRoaXMuYXBwLmlzVGFibGV0QXBwbGljYXRpb25UeXBlICYmIHRoaXMuYW5pbWF0aW9uID09PSBBbmltYXRpb25UeXBlLlNMSURFX0lOKSkge1xuICAgICAgICAgICAgdGhpcy5fZGVzdHJveUNvbGxhcHNlQWN0aW9uTGlzdGVuZXIgPSB0aGlzLmxpc3RlbkZvckNvbGxhcHNlQWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoQ2xhc3ModGhpcy4kcGFnZVswXSwgJ2xlZnQtcGFuZWwtZXhwYW5kZWQtY29udGFpbmVyJywgJ2xlZnQtcGFuZWwtY29sbGFwc2VkLWNvbnRhaW5lcicpO1xuICAgICAgICBpZiAodGhpcy5hbmltYXRpb24gPT09IEFuaW1hdGlvblR5cGUuU0xJREVfSU4pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0UGFnZVdpZHRoQW5kUG9zaXRpb24oWydtZCcsICdzbSddLCB0aGlzLmNvbHVtbndpZHRoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0UGFnZVdpZHRoQW5kUG9zaXRpb24oWyd4cyddLCB0aGlzLnhzY29sdW1ud2lkdGgpO1xuICAgICAgICB9XG4gICAgICAgICh0aGlzLmdldEF0dHIoXCJzcGFcIikgJiYgdGhpcy5sYXlvdXQgfHwgdGhpcy5wYWdlKS5ub3RpZnkoJ3dtTGVmdFBhbmVsOmV4cGFuZCcpO1xuICAgICAgICAkKCcuYXBwLWhlYWRlci1hY3Rpb24nKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgYCR7dGhpcy5leHBhbmRlZH1gKTtcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlRWxlbWVudHMgPSBnZXRLZXlib2FyZEZvY3VzYWJsZUVsZW1lbnRzKHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlRWxlbWVudCA9IGZvY3VzYWJsZUVsZW1lbnRzWzBdO1xuICAgICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlRWxlbWVudCA9IGZvY3VzYWJsZUVsZW1lbnRzW2ZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCAtIDFdO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICQoZmlyc3RGb2N1c2FibGVFbGVtZW50KS5mb2N1cygpO1xuICAgICAgICB9LCA1MCk7XG4gICAgICAgICQoZmlyc3RGb2N1c2FibGVFbGVtZW50KS5vbigna2V5ZG93bicsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5ICYmIGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAkKGxhc3RGb2N1c2FibGVFbGVtZW50KS5vbigna2V5ZG93bicsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLiRlbGVtZW50Lm9uKCdrZXlkb3duJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzR2VzdHVyZXNFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXN0dXJlcyA9PT0gJ29uJztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5leHBhbmRlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdikge1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnYW5pbWF0aW9uJyA6XG4gICAgICAgICAgICAgICAgaWYgKG52ID09PSBBbmltYXRpb25UeXBlLlNMSURFX0lOKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMuJHBhZ2VbMF0sICdzbGlkZS1vdmVyLWxlZnQtcGFuZWwtY29udGFpbmVyJyk7XG4gICAgICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMuJHBhZ2VbMF0sICdzbGlkZS1pbi1sZWZ0LXBhbmVsLWNvbnRhaW5lcicpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VXaWR0aEFuZFBvc2l0aW9uKFsnbWQnLCAnc20nXSwgdGhpcy5jb2x1bW53aWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UGFnZVdpZHRoQW5kUG9zaXRpb24oWyd4cyddLCB0aGlzLnhzY29sdW1ud2lkdGgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnYgPT09IEFuaW1hdGlvblR5cGUuU0xJREVfT1ZFUikge1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLiRwYWdlWzBdLCAnc2xpZGUtaW4tbGVmdC1wYW5lbC1jb250YWluZXInKTtcbiAgICAgICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy4kcGFnZVswXSwgJ3NsaWRlLW92ZXItbGVmdC1wYW5lbC1jb250YWluZXInKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVmdFBhbmVsQW5pbWF0b3IgPSBuZXcgTGVmdFBhbmVsQW5pbWF0b3IodGhpcyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBudiwgb3YpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY29sdW1ud2lkdGgnOlxuICAgICAgICAgICAgICAgIHRoaXMuc2V0TGVmdFBhbmVsV2lkdGgoWydtZCcsICdzbSddLCBudiwgb3YpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFuaW1hdGlvbiA9PT0gQW5pbWF0aW9uVHlwZS5TTElERV9JTikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VXaWR0aEFuZFBvc2l0aW9uKFsnbWQnLCAnc20nXSwgbnYsIG92KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdleHBhbmRlZCc6XG4gICAgICAgICAgICAgICAgdG9nZ2xlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnbGVmdC1wYW5lbC1leHBhbmRlZCcsIG52KTtcbiAgICAgICAgICAgICAgICB0b2dnbGVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdsZWZ0LXBhbmVsLWNvbGxhcHNlZCcsICFudik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd4c2NvbHVtbndpZHRoJzpcbiAgICAgICAgICAgICAgICB0aGlzLnNldExlZnRQYW5lbFdpZHRoKFsneHMnXSwgbnYsIG92KTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hbmltYXRpb24gPT09IEFuaW1hdGlvblR5cGUuU0xJREVfSU4pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRQYWdlV2lkdGhBbmRQb3NpdGlvbihbJ3hzJ10sIG52LCBvdik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hcHAuaXNUYWJsZXRBcHBsaWNhdGlvblR5cGUpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPyB0aGlzLmNvbGxhcHNlKCkgOiB0aGlzLmV4cGFuZCgpO1xuICAgICAgICAgICAgfSwgNTApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy4kZWxlLnN3aXBlQW5pbWF0aW9uKHRoaXMuZXhwYW5kZWQgPyAnZ290b0xvd2VyJyA6ICdnb3RvVXBwZXInKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbGlzdGVuRm9yQ29sbGFwc2VBY3Rpb24oKTogKCkgPT4gdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50TmFtZSA9ICdjbGljay5sZWZ0TmF2VG9nZ2xlJztcbiAgICAgICAgbGV0IHNraXBFdmVudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLiRlbGUub24oZXZlbnROYW1lLCAoKSA9PiB7XG4gICAgICAgICAgICBza2lwRXZlbnQgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy4kcGFnZS5vbihldmVudE5hbWUsICgpID0+ICB7XG4gICAgICAgICAgICBpZiAoIXNraXBFdmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBza2lwRXZlbnQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRlbGUub2ZmKGV2ZW50TmFtZSk7XG4gICAgICAgICAgICB0aGlzLiRwYWdlLm9mZihldmVudE5hbWUpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TGVmdFBhbmVsV2lkdGgoZGV2aWNlczogc3RyaW5nW10sIG5ld1ZhbDogbnVtYmVyLCBvbGRWYWw/OiBudW1iZXIpIHtcbiAgICAgICAgZGV2aWNlcy5mb3JFYWNoKGRldmljZSA9PiB7XG4gICAgICAgICAgICBpZiAobmV3VmFsKSB7XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBgY29sLSR7ZGV2aWNlfS0ke25ld1ZhbH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvbGRWYWwpIHtcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGBjb2wtJHtkZXZpY2V9LSR7b2xkVmFsfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFBhZ2VXaWR0aEFuZFBvc2l0aW9uKGRldmljZXM6IHN0cmluZ1tdLCBuZXdWYWw6IG51bWJlciwgb2xkVmFsPzogbnVtYmVyKSB7XG4gICAgICAgIGRldmljZXMuZm9yRWFjaChkZXZpY2UgPT4ge1xuICAgICAgICAgICAgaWYgKG5ld1ZhbCkge1xuICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMuJHBhZ2VbMF0sIGBsZWZ0LXBhbmVsLWNvbnRhaW5lci0ke2RldmljZX0tJHsxMiAtIG5ld1ZhbH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvbGRWYWwpIHtcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLiRwYWdlWzBdLCBgbGVmdC1wYW5lbC1jb250YWluZXItJHtkZXZpY2V9LSR7MTIgLSBvbGRWYWx9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
234
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVmdC1wYW5lbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvcGFnZS9sZWZ0LXBhbmVsL3NyYy9sZWZ0LXBhbmVsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTFELE9BQU8sRUFBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLDRCQUE0QixFQUFrQixrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNySixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXJFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7QUFFMUQsTUFBTSxXQUFXLEdBQUcscUNBQXFDLENBQUM7QUFDMUQsTUFBTSxhQUFhLEdBQWtCO0lBQ2pDLFVBQVUsRUFBRSxlQUFlO0lBQzNCLFNBQVMsRUFBRSxXQUFXO0NBQ3pCLENBQUM7QUFFRixNQUFNLENBQU4sSUFBWSxhQUdYO0FBSEQsV0FBWSxhQUFhO0lBQ3JCLHNDQUFxQixDQUFBO0lBQ3JCLDBDQUF5QixDQUFBO0FBQzdCLENBQUMsRUFIVyxhQUFhLEtBQWIsYUFBYSxRQUd4QjtBQVNELE1BQU0sT0FBTyxrQkFBbUIs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O2dCQUNULFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLHdCQUF3QixNQUFNLElBQUksRUFBRSxHQUFHLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDaEYsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzttRkFyTVEsa0JBQWtCLGlOQWdCK0gsa0JBQWtCLDJCQUErQyxTQUFTLHdCQUE4QixXQUFXO29FQWhCcFEsa0JBQWtCLG9HQUxoQjtnQkFDUCxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQzthQUN6Qzs7aUZBR1Esa0JBQWtCO2NBUDlCLFNBQVM7ZUFBQztnQkFDUCxRQUFRLEVBQUUsZUFBZTtnQkFDekIsU0FBUyxFQUFFO29CQUNQLGtCQUFrQixvQkFBb0I7aUJBQ3pDO2dCQUNELFFBQVEsRUFBRSxhQUFhO2FBQzFCOztzQkFpQmlDLFFBQVE7O3NCQUFpQyxRQUFROztzQkFBb0UsTUFBTTt1QkFBQyxrQkFBa0I7O3NCQUFHLFFBQVE7O3NCQUEwQixTQUFTO3VCQUFDLFNBQVM7O3NCQUFvQixTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0F0dHJpYnV0ZSwgRGlyZWN0aXZlLCBJbmplY3QsIEluamVjdG9yLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7QXBwLCBhZGRDbGFzcywgcmVtb3ZlQ2xhc3MsIHN3aXRjaENsYXNzLCB0b2dnbGVDbGFzcywgaXNNb2JpbGUsIGdldE5hdkNsYXNzIH0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgQVBQTFlfU1RZTEVTX1RZUEUsIGdldEtleWJvYXJkRm9jdXNhYmxlRWxlbWVudHMsICBJV2lkZ2V0Q29uZmlnLCBwcm92aWRlQXNXaWRnZXRSZWYsIFN0eWxhYmxlQ29tcG9uZW50LCBzdHlsZXIgfSBmcm9tICdAd20vY29tcG9uZW50cy9iYXNlJztcbmltcG9ydCB7IExheW91dERpcmVjdGl2ZSwgUGFnZURpcmVjdGl2ZSB9IGZyb20gJ0B3bS9jb21wb25lbnRzL3BhZ2UnO1xuXG5pbXBvcnQgeyByZWdpc3RlclByb3BzIH0gZnJvbSAnLi9sZWZ0LXBhbmVsLnByb3BzJztcbmltcG9ydCB7IExlZnRQYW5lbEFuaW1hdG9yIH0gZnJvbSAnLi9sZWZ0LXBhbmVsLmFuaW1hdG9yJztcblxuY29uc3QgREVGQVVMVF9DTFMgPSAnYXBwLWxlZnQtcGFuZWwgbGVmdC1wYW5lbC1jb2xsYXBzZWQnO1xuY29uc3QgV0lER0VUX0NPTkZJRzogSVdpZGdldENvbmZpZyA9IHtcbiAgICB3aWRnZXRUeXBlOiAnd20tbGVmdC1wYW5lbCcsXG4gICAgaG9zdENsYXNzOiBERUZBVUxUX0NMU1xufTtcblxuZXhwb3J0IGVudW0gQW5pbWF0aW9uVHlwZSB7XG4gICAgU0xJREVfSU4gPSAnc2xpZGUtaW4nLFxuICAgIFNMSURFX09WRVIgPSAnc2xpZGUtb3Zlcidcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbd21MZWZ0UGFuZWxdJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKExlZnRQYW5lbERpcmVjdGl2ZSlcbiAgICBdLFxuICAgIGV4cG9ydEFzOiAnd21MZWZ0UGFuZWwnXG59KVxuZXhwb3J0IGNsYXNzIExlZnRQYW5lbERpcmVjdGl2ZSBleHRlbmRzIFN0eWxhYmxlQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgaW5pdGlhbGl6ZVByb3BzID0gcmVnaXN0ZXJQcm9wcygpO1xuXG4gICAgcHVibGljIGFuaW1hdGlvbjogQW5pbWF0aW9uVHlwZTtcbiAgICBwdWJsaWMgY29sdW1ud2lkdGg6IG51bWJlcjtcbiAgICBwdWJsaWMgZXhwYW5kZWQ6IGJvb2xlYW47XG4gICAgcHVibGljIGdlc3R1cmVzOiBzdHJpbmc7XG4gICAgcHVibGljIHhzY29sdW1ud2lkdGg6IG51bWJlcjtcblxuICAgIHB1YmxpYyAkZWxlO1xuICAgIHB1YmxpYyAkcGFnZTtcblxuICAgIHByaXZhdGUgX2Rlc3Ryb3lDb2xsYXBzZUFjdGlvbkxpc3RlbmVyOiAoKSA9PiB2b2lkO1xuICAgIHByaXZhdGUgX2xlZnRQYW5lbEFuaW1hdG9yO1xuXG4gICAgLy9JZiBcInNwYVwiIGF0dHJpYnV0ZSBpcyBzZXQgTGF5b3V0RGlyZWN0aXZlIHdpbGwgcHJlc2VudCBhbmQgUGFnZURpcmVjdGl2ZSBpcyB1bmRlZmluZWQgZWxzZSBQYWdlRGlyZWN0aXZlIHdpbGwgcHJlc2VudCBhbmQgTGF5b3V0RGlyZWN0aXZlIGlzIHVuZGVmaW5lZFxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBhcHA6IEFwcCwgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYWdlOiBQYWdlRGlyZWN0aXZlLCBAT3B0aW9uYWwoKSBwcml2YXRlIGxheW91dDogTGF5b3V0RGlyZWN0aXZlLCBpbmo6IEluamVjdG9yLCByb3V0ZXI6IFJvdXRlciwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55LCBAQXR0cmlidXRlKCduYXZ0eXBlJykgbmF2dHlwZTogc3RyaW5nLCBAQXR0cmlidXRlKCduYXZoZWlnaHQnKSBuYXZIZWlnaHQ6IHN0cmluZykge1xuICAgICAgICBzdXBlcihpbmosIFdJREdFVF9DT05GSUcsIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLkNPTlRBSU5FUik7XG4gICAgICAgIHRoaXMuJGVsZSA9IHRoaXMuJGVsZW1lbnQ7XG4gICAgICAgIHRoaXMuJHBhZ2UgPSB0aGlzLmdldEF0dHIoJ3NwYScpICYmIGxheW91dCAmJiBsYXlvdXQuJGVsZW1lbnQgfHwgcGFnZSAmJiBwYWdlLiRlbGVtZW50O1xuICAgICAgICBhZGRDbGFzcyh0aGlzLiRwYWdlWzBdLCAnbGVmdC1wYW5lbC1jb2xsYXBzZWQtY29udGFpbmVyJyk7XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbndpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLnNldExlZnRQYW5lbFdpZHRoKFsnbWQnLCAnc20nXSwgdGhpcy5jb2x1bW53aWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuYXBwLmlzVGFibGV0QXBwbGljYXRpb25UeXBlKSB7XG4gICAgICAgICAgICBhZGRDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICd3bS10YWJsZXQtYXBwLWxlZnQtcGFuZWwnKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBvblJvdXRlQ2hhbmdlID0gcm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIoKCkgPT4gb25Sb3V0ZUNoYW5nZS51bnN1YnNjcmliZSgpKTtcbiAgICAgICAgaWYoIW5hdnR5cGUpIG5hdnR5cGUgPSAnZHJhd2VyJztcbiAgICAgICAgdGhpcy4kZWxlbWVudC5hZGRDbGFzcyhnZXROYXZDbGFzcyhuYXZ0eXBlKSk7XG4gICAgICAgIGlmIChuYXZIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMuJGVsZW1lbnQuYWRkQ2xhc3MoZ2V0TmF2Q2xhc3MobmF2SGVpZ2h0KSk7XG4gICAgICAgICAgICBhZGRDbGFzcyh0aGlzLiRwYWdlWzBdLCBnZXROYXZDbGFzcyhuYXZIZWlnaHQpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjb2xsYXBzZSgpOiB2b2lkIHtcbiAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnc3dpcGVlLXRyYW5zaXRpb24nKTtcbiAgICAgICAgc3dpdGNoQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnbGVmdC1wYW5lbC1jb2xsYXBzZWQnLCAnbGVmdC1wYW5lbC1leHBhbmRlZCcpO1xuICAgICAgICBpZiAodGhpcy5leHBhbmRlZCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGVmdE5hdkJ1dHRvbiA9ICQoJy5hcHAtaGVhZGVyLWFjdGlvbicpO1xuICAgICAgICAgICAgICAgIGxlZnROYXZCdXR0b24uYXR0cignYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgICAgICAgICAgICAgIGxlZnROYXZCdXR0b24uZm9jdXMoKTtcbiAgICAgICAgICAgIH0sIDUwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNNb2JpbGUoKSkge1xuICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnaGlkZGVuJyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5leHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICBzd2l0Y2hDbGFzcyh0aGlzLiRwYWdlWzBdLCAnbGVmdC1wYW5lbC1jb2xsYXBzZWQtY29udGFpbmVyJywgJ2xlZnQtcGFuZWwtZXhwYW5kZWQtY29udGFpbmVyJyk7XG4gICAgICAgIGlmICh0aGlzLmFuaW1hdGlvbiA9PT0gQW5pbWF0aW9uVHlwZS5TTElERV9JTikge1xuICAgICAgICAgICAgdGhpcy5zZXRQYWdlV2lkdGhBbmRQb3NpdGlvbihbJ21kJywgJ3NtJ10sIG51bGwsIHRoaXMuY29sdW1ud2lkdGgpO1xuICAgICAgICAgICAgdGhpcy5zZXRQYWdlV2lkdGhBbmRQb3NpdGlvbihbJ3hzJ10sIG51bGwsIHRoaXMueHNjb2x1bW53aWR0aCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuX2Rlc3Ryb3lDb2xsYXBzZUFjdGlvbkxpc3RlbmVyKSB7XG4gICAgICAgICAgICB0aGlzLl9kZXN0cm95Q29sbGFwc2VBY3Rpb25MaXN0ZW5lcigpO1xuICAgICAgICB9XG4gICAgICAgICh0aGlzLmdldEF0dHIoXCJzcGFcIikgJiYgdGhpcy5sYXlvdXQgfHwgdGhpcy5wYWdlKS5ub3RpZnkoJ3dtTGVmdFBhbmVsOmNvbGxhcHNlJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4cGFuZCgpOiB2b2lkIHtcbiAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnaGlkZGVuJyk7XG4gICAgICAgIHJlbW92ZUNsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ3N3aXBlZS10cmFuc2l0aW9uJyk7XG4gICAgICAgIHN3aXRjaENsYXNzKHRoaXMubmF0aXZlRWxlbWVudCwgJ2xlZnQtcGFuZWwtZXhwYW5kZWQnLCAnbGVmdC1wYW5lbC1jb2xsYXBzZWQnKTtcbiAgICAgICAgdGhpcy5leHBhbmRlZCA9IHRydWU7XG4gICAgICAgIGlmICghKHRoaXMuYXBwLmlzVGFibGV0QXBwbGljYXRpb25UeXBlICYmIHRoaXMuYW5pbWF0aW9uID09PSBBbmltYXRpb25UeXBlLlNMSURFX0lOKSkge1xuICAgICAgICAgICAgdGhpcy5fZGVzdHJveUNvbGxhcHNlQWN0aW9uTGlzdGVuZXIgPSB0aGlzLmxpc3RlbkZvckNvbGxhcHNlQWN0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgICAgc3dpdGNoQ2xhc3ModGhpcy4kcGFnZVswXSwgJ2xlZnQtcGFuZWwtZXhwYW5kZWQtY29udGFpbmVyJywgJ2xlZnQtcGFuZWwtY29sbGFwc2VkLWNvbnRhaW5lcicpO1xuICAgICAgICBpZiAodGhpcy5hbmltYXRpb24gPT09IEFuaW1hdGlvblR5cGUuU0xJREVfSU4pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0UGFnZVdpZHRoQW5kUG9zaXRpb24oWydtZCcsICdzbSddLCB0aGlzLmNvbHVtbndpZHRoKTtcbiAgICAgICAgICAgIHRoaXMuc2V0UGFnZVdpZHRoQW5kUG9zaXRpb24oWyd4cyddLCB0aGlzLnhzY29sdW1ud2lkdGgpO1xuICAgICAgICB9XG4gICAgICAgICh0aGlzLmdldEF0dHIoXCJzcGFcIikgJiYgdGhpcy5sYXlvdXQgfHwgdGhpcy5wYWdlKS5ub3RpZnkoJ3dtTGVmdFBhbmVsOmV4cGFuZCcpO1xuICAgICAgICAkKCcuYXBwLWhlYWRlci1hY3Rpb24nKS5hdHRyKCdhcmlhLWV4cGFuZGVkJywgYCR7dGhpcy5leHBhbmRlZH1gKTtcbiAgICAgICAgY29uc3QgZm9jdXNhYmxlRWxlbWVudHMgPSBnZXRLZXlib2FyZEZvY3VzYWJsZUVsZW1lbnRzKHRoaXMubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGZpcnN0Rm9jdXNhYmxlRWxlbWVudCA9IGZvY3VzYWJsZUVsZW1lbnRzWzBdO1xuICAgICAgICBjb25zdCBsYXN0Rm9jdXNhYmxlRWxlbWVudCA9IGZvY3VzYWJsZUVsZW1lbnRzW2ZvY3VzYWJsZUVsZW1lbnRzLmxlbmd0aCAtIDFdO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICQoZmlyc3RGb2N1c2FibGVFbGVtZW50KS5mb2N1cygpO1xuICAgICAgICB9LCA1MCk7XG4gICAgICAgICQoZmlyc3RGb2N1c2FibGVFbGVtZW50KS5vbigna2V5ZG93bicsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5ICYmIGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICAkKGxhc3RGb2N1c2FibGVFbGVtZW50KS5vbigna2V5ZG93bicsIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbGxhcHNlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLiRlbGVtZW50Lm9uKCdrZXlkb3duJywgKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIGlzR2VzdHVyZXNFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXN0dXJlcyA9PT0gJ29uJztcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5leHBhbmRlZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Qcm9wZXJ0eUNoYW5nZShrZXksIG52LCBvdikge1xuICAgICAgICBzd2l0Y2ggKGtleSkge1xuICAgICAgICAgICAgY2FzZSAnYW5pbWF0aW9uJyA6XG4gICAgICAgICAgICAgICAgaWYgKG52ID09PSBBbmltYXRpb25UeXBlLlNMSURFX0lOKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMuJHBhZ2VbMF0sICdzbGlkZS1vdmVyLWxlZnQtcGFuZWwtY29udGFpbmVyJyk7XG4gICAgICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMuJHBhZ2VbMF0sICdzbGlkZS1pbi1sZWZ0LXBhbmVsLWNvbnRhaW5lcicpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VXaWR0aEFuZFBvc2l0aW9uKFsnbWQnLCAnc20nXSwgdGhpcy5jb2x1bW53aWR0aCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0UGFnZVdpZHRoQW5kUG9zaXRpb24oWyd4cyddLCB0aGlzLnhzY29sdW1ud2lkdGgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobnYgPT09IEFuaW1hdGlvblR5cGUuU0xJREVfT1ZFUikge1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLiRwYWdlWzBdLCAnc2xpZGUtaW4tbGVmdC1wYW5lbC1jb250YWluZXInKTtcbiAgICAgICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy4kcGFnZVswXSwgJ3NsaWRlLW92ZXItbGVmdC1wYW5lbC1jb250YWluZXInKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5fbGVmdFBhbmVsQW5pbWF0b3IgPSBuZXcgTGVmdFBhbmVsQW5pbWF0b3IodGhpcyk7XG4gICAgICAgICAgICAgICAgc3dpdGNoQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBudiwgb3YpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnY29sdW1ud2lkdGgnOlxuICAgICAgICAgICAgICAgIHRoaXMuc2V0TGVmdFBhbmVsV2lkdGgoWydtZCcsICdzbSddLCBudiwgb3YpO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFuaW1hdGlvbiA9PT0gQW5pbWF0aW9uVHlwZS5TTElERV9JTikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFBhZ2VXaWR0aEFuZFBvc2l0aW9uKFsnbWQnLCAnc20nXSwgbnYsIG92KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdleHBhbmRlZCc6XG4gICAgICAgICAgICAgICAgdG9nZ2xlQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCAnbGVmdC1wYW5lbC1leHBhbmRlZCcsIG52KTtcbiAgICAgICAgICAgICAgICB0b2dnbGVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsICdsZWZ0LXBhbmVsLWNvbGxhcHNlZCcsICFudik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICd4c2NvbHVtbndpZHRoJzpcbiAgICAgICAgICAgICAgICB0aGlzLnNldExlZnRQYW5lbFdpZHRoKFsneHMnXSwgbnYsIG92KTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hbmltYXRpb24gPT09IEFuaW1hdGlvblR5cGUuU0xJREVfSU4pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRQYWdlV2lkdGhBbmRQb3NpdGlvbihbJ3hzJ10sIG52LCBvdik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBzdXBlci5vblByb3BlcnR5Q2hhbmdlKGtleSwgbnYsIG92KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5hcHAuaXNUYWJsZXRBcHBsaWNhdGlvblR5cGUpIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZXhwYW5kZWQgPyB0aGlzLmNvbGxhcHNlKCkgOiB0aGlzLmV4cGFuZCgpO1xuICAgICAgICAgICAgfSwgNTApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy4kZWxlLnN3aXBlQW5pbWF0aW9uKHRoaXMuZXhwYW5kZWQgPyAnZ290b0xvd2VyJyA6ICdnb3RvVXBwZXInKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbGlzdGVuRm9yQ29sbGFwc2VBY3Rpb24oKTogKCkgPT4gdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2ZW50TmFtZSA9ICdjbGljay5sZWZ0TmF2VG9nZ2xlJztcbiAgICAgICAgbGV0IHNraXBFdmVudCA9IGZhbHNlO1xuICAgICAgICB0aGlzLiRlbGUub24oZXZlbnROYW1lLCAoKSA9PiB7XG4gICAgICAgICAgICBza2lwRXZlbnQgPSB0cnVlO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy4kcGFnZS5vbihldmVudE5hbWUsICgpID0+ICB7XG4gICAgICAgICAgICBpZiAoIXNraXBFdmVudCkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBza2lwRXZlbnQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLiRlbGUub2ZmKGV2ZW50TmFtZSk7XG4gICAgICAgICAgICB0aGlzLiRwYWdlLm9mZihldmVudE5hbWUpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TGVmdFBhbmVsV2lkdGgoZGV2aWNlczogc3RyaW5nW10sIG5ld1ZhbDogbnVtYmVyLCBvbGRWYWw/OiBudW1iZXIpIHtcbiAgICAgICAgZGV2aWNlcy5mb3JFYWNoKGRldmljZSA9PiB7XG4gICAgICAgICAgICBpZiAobmV3VmFsKSB7XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5uYXRpdmVFbGVtZW50LCBgY29sLSR7ZGV2aWNlfS0ke25ld1ZhbH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvbGRWYWwpIHtcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLm5hdGl2ZUVsZW1lbnQsIGBjb2wtJHtkZXZpY2V9LSR7b2xkVmFsfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFBhZ2VXaWR0aEFuZFBvc2l0aW9uKGRldmljZXM6IHN0cmluZ1tdLCBuZXdWYWw6IG51bWJlciwgb2xkVmFsPzogbnVtYmVyKSB7XG4gICAgICAgIGRldmljZXMuZm9yRWFjaChkZXZpY2UgPT4ge1xuICAgICAgICAgICAgaWYgKG5ld1ZhbCkge1xuICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMuJHBhZ2VbMF0sIGBsZWZ0LXBhbmVsLWNvbnRhaW5lci0ke2RldmljZX0tJHsxMiAtIG5ld1ZhbH1gKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvbGRWYWwpIHtcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLiRwYWdlWzBdLCBgbGVmdC1wYW5lbC1jb250YWluZXItJHtkZXZpY2V9LSR7MTIgLSBvbGRWYWx9YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==