@c8y/ngx-components 1006.6.36 → 1006.6.40

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 (105) hide show
  1. package/bundles/c8y-ngx-components-connectivity.umd.js +1 -1
  2. package/bundles/c8y-ngx-components-connectivity.umd.js.map +1 -1
  3. package/bundles/c8y-ngx-components-connectivity.umd.min.js +1 -1
  4. package/bundles/c8y-ngx-components-connectivity.umd.min.js.map +1 -1
  5. package/bundles/c8y-ngx-components-context-dashboard.umd.js +1 -1
  6. package/bundles/c8y-ngx-components-context-dashboard.umd.js.map +1 -1
  7. package/bundles/c8y-ngx-components-context-dashboard.umd.min.js +1 -1
  8. package/bundles/c8y-ngx-components-context-dashboard.umd.min.js.map +1 -1
  9. package/bundles/c8y-ngx-components-repository.umd.js +1 -1
  10. package/bundles/c8y-ngx-components-repository.umd.js.map +1 -1
  11. package/bundles/c8y-ngx-components-repository.umd.min.js +1 -1
  12. package/bundles/c8y-ngx-components-repository.umd.min.js.map +1 -1
  13. package/bundles/c8y-ngx-components-sensor-phone.umd.js +1 -1
  14. package/bundles/c8y-ngx-components-sensor-phone.umd.js.map +1 -1
  15. package/bundles/c8y-ngx-components-sensor-phone.umd.min.js +1 -1
  16. package/bundles/c8y-ngx-components-sensor-phone.umd.min.js.map +1 -1
  17. package/bundles/c8y-ngx-components.umd.js +400 -131
  18. package/bundles/c8y-ngx-components.umd.js.map +1 -1
  19. package/bundles/c8y-ngx-components.umd.min.js +2 -2
  20. package/bundles/c8y-ngx-components.umd.min.js.map +1 -1
  21. package/c8y-ngx-components.d.ts +90 -87
  22. package/c8y-ngx-components.metadata.json +1 -1
  23. package/connectivity/c8y-ngx-components-connectivity.metadata.json +1 -1
  24. package/context-dashboard/c8y-ngx-components-context-dashboard.metadata.json +1 -1
  25. package/core/authentication/new-password.component.d.ts +8 -6
  26. package/core/docs/guide-docs.component.d.ts +25 -3
  27. package/core/forms/validation-pattern.d.ts +1 -0
  28. package/core/i18n/force-html-translate.directive.d.ts +32 -0
  29. package/core/login/change-password.component.d.ts +1 -1
  30. package/core/login/login.service.d.ts +15 -2
  31. package/core/login/password-strength-validator.directive.d.ts +9 -0
  32. package/core/login/strength-validator-service.d.ts +7 -0
  33. package/core/user/user-edit.component.d.ts +4 -2
  34. package/esm2015/c8y-ngx-components.js +90 -87
  35. package/esm2015/connectivity/impact/impact-provider-settings.component.js +2 -2
  36. package/esm2015/context-dashboard/legacy-welcome/legacy-welcome.component.js +2 -2
  37. package/esm2015/core/authentication/new-password.component.js +15 -20
  38. package/esm2015/core/dashboard/widgets-dashboard.component.js +2 -2
  39. package/esm2015/core/docs/guide-docs.component.js +69 -4
  40. package/esm2015/core/forms/validation-pattern.js +2 -1
  41. package/esm2015/core/i18n/force-html-translate.directive.js +99 -0
  42. package/esm2015/core/i18n/i18n.module.js +5 -3
  43. package/esm2015/core/i18n/pattern-messages.data.js +2 -2
  44. package/esm2015/core/login/change-password.component.js +5 -5
  45. package/esm2015/core/login/credentials.component.js +2 -2
  46. package/esm2015/core/login/login.module.js +4 -2
  47. package/esm2015/core/login/login.service.js +40 -6
  48. package/esm2015/core/login/password-strength-validator.directive.js +32 -0
  49. package/esm2015/core/login/strength-validator-service.js +28 -0
  50. package/esm2015/core/user/user-edit.component.js +10 -5
  51. package/esm2015/repository/configuration/configuration-list.component.js +2 -2
  52. package/esm2015/sensor-phone/sensor-phone-modal.component.js +2 -2
  53. package/esm5/c8y-ngx-components.js +90 -87
  54. package/esm5/connectivity/impact/impact-provider-settings.component.js +2 -2
  55. package/esm5/context-dashboard/legacy-welcome/legacy-welcome.component.js +2 -2
  56. package/esm5/core/authentication/new-password.component.js +21 -25
  57. package/esm5/core/dashboard/widgets-dashboard.component.js +2 -2
  58. package/esm5/core/docs/guide-docs.component.js +72 -4
  59. package/esm5/core/forms/validation-pattern.js +2 -1
  60. package/esm5/core/i18n/force-html-translate.directive.js +105 -0
  61. package/esm5/core/i18n/i18n.module.js +5 -3
  62. package/esm5/core/i18n/pattern-messages.data.js +2 -2
  63. package/esm5/core/login/change-password.component.js +5 -5
  64. package/esm5/core/login/credentials.component.js +2 -2
  65. package/esm5/core/login/login.module.js +4 -2
  66. package/esm5/core/login/login.service.js +43 -6
  67. package/esm5/core/login/password-strength-validator.directive.js +38 -0
  68. package/esm5/core/login/strength-validator-service.js +29 -0
  69. package/esm5/core/user/user-edit.component.js +19 -9
  70. package/esm5/repository/configuration/configuration-list.component.js +2 -2
  71. package/esm5/sensor-phone/sensor-phone-modal.component.js +2 -2
  72. package/fesm2015/c8y-ngx-components-connectivity.js +1 -1
  73. package/fesm2015/c8y-ngx-components-connectivity.js.map +1 -1
  74. package/fesm2015/c8y-ngx-components-context-dashboard.js +1 -1
  75. package/fesm2015/c8y-ngx-components-context-dashboard.js.map +1 -1
  76. package/fesm2015/c8y-ngx-components-repository.js +1 -1
  77. package/fesm2015/c8y-ngx-components-repository.js.map +1 -1
  78. package/fesm2015/c8y-ngx-components-sensor-phone.js +1 -1
  79. package/fesm2015/c8y-ngx-components-sensor-phone.js.map +1 -1
  80. package/fesm2015/c8y-ngx-components.js +281 -40
  81. package/fesm2015/c8y-ngx-components.js.map +1 -1
  82. package/fesm5/c8y-ngx-components-connectivity.js +1 -1
  83. package/fesm5/c8y-ngx-components-connectivity.js.map +1 -1
  84. package/fesm5/c8y-ngx-components-context-dashboard.js +1 -1
  85. package/fesm5/c8y-ngx-components-context-dashboard.js.map +1 -1
  86. package/fesm5/c8y-ngx-components-repository.js +1 -1
  87. package/fesm5/c8y-ngx-components-repository.js.map +1 -1
  88. package/fesm5/c8y-ngx-components-sensor-phone.js +1 -1
  89. package/fesm5/c8y-ngx-components-sensor-phone.js.map +1 -1
  90. package/fesm5/c8y-ngx-components.js +315 -49
  91. package/fesm5/c8y-ngx-components.js.map +1 -1
  92. package/locales/de.po +71 -60
  93. package/locales/es.po +120 -85
  94. package/locales/fr.po +107 -72
  95. package/locales/ja_JP.po +89 -78
  96. package/locales/ko.po +92 -57
  97. package/locales/locales.pot +9 -9
  98. package/locales/nl.po +95 -60
  99. package/locales/pl.po +88 -53
  100. package/locales/pt_BR.po +174 -138
  101. package/locales/ru.po +120 -85
  102. package/locales/zh_CN.po +87 -52
  103. package/package.json +2 -2
  104. package/repository/c8y-ngx-components-repository.metadata.json +1 -1
  105. package/sensor-phone/c8y-ngx-components-sensor-phone.metadata.json +1 -1
@@ -106,7 +106,7 @@ tslib_1.__decorate([
106
106
  WidgetsDashboardComponent = tslib_1.__decorate([
107
107
  Component({
108
108
  selector: 'c8y-widgets-dashboard',
109
- template: "<c8y-title *ngIf=\"!!settings.title\">\n {{ settings.title | translate }}\n</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onAddWidget.observers.length\">\n <button\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n >\n <i c8yIcon=\"plus-circle\"></i> {{ 'Add widget' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onEditDashboard.observers.length\">\n <button\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onEditDashboard.emit()\"\n >\n <i c8yIcon=\"pencil\"></i> {{ 'Edit' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"settings.allowFullscreen\">\n <button class=\"btn btn-link\" (click)=\"toggleFullscreen()\">\n <i [c8yIcon]=\"fullScreen() ? 'compress' : 'expand'\"></i> {{ 'Full screen' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"navbar-form\"\n *ngIf=\"onFreeze.observers.length\"\n>\n <button\n title=\"{{ 'Lock/unlock this dashboard' | translate }}\"\n class=\"btn btn-default\"\n [ngClass]=\"{ active: settings.isFrozen }\"\n (click)=\"onFreeze.emit(settings)\"\n [disabled]=\"settings.isDisabled\"\n uib-btn-checkbox\n >\n <i [c8yIcon]=\"settings.isFrozen ? 'lock' : 'unlock'\"></i>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'more'\"\n [priority]=\"-3000\"\n *ngIf=\"settings.canDelete && onDeleteDashboard.observers.length\"\n>\n <button (click)=\"onDeleteDashboard.emit()\" [disabled]=\"settings.isFrozen || settings.isDisabled\">\n <i c8yIcon=\"trash\"></i>&nbsp;<span translate>Delete dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<!-- empty state -->\n<div class=\"c8y-empty-state text-center\" *ngIf=\"!settings.isLoading && widgets.length === 0\">\n <h1 class=\"c8y-icon c8y-icon-device c8y-icon-duocolor\"></h1>\n <h3 translate>No widgets to display.</h3>\n <div *ngIf=\"!settings.isFrozen && onAddWidget.observers.length\">\n <p translate>Add widgets to this dashboard.</p>\n <div>\n <button\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n class=\"btn btn-primary\"\n translate\n >\n Add widget\n </button>\n </div>\n <p c8y-guide-docs>\n <small translate\n >Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#dashboards\">User guide`KEEP_ORIGINAL`</a>.</small\n >\n </p>\n </div>\n</div>\n<!-- /.empty settings -->\n\n<div class=\"col-xs-12 text-center\" *ngIf=\"settings.isLoading\">\n <div class=\"spinner\" style=\"position: relative;\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n <div class=\"rect5\"></div>\n </div>\n</div>\n\n<c8y-dashboard\n (dashboardChange)=\"onChangeDashboard.emit($event)\"\n #dashboard\n *ngIf=\"!settings.isLoading\"\n>\n <c8y-dashboard-child\n *ngFor=\"let widget of widgets\"\n [x]=\"widget._x\"\n [y]=\"widget._y\"\n [width]=\"widget._width || settings.defaultWidth\"\n [height]=\"widget._height || settings.defaultHeight\"\n [margin]=\"settings.widgetMargin\"\n [isFrozen]=\"settings.isFrozen || settings.isDisabled\"\n [class]=\"widget.classes\"\n [data]=\"widget\"\n [useIntersection]=\"true\"\n (changeStart)=\"onChangeStart.emit({ widget: widget, source: child, dashboard: dashboard })\"\n (changeEnd)=\"onChangeEnd.emit({ widget: widget, source: child, dashboard: dashboard })\"\n #child\n >\n <c8y-dashboard-child-title>\n <span *ngIf=\"settings.translateWidgetTitle\"> {{ widget.title | translate }}</span>\n <span *ngIf=\"!settings.translateWidgetTitle\">\n {{ widget.title }}\n </span>\n </c8y-dashboard-child-title>\n <c8y-dashboard-child-action *ngIf=\"onEditWidget.observers.length\">\n <button (click)=\"onEditWidget.emit({ widget: widget, source: child, dashboard: dashboard })\">\n <i c8yIcon=\"pencil\"></i>&nbsp;<span translate>Edit</span>\n </button>\n </c8y-dashboard-child-action>\n <c8y-dashboard-child-action *ngIf=\"onDeleteWidget.observers.length\">\n <button\n (click)=\"onDeleteWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"trash\"></i>&nbsp;<span translate>Remove</span>\n </button>\n </c8y-dashboard-child-action>\n <c8y-dynamic-component\n [componentId]=\"widget.componentId || widget.name\"\n [config]=\"\n widget.templateUrl || widget.widgetComponent\n ? { child: widget, dashboard: contextDashboard, context: context }\n : widget.config\n \"\n *ngIf=\"child.intersected\"\n ></c8y-dynamic-component>\n </c8y-dashboard-child>\n</c8y-dashboard>\n",
109
+ template: "<c8y-title *ngIf=\"!!settings.title\">\n {{ settings.title | translate }}\n</c8y-title>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onAddWidget.observers.length\">\n <button\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n >\n <i c8yIcon=\"plus-circle\"></i> {{ 'Add widget' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"onEditDashboard.observers.length\">\n <button\n class=\"btn btn-link\"\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onEditDashboard.emit()\"\n >\n <i c8yIcon=\"pencil\"></i> {{ 'Edit' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item [placement]=\"'right'\" *ngIf=\"settings.allowFullscreen\">\n <button class=\"btn btn-link\" (click)=\"toggleFullscreen()\">\n <i [c8yIcon]=\"fullScreen() ? 'compress' : 'expand'\"></i> {{ 'Full screen' | translate }}\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'right'\"\n itemClass=\"navbar-form\"\n *ngIf=\"onFreeze.observers.length\"\n>\n <button\n title=\"{{ 'Lock/unlock this dashboard' | translate }}\"\n class=\"btn btn-default\"\n [ngClass]=\"{ active: settings.isFrozen }\"\n (click)=\"onFreeze.emit(settings)\"\n [disabled]=\"settings.isDisabled\"\n uib-btn-checkbox\n >\n <i [c8yIcon]=\"settings.isFrozen ? 'lock' : 'unlock'\"></i>\n </button>\n</c8y-action-bar-item>\n\n<c8y-action-bar-item\n [placement]=\"'more'\"\n [priority]=\"-3000\"\n *ngIf=\"settings.canDelete && onDeleteDashboard.observers.length\"\n>\n <button (click)=\"onDeleteDashboard.emit()\" [disabled]=\"settings.isFrozen || settings.isDisabled\">\n <i c8yIcon=\"trash\"></i>&nbsp;<span translate>Delete dashboard</span>\n </button>\n</c8y-action-bar-item>\n\n<!-- empty state -->\n<div class=\"c8y-empty-state text-center\" *ngIf=\"!settings.isLoading && widgets.length === 0\">\n <h1 class=\"c8y-icon c8y-icon-device c8y-icon-duocolor\"></h1>\n <h3 translate>No widgets to display.</h3>\n <div *ngIf=\"!settings.isFrozen && onAddWidget.observers.length\">\n <p translate>Add widgets to this dashboard.</p>\n <div>\n <button\n [disabled]=\"settings.isFrozen || settings.isDisabled\"\n (click)=\"onAddWidget.emit()\"\n class=\"btn btn-primary\"\n translate\n >\n Add widget\n </button>\n </div>\n <p c8y-guide-docs>\n <small forceHtmlTranslate ngNonBindable\n >Find out more in the\n <a c8y-guide-href=\"users-guide/cockpit/#dashboards\">User guide`KEEP_ORIGINAL`</a>.</small\n >\n </p>\n </div>\n</div>\n<!-- /.empty settings -->\n\n<div class=\"col-xs-12 text-center\" *ngIf=\"settings.isLoading\">\n <div class=\"spinner\" style=\"position: relative;\">\n <div class=\"rect1\"></div>\n <div class=\"rect2\"></div>\n <div class=\"rect3\"></div>\n <div class=\"rect4\"></div>\n <div class=\"rect5\"></div>\n </div>\n</div>\n\n<c8y-dashboard\n (dashboardChange)=\"onChangeDashboard.emit($event)\"\n #dashboard\n *ngIf=\"!settings.isLoading\"\n>\n <c8y-dashboard-child\n *ngFor=\"let widget of widgets\"\n [x]=\"widget._x\"\n [y]=\"widget._y\"\n [width]=\"widget._width || settings.defaultWidth\"\n [height]=\"widget._height || settings.defaultHeight\"\n [margin]=\"settings.widgetMargin\"\n [isFrozen]=\"settings.isFrozen || settings.isDisabled\"\n [class]=\"widget.classes\"\n [data]=\"widget\"\n [useIntersection]=\"true\"\n (changeStart)=\"onChangeStart.emit({ widget: widget, source: child, dashboard: dashboard })\"\n (changeEnd)=\"onChangeEnd.emit({ widget: widget, source: child, dashboard: dashboard })\"\n #child\n >\n <c8y-dashboard-child-title>\n <span *ngIf=\"settings.translateWidgetTitle\"> {{ widget.title | translate }}</span>\n <span *ngIf=\"!settings.translateWidgetTitle\">\n {{ widget.title }}\n </span>\n </c8y-dashboard-child-title>\n <c8y-dashboard-child-action *ngIf=\"onEditWidget.observers.length\">\n <button (click)=\"onEditWidget.emit({ widget: widget, source: child, dashboard: dashboard })\">\n <i c8yIcon=\"pencil\"></i>&nbsp;<span translate>Edit</span>\n </button>\n </c8y-dashboard-child-action>\n <c8y-dashboard-child-action *ngIf=\"onDeleteWidget.observers.length\">\n <button\n (click)=\"onDeleteWidget.emit({ widget: widget, source: child, dashboard: dashboard })\"\n >\n <i c8yIcon=\"trash\"></i>&nbsp;<span translate>Remove</span>\n </button>\n </c8y-dashboard-child-action>\n <c8y-dynamic-component\n [componentId]=\"widget.componentId || widget.name\"\n [config]=\"\n widget.templateUrl || widget.widgetComponent\n ? { child: widget, dashboard: contextDashboard, context: context }\n : widget.config\n \"\n *ngIf=\"child.intersected\"\n ></c8y-dynamic-component>\n </c8y-dashboard-child>\n</c8y-dashboard>\n",
110
110
  host: {
111
111
  style: `
112
112
  display: block;
@@ -116,4 +116,4 @@ WidgetsDashboardComponent = tslib_1.__decorate([
116
116
  })
117
117
  ], WidgetsDashboardComponent);
118
118
  export { WidgetsDashboardComponent };
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGM4eS9uZ3gtY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvcmUvZGFzaGJvYXJkL3dpZGdldHMtZGFzaGJvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFjdEYsSUFBYSx5QkFBeUIsR0FBdEMsTUFBYSx5QkFBeUI7SUFWdEM7UUF3QkUsYUFBUSxHQUFzQjtZQUM1QixRQUFRLEVBQUUsS0FBSztZQUNmLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLG9CQUFvQixFQUFFLEtBQUs7WUFDM0IsYUFBYSxFQUFFLENBQUM7WUFDaEIsWUFBWSxFQUFFLENBQUM7WUFDZixlQUFlLEVBQUUsS0FBSztZQUN0QixTQUFTLEVBQUUsSUFBSTtZQUNmLFNBQVMsRUFBRSxLQUFLO1NBQ2pCLENBQUM7UUFHRixnQkFBVyxHQUFxQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR25FLGlCQUFZLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHOUQsbUJBQWMsR0FBK0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdoRSxzQkFBaUIsR0FBa0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd0RSxvQkFBZSxHQUFxQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3ZFLHNCQUFpQixHQUFxQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3pFLGFBQVEsR0FBb0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUcvRCxrQkFBYSxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRy9ELGdCQUFXLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7SUFtQy9ELENBQUM7SUEzRUMsSUFBSSxTQUFTLENBQUMsUUFBb0M7UUFDaEQsSUFBSSxDQUFDLFFBQVEscUJBQVEsSUFBSSxDQUFDLFFBQVEsRUFBSyxRQUFRLENBQUUsQ0FBQztJQUNwRCxDQUFDO0lBd0NELGdCQUFnQjtRQUNkLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFXLENBQUM7UUFDbEMsTUFBTSxHQUFHLEdBQUcsUUFBZSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQzFCO2lCQUFNLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUNuQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzthQUM1QjtpQkFBTSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDN0I7aUJBQU0sSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBRSxPQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUNyRTtTQUNGO2FBQU0sSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFO1lBQzdCLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN0QjthQUFNLElBQUksR0FBRyxDQUFDLGdCQUFnQixFQUFFO1lBQy9CLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3hCO2FBQU0sSUFBSSxHQUFHLENBQUMsbUJBQW1CLEVBQUU7WUFDbEMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDM0I7YUFBTSxJQUFJLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRTtZQUNuQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxHQUFHLEdBQVEsUUFBUSxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxDQUFDLENBQ1AsR0FBRyxDQUFDLGlCQUFpQjtZQUNyQixHQUFHLENBQUMsb0JBQW9CO1lBQ3hCLEdBQUcsQ0FBQyx1QkFBdUI7WUFDM0IsR0FBRyxDQUFDLG1CQUFtQixDQUN4QixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUE7QUFwRkM7SUFEQyxLQUFLLEVBQUU7MERBQ1U7QUFHbEI7SUFEQyxLQUFLLEVBQUU7MERBQ0s7QUFHYjtJQURDLEtBQUssRUFBRTttRUFDYztBQUd0QjtJQURDLEtBQUssQ0FBQyxVQUFVLENBQUM7MERBR2pCO0FBY0Q7SUFEQyxNQUFNLEVBQUU7OERBQzBEO0FBR25FO0lBREMsTUFBTSxFQUFFOytEQUNxRDtBQUc5RDtJQURDLE1BQU0sRUFBRTtpRUFDdUQ7QUFHaEU7SUFEQyxNQUFNLEVBQUU7b0VBQzZEO0FBR3RFO0lBREMsTUFBTSxFQUFFO2tFQUM4RDtBQUd2RTtJQURDLE1BQU0sRUFBRTtvRUFDZ0U7QUFHekU7SUFEQyxNQUFNLEVBQUU7MkRBQ3NEO0FBRy9EO0lBREMsTUFBTSxFQUFFO2dFQUNzRDtBQUcvRDtJQURDLE1BQU0sRUFBRTs4REFDb0Q7QUFuRGxELHlCQUF5QjtJQVZyQyxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsdUJBQXVCO1FBQ2pDLG84SkFBaUQ7UUFDakQsSUFBSSxFQUFFO1lBQ0osS0FBSyxFQUFFOztLQUVOO1lBQ0QsS0FBSyxFQUFFLDhCQUE4QjtTQUN0QztLQUNGLENBQUM7R0FDVyx5QkFBeUIsQ0FzRnJDO1NBdEZZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZXR0aW5ncywgV2lkZ2V0LCBXaWRnZXRDaGFuZ2UsIERhc2hib2FyZENoYW5nZSB9IGZyb20gJy4vZGFzaGJvYXJkLm1vZGVsJztcbmltcG9ydCB7IERhc2hib2FyZENvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS13aWRnZXRzLWRhc2hib2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXRzLWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICBzdHlsZTogYFxuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgYCxcbiAgICBjbGFzczogJ2Rhc2hib2FyZCBjOHktZ3JpZC1kYXNoYm9hcmQnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0c0Rhc2hib2FyZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHdpZGdldHM6IFdpZGdldFtdO1xuXG4gIEBJbnB1dCgpXG4gIGNvbnRleHQ6IGFueTtcblxuICBASW5wdXQoKVxuICBjb250ZXh0RGFzaGJvYXJkOiBhbnk7XG5cbiAgQElucHV0KCdzZXR0aW5ncycpXG4gIHNldCBfc2V0dGluZ3Moc2V0dGluZ3M6IFBhcnRpYWw8RGFzaGJvYXJkU2V0dGluZ3M+KSB7XG4gICAgdGhpcy5zZXR0aW5ncyA9IHsgLi4udGhpcy5zZXR0aW5ncywgLi4uc2V0dGluZ3MgfTtcbiAgfVxuICBzZXR0aW5nczogRGFzaGJvYXJkU2V0dGluZ3MgPSB7XG4gICAgaXNGcm96ZW46IGZhbHNlLFxuICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxuICAgIHdpZGdldE1hcmdpbjogMTIsXG4gICAgdHJhbnNsYXRlV2lkZ2V0VGl0bGU6IGZhbHNlLFxuICAgIGRlZmF1bHRIZWlnaHQ6IDQsXG4gICAgZGVmYXVsdFdpZHRoOiA0LFxuICAgIGFsbG93RnVsbHNjcmVlbjogZmFsc2UsXG4gICAgY2FuRGVsZXRlOiB0cnVlLFxuICAgIGlzTG9hZGluZzogZmFsc2UsXG4gIH07XG5cbiAgQE91dHB1dCgpXG4gIG9uQWRkV2lkZ2V0OiBFdmVudEVtaXR0ZXI8RGFzaGJvYXJkQ29tcG9uZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb25FZGl0V2lkZ2V0OiBFdmVudEVtaXR0ZXI8V2lkZ2V0Q2hhbmdlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb25EZWxldGVXaWRnZXQ6IEV2ZW50RW1pdHRlcjxXaWRnZXRDaGFuZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNoYW5nZURhc2hib2FyZDogRXZlbnRFbWl0dGVyPERhc2hib2FyZENoYW5nZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uRWRpdERhc2hib2FyZDogRXZlbnRFbWl0dGVyPERhc2hib2FyZENvbXBvbmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uRGVsZXRlRGFzaGJvYXJkOiBFdmVudEVtaXR0ZXI8RGFzaGJvYXJkQ29tcG9uZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb25GcmVlemU6IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRTZXR0aW5ncz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uQ2hhbmdlU3RhcnQ6IEV2ZW50RW1pdHRlcjxXaWRnZXRDaGFuZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNoYW5nZUVuZDogRXZlbnRFbWl0dGVyPFdpZGdldENoYW5nZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgdG9nZ2xlRnVsbHNjcmVlbigpIHtcbiAgICBjb25zdCBlbGVtID0gZG9jdW1lbnQuYm9keSBhcyBhbnk7XG4gICAgY29uc3QgZG9jID0gZG9jdW1lbnQgYXMgYW55O1xuICAgIGlmICghdGhpcy5mdWxsU2NyZWVuKCkpIHtcbiAgICAgIGlmIChlbGVtLnJlcXVlc3RGdWxsc2NyZWVuKSB7XG4gICAgICAgIGVsZW0ucmVxdWVzdEZ1bGxzY3JlZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoZWxlbS5tc1JlcXVlc3RGdWxsc2NyZWVuKSB7XG4gICAgICAgIGVsZW0ubXNSZXF1ZXN0RnVsbHNjcmVlbigpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtLm1velJlcXVlc3RGdWxsU2NyZWVuKSB7XG4gICAgICAgIGVsZW0ubW96UmVxdWVzdEZ1bGxTY3JlZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoZWxlbS53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbikge1xuICAgICAgICBlbGVtLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKChFbGVtZW50IGFzIGFueSkuQUxMT1dfS0VZQk9BUkRfSU5QVVQpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZG9jLmV4aXRGdWxsc2NyZWVuKSB7XG4gICAgICBkb2MuZXhpdEZ1bGxzY3JlZW4oKTtcbiAgICB9IGVsc2UgaWYgKGRvYy5tc0V4aXRGdWxsc2NyZWVuKSB7XG4gICAgICBkb2MubXNFeGl0RnVsbHNjcmVlbigpO1xuICAgIH0gZWxzZSBpZiAoZG9jLm1vekNhbmNlbEZ1bGxTY3JlZW4pIHtcbiAgICAgIGRvYy5tb3pDYW5jZWxGdWxsU2NyZWVuKCk7XG4gICAgfSBlbHNlIGlmIChkb2Mud2Via2l0RXhpdEZ1bGxzY3JlZW4pIHtcbiAgICAgIGRvYy53ZWJraXRFeGl0RnVsbHNjcmVlbigpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bGxTY3JlZW4oKSB7XG4gICAgY29uc3QgZG9jOiBhbnkgPSBkb2N1bWVudDtcbiAgICByZXR1cm4gISEoXG4gICAgICBkb2MuZnVsbHNjcmVlbkVsZW1lbnQgfHxcbiAgICAgIGRvYy5tb3pGdWxsU2NyZWVuRWxlbWVudCB8fFxuICAgICAgZG9jLndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50IHx8XG4gICAgICBkb2MubXNGdWxsc2NyZWVuRWxlbWVudFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lkZ2V0cy1kYXNoYm9hcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGM4eS9uZ3gtY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvcmUvZGFzaGJvYXJkL3dpZGdldHMtZGFzaGJvYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFjdEYsSUFBYSx5QkFBeUIsR0FBdEMsTUFBYSx5QkFBeUI7SUFWdEM7UUF3QkUsYUFBUSxHQUFzQjtZQUM1QixRQUFRLEVBQUUsS0FBSztZQUNmLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFlBQVksRUFBRSxFQUFFO1lBQ2hCLG9CQUFvQixFQUFFLEtBQUs7WUFDM0IsYUFBYSxFQUFFLENBQUM7WUFDaEIsWUFBWSxFQUFFLENBQUM7WUFDZixlQUFlLEVBQUUsS0FBSztZQUN0QixTQUFTLEVBQUUsSUFBSTtZQUNmLFNBQVMsRUFBRSxLQUFLO1NBQ2pCLENBQUM7UUFHRixnQkFBVyxHQUFxQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR25FLGlCQUFZLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7UUFHOUQsbUJBQWMsR0FBK0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdoRSxzQkFBaUIsR0FBa0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUd0RSxvQkFBZSxHQUFxQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3ZFLHNCQUFpQixHQUFxQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBR3pFLGFBQVEsR0FBb0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUcvRCxrQkFBYSxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRy9ELGdCQUFXLEdBQStCLElBQUksWUFBWSxFQUFFLENBQUM7SUFtQy9ELENBQUM7SUEzRUMsSUFBSSxTQUFTLENBQUMsUUFBb0M7UUFDaEQsSUFBSSxDQUFDLFFBQVEscUJBQVEsSUFBSSxDQUFDLFFBQVEsRUFBSyxRQUFRLENBQUUsQ0FBQztJQUNwRCxDQUFDO0lBd0NELGdCQUFnQjtRQUNkLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFXLENBQUM7UUFDbEMsTUFBTSxHQUFHLEdBQUcsUUFBZSxDQUFDO1FBQzVCLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUU7WUFDdEIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQzFCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2FBQzFCO2lCQUFNLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFO2dCQUNuQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzthQUM1QjtpQkFBTSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtnQkFDcEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7YUFDN0I7aUJBQU0sSUFBSSxJQUFJLENBQUMsdUJBQXVCLEVBQUU7Z0JBQ3ZDLElBQUksQ0FBQyx1QkFBdUIsQ0FBRSxPQUFlLENBQUMsb0JBQW9CLENBQUMsQ0FBQzthQUNyRTtTQUNGO2FBQU0sSUFBSSxHQUFHLENBQUMsY0FBYyxFQUFFO1lBQzdCLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUN0QjthQUFNLElBQUksR0FBRyxDQUFDLGdCQUFnQixFQUFFO1lBQy9CLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3hCO2FBQU0sSUFBSSxHQUFHLENBQUMsbUJBQW1CLEVBQUU7WUFDbEMsR0FBRyxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDM0I7YUFBTSxJQUFJLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRTtZQUNuQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsTUFBTSxHQUFHLEdBQVEsUUFBUSxDQUFDO1FBQzFCLE9BQU8sQ0FBQyxDQUFDLENBQ1AsR0FBRyxDQUFDLGlCQUFpQjtZQUNyQixHQUFHLENBQUMsb0JBQW9CO1lBQ3hCLEdBQUcsQ0FBQyx1QkFBdUI7WUFDM0IsR0FBRyxDQUFDLG1CQUFtQixDQUN4QixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUE7QUFwRkM7SUFEQyxLQUFLLEVBQUU7MERBQ1U7QUFHbEI7SUFEQyxLQUFLLEVBQUU7MERBQ0s7QUFHYjtJQURDLEtBQUssRUFBRTttRUFDYztBQUd0QjtJQURDLEtBQUssQ0FBQyxVQUFVLENBQUM7MERBR2pCO0FBY0Q7SUFEQyxNQUFNLEVBQUU7OERBQzBEO0FBR25FO0lBREMsTUFBTSxFQUFFOytEQUNxRDtBQUc5RDtJQURDLE1BQU0sRUFBRTtpRUFDdUQ7QUFHaEU7SUFEQyxNQUFNLEVBQUU7b0VBQzZEO0FBR3RFO0lBREMsTUFBTSxFQUFFO2tFQUM4RDtBQUd2RTtJQURDLE1BQU0sRUFBRTtvRUFDZ0U7QUFHekU7SUFEQyxNQUFNLEVBQUU7MkRBQ3NEO0FBRy9EO0lBREMsTUFBTSxFQUFFO2dFQUNzRDtBQUcvRDtJQURDLE1BQU0sRUFBRTs4REFDb0Q7QUFuRGxELHlCQUF5QjtJQVZyQyxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsdUJBQXVCO1FBQ2pDLDI5SkFBaUQ7UUFDakQsSUFBSSxFQUFFO1lBQ0osS0FBSyxFQUFFOztLQUVOO1lBQ0QsS0FBSyxFQUFFLDhCQUE4QjtTQUN0QztLQUNGLENBQUM7R0FDVyx5QkFBeUIsQ0FzRnJDO1NBdEZZLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXNoYm9hcmRTZXR0aW5ncywgV2lkZ2V0LCBXaWRnZXRDaGFuZ2UsIERhc2hib2FyZENoYW5nZSB9IGZyb20gJy4vZGFzaGJvYXJkLm1vZGVsJztcbmltcG9ydCB7IERhc2hib2FyZENvbXBvbmVudCB9IGZyb20gJy4vZGFzaGJvYXJkLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2M4eS13aWRnZXRzLWRhc2hib2FyZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93aWRnZXRzLWRhc2hib2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIGhvc3Q6IHtcbiAgICBzdHlsZTogYFxuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgYCxcbiAgICBjbGFzczogJ2Rhc2hib2FyZCBjOHktZ3JpZC1kYXNoYm9hcmQnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgV2lkZ2V0c0Rhc2hib2FyZENvbXBvbmVudCB7XG4gIEBJbnB1dCgpXG4gIHdpZGdldHM6IFdpZGdldFtdO1xuXG4gIEBJbnB1dCgpXG4gIGNvbnRleHQ6IGFueTtcblxuICBASW5wdXQoKVxuICBjb250ZXh0RGFzaGJvYXJkOiBhbnk7XG5cbiAgQElucHV0KCdzZXR0aW5ncycpXG4gIHNldCBfc2V0dGluZ3Moc2V0dGluZ3M6IFBhcnRpYWw8RGFzaGJvYXJkU2V0dGluZ3M+KSB7XG4gICAgdGhpcy5zZXR0aW5ncyA9IHsgLi4udGhpcy5zZXR0aW5ncywgLi4uc2V0dGluZ3MgfTtcbiAgfVxuICBzZXR0aW5nczogRGFzaGJvYXJkU2V0dGluZ3MgPSB7XG4gICAgaXNGcm96ZW46IGZhbHNlLFxuICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxuICAgIHdpZGdldE1hcmdpbjogMTIsXG4gICAgdHJhbnNsYXRlV2lkZ2V0VGl0bGU6IGZhbHNlLFxuICAgIGRlZmF1bHRIZWlnaHQ6IDQsXG4gICAgZGVmYXVsdFdpZHRoOiA0LFxuICAgIGFsbG93RnVsbHNjcmVlbjogZmFsc2UsXG4gICAgY2FuRGVsZXRlOiB0cnVlLFxuICAgIGlzTG9hZGluZzogZmFsc2UsXG4gIH07XG5cbiAgQE91dHB1dCgpXG4gIG9uQWRkV2lkZ2V0OiBFdmVudEVtaXR0ZXI8RGFzaGJvYXJkQ29tcG9uZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb25FZGl0V2lkZ2V0OiBFdmVudEVtaXR0ZXI8V2lkZ2V0Q2hhbmdlPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb25EZWxldGVXaWRnZXQ6IEV2ZW50RW1pdHRlcjxXaWRnZXRDaGFuZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNoYW5nZURhc2hib2FyZDogRXZlbnRFbWl0dGVyPERhc2hib2FyZENoYW5nZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uRWRpdERhc2hib2FyZDogRXZlbnRFbWl0dGVyPERhc2hib2FyZENvbXBvbmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uRGVsZXRlRGFzaGJvYXJkOiBFdmVudEVtaXR0ZXI8RGFzaGJvYXJkQ29tcG9uZW50PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgb25GcmVlemU6IEV2ZW50RW1pdHRlcjxEYXNoYm9hcmRTZXR0aW5ncz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIG9uQ2hhbmdlU3RhcnQ6IEV2ZW50RW1pdHRlcjxXaWRnZXRDaGFuZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNoYW5nZUVuZDogRXZlbnRFbWl0dGVyPFdpZGdldENoYW5nZT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgdG9nZ2xlRnVsbHNjcmVlbigpIHtcbiAgICBjb25zdCBlbGVtID0gZG9jdW1lbnQuYm9keSBhcyBhbnk7XG4gICAgY29uc3QgZG9jID0gZG9jdW1lbnQgYXMgYW55O1xuICAgIGlmICghdGhpcy5mdWxsU2NyZWVuKCkpIHtcbiAgICAgIGlmIChlbGVtLnJlcXVlc3RGdWxsc2NyZWVuKSB7XG4gICAgICAgIGVsZW0ucmVxdWVzdEZ1bGxzY3JlZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoZWxlbS5tc1JlcXVlc3RGdWxsc2NyZWVuKSB7XG4gICAgICAgIGVsZW0ubXNSZXF1ZXN0RnVsbHNjcmVlbigpO1xuICAgICAgfSBlbHNlIGlmIChlbGVtLm1velJlcXVlc3RGdWxsU2NyZWVuKSB7XG4gICAgICAgIGVsZW0ubW96UmVxdWVzdEZ1bGxTY3JlZW4oKTtcbiAgICAgIH0gZWxzZSBpZiAoZWxlbS53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbikge1xuICAgICAgICBlbGVtLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKChFbGVtZW50IGFzIGFueSkuQUxMT1dfS0VZQk9BUkRfSU5QVVQpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoZG9jLmV4aXRGdWxsc2NyZWVuKSB7XG4gICAgICBkb2MuZXhpdEZ1bGxzY3JlZW4oKTtcbiAgICB9IGVsc2UgaWYgKGRvYy5tc0V4aXRGdWxsc2NyZWVuKSB7XG4gICAgICBkb2MubXNFeGl0RnVsbHNjcmVlbigpO1xuICAgIH0gZWxzZSBpZiAoZG9jLm1vekNhbmNlbEZ1bGxTY3JlZW4pIHtcbiAgICAgIGRvYy5tb3pDYW5jZWxGdWxsU2NyZWVuKCk7XG4gICAgfSBlbHNlIGlmIChkb2Mud2Via2l0RXhpdEZ1bGxzY3JlZW4pIHtcbiAgICAgIGRvYy53ZWJraXRFeGl0RnVsbHNjcmVlbigpO1xuICAgIH1cbiAgfVxuXG4gIGZ1bGxTY3JlZW4oKSB7XG4gICAgY29uc3QgZG9jOiBhbnkgPSBkb2N1bWVudDtcbiAgICByZXR1cm4gISEoXG4gICAgICBkb2MuZnVsbHNjcmVlbkVsZW1lbnQgfHxcbiAgICAgIGRvYy5tb3pGdWxsU2NyZWVuRWxlbWVudCB8fFxuICAgICAgZG9jLndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50IHx8XG4gICAgICBkb2MubXNGdWxsc2NyZWVuRWxlbWVudFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
@@ -1,26 +1,91 @@
1
1
  import * as tslib_1 from "tslib";
2
- import { Component, ContentChildren } from '@angular/core';
2
+ import { Component, OnInit, ContentChildren, QueryList, ContentChild, AfterContentInit, ElementRef, Renderer2, OnDestroy } from '@angular/core';
3
3
  import { GuideHrefDirective } from './guide-href.directive';
4
4
  import { DocsService } from './docs.service';
5
+ import { ReplaySubject } from 'rxjs';
6
+ import { takeUntil } from 'rxjs/operators';
7
+ import { ForceHtmlTranslateDirective } from '../i18n/force-html-translate.directive';
5
8
  let GuideDocsComponent = class GuideDocsComponent {
6
- constructor(docs) {
9
+ constructor(docs, el, renderer) {
7
10
  this.docs = docs;
11
+ this.el = el;
12
+ this.renderer = renderer;
13
+ this.destroyed$ = new ReplaySubject(1);
8
14
  }
9
15
  ngOnInit() {
10
16
  this.baseUrl = this.docs.getBaseUrl();
11
17
  }
18
+ /**
19
+ * After content is initialized we subscribe for translation events, then we are able to modify
20
+ * anchor just as C8yGuideHrefDirective does.
21
+ */
22
+ ngAfterContentInit() {
23
+ if (this.translateDirective) {
24
+ this.translateDirective.htmlUpdateEvent
25
+ .pipe(takeUntil(this.destroyed$))
26
+ .subscribe(() => {
27
+ this.replaceAnchorAttributes();
28
+ });
29
+ }
30
+ else {
31
+ this.replaceAnchorAttributes();
32
+ }
33
+ }
34
+ /**
35
+ * Find and modify anchor elements
36
+ */
37
+ replaceAnchorAttributes() {
38
+ const anchors = this.findGuideAnchors(this.el.nativeElement);
39
+ anchors.forEach(a => {
40
+ const guideHref = `${this.baseUrl}/${a.getAttribute('c8y-guide-href')}`;
41
+ this.renderer.setAttribute(a, 'href', guideHref);
42
+ if (!a.hasAttribute('target')) {
43
+ this.renderer.setAttribute(a, 'target', '_blank');
44
+ }
45
+ });
46
+ }
47
+ /**
48
+ * Recursive function, returns array of Anchor elements inside HTMLElement.
49
+ */
50
+ findGuideAnchors(el) {
51
+ const isAnchor = () => el.nodeName === 'A';
52
+ const hasGuideHrefAttr = () => !!el.attributes.getNamedItem('c8y-guide-href');
53
+ const hasChildren = () => el.childNodes && el.childNodes.length > 0;
54
+ let result = [];
55
+ if (isAnchor() && hasGuideHrefAttr()) {
56
+ result.push(el);
57
+ }
58
+ else if (hasChildren()) {
59
+ el.childNodes.forEach((node) => {
60
+ const searchResult = this.findGuideAnchors(node);
61
+ if (searchResult) {
62
+ result = [...result, ...searchResult];
63
+ }
64
+ });
65
+ }
66
+ return result;
67
+ }
12
68
  ngAfterViewInit() {
13
69
  this.links.forEach(guide => {
14
70
  guide.baseHref = this.baseUrl;
15
71
  });
16
72
  }
73
+ ngOnDestroy() {
74
+ this.destroyed$.next(true);
75
+ this.destroyed$.complete();
76
+ }
17
77
  };
18
78
  GuideDocsComponent.ctorParameters = () => [
19
- { type: DocsService }
79
+ { type: DocsService },
80
+ { type: ElementRef },
81
+ { type: Renderer2 }
20
82
  ];
21
83
  tslib_1.__decorate([
22
84
  ContentChildren(GuideHrefDirective, { descendants: true })
23
85
  ], GuideDocsComponent.prototype, "links", void 0);
86
+ tslib_1.__decorate([
87
+ ContentChild(ForceHtmlTranslateDirective, { static: false })
88
+ ], GuideDocsComponent.prototype, "translateDirective", void 0);
24
89
  GuideDocsComponent = tslib_1.__decorate([
25
90
  Component({
26
91
  selector: '[c8y-guide-docs]',
@@ -28,4 +93,4 @@ GuideDocsComponent = tslib_1.__decorate([
28
93
  })
29
94
  ], GuideDocsComponent);
30
95
  export { GuideDocsComponent };
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZGUtZG9jcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYzh5L25neC1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29yZS9kb2NzL2d1aWRlLWRvY3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLGVBQWUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFNN0MsSUFBYSxrQkFBa0IsR0FBL0IsTUFBYSxrQkFBa0I7SUFJN0IsWUFBb0IsSUFBaUI7UUFBakIsU0FBSSxHQUFKLElBQUksQ0FBYTtJQUFHLENBQUM7SUFFekMsUUFBUTtRQUNOLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3pCLEtBQUssQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFBOztZQVgyQixXQUFXOztBQUZ1QjtJQUEzRCxlQUFlLENBQUMsa0JBQWtCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7aURBQXNDO0FBRnRGLGtCQUFrQjtJQUo5QixTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsa0JBQWtCO1FBQzVCLDhGQUEwQztLQUMzQyxDQUFDO0dBQ1csa0JBQWtCLENBZTlCO1NBZlksa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIENvbnRlbnRDaGlsZHJlbiwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHdWlkZUhyZWZEaXJlY3RpdmUgfSBmcm9tICcuL2d1aWRlLWhyZWYuZGlyZWN0aXZlJztcbmltcG9ydCB7IERvY3NTZXJ2aWNlIH0gZnJvbSAnLi9kb2NzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbYzh5LWd1aWRlLWRvY3NdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2d1aWRlLWRvY3MuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEd1aWRlRG9jc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGJhc2VVcmw6IHN0cmluZztcbiAgQENvbnRlbnRDaGlsZHJlbihHdWlkZUhyZWZEaXJlY3RpdmUsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgbGlua3M6IFF1ZXJ5TGlzdDxHdWlkZUhyZWZEaXJlY3RpdmU+O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZG9jczogRG9jc1NlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5iYXNlVXJsID0gdGhpcy5kb2NzLmdldEJhc2VVcmwoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxpbmtzLmZvckVhY2goZ3VpZGUgPT4ge1xuICAgICAgZ3VpZGUuYmFzZUhyZWYgPSB0aGlzLmJhc2VVcmw7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZGUtZG9jcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYzh5L25neC1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29yZS9kb2NzL2d1aWRlLWRvY3MuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixlQUFlLEVBQ2YsU0FBUyxFQUNULFlBQVksRUFDWixnQkFBZ0IsRUFDaEIsVUFBVSxFQUNWLFNBQVMsRUFBRSxTQUFTLEVBQ3JCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQU1yRixJQUFhLGtCQUFrQixHQUEvQixNQUFhLGtCQUFrQjtJQVk3QixZQUFvQixJQUFpQixFQUFVLEVBQWMsRUFBVSxRQUFtQjtRQUF0RSxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFGbEYsZUFBVSxHQUEyQixJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUyQixDQUFDO0lBRTlGLFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUMzQixJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZTtpQkFDcEMsSUFBSSxDQUFDLFNB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LEVBQUUsa0JBQWtCO1FBQzVCLDhGQUEwQztLQUMzQyxDQUFDO0dBQ1csa0JBQWtCLENBaUY5QjtTQWpGWSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIE9uSW5pdCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIENvbnRlbnRDaGlsZCxcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgRWxlbWVudFJlZixcbiAgUmVuZGVyZXIyLCBPbkRlc3Ryb3lcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHdWlkZUhyZWZEaXJlY3RpdmUgfSBmcm9tICcuL2d1aWRlLWhyZWYuZGlyZWN0aXZlJztcbmltcG9ydCB7IERvY3NTZXJ2aWNlIH0gZnJvbSAnLi9kb2NzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRm9yY2VIdG1sVHJhbnNsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi4vaTE4bi9mb3JjZS1odG1sLXRyYW5zbGF0ZS5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdbYzh5LWd1aWRlLWRvY3NdJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2d1aWRlLWRvY3MuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEd1aWRlRG9jc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCwgT25EZXN0cm95IHtcbiAgYmFzZVVybDogc3RyaW5nO1xuICBAQ29udGVudENoaWxkcmVuKEd1aWRlSHJlZkRpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBsaW5rczogUXVlcnlMaXN0PEd1aWRlSHJlZkRpcmVjdGl2ZT47XG5cbiAgLyoqXG4gICAqIFByb3ZpZGVzIGFjY2VzcyB0byB0cmFuc2xhdGUgZGlyZWN0aXZlLCBzbyBpdCBpcyBwb3NzaWJsZSB0byBhZGp1c3QgYW5jaG9yIGh0bWwgdGFncywgYWZ0ZXJcbiAgICogY29udGVudCBpcyB0cmFuc2xhdGVkLlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZChGb3JjZUh0bWxUcmFuc2xhdGVEaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KSB0cmFuc2xhdGVEaXJlY3RpdmU7XG5cbiAgcHJpdmF0ZSBkZXN0cm95ZWQkOiBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBkb2NzOiBEb2NzU2VydmljZSwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYmFzZVVybCA9IHRoaXMuZG9jcy5nZXRCYXNlVXJsKCk7XG4gIH1cblxuICAvKipcbiAgICogQWZ0ZXIgY29udGVudCBpcyBpbml0aWFsaXplZCB3ZSBzdWJzY3JpYmUgZm9yIHRyYW5zbGF0aW9uIGV2ZW50cywgdGhlbiB3ZSBhcmUgYWJsZSB0byBtb2RpZnlcbiAgICogYW5jaG9yIGp1c3QgYXMgQzh5R3VpZGVIcmVmRGlyZWN0aXZlIGRvZXMuXG4gICAqL1xuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYgKHRoaXMudHJhbnNsYXRlRGlyZWN0aXZlKSB7XG4gICAgICB0aGlzLnRyYW5zbGF0ZURpcmVjdGl2ZS5odG1sVXBkYXRlRXZlbnRcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMucmVwbGFjZUFuY2hvckF0dHJpYnV0ZXMoKTtcbiAgICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVwbGFjZUFuY2hvckF0dHJpYnV0ZXMoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRmluZCBhbmQgbW9kaWZ5IGFuY2hvciBlbGVtZW50c1xuICAgKi9cbiAgcmVwbGFjZUFuY2hvckF0dHJpYnV0ZXMoKSB7XG4gICAgY29uc3QgYW5jaG9ycyA9IHRoaXMuZmluZEd1aWRlQW5jaG9ycyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQpO1xuICAgIGFuY2hvcnMuZm9yRWFjaChhID0+IHtcbiAgICAgIGNvbnN0IGd1aWRlSHJlZiA9IGAke3RoaXMuYmFzZVVybH0vJHthLmdldEF0dHJpYnV0ZSgnYzh5LWd1aWRlLWhyZWYnKX1gO1xuICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoYSwgJ2hyZWYnLCBndWlkZUhyZWYpO1xuICAgICAgaWYgKCFhLmhhc0F0dHJpYnV0ZSgndGFyZ2V0JykpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoYSwgJ3RhcmdldCcsICdfYmxhbmsnKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWN1cnNpdmUgZnVuY3Rpb24sIHJldHVybnMgYXJyYXkgb2YgQW5jaG9yIGVsZW1lbnRzIGluc2lkZSBIVE1MRWxlbWVudC5cbiAgICovXG4gIGZpbmRHdWlkZUFuY2hvcnMoZWw6IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnRbXSB7XG4gICAgY29uc3QgaXNBbmNob3IgPSAoKSA9PiBlbC5ub2RlTmFtZSA9PT0gJ0EnO1xuICAgIGNvbnN0IGhhc0d1aWRlSHJlZkF0dHIgPSAoKSA9PiAhIWVsLmF0dHJpYnV0ZXMuZ2V0TmFtZWRJdGVtKCdjOHktZ3VpZGUtaHJlZicpO1xuICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gKCkgPT4gZWwuY2hpbGROb2RlcyAmJiBlbC5jaGlsZE5vZGVzLmxlbmd0aCA+IDA7XG5cbiAgICBsZXQgcmVzdWx0ID0gW107XG5cbiAgICBpZiAoaXNBbmNob3IoKSAmJiBoYXNHdWlkZUhyZWZBdHRyKCkpIHtcbiAgICAgIHJlc3VsdC5wdXNoKGVsKTtcbiAgICB9IGVsc2UgaWYgKGhhc0NoaWxkcmVuKCkpIHtcbiAgICAgIGVsLmNoaWxkTm9kZXMuZm9yRWFjaCgobm9kZTogSFRNTEVsZW1lbnQpID0+IHtcbiAgICAgICAgY29uc3Qgc2VhcmNoUmVzdWx0ID0gdGhpcy5maW5kR3VpZGVBbmNob3JzKG5vZGUpO1xuICAgICAgICBpZiAoc2VhcmNoUmVzdWx0KSB7XG4gICAgICAgICAgcmVzdWx0ID0gWy4uLnJlc3VsdCwgLi4uc2VhcmNoUmVzdWx0XTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5saW5rcy5mb3JFYWNoKGd1aWRlID0+IHtcbiAgICAgIGd1aWRlLmJhc2VIcmVmID0gdGhpcy5iYXNlVXJsO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5kZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -19,6 +19,7 @@ ValidationPattern.messages = {
19
19
  opcuaBrowsePath: gettext('Invalid OPC UA URI.'),
20
20
  password: gettext('Password must have at least 8 characters and no more than 32 and can only contain letters, numbers and following symbols: `~!@#$%^&*()_|+-=?;:\'",.<>{}[]\\/'),
21
21
  passwordConfirm: gettext('Passwords do not match.'),
22
+ passwordStrength: gettext('Password not good enough, password must be stronger (green).'),
22
23
  phoneNumber: gettext('Invalid phone number format. Only digits, spaces, slashes ("/") and dashes ("-") allowed.'),
23
24
  required: gettext('This field is required.'),
24
25
  tenantId: gettext('May contain lowercase letters, digits, hyphens and underscores. ' +
@@ -64,4 +65,4 @@ ValidationPattern.rules = {
64
65
  pattern: /^[^\\/$:+]*$/
65
66
  }
66
67
  };
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1wYXR0ZXJuLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGM4eS9uZ3gtY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvcmUvZm9ybXMvdmFsaWRhdGlvbi1wYXR0ZXJuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtDQUFrQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFTMUMsV0FBVztBQUNYLE1BQU0sT0FBTyxpQkFBaUI7SUEwRTVCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBVztRQUNwQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sT0FBMEIsQ0FBQztJQUNwQyxDQUFDOztBQTVFZSwwQkFBUSxHQUFHO0lBQ3pCLFFBQVEsRUFBRSxPQUFPLENBQUMscURBQXFELENBQUM7SUFDeEUsTUFBTSxFQUFFLE9BQU8sQ0FDYixnR0FBZ0c7UUFDOUYsb0dBQW9HLENBQ3ZHO0lBQ0QsS0FBSyxFQUFFLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQztJQUN4Qyx3QkFBd0IsRUFBRSxPQUFPLENBQy9CLHVFQUF1RSxDQUN4RTtJQUNELFVBQVUsRUFBRSxPQUFPLENBQ2pCLGlGQUFpRixDQUNsRjtJQUNELEdBQUcsRUFBRyxPQUFPLENBQUMsd0JBQXdCLENBQUM7SUFDdkMsR0FBRyxFQUFHLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQztJQUN2QyxlQUFlLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDO0lBQy9DLFFBQVEsRUFBRSxPQUFPLENBQ2YsOEpBQThKLENBQy9KO0lBQ0QsZUFBZSxFQUFFLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztJQUNuRCxXQUFXLEVBQUUsT0FBTyxDQUNsQiwyRkFBMkYsQ0FDNUY7SUFDRCxRQUFRLEVBQUUsT0FBTyxDQUFDLHlCQUF5QixDQUFDO0lBQzVDLFFBQVEsRUFBRSxPQUFPLENBQ2Ysa0VBQWtFO1FBQ2hFLHFHQUFxRyxDQUN4RztJQUNELFVBQVUsRUFBRSxPQUFPLENBQUMsMERBQTBELENBQUM7SUFDL0UsSUFBSSxFQUFFLE9BQU8sQ0FDWCx5RkFBeUYsQ0FDMUY7Q0FDRixDQUFDO0FBRWMsdUJBQUssR0FBRztJQUN0QixRQUFRLEVBQUU7UUFDUixPQUFPLEVBQUUsV0FBVztLQUNyQjtJQUNELE1BQU0sRUFBRTtRQUNOLE9BQU8sRUFBRSxxQ0FBcUM7S0FDL0M7SUFDRCxTQUFTLEVBQUU7UUFDVCxTQUFTLEVBQUUsR0FBRztLQUNmO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsT0FBTyxFQUFFLDJHQUEyRztLQUNySDtJQUNELEVBQUUsRUFBRTtRQUNGLE9BQU8sRUFBRSw2RkFBNkY7S0FDdkc7SUFDRCxlQUFlLEVBQUU7UUFDZixPQUFPLEVBQUUsbUNBQW1DO0tBQzdDO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsT0FBTyxFQUFFLHdEQUF3RDtLQUNsRTtJQUNELFdBQVcsRUFBRTtRQUNYLE9BQU8sRUFBRSw4QkFBOEI7S0FDeEM7SUFDRCxRQUFRLEVBQUU7UUFDUixPQUFPLEVBQUUsOEJBQThCO0tBQ3hDO0lBQ0QsSUFBSSxFQUFFO1FBQ0osT0FBTyxFQUFFLGdCQUFnQjtLQUMxQjtJQUNELFVBQVUsRUFBRTtRQUNWLE9BQU8sRUFBRSwyRUFBMkU7S0FDckY7SUFDRCxVQUFVLEVBQUU7UUFDVixPQUFPLEVBQUUsY0FBYztLQUN4QjtDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyB0c2xpbnQ6ZGlzYWJsZTogbWF4LWxpbmUtbGVuZ3RoXG5pbXBvcnQgeyBnZXR0ZXh0IH0gZnJvbSAnLi4vaTE4bi9nZXR0ZXh0JztcblxuZXhwb3J0IGludGVyZmFjZSBWYWxpZGF0aW9uUnVsZXMge1xuICBwYXR0ZXJuPzogUmVnRXhwO1xuICBtZXNzYWdlPzogc3RyaW5nO1xuICBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIG1pbkxlbmd0aD86IG51bWJlcjtcbn1cblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uUGF0dGVybiB7XG4gIHN0YXRpYyByZWFkb25seSBtZXNzYWdlcyA9IHtcbiAgICBkZXZpY2VJZDogZ2V0dGV4dCgnRGV2aWNlIElEIG11c3Qgbm90IGNvbnRhaW4gc3BhY2VzIG9yIHNsYXNoZXMgKFwiL1wiKS4nKSxcbiAgICBkb21haW46IGdldHRleHQoXG4gICAgICAnT25seSBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzLCBoeXBoZW5zIGFuZCB1bmRlcnNjb3JlcyBhbGxvd2VkIGluIHRoZSBmaXJzdCBwYXJ0IG9mIHRoZSBVUkkuICcgK1xuICAgICAgICAnTXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyOyBoeXBoZW5zIGFuZCB1bmRlcnNjb3JlcyBvbmx5IGFsbG93ZWQgaW4gdGhlIG1pZGRsZS4gTXVzdCBiZSBhIHZhbGlkIFVSSS4nXG4gICAgKSxcbiAgICBlbWFpbDogZ2V0dGV4dCgnSW52YWxpZCBlbWFpbCBhZGRyZXNzLicpLFxuICAgIGludGVybmF0aW9uYWxQaG9uZU51bWJlcjogZ2V0dGV4dChcbiAgICAgICdJbnRlcm5hdGlvbmFsIHBob25lIG51bWJlciByZXF1aXJlZCwgaW4gdGhlIGZvcm1hdCArNDkgOSA4NzYgNTQzIDIxMC4nXG4gICAgKSxcbiAgICBsb2dpbkFsaWFzOiBnZXR0ZXh0KFxuICAgICAgJ0xvZ2luIGFsaWFzIG11c3Qgbm90IGNvbnRhaW4gc2xhc2hlcyAoXCIvXCIsIFwiXFxcXFwiKSBub3IgKFwiK1wiKSwgKFwiOlwiKSwgKFwiJFwiKSBzaWducy4nXG4gICAgKSxcbiAgICBtYXggOiBnZXR0ZXh0KCdNYXggdmFsdWU6IHt7IHZhbHVlIH19JyksXG4gICAgbWluIDogZ2V0dGV4dCgnTWluIHZhbHVlOiB7eyB2YWx1ZSB9fScpLFxuICAgIG9wY3VhQnJvd3NlUGF0aDogZ2V0dGV4dCgnSW52YWxpZCBPUEMgVUEgVVJJLicpLFxuICAgIHBhc3N3b3JkOiBnZXR0ZXh0KFxuICAgICAgJ1Bhc3N3b3JkIG11c3QgaGF2ZSBhdCBsZWFzdCA4IGNoYXJhY3RlcnMgYW5kIG5vIG1vcmUgdGhhbiAzMiBhbmQgY2FuIG9ubHkgY29udGFpbiBsZXR0ZXJzLCBudW1iZXJzIGFuZCBmb2xsb3dpbmcgc3ltYm9sczogYH4hQCMkJV4mKigpX3wrLT0/OzpcXCdcIiwuPD57fVtdXFxcXC8nXG4gICAgKSxcbiAgICBwYXNzd29yZENvbmZpcm06IGdldHRleHQoJ1Bhc3N3b3JkcyBkbyBub3QgbWF0Y2guJyksXG4gICAgcGhvbmVOdW1iZXI6IGdldHRleHQoXG4gICAgICAnSW52YWxpZCBwaG9uZSBudW1iZXIgZm9ybWF0LiBPbmx5IGRpZ2l0cywgc3BhY2VzLCBzbGFzaGVzIChcIi9cIikgYW5kIGRhc2hlcyAoXCItXCIpIGFsbG93ZWQuJ1xuICAgICksXG4gICAgcmVxdWlyZWQ6IGdldHRleHQoJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJyksXG4gICAgdGVuYW50SWQ6IGdldHRleHQoXG4gICAgICAnTWF5IGNvbnRhaW4gbG93ZXJjYXNlIGxldHRlcnMsIGRpZ2l0cywgaHlwaGVucyBhbmQgdW5kZXJzY29yZXMuICcgK1xuICAgICAgICAnTXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyOyBoeXBoZW5zIGFuZCB1bmRlcnNjb3JlcyBvbmx5IGFsbG93ZWQgaW4gdGhlIG1pZGRsZTsgbWluaW11bSAyIGNoYXJhY3RlcnMuJ1xuICAgICksXG4gICAgdXJsU2VnbWVudDogZ2V0dGV4dCgnU2xhc2gsIHNpbmdsZSBvciBkb3VibGUgZG90cyBhbmQgd2hpdGUgc3BhY2Ugbm90IGFsbG93ZWQnKSxcbiAgICB1c2VyOiBnZXR0ZXh0KFxuICAgICAgJ1VzZXJuYW1lIG11c3Qgbm90IGNvbnRhaW4gc3BhY2VzIG5vciBzbGFzaGVzIChcIi9cIiwgXCJcXFxcXCIpIG5vciAoXCIrXCIpLCAoXCI6XCIpLCAoXCIkXCIpIHNpZ25zLidcbiAgICApXG4gIH07XG5cbiAgc3RhdGljIHJlYWRvbmx5IHJ1bGVzID0ge1xuICAgIGRldmljZUlkOiB7XG4gICAgICBwYXR0ZXJuOiAvXlteXFxzL10qJC9cbiAgICB9LFxuICAgIGRvbWFpbjoge1xuICAgICAgcGF0dGVybjogL15bYS16XStbYS16MC05Xy1dKlthLXowLTldK1xcLnsxfS4rJC9cbiAgICB9LFxuICAgIGdyb3VwTmFtZToge1xuICAgICAgbWF4TGVuZ3RoOiAyNTRcbiAgICB9LFxuICAgIGhvc3RuYW1lOiB7XG4gICAgICBwYXR0ZXJuOiAvXigoW2EtekEtWjAtOV18W2EtekEtWjAtOV1bYS16QS1aMC05LV0qW2EtekEtWjAtOV0pXFwuKSooW0EtWmEtejAtOV18W0EtWmEtejAtOV1bQS1aYS16MC05LV0qW0EtWmEtejAtOV0pJC9cbiAgICB9LFxuICAgIGlwOiB7XG4gICAgICBwYXR0ZXJuOiAvXig/Oig/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPylcXC4pezN9KD86MjVbMC01XXwyWzAtNF1bMC05XXxbMDFdP1swLTldWzAtOV0/KSQvXG4gICAgfSxcbiAgICBvcGN1YUJyb3dzZVBhdGg6IHtcbiAgICAgIHBhdHRlcm46IC9eKG9wYy50Y3B8aHR0cHxodHRwcyk6XFwvXFwvW14gXCJdKyQvXG4gICAgfSxcbiAgICBwYXNzd29yZDoge1xuICAgICAgcGF0dGVybjogL15bYS16QS1aMC05YH4hQCMkJV4mKigpX3wrXFwtPT87OidcIiwuPD57fVtcXF1cXFxcL117OCwzMn0kL1xuICAgIH0sXG4gICAgcGhvbmVOdW1iZXI6IHtcbiAgICAgIHBhdHRlcm46IC9eJHxeKFxcK3wwezJ9KVtcXGRcXHMvLV17MSwzMH0kL1xuICAgIH0sXG4gICAgdGVuYW50SWQ6IHtcbiAgICAgIHBhdHRlcm46IC9eW2Etel0rW2EtejAtOV8tXSpbYS16MC05XSskL1xuICAgIH0sXG4gICAgdXNlcjoge1xuICAgICAgcGF0dGVybjogL15bXlxcXFwvXFxzJDorXSokL1xuICAgIH0sXG4gICAgdXJsU2VnbWVudDoge1xuICAgICAgcGF0dGVybjogL14oKFsuXXsxLDJ9KXwoWy9dKSt8KChbL10qKShbLl17MSwyfSkoWy9dKikpfCgoLiopKFsvXXxbIF0rKSguKikpfChcXHMrKSkkL1xuICAgIH0sXG4gICAgbG9naW5BbGlhczoge1xuICAgICAgcGF0dGVybjogL15bXlxcXFwvJDorXSokL1xuICAgIH1cbiAgfTtcblxuICBzdGF0aWMgZ2V0KGtleTogc3RyaW5nKSB7XG4gICAgY29uc3QgcGF0dGVybiA9IHRoaXMucnVsZXNba2V5XTtcbiAgICByZXR1cm4gcGF0dGVybiBhcyBWYWxpZGF0aW9uUnVsZXM7XG4gIH1cbn1cbiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1wYXR0ZXJuLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGM4eS9uZ3gtY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvcmUvZm9ybXMvdmFsaWRhdGlvbi1wYXR0ZXJuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtDQUFrQztBQUNsQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFTMUMsV0FBVztBQUNYLE1BQU0sT0FBTyxpQkFBaUI7SUEyRTVCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBVztRQUNwQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sT0FBMEIsQ0FBQztJQUNwQyxDQUFDOztBQTdFZSwwQkFBUSxHQUFHO0lBQ3pCLFFBQVEsRUFBRSxPQUFPLENBQUMscURBQXFELENBQUM7SUFDeEUsTUFBTSxFQUFFLE9BQU8sQ0FDYixnR0FBZ0c7UUFDOUYsb0dBQW9HLENBQ3ZHO0lBQ0QsS0FBSyxFQUFFLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQztJQUN4Qyx3QkFBd0IsRUFBRSxPQUFPLENBQy9CLHVFQUF1RSxDQUN4RTtJQUNELFVBQVUsRUFBRSxPQUFPLENBQ2pCLGlGQUFpRixDQUNsRjtJQUNELEdBQUcsRUFBRyxPQUFPLENBQUMsd0JBQXdCLENBQUM7SUFDdkMsR0FBRyxFQUFHLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQztJQUN2QyxlQUFlLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDO0lBQy9DLFFBQVEsRUFBRSxPQUFPLENBQ2YsOEpBQThKLENBQy9KO0lBQ0QsZUFBZSxFQUFFLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztJQUNuRCxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsOERBQThELENBQUM7SUFDekYsV0FBVyxFQUFFLE9BQU8sQ0FDbEIsMkZBQTJGLENBQzVGO0lBQ0QsUUFBUSxFQUFFLE9BQU8sQ0FBQyx5QkFBeUIsQ0FBQztJQUM1QyxRQUFRLEVBQUUsT0FBTyxDQUNmLGtFQUFrRTtRQUNoRSxxR0FBcUcsQ0FDeEc7SUFDRCxVQUFVLEVBQUUsT0FBTyxDQUFDLDBEQUEwRCxDQUFDO0lBQy9FLElBQUksRUFBRSxPQUFPLENBQ1gseUZBQXlGLENBQzFGO0NBQ0YsQ0FBQztBQUVjLHVCQUFLLEdBQUc7SUFDdEIsUUFBUSxFQUFFO1FBQ1IsT0FBTyxFQUFFLFdBQVc7S0FDckI7SUFDRCxNQUFNLEVBQUU7UUFDTixPQUFPLEVBQUUscUNBQXFDO0tBQy9DO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsU0FBUyxFQUFFLEdBQUc7S0FDZjtJQUNELFFBQVEsRUFBRTtRQUNSLE9BQU8sRUFBRSwyR0FBMkc7S0FDckg7SUFDRCxFQUFFLEVBQUU7UUFDRixPQUFPLEVBQUUsNkZBQTZGO0tBQ3ZHO0lBQ0QsZUFBZSxFQUFFO1FBQ2YsT0FBTyxFQUFFLG1DQUFtQztLQUM3QztJQUNELFFBQVEsRUFBRTtRQUNSLE9BQU8sRUFBRSx3REFBd0Q7S0FDbEU7SUFDRCxXQUFXLEVBQUU7UUFDWCxPQUFPLEVBQUUsOEJBQThCO0tBQ3hDO0lBQ0QsUUFBUSxFQUFFO1FBQ1IsT0FBTyxFQUFFLDhCQUE4QjtLQUN4QztJQUNELElBQUksRUFBRTtRQUNKLE9BQU8sRUFBRSxnQkFBZ0I7S0FDMUI7SUFDRCxVQUFVLEVBQUU7UUFDVixPQUFPLEVBQUUsMkVBQTJFO0tBQ3JGO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsT0FBTyxFQUFFLGNBQWM7S0FDeEI7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6IG1heC1saW5lLWxlbmd0aFxuaW1wb3J0IHsgZ2V0dGV4dCB9IGZyb20gJy4uL2kxOG4vZ2V0dGV4dCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVmFsaWRhdGlvblJ1bGVzIHtcbiAgcGF0dGVybj86IFJlZ0V4cDtcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBtaW5MZW5ndGg/OiBudW1iZXI7XG59XG5cbi8vIEBkeW5hbWljXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvblBhdHRlcm4ge1xuICBzdGF0aWMgcmVhZG9ubHkgbWVzc2FnZXMgPSB7XG4gICAgZGV2aWNlSWQ6IGdldHRleHQoJ0RldmljZSBJRCBtdXN0IG5vdCBjb250YWluIHNwYWNlcyBvciBzbGFzaGVzIChcIi9cIikuJyksXG4gICAgZG9tYWluOiBnZXR0ZXh0KFxuICAgICAgJ09ubHkgbG93ZXJjYXNlIGxldHRlcnMsIGRpZ2l0cywgaHlwaGVucyBhbmQgdW5kZXJzY29yZXMgYWxsb3dlZCBpbiB0aGUgZmlyc3QgcGFydCBvZiB0aGUgVVJJLiAnICtcbiAgICAgICAgJ011c3Qgc3RhcnQgd2l0aCBhIGxldHRlcjsgaHlwaGVucyBhbmQgdW5kZXJzY29yZXMgb25seSBhbGxvd2VkIGluIHRoZSBtaWRkbGUuIE11c3QgYmUgYSB2YWxpZCBVUkkuJ1xuICAgICksXG4gICAgZW1haWw6IGdldHRleHQoJ0ludmFsaWQgZW1haWwgYWRkcmVzcy4nKSxcbiAgICBpbnRlcm5hdGlvbmFsUGhvbmVOdW1iZXI6IGdldHRleHQoXG4gICAgICAnSW50ZXJuYXRpb25hbCBwaG9uZSBudW1iZXIgcmVxdWlyZWQsIGluIHRoZSBmb3JtYXQgKzQ5IDkgODc2IDU0MyAyMTAuJ1xuICAgICksXG4gICAgbG9naW5BbGlhczogZ2V0dGV4dChcbiAgICAgICdMb2dpbiBhbGlhcyBtdXN0IG5vdCBjb250YWluIHNsYXNoZXMgKFwiL1wiLCBcIlxcXFxcIikgbm9yIChcIitcIiksIChcIjpcIiksIChcIiRcIikgc2lnbnMuJ1xuICAgICksXG4gICAgbWF4IDogZ2V0dGV4dCgnTWF4IHZhbHVlOiB7eyB2YWx1ZSB9fScpLFxuICAgIG1pbiA6IGdldHRleHQoJ01pbiB2YWx1ZToge3sgdmFsdWUgfX0nKSxcbiAgICBvcGN1YUJyb3dzZVBhdGg6IGdldHRleHQoJ0ludmFsaWQgT1BDIFVBIFVSSS4nKSxcbiAgICBwYXNzd29yZDogZ2V0dGV4dChcbiAgICAgICdQYXNzd29yZCBtdXN0IGhhdmUgYXQgbGVhc3QgOCBjaGFyYWN0ZXJzIGFuZCBubyBtb3JlIHRoYW4gMzIgYW5kIGNhbiBvbmx5IGNvbnRhaW4gbGV0dGVycywgbnVtYmVycyBhbmQgZm9sbG93aW5nIHN5bWJvbHM6IGB+IUAjJCVeJiooKV98Ky09Pzs6XFwnXCIsLjw+e31bXVxcXFwvJ1xuICAgICksXG4gICAgcGFzc3dvcmRDb25maXJtOiBnZXR0ZXh0KCdQYXNzd29yZHMgZG8gbm90IG1hdGNoLicpLFxuICAgIHBhc3N3b3JkU3RyZW5ndGg6IGdldHRleHQoJ1Bhc3N3b3JkIG5vdCBnb29kIGVub3VnaCwgcGFzc3dvcmQgbXVzdCBiZSBzdHJvbmdlciAoZ3JlZW4pLicpLFxuICAgIHBob25lTnVtYmVyOiBnZXR0ZXh0KFxuICAgICAgJ0ludmFsaWQgcGhvbmUgbnVtYmVyIGZvcm1hdC4gT25seSBkaWdpdHMsIHNwYWNlcywgc2xhc2hlcyAoXCIvXCIpIGFuZCBkYXNoZXMgKFwiLVwiKSBhbGxvd2VkLidcbiAgICApLFxuICAgIHJlcXVpcmVkOiBnZXR0ZXh0KCdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLicpLFxuICAgIHRlbmFudElkOiBnZXR0ZXh0KFxuICAgICAgJ01heSBjb250YWluIGxvd2VyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIGh5cGhlbnMgYW5kIHVuZGVyc2NvcmVzLiAnICtcbiAgICAgICAgJ011c3Qgc3RhcnQgd2l0aCBhIGxldHRlcjsgaHlwaGVucyBhbmQgdW5kZXJzY29yZXMgb25seSBhbGxvd2VkIGluIHRoZSBtaWRkbGU7IG1pbmltdW0gMiBjaGFyYWN0ZXJzLidcbiAgICApLFxuICAgIHVybFNlZ21lbnQ6IGdldHRleHQoJ1NsYXNoLCBzaW5nbGUgb3IgZG91YmxlIGRvdHMgYW5kIHdoaXRlIHNwYWNlIG5vdCBhbGxvd2VkJyksXG4gICAgdXNlcjogZ2V0dGV4dChcbiAgICAgICdVc2VybmFtZSBtdXN0IG5vdCBjb250YWluIHNwYWNlcyBub3Igc2xhc2hlcyAoXCIvXCIsIFwiXFxcXFwiKSBub3IgKFwiK1wiKSwgKFwiOlwiKSwgKFwiJFwiKSBzaWducy4nXG4gICAgKVxuICB9O1xuXG4gIHN0YXRpYyByZWFkb25seSBydWxlcyA9IHtcbiAgICBkZXZpY2VJZDoge1xuICAgICAgcGF0dGVybjogL15bXlxccy9dKiQvXG4gICAgfSxcbiAgICBkb21haW46IHtcbiAgICAgIHBhdHRlcm46IC9eW2Etel0rW2EtejAtOV8tXSpbYS16MC05XStcXC57MX0uKyQvXG4gICAgfSxcbiAgICBncm91cE5hbWU6IHtcbiAgICAgIG1heExlbmd0aDogMjU0XG4gICAgfSxcbiAgICBob3N0bmFtZToge1xuICAgICAgcGF0dGVybjogL14oKFthLXpBLVowLTldfFthLXpBLVowLTldW2EtekEtWjAtOS1dKlthLXpBLVowLTldKVxcLikqKFtBLVphLXowLTldfFtBLVphLXowLTldW0EtWmEtejAtOS1dKltBLVphLXowLTldKSQvXG4gICAgfSxcbiAgICBpcDoge1xuICAgICAgcGF0dGVybjogL14oPzooPzoyNVswLTVdfDJbMC00XVswLTldfFswMV0/WzAtOV1bMC05XT8pXFwuKXszfSg/OjI1WzAtNV18MlswLTRdWzAtOV18WzAxXT9bMC05XVswLTldPykkL1xuICAgIH0sXG4gICAgb3BjdWFCcm93c2VQYXRoOiB7XG4gICAgICBwYXR0ZXJuOiAvXihvcGMudGNwfGh0dHB8aHR0cHMpOlxcL1xcL1teIFwiXSskL1xuICAgIH0sXG4gICAgcGFzc3dvcmQ6IHtcbiAgICAgIHBhdHRlcm46IC9eW2EtekEtWjAtOWB+IUAjJCVeJiooKV98K1xcLT0/OzonXCIsLjw+e31bXFxdXFxcXC9dezgsMzJ9JC9cbiAgICB9LFxuICAgIHBob25lTnVtYmVyOiB7XG4gICAgICBwYXR0ZXJuOiAvXiR8XihcXCt8MHsyfSlbXFxkXFxzLy1dezEsMzB9JC9cbiAgICB9LFxuICAgIHRlbmFudElkOiB7XG4gICAgICBwYXR0ZXJuOiAvXlthLXpdK1thLXowLTlfLV0qW2EtejAtOV0rJC9cbiAgICB9LFxuICAgIHVzZXI6IHtcbiAgICAgIHBhdHRlcm46IC9eW15cXFxcL1xccyQ6K10qJC9cbiAgICB9LFxuICAgIHVybFNlZ21lbnQ6IHtcbiAgICAgIHBhdHRlcm46IC9eKChbLl17MSwyfSl8KFsvXSkrfCgoWy9dKikoWy5dezEsMn0pKFsvXSopKXwoKC4qKShbL118WyBdKykoLiopKXwoXFxzKykpJC9cbiAgICB9LFxuICAgIGxvZ2luQWxpYXM6IHtcbiAgICAgIHBhdHRlcm46IC9eW15cXFxcLyQ6K10qJC9cbiAgICB9XG4gIH07XG5cbiAgc3RhdGljIGdldChrZXk6IHN0cmluZykge1xuICAgIGNvbnN0IHBhdHRlcm4gPSB0aGlzLnJ1bGVzW2tleV07XG4gICAgcmV0dXJuIHBhdHRlcm4gYXMgVmFsaWRhdGlvblJ1bGVzO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,99 @@
1
+ import * as tslib_1 from "tslib";
2
+ import { DefaultLangChangeEvent, LangChangeEvent, TranslateService, TranslationChangeEvent } from '@ngx-translate/core';
3
+ import { AfterViewChecked, ChangeDetectorRef, Directive, ElementRef, EventEmitter, Input, OnDestroy } from '@angular/core';
4
+ import { isEqual } from 'lodash-es';
5
+ /**
6
+ * This is temporary fallback directive that is used to handle HTML blocks translation on maintenance versions
7
+ * in version 10.9.4 and later, this is replaced by default translate directive.
8
+ */
9
+ let ForceHtmlTranslateDirective = class ForceHtmlTranslateDirective {
10
+ constructor(translateService, element, _ref) {
11
+ this.translateService = translateService;
12
+ this.element = element;
13
+ this._ref = _ref;
14
+ /**
15
+ * Used to trigger events when html is replaced by directive.
16
+ */
17
+ this.htmlUpdateEvent = new EventEmitter();
18
+ // subscribe to onTranslationChange event, in case the translations of the current lang change
19
+ if (!this.onTranslationChangeSub) {
20
+ this.onTranslationChangeSub = this.translateService.onTranslationChange.subscribe((event) => {
21
+ if (event.lang === this.translateService.currentLang) {
22
+ this.checkNodes();
23
+ }
24
+ });
25
+ }
26
+ // subscribe to onLangChange event, in case the language changes
27
+ if (!this.onLangChangeSub) {
28
+ this.onLangChangeSub = this.translateService.onLangChange.subscribe((event) => {
29
+ this.checkNodes();
30
+ });
31
+ }
32
+ // subscribe to onDefaultLangChange event, in case the default language changes
33
+ if (!this.onDefaultLangChangeSub) {
34
+ this.onDefaultLangChangeSub = this.translateService.onDefaultLangChange.subscribe((event) => {
35
+ this.checkNodes();
36
+ });
37
+ }
38
+ }
39
+ set translateParams(params) {
40
+ if (!isEqual(this.currentParams, params)) {
41
+ this.currentParams = params;
42
+ this.checkNodes();
43
+ }
44
+ }
45
+ ngAfterViewChecked() {
46
+ this.checkNodes();
47
+ }
48
+ checkNodes() {
49
+ if (this.isLookupKeyMissing()) {
50
+ this.element.nativeElement.lookupKey = this.getLookupKey();
51
+ }
52
+ this.translateAndUpdateHtmlContent();
53
+ this.htmlUpdateEvent.emit();
54
+ }
55
+ ngOnDestroy() {
56
+ if (this.onLangChangeSub) {
57
+ this.onLangChangeSub.unsubscribe();
58
+ }
59
+ if (this.onDefaultLangChangeSub) {
60
+ this.onDefaultLangChangeSub.unsubscribe();
61
+ }
62
+ if (this.onTranslationChangeSub) {
63
+ this.onTranslationChangeSub.unsubscribe();
64
+ }
65
+ this.htmlUpdateEvent.complete();
66
+ }
67
+ /**
68
+ * Builds lookup key from innerHTML, removes comments (that might be added by Angular) and trims it.
69
+ */
70
+ getLookupKey() {
71
+ return this.element.nativeElement.innerHTML.replace(/<!--.*?-->/gs, '').trim();
72
+ }
73
+ isLookupKeyMissing() {
74
+ return !this.element.nativeElement.lookupKey;
75
+ }
76
+ lookupKeyExist() {
77
+ return this.element.nativeElement.lookupKey;
78
+ }
79
+ translateAndUpdateHtmlContent() {
80
+ if (this.lookupKeyExist()) {
81
+ this.element.nativeElement.innerHTML = this.translateService.instant(this.element.nativeElement.lookupKey, this.currentParams || {});
82
+ }
83
+ }
84
+ };
85
+ ForceHtmlTranslateDirective.ctorParameters = () => [
86
+ { type: TranslateService },
87
+ { type: ElementRef },
88
+ { type: ChangeDetectorRef }
89
+ ];
90
+ tslib_1.__decorate([
91
+ Input()
92
+ ], ForceHtmlTranslateDirective.prototype, "translateParams", null);
93
+ ForceHtmlTranslateDirective = tslib_1.__decorate([
94
+ Directive({
95
+ selector: '[forceHtmlTranslate]'
96
+ })
97
+ ], ForceHtmlTranslateDirective);
98
+ export { ForceHtmlTranslateDirective };
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yY2UtaHRtbC10cmFuc2xhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGM4eS9uZ3gtY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvcmUvaTE4bi9mb3JjZS1odG1sLXRyYW5zbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixzQkFBc0IsRUFDdkIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBQ0wsU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFFcEM7OztHQUdHO0FBSUgsSUFBYSwyQkFBMkIsR0FBeEMsTUFBYSwyQkFBMkI7SUFrQnRDLFlBQ1UsZ0JBQWtDLEVBQ2xDLE9BQW1CLEVBQ25CLElBQXVCO1FBRnZCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixTQUFJLEdBQUosSUFBSSxDQUFtQjtRQWZqQzs7V0FFRztRQUNILG9CQUFlLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFjN0QsOEZBQThGO1FBQzlGLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDaEMsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLENBQy9FLENBQUMsS0FBNkIsRUFBRSxFQUFFO2dCQUNoQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRTtvQkFDcEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2lCQUNuQjtZQUNILENBQUMsQ0FDRixDQUFD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Q0F1R3ZDO1NBdkdZLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERlZmF1bHRMYW5nQ2hhbmdlRXZlbnQsXG4gIExhbmdDaGFuZ2VFdmVudCxcbiAgVHJhbnNsYXRlU2VydmljZSxcbiAgVHJhbnNsYXRpb25DaGFuZ2VFdmVudFxufSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0NoZWNrZWQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveVxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbi8qKlxuICogVGhpcyBpcyB0ZW1wb3JhcnkgZmFsbGJhY2sgZGlyZWN0aXZlIHRoYXQgaXMgdXNlZCB0byBoYW5kbGUgSFRNTCBibG9ja3MgdHJhbnNsYXRpb24gb24gbWFpbnRlbmFuY2UgdmVyc2lvbnNcbiAqIGluIHZlcnNpb24gMTAuOS40IGFuZCBsYXRlciwgdGhpcyBpcyByZXBsYWNlZCBieSBkZWZhdWx0IHRyYW5zbGF0ZSBkaXJlY3RpdmUuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tmb3JjZUh0bWxUcmFuc2xhdGVdJ1xufSlcbmV4cG9ydCBjbGFzcyBGb3JjZUh0bWxUcmFuc2xhdGVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdDaGVja2VkLCBPbkRlc3Ryb3kge1xuICBjdXJyZW50UGFyYW1zOiBhbnk7XG4gIG9uTGFuZ0NoYW5nZVN1YjogU3Vic2NyaXB0aW9uO1xuICBvbkRlZmF1bHRMYW5nQ2hhbmdlU3ViOiBTdWJzY3JpcHRpb247XG4gIG9uVHJhbnNsYXRpb25DaGFuZ2VTdWI6IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogVXNlZCB0byB0cmlnZ2VyIGV2ZW50cyB3aGVuIGh0bWwgaXMgcmVwbGFjZWQgYnkgZGlyZWN0aXZlLlxuICAgKi9cbiAgaHRtbFVwZGF0ZUV2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQElucHV0KCkgc2V0IHRyYW5zbGF0ZVBhcmFtcyhwYXJhbXM6IGFueSkge1xuICAgIGlmICghaXNFcXVhbCh0aGlzLmN1cnJlbnRQYXJhbXMsIHBhcmFtcykpIHtcbiAgICAgIHRoaXMuY3VycmVudFBhcmFtcyA9IHBhcmFtcztcbiAgICAgIHRoaXMuY2hlY2tOb2RlcygpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfcmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICAvLyBzdWJzY3JpYmUgdG8gb25UcmFuc2xhdGlvbkNoYW5nZSBldmVudCwgaW4gY2FzZSB0aGUgdHJhbnNsYXRpb25zIG9mIHRoZSBjdXJyZW50IGxhbmcgY2hhbmdlXG4gICAgaWYgKCF0aGlzLm9uVHJhbnNsYXRpb25DaGFuZ2VTdWIpIHtcbiAgICAgIHRoaXMub25UcmFuc2xhdGlvbkNoYW5nZVN1YiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5vblRyYW5zbGF0aW9uQ2hhbmdlLnN1YnNjcmliZShcbiAgICAgICAgKGV2ZW50OiBUcmFuc2xhdGlvbkNoYW5nZUV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LmxhbmcgPT09IHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZykge1xuICAgICAgICAgICAgdGhpcy5jaGVja05vZGVzKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIHN1YnNjcmliZSB0byBvbkxhbmdDaGFuZ2UgZXZlbnQsIGluIGNhc2UgdGhlIGxhbmd1YWdlIGNoYW5nZXNcbiAgICBpZiAoIXRoaXMub25MYW5nQ2hhbmdlU3ViKSB7XG4gICAgICB0aGlzLm9uTGFuZ0NoYW5nZVN1YiA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKFxuICAgICAgICAoZXZlbnQ6IExhbmdDaGFuZ2VFdmVudCkgPT4ge1xuICAgICAgICAgIHRoaXMuY2hlY2tOb2RlcygpO1xuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIHN1YnNjcmliZSB0byBvbkRlZmF1bHRMYW5nQ2hhbmdlIGV2ZW50LCBpbiBjYXNlIHRoZSBkZWZhdWx0IGxhbmd1YWdlIGNoYW5nZXNcbiAgICBpZiAoIXRoaXMub25EZWZhdWx0TGFuZ0NoYW5nZVN1Yikge1xuICAgICAgdGhpcy5vbkRlZmF1bHRMYW5nQ2hhbmdlU3ViID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLm9uRGVmYXVsdExhbmdDaGFuZ2Uuc3Vic2NyaWJlKFxuICAgICAgICAoZXZlbnQ6IERlZmF1bHRMYW5nQ2hhbmdlRXZlbnQpID0+IHtcbiAgICAgICAgICB0aGlzLmNoZWNrTm9kZXMoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0NoZWNrZWQoKSB7XG4gICAgdGhpcy5jaGVja05vZGVzKCk7XG4gIH1cblxuICBjaGVja05vZGVzKCkge1xuICAgIGlmICh0aGlzLmlzTG9va3VwS2V5TWlzc2luZygpKSB7XG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5sb29rdXBLZXkgPSB0aGlzLmdldExvb2t1cEtleSgpO1xuICAgIH1cbiAgICB0aGlzLnRyYW5zbGF0ZUFuZFVwZGF0ZUh0bWxDb250ZW50KCk7XG4gICAgdGhpcy5odG1sVXBkYXRlRXZlbnQuZW1pdCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMub25MYW5nQ2hhbmdlU3ViKSB7XG4gICAgICB0aGlzLm9uTGFuZ0NoYW5nZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9uRGVmYXVsdExhbmdDaGFuZ2VTdWIpIHtcbiAgICAgIHRoaXMub25EZWZhdWx0TGFuZ0NoYW5nZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9uVHJhbnNsYXRpb25DaGFuZ2VTdWIpIHtcbiAgICAgIHRoaXMub25UcmFuc2xhdGlvbkNoYW5nZVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICB0aGlzLmh0bWxVcGRhdGVFdmVudC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBsb29rdXAga2V5IGZyb20gaW5uZXJIVE1MLCByZW1vdmVzIGNvbW1lbnRzICh0aGF0IG1pZ2h0IGJlIGFkZGVkIGJ5IEFuZ3VsYXIpIGFuZCB0cmltcyBpdC5cbiAgICovXG4gIHByaXZhdGUgZ2V0TG9va3VwS2V5KCkge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUwucmVwbGFjZSgvPCEtLS4qPy0tPi9ncywgJycpLnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNMb29rdXBLZXlNaXNzaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQubG9va3VwS2V5O1xuICB9XG5cbiAgcHJpdmF0ZSBsb29rdXBLZXlFeGlzdCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQubG9va3VwS2V5O1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2xhdGVBbmRVcGRhdGVIdG1sQ29udGVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5sb29rdXBLZXlFeGlzdCgpKSB7XG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5pbm5lckhUTUwgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQubG9va3VwS2V5LFxuICAgICAgICB0aGlzLmN1cnJlbnRQYXJhbXMgfHwge31cbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -13,6 +13,7 @@ import { HOOK_PATTERN_MESSAGES } from './patterns-message.hook';
13
13
  import { TranslateCustomLoader } from './translate.loader';
14
14
  import { TranslateParserCustom } from './translate.parser';
15
15
  import { CachedLocaleDictionaryService } from './cached-locale-dictionary.service';
16
+ import { ForceHtmlTranslateDirective } from './force-html-translate.directive';
16
17
  // Load these as a side effect
17
18
  try {
18
19
  // tslint:disable:no-var-requires
@@ -86,9 +87,10 @@ let I18nModule = I18nModule_1 = class I18nModule {
86
87
  };
87
88
  I18nModule = I18nModule_1 = tslib_1.__decorate([
88
89
  NgModule({
89
- exports: [TranslateModule],
90
- imports: [HttpClientModule]
90
+ exports: [TranslateModule, ForceHtmlTranslateDirective],
91
+ imports: [HttpClientModule],
92
+ declarations: [ForceHtmlTranslateDirective]
91
93
  })
92
94
  ], I18nModule);
93
95
  export { I18nModule };
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYzh5L25neC1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29yZS9pMThuL2kxOG4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsZ0JBQWdCLElBQUksbUJBQW1CLEVBQ3ZDLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsVUFBVSxFQUNWLGdCQUFnQixFQUNqQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVuRiw4QkFBOEI7QUFDOUIsSUFBSTtJQUNGLGlDQUFp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QVU7WUFDcEIsU0FBUyxFQUFFLFlBQVUsQ0FBQyxTQUFTLEVBQUU7U0FDbEMsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFBO0FBL0JZLFVBQVU7SUFKdEIsUUFBUSxDQUFDO1FBQ1IsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO1FBQzFCLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO0tBQzVCLENBQUM7R0FDVyxVQUFVLENBK0J0QjtTQS9CWSxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IExPQ0FMRV9JRCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXIsXG4gIFRyYW5zbGF0ZVNlcnZpY2UgYXMgTmd4VHJhbnNsYXRlU2VydmljZSxcbiAgVHJhbnNsYXRlQ29tcGlsZXIsXG4gIFRyYW5zbGF0ZUZha2VDb21waWxlcixcbiAgVHJhbnNsYXRlTG9hZGVyLFxuICBUcmFuc2xhdGVNb2R1bGUsXG4gIFRyYW5zbGF0ZVBhcnNlcixcbiAgVHJhbnNsYXRlU3RvcmUsXG4gIFVTRV9ERUZBVUxUX0xBTkcsXG4gIFVTRV9TVE9SRSxcbiAgVVNFX0VYVEVORCxcbiAgREVGQVVMVF9MQU5HVUFHRVxufSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQXBwU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3VpLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTEFOR1VBR0VTIH0gZnJvbSAnLi9sYW5ndWFnZXMnO1xuaW1wb3J0IHsgTE9DQUxFX1BBVEggfSBmcm9tICcuL2xvY2FsZS5wYXRoJztcbmltcG9ydCB7IE1pc3NpbmdUcmFuc2xhdGlvbkN1c3RvbUhhbmRsZXIgfSBmcm9tICcuL21pc3NpbmctdHJhbnNsYXRpb24tY3VzdG9tLmhhbmRsZXInO1xuaW1wb3J0IHsgTUVTU0FHRVMgfSBmcm9tICcuL3BhdHRlcm4tbWVzc2FnZXMuZGF0YSc7XG5pbXBvcnQgeyBIT09LX1BBVFRFUk5fTUVTU0FHRVMgfSBmcm9tICcuL3BhdHRlcm5zLW1lc3NhZ2UuaG9vayc7XG5pbXBvcnQgeyBUcmFuc2xhdGVDdXN0b21Mb2FkZXIgfSBmcm9tICcuL3RyYW5zbGF0ZS5sb2FkZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGFyc2VyQ3VzdG9tIH0gZnJvbSAnLi90cmFuc2xhdGUucGFyc2VyJztcbmltcG9ydCB7IENhY2hlZExvY2FsZURpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi9jYWNoZWQtbG9jYWxlLWRpY3Rpb25hcnkuc2VydmljZSc7XG5cbi8vIExvYWQgdGhlc2UgYXMgYSBzaWRlIGVmZmVjdFxudHJ5IHtcbiAgLy8gdHNsaW50OmRpc2FibGU6bm8tdmFyLXJlcXVpcmVzXG4gIHJlcXVpcmUoJ0BjOHkvbmd4LWNvbXBvbmVudHMvbG9jYWxlcy9kZS5wbycpO1xuICByZXF1aXJlKCdAYzh5L25neC1jb21wb25lbnRzL2xvY2FsZXMvZW4ucG8nKTtcbiAgcmVxdWlyZSgnQGM4eS9uZ3gtY29tcG9uZW50cy9sb2NhbGVzL2VzLnBvJyk7XG4gIHJlcXVpcmUoJ0BjOHkvbmd4LWNvbXBvbmVudHMvbG9jYWxlcy9mci5wbycpO1xuICByZXF1aXJlKCdAYzh5L25neC1jb21wb25lbnRzL2xvY2FsZXMvamFfSlAucG8nKTtcbiAgIC8vIHRzbGludDplbmFibGU6bm8tdmFyLXJlcXVpcmVzXG59IGNhdGNoIChlKSB7XG4gIC8vIGVtcHR5IGJsb2NrXG59XG5cbi8vIEFvVCByZXF1aXJlcyBhbiBleHBvcnRlZCBmdW5jdGlvbiBmb3IgZmFjdG9yaWVzXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNsYXRlTG9hZGVyRmFjdG9yeShcbiAgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxuICBjYWNoZWRMb2NhbGVEaWN0aW9uYXJ5U2VydmljZTogQ2FjaGVkTG9jYWxlRGljdGlvbmFyeVNlcnZpY2UsXG4gIGxvY2FsZVBhdGg6IHN0cmluZyxcbiAgbGFuZ3VhZ2VzOiBhbnlcbikge1xuICByZXR1cm4gbmV3IFRyYW5zbGF0ZUN1c3RvbUxvYWRlcihodHRwQ2xpZW50LCBvcHRpb25zU2VydmljZSwgY2FjaGVkTG9jYWxlRGljdGlvbmFyeVNlcnZpY2UsIGxvY2FsZVBhdGgsIGxhbmd1YWdlcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbGVQYXRoRmFjdG9yeShvcHRpb25zOiBPcHRpb25zU2VydmljZSkge1xuICByZXR1cm4gb3B0aW9ucy5sb2NhbGVQYXRoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGFuZ3VhZ2VzRmFjdG9yeShvcHRpb25zOiBPcHRpb25zU2VydmljZSkge1xuICByZXR1cm4gb3B0aW9ucy5sYW5ndWFnZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbGVJZChhcHBTdGF0ZVNlcnZpY2U6IEFwcFN0YXRlU2VydmljZSkge1xuICByZXR1cm4ge1xuICAgIGdldCBsYW5nKCkge1xuICAgICAgcmV0dXJuIGFwcFN0YXRlU2VydmljZS5zdGF0ZS5sYW5nIHx8ICdlbic7XG4gICAgfSxcbiAgICB0b0xvd2VyQ2FzZSgpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhbmc7XG4gICAgfSxcbiAgICB0b1N0cmluZygpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhbmc7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIFRoZSBhbmd1bGFyIG1vZHVsZSBkZWZpbml0aW9uIGZvciBpMThuICh0cmFuc2xhdGlvbikuXG4gKiBAZXhwb3J0cyBJMThuTW9kdWxlXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtUcmFuc2xhdGVNb2R1bGVdLFxuICBpbXBvcnRzOiBbSHR0cENsaWVudE1vZHVsZV1cbn0pXG5leHBvcnQgY2xhc3MgSTE4bk1vZHVsZSB7XG4gIHN0YXRpYyBwcm92aWRlcnMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHsgcHJvdmlkZTogTE9DQUxFX0lELCB1c2VGYWN0b3J5OiBsb2NhbGVJZCwgZGVwczogW0FwcFN0YXRlU2VydmljZV0gfSxcbiAgICAgIHsgcHJvdmlkZTogSE9PS19QQVRURVJOX01FU1NBR0VTLCB1c2VWYWx1ZTogTUVTU0FHRVMsIG11bHRpOiB0cnVlIH0sXG4gICAgICB7IHByb3ZpZGU6IExPQ0FMRV9QQVRILCB1c2VGYWN0b3J5OiBsb2NhbGVQYXRoRmFjdG9yeSwgZGVwczogW09wdGlvbnNTZXJ2aWNlXSB9LFxuICAgICAgeyBwcm92aWRlOiBMQU5HVUFHRVMsIHVzZUZhY3Rvcnk6IGxhbmd1YWdlc0ZhY3RvcnksIGRlcHM6IFtPcHRpb25zU2VydmljZV0gfSxcblxuICAgICAgLy8gRXh0cmFjdGVkIGZyb20gcHJvamVjdHMvbmd4LXRyYW5zbGF0ZS9jb3JlL3NyYy9wdWJsaWNfYXBpLnRzXG4gICAgICB7XG4gICAgICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUxvYWRlcixcbiAgICAgICAgdXNlRmFjdG9yeTogdHJhbnNsYXRlTG9hZGVyRmFjdG9yeSxcbiAgICAgICAgZGVwczogW0h0dHBDbGllbnQsIE9wdGlvbnNTZXJ2aWNlLCBDYWNoZWRMb2NhbGVEaWN0aW9uYXJ5U2VydmljZSwgTE9DQUxFX1BBVEgsIExBTkdVQUdFU11cbiAgICAgIH0sXG4gICAgICB7IHByb3ZpZGU6IFRyYW5zbGF0ZUNvbXBpbGVyLCB1c2VDbGFzczogVHJhbnNsYXRlRmFrZUNvbXBpbGVyIH0sXG4gICAgICB7IHByb3ZpZGU6IFRyYW5zbGF0ZVBhcnNlciwgdXNlQ2xhc3M6IFRyYW5zbGF0ZVBhcnNlckN1c3RvbSB9LFxuICAgICAgeyBwcm92aWRlOiBNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyLCB1c2VDbGFzczogTWlzc2luZ1RyYW5zbGF0aW9uQ3VzdG9tSGFuZGxlciB9LFxuICAgICAgVHJhbnNsYXRlU3RvcmUsXG4gICAgICBOZ3hUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgeyBwcm92aWRlOiBVU0VfU1RPUkUsIHVzZVZhbHVlOiB1bmRlZmluZWQgfSxcbiAgICAgIHsgcHJvdmlkZTogVVNFX0RFRkFVTFRfTEFORywgdXNlVmFsdWU6IHVuZGVmaW5lZCB9LFxuICAgICAgeyBwcm92aWRlOiBVU0VfRVhURU5ELCB1c2VWYWx1ZTogZmFsc2UgfSxcbiAgICAgIHsgcHJvdmlkZTogREVGQVVMVF9MQU5HVUFHRSwgdXNlVmFsdWU6IHVuZGVmaW5lZCB9XG4gICAgXTtcbiAgfVxuICBzdGF0aWMgZm9yUm9vdCgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IEkxOG5Nb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IEkxOG5Nb2R1bGUucHJvdmlkZXJzKClcbiAgICB9O1xuICB9XG59XG4iXX0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5tb2R1bGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYzh5L25neC1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29yZS9pMThuL2kxOG4ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsZ0JBQWdCLElBQUksbUJBQW1CLEVBQ3ZDLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLGVBQWUsRUFDZixlQUFlLEVBQ2YsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsVUFBVSxFQUNWLGdCQUFnQixFQUNqQixNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxr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Q0QsTUFBTSxDQUFDLE9BQU87UUFDWixPQUFPO1lBQ0wsUUFBUSxFQUFFLFlBQVU7WUFDcEIsU0FBUyxFQUFFLFlBQVUsQ0FBQyxTQUFTLEVBQUU7U0FDbEMsQ0FBQztJQUNKLENBQUM7Q0FDRixDQUFBO0FBL0JZLFVBQVU7SUFMdEIsUUFBUSxDQUFDO1FBQ1IsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLDJCQUEyQixDQUFDO1FBQ3ZELE9BQU8sRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQzNCLFlBQVksRUFBRSxDQUFDLDJCQUEyQixDQUFDO0tBQzVDLENBQUM7R0FDVyxVQUFVLENBK0J0QjtTQS9CWSxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cENsaWVudE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IExPQ0FMRV9JRCwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIE1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXIsXG4gIFRyYW5zbGF0ZVNlcnZpY2UgYXMgTmd4VHJhbnNsYXRlU2VydmljZSxcbiAgVHJhbnNsYXRlQ29tcGlsZXIsXG4gIFRyYW5zbGF0ZUZha2VDb21waWxlcixcbiAgVHJhbnNsYXRlTG9hZGVyLFxuICBUcmFuc2xhdGVNb2R1bGUsXG4gIFRyYW5zbGF0ZVBhcnNlcixcbiAgVHJhbnNsYXRlU3RvcmUsXG4gIFVTRV9ERUZBVUxUX0xBTkcsXG4gIFVTRV9TVE9SRSxcbiAgVVNFX0VYVEVORCxcbiAgREVGQVVMVF9MQU5HVUFHRVxufSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IE9wdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgQXBwU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vY29tbW9uL3VpLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgTEFOR1VBR0VTIH0gZnJvbSAnLi9sYW5ndWFnZXMnO1xuaW1wb3J0IHsgTE9DQUxFX1BBVEggfSBmcm9tICcuL2xvY2FsZS5wYXRoJztcbmltcG9ydCB7IE1pc3NpbmdUcmFuc2xhdGlvbkN1c3RvbUhhbmRsZXIgfSBmcm9tICcuL21pc3NpbmctdHJhbnNsYXRpb24tY3VzdG9tLmhhbmRsZXInO1xuaW1wb3J0IHsgTUVTU0FHRVMgfSBmcm9tICcuL3BhdHRlcm4tbWVzc2FnZXMuZGF0YSc7XG5pbXBvcnQgeyBIT09LX1BBVFRFUk5fTUVTU0FHRVMgfSBmcm9tICcuL3BhdHRlcm5zLW1lc3NhZ2UuaG9vayc7XG5pbXBvcnQgeyBUcmFuc2xhdGVDdXN0b21Mb2FkZXIgfSBmcm9tICcuL3RyYW5zbGF0ZS5sb2FkZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGFyc2VyQ3VzdG9tIH0gZnJvbSAnLi90cmFuc2xhdGUucGFyc2VyJztcbmltcG9ydCB7IENhY2hlZExvY2FsZURpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi9jYWNoZWQtbG9jYWxlLWRpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBGb3JjZUh0bWxUcmFuc2xhdGVEaXJlY3RpdmUgfSBmcm9tICcuL2ZvcmNlLWh0bWwtdHJhbnNsYXRlLmRpcmVjdGl2ZSc7XG5cbi8vIExvYWQgdGhlc2UgYXMgYSBzaWRlIGVmZmVjdFxudHJ5IHtcbiAgLy8gdHNsaW50OmRpc2FibGU6bm8tdmFyLXJlcXVpcmVzXG4gIHJlcXVpcmUoJ0BjOHkvbmd4LWNvbXBvbmVudHMvbG9jYWxlcy9kZS5wbycpO1xuICByZXF1aXJlKCdAYzh5L25neC1jb21wb25lbnRzL2xvY2FsZXMvZW4ucG8nKTtcbiAgcmVxdWlyZSgnQGM4eS9uZ3gtY29tcG9uZW50cy9sb2NhbGVzL2VzLnBvJyk7XG4gIHJlcXVpcmUoJ0BjOHkvbmd4LWNvbXBvbmVudHMvbG9jYWxlcy9mci5wbycpO1xuICByZXF1aXJlKCdAYzh5L25neC1jb21wb25lbnRzL2xvY2FsZXMvamFfSlAucG8nKTtcbiAgIC8vIHRzbGludDplbmFibGU6bm8tdmFyLXJlcXVpcmVzXG59IGNhdGNoIChlKSB7XG4gIC8vIGVtcHR5IGJsb2NrXG59XG5cbi8vIEFvVCByZXF1aXJlcyBhbiBleHBvcnRlZCBmdW5jdGlvbiBmb3IgZmFjdG9yaWVzXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNsYXRlTG9hZGVyRmFjdG9yeShcbiAgaHR0cENsaWVudDogSHR0cENsaWVudCxcbiAgb3B0aW9uc1NlcnZpY2U6IE9wdGlvbnNTZXJ2aWNlLFxuICBjYWNoZWRMb2NhbGVEaWN0aW9uYXJ5U2VydmljZTogQ2FjaGVkTG9jYWxlRGljdGlvbmFyeVNlcnZpY2UsXG4gIGxvY2FsZVBhdGg6IHN0cmluZyxcbiAgbGFuZ3VhZ2VzOiBhbnlcbikge1xuICByZXR1cm4gbmV3IFRyYW5zbGF0ZUN1c3RvbUxvYWRlcihodHRwQ2xpZW50LCBvcHRpb25zU2VydmljZSwgY2FjaGVkTG9jYWxlRGljdGlvbmFyeVNlcnZpY2UsIGxvY2FsZVBhdGgsIGxhbmd1YWdlcyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbGVQYXRoRmFjdG9yeShvcHRpb25zOiBPcHRpb25zU2VydmljZSkge1xuICByZXR1cm4gb3B0aW9ucy5sb2NhbGVQYXRoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbGFuZ3VhZ2VzRmFjdG9yeShvcHRpb25zOiBPcHRpb25zU2VydmljZSkge1xuICByZXR1cm4gb3B0aW9ucy5sYW5ndWFnZXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2NhbGVJZChhcHBTdGF0ZVNlcnZpY2U6IEFwcFN0YXRlU2VydmljZSkge1xuICByZXR1cm4ge1xuICAgIGdldCBsYW5nKCkge1xuICAgICAgcmV0dXJuIGFwcFN0YXRlU2VydmljZS5zdGF0ZS5sYW5nIHx8ICdlbic7XG4gICAgfSxcbiAgICB0b0xvd2VyQ2FzZSgpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhbmc7XG4gICAgfSxcbiAgICB0b1N0cmluZygpIHtcbiAgICAgIHJldHVybiB0aGlzLmxhbmc7XG4gICAgfVxuICB9O1xufVxuXG4vKipcbiAqIFRoZSBhbmd1bGFyIG1vZHVsZSBkZWZpbml0aW9uIGZvciBpMThuICh0cmFuc2xhdGlvbikuXG4gKiBAZXhwb3J0cyBJMThuTW9kdWxlXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtUcmFuc2xhdGVNb2R1bGUsIEZvcmNlSHRtbFRyYW5zbGF0ZURpcmVjdGl2ZV0sXG4gIGltcG9ydHM6IFtIdHRwQ2xpZW50TW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbRm9yY2VIdG1sVHJhbnNsYXRlRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBJMThuTW9kdWxlIHtcbiAgc3RhdGljIHByb3ZpZGVycygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgeyBwcm92aWRlOiBMT0NBTEVfSUQsIHVzZUZhY3Rvcnk6IGxvY2FsZUlkLCBkZXBzOiBbQXBwU3RhdGVTZXJ2aWNlXSB9LFxuICAgICAgeyBwcm92aWRlOiBIT09LX1BBVFRFUk5fTUVTU0FHRVMsIHVzZVZhbHVlOiBNRVNTQUdFUywgbXVsdGk6IHRydWUgfSxcbiAgICAgIHsgcHJvdmlkZTogTE9DQUxFX1BBVEgsIHVzZUZhY3Rvcnk6IGxvY2FsZVBhdGhGYWN0b3J5LCBkZXBzOiBbT3B0aW9uc1NlcnZpY2VdIH0sXG4gICAgICB7IHByb3ZpZGU6IExBTkdVQUdFUywgdXNlRmFjdG9yeTogbGFuZ3VhZ2VzRmFjdG9yeSwgZGVwczogW09wdGlvbnNTZXJ2aWNlXSB9LFxuXG4gICAgICAvLyBFeHRyYWN0ZWQgZnJvbSBwcm9qZWN0cy9uZ3gtdHJhbnNsYXRlL2NvcmUvc3JjL3B1YmxpY19hcGkudHNcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogVHJhbnNsYXRlTG9hZGVyLFxuICAgICAgICB1c2VGYWN0b3J5OiB0cmFuc2xhdGVMb2FkZXJGYWN0b3J5LFxuICAgICAgICBkZXBzOiBbSHR0cENsaWVudCwgT3B0aW9uc1NlcnZpY2UsIENhY2hlZExvY2FsZURpY3Rpb25hcnlTZXJ2aWNlLCBMT0NBTEVfUEFUSCwgTEFOR1VBR0VTXVxuICAgICAgfSxcbiAgICAgIHsgcHJvdmlkZTogVHJhbnNsYXRlQ29tcGlsZXIsIHVzZUNsYXNzOiBUcmFuc2xhdGVGYWtlQ29tcGlsZXIgfSxcbiAgICAgIHsgcHJvdmlkZTogVHJhbnNsYXRlUGFyc2VyLCB1c2VDbGFzczogVHJhbnNsYXRlUGFyc2VyQ3VzdG9tIH0sXG4gICAgICB7IHByb3ZpZGU6IE1pc3NpbmdUcmFuc2xhdGlvbkhhbmRsZXIsIHVzZUNsYXNzOiBNaXNzaW5nVHJhbnNsYXRpb25DdXN0b21IYW5kbGVyIH0sXG4gICAgICBUcmFuc2xhdGVTdG9yZSxcbiAgICAgIE5neFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICB7IHByb3ZpZGU6IFVTRV9TVE9SRSwgdXNlVmFsdWU6IHVuZGVmaW5lZCB9LFxuICAgICAgeyBwcm92aWRlOiBVU0VfREVGQVVMVF9MQU5HLCB1c2VWYWx1ZTogdW5kZWZpbmVkIH0sXG4gICAgICB7IHByb3ZpZGU6IFVTRV9FWFRFTkQsIHVzZVZhbHVlOiBmYWxzZSB9LFxuICAgICAgeyBwcm92aWRlOiBERUZBVUxUX0xBTkdVQUdFLCB1c2VWYWx1ZTogdW5kZWZpbmVkIH1cbiAgICBdO1xuICB9XG4gIHN0YXRpYyBmb3JSb290KCkge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogSTE4bk1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogSTE4bk1vZHVsZS5wcm92aWRlcnMoKVxuICAgIH07XG4gIH1cbn1cbiJdfQ==