@wavemaker/app-ng-runtime 11.10.3-next.25128 → 11.10.3-rc.6079

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 (155) hide show
  1. package/components/basic/default/bundles/index.umd.js +68 -68
  2. package/components/basic/default/esm2022/anchor/anchor.component.mjs +18 -18
  3. package/components/basic/default/esm2022/icon/icon.component.mjs +13 -12
  4. package/components/basic/default/esm2022/iframe/iframe.component.mjs +10 -9
  5. package/components/basic/default/esm2022/spinner/spinner.component.mjs +21 -21
  6. package/components/basic/default/esm2022/video/video.component.mjs +15 -14
  7. package/components/basic/default/fesm2022/index.mjs +68 -68
  8. package/components/basic/default/fesm2022/index.mjs.map +1 -1
  9. package/components/basic/progress/bundles/index.umd.js +17 -16
  10. package/components/basic/progress/esm2022/progress-bar/progress-bar.component.mjs +8 -7
  11. package/components/basic/progress/fesm2022/index.mjs +9 -8
  12. package/components/basic/progress/fesm2022/index.mjs.map +1 -1
  13. package/components/basic/rich-text-editor/bundles/index.umd.js +12 -11
  14. package/components/basic/rich-text-editor/esm2022/rich-text-editor.component.mjs +9 -8
  15. package/components/basic/rich-text-editor/fesm2022/index.mjs +8 -7
  16. package/components/basic/rich-text-editor/fesm2022/index.mjs.map +1 -1
  17. package/components/basic/search/bundles/index.umd.js +67 -63
  18. package/components/basic/search/esm2022/search.component.mjs +67 -63
  19. package/components/basic/search/esm2022/search.module.mjs +2 -2
  20. package/components/basic/search/fesm2022/index.mjs +67 -63
  21. package/components/basic/search/fesm2022/index.mjs.map +1 -1
  22. package/components/chart/bundles/index.umd.js +17 -17
  23. package/components/chart/esm2022/chart.component.mjs +18 -18
  24. package/components/chart/fesm2022/index.mjs +17 -17
  25. package/components/chart/fesm2022/index.mjs.map +1 -1
  26. package/components/containers/panel/bundles/index.umd.js +39 -39
  27. package/components/containers/panel/esm2022/panel.component.mjs +40 -40
  28. package/components/containers/panel/fesm2022/index.mjs +39 -39
  29. package/components/containers/panel/fesm2022/index.mjs.map +1 -1
  30. package/components/containers/tabs/bundles/index.umd.js +29 -29
  31. package/components/containers/tabs/esm2022/tabs.component.mjs +30 -30
  32. package/components/containers/tabs/fesm2022/index.mjs +29 -29
  33. package/components/containers/tabs/fesm2022/index.mjs.map +1 -1
  34. package/components/containers/wizard/bundles/index.umd.js +49 -49
  35. package/components/containers/wizard/esm2022/wizard.component.mjs +50 -50
  36. package/components/containers/wizard/fesm2022/index.mjs +49 -49
  37. package/components/containers/wizard/fesm2022/index.mjs.map +1 -1
  38. package/components/data/card/bundles/index.umd.js +29 -29
  39. package/components/data/card/esm2022/card.component.mjs +30 -30
  40. package/components/data/card/fesm2022/index.mjs +29 -29
  41. package/components/data/card/fesm2022/index.mjs.map +1 -1
  42. package/components/data/form/bundles/index.umd.js +96 -91
  43. package/components/data/form/esm2022/form.component.mjs +97 -92
  44. package/components/data/form/fesm2022/index.mjs +96 -91
  45. package/components/data/form/fesm2022/index.mjs.map +1 -1
  46. package/components/data/list/bundles/index.umd.js +173 -171
  47. package/components/data/list/esm2022/list.component.mjs +173 -171
  48. package/components/data/list/esm2022/list.module.mjs +2 -2
  49. package/components/data/list/fesm2022/index.mjs +173 -171
  50. package/components/data/list/fesm2022/index.mjs.map +1 -1
  51. package/components/data/pagination/bundles/index.umd.js +32 -32
  52. package/components/data/pagination/esm2022/pagination.component.mjs +33 -33
  53. package/components/data/pagination/fesm2022/index.mjs +32 -32
  54. package/components/data/pagination/fesm2022/index.mjs.map +1 -1
  55. package/components/data/table/bundles/index.umd.js +38 -39
  56. package/components/data/table/esm2022/table.component.mjs +39 -40
  57. package/components/data/table/fesm2022/index.mjs +38 -39
  58. package/components/data/table/fesm2022/index.mjs.map +1 -1
  59. package/components/dialogs/default/bundles/index.umd.js +95 -66
  60. package/components/dialogs/default/esm2022/dialog-header/dialog-header.component.mjs +96 -67
  61. package/components/dialogs/default/fesm2022/index.mjs +95 -66
  62. package/components/dialogs/default/fesm2022/index.mjs.map +1 -1
  63. package/components/dialogs/design-dialog/bundles/index.umd.js +7 -7
  64. package/components/dialogs/design-dialog/esm2022/dialog.component.mjs +8 -8
  65. package/components/dialogs/design-dialog/fesm2022/index.mjs +7 -7
  66. package/components/dialogs/design-dialog/fesm2022/index.mjs.map +1 -1
  67. package/components/dialogs/iframe-dialog/bundles/index.umd.js +25 -24
  68. package/components/dialogs/iframe-dialog/esm2022/iframe-dialog.component.mjs +16 -15
  69. package/components/dialogs/iframe-dialog/fesm2022/index.mjs +15 -14
  70. package/components/dialogs/iframe-dialog/fesm2022/index.mjs.map +1 -1
  71. package/components/dialogs/partial-dialog/bundles/index.umd.js +8 -8
  72. package/components/dialogs/partial-dialog/esm2022/partial-dialog.component.mjs +9 -9
  73. package/components/dialogs/partial-dialog/fesm2022/index.mjs +8 -8
  74. package/components/dialogs/partial-dialog/fesm2022/index.mjs.map +1 -1
  75. package/components/input/chips/bundles/index.umd.js +21 -21
  76. package/components/input/chips/esm2022/chips.component.mjs +22 -22
  77. package/components/input/chips/fesm2022/index.mjs +21 -21
  78. package/components/input/chips/fesm2022/index.mjs.map +1 -1
  79. package/components/input/default/bundles/index.umd.js +209 -201
  80. package/components/input/default/esm2022/button/button.component.mjs +18 -18
  81. package/components/input/default/esm2022/checkboxset/checkboxset.component.mjs +69 -68
  82. package/components/input/default/esm2022/radioset/radioset.component.mjs +69 -68
  83. package/components/input/default/esm2022/select/select.component.mjs +27 -21
  84. package/components/input/default/esm2022/switch/switch.component.mjs +24 -24
  85. package/components/input/default/esm2022/textarea/textarea.component.mjs +8 -8
  86. package/components/input/default/fesm2022/index.mjs +209 -201
  87. package/components/input/default/fesm2022/index.mjs.map +1 -1
  88. package/components/input/epoch/bundles/index.umd.js +164 -171
  89. package/components/input/epoch/esm2022/date/date.component.mjs +15 -14
  90. package/components/input/epoch/esm2022/date-time/date-time-picker.component.mjs +59 -64
  91. package/components/input/epoch/esm2022/date-time/date-time.component.mjs +19 -18
  92. package/components/input/epoch/esm2022/picker/picker.component.mjs +25 -26
  93. package/components/input/epoch/esm2022/time/time.component.mjs +18 -17
  94. package/components/input/epoch/fesm2022/index.mjs +117 -124
  95. package/components/input/epoch/fesm2022/index.mjs.map +1 -1
  96. package/components/input/file-upload/bundles/index.umd.js +114 -111
  97. package/components/input/file-upload/esm2022/file-upload.component.mjs +115 -112
  98. package/components/input/file-upload/fesm2022/index.mjs +114 -111
  99. package/components/input/file-upload/fesm2022/index.mjs.map +1 -1
  100. package/components/input/rating/bundles/index.umd.js +14 -14
  101. package/components/input/rating/esm2022/rating.component.mjs +15 -15
  102. package/components/input/rating/fesm2022/index.mjs +14 -14
  103. package/components/input/rating/fesm2022/index.mjs.map +1 -1
  104. package/components/input/slider/bundles/index.umd.js +40 -39
  105. package/components/input/slider/esm2022/slider.component.mjs +11 -10
  106. package/components/input/slider/fesm2022/index.mjs +10 -9
  107. package/components/input/slider/fesm2022/index.mjs.map +1 -1
  108. package/components/navigation/breadcrumb/bundles/index.umd.js +15 -16
  109. package/components/navigation/breadcrumb/esm2022/breadcrumb.component.mjs +16 -17
  110. package/components/navigation/breadcrumb/fesm2022/index.mjs +15 -16
  111. package/components/navigation/breadcrumb/fesm2022/index.mjs.map +1 -1
  112. package/components/navigation/menu/bundles/index.umd.js +71 -69
  113. package/components/navigation/menu/esm2022/menu-dropdown/menu-dropdown.component.mjs +7 -7
  114. package/components/navigation/menu/esm2022/menu-dropdown-item/menu-dropdown-item.component.mjs +15 -15
  115. package/components/navigation/menu/esm2022/menu.component.mjs +26 -22
  116. package/components/navigation/menu/esm2022/menu.module.mjs +4 -4
  117. package/components/navigation/menu/esm2022/nav/nav.component.mjs +24 -26
  118. package/components/navigation/menu/fesm2022/index.mjs +71 -69
  119. package/components/navigation/menu/fesm2022/index.mjs.map +1 -1
  120. package/components/navigation/navbar/bundles/index.umd.js +12 -12
  121. package/components/navigation/navbar/esm2022/navbar.component.mjs +13 -13
  122. package/components/navigation/navbar/fesm2022/index.mjs +12 -12
  123. package/components/navigation/navbar/fesm2022/index.mjs.map +1 -1
  124. package/mobile/components/basic/default/bundles/index.umd.js +111 -102
  125. package/mobile/components/basic/default/esm2022/file-browser/file-browser.component.mjs +40 -39
  126. package/mobile/components/basic/default/esm2022/network-info-toaster/network-info-toaster.component.mjs +44 -35
  127. package/mobile/components/basic/default/esm2022/process-manager/process-manager.component.mjs +28 -27
  128. package/mobile/components/basic/default/fesm2022/index.mjs +107 -98
  129. package/mobile/components/basic/default/fesm2022/index.mjs.map +1 -1
  130. package/mobile/components/containers/segmented-control/bundles/index.umd.js +16 -16
  131. package/mobile/components/containers/segmented-control/esm2022/segment-content/segment-content.component.mjs +9 -8
  132. package/mobile/components/containers/segmented-control/esm2022/segmented-control.component.mjs +10 -10
  133. package/mobile/components/containers/segmented-control/fesm2022/index.mjs +16 -16
  134. package/mobile/components/containers/segmented-control/fesm2022/index.mjs.map +1 -1
  135. package/mobile/components/data/media-list/bundles/index.umd.js +28 -28
  136. package/mobile/components/data/media-list/esm2022/media-list.component.mjs +29 -29
  137. package/mobile/components/data/media-list/fesm2022/index.mjs +28 -28
  138. package/mobile/components/data/media-list/fesm2022/index.mjs.map +1 -1
  139. package/mobile/components/page/mobile-navbar/bundles/index.umd.js +29 -29
  140. package/mobile/components/page/mobile-navbar/esm2022/mobile-navbar.component.mjs +30 -30
  141. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs +29 -29
  142. package/mobile/components/page/mobile-navbar/fesm2022/index.mjs.map +1 -1
  143. package/mobile/components/page/tab-bar/bundles/index.umd.js +28 -28
  144. package/mobile/components/page/tab-bar/esm2022/tabbar.component.mjs +29 -29
  145. package/mobile/components/page/tab-bar/fesm2022/index.mjs +28 -28
  146. package/mobile/components/page/tab-bar/fesm2022/index.mjs.map +1 -1
  147. package/npm-shrinkwrap.json +2 -2
  148. package/package-lock.json +2 -2
  149. package/package.json +1 -1
  150. package/runtime/base/bundles/index.umd.js +215 -219
  151. package/runtime/base/esm2022/components/app-component/app.component.mjs +41 -38
  152. package/runtime/base/esm2022/components/app-spinner.component.mjs +21 -25
  153. package/runtime/base/esm2022/components/custom-toaster.component.mjs +16 -18
  154. package/runtime/base/fesm2022/index.mjs +95 -99
  155. package/runtime/base/fesm2022/index.mjs.map +1 -1
@@ -1,7 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Component, Attribute, Inject, Optional, ViewChild, NgModule } from '@angular/core';
3
+ import * as i1 from '@angular/common';
3
4
  import { CommonModule } from '@angular/common';
4
- import * as i1 from 'ng-circle-progress';
5
+ import * as i1$1 from 'ng-circle-progress';
5
6
  import { CircleProgressComponent, NgCircleProgressModule } from 'ng-circle-progress';
6
7
  import { register, PROP_STRING, PROP_ANY, PROP_NUMBER, PROP_BOOLEAN, StylableComponent, styler, provideAsWidgetRef, WmComponentsModule } from '@wm/components/base';
7
8
  import { findValueOf, isDefined } from '@wm/core';
@@ -50,7 +51,7 @@ const calculatePercent = (value, min = 0, max = 0) => {
50
51
  };
51
52
 
52
53
  const _c0$1 = ["wmProgressBar", ""];
53
- function ProgressBarComponent_For_1_Template(rf, ctx) { if (rf & 1) {
54
+ function ProgressBarComponent_div_0_Template(rf, ctx) { if (rf & 1) {
54
55
  i0.ɵɵelementStart(0, "div", 1)(1, "span", 2);
55
56
  i0.ɵɵtext(2);
56
57
  i0.ɵɵelementEnd()();
@@ -169,17 +170,17 @@ class ProgressBarComponent extends StylableComponent {
169
170
  static { this.ɵfac = function ProgressBarComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ProgressBarComponent)(i0.ɵɵdirectiveInject(i0.Injector), i0.ɵɵinjectAttribute('dataset'), i0.ɵɵinjectAttribute('dataset.bind'), i0.ɵɵdirectiveInject('EXPLICIT_CONTEXT', 8)); }; }
170
171
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ProgressBarComponent, selectors: [["", "wmProgressBar", ""]], features: [i0.ɵɵProvidersFeature([
171
172
  provideAsWidgetRef(ProgressBarComponent)
172
- ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0$1, decls: 2, vars: 0, consts: [["role", "progressbar", 3, "class", "width", "tabindex"], ["role", "progressbar", 3, "tabindex"], [1, "app-progress-label"]], template: function ProgressBarComponent_Template(rf, ctx) { if (rf & 1) {
173
- i0.ɵɵrepeaterCreate(0, ProgressBarComponent_For_1_Template, 3, 12, "div", 0, i0.ɵɵrepeaterTrackByIdentity);
173
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0$1, decls: 1, vars: 1, consts: [["role", "progressbar", 3, "class", "width", "tabindex", 4, "ngFor", "ngForOf"], ["role", "progressbar", 3, "tabindex"], [1, "app-progress-label"]], template: function ProgressBarComponent_Template(rf, ctx) { if (rf & 1) {
174
+ i0.ɵɵtemplate(0, ProgressBarComponent_div_0_Template, 3, 12, "div", 0);
174
175
  } if (rf & 2) {
175
- i0.ɵɵrepeater(ctx.data);
176
- } }, encapsulation: 2 }); }
176
+ i0.ɵɵproperty("ngForOf", ctx.data);
177
+ } }, dependencies: [i1.NgForOf], encapsulation: 2 }); }
177
178
  }
178
179
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProgressBarComponent, [{
179
180
  type: Component,
180
181
  args: [{ selector: '[wmProgressBar]', providers: [
181
182
  provideAsWidgetRef(ProgressBarComponent)
182
- ], template: "@for (bar of data; track bar) {\n <div class=\"multi-bar progress-bar {{bar.cls}}\" [style.width]=\"bar.progressBarWidth\"\n role=\"progressbar\" [attr.aria-valuenow]=\"datavalue\" [attr.aria-valuemin]=\"minvalue\" [attr.aria-valuemax]=\"maxvalue\"\n [attr.aria-label]=\"arialabel || 'Progress bar'\" [tabindex]=\"tabindex\">\n <span class=\"app-progress-label\" [attr.data-caption-placement]=\"captionplacement\">{{bar.displayValue}}</span>\n </div>\n}\n" }]
183
+ ], template: "<div class=\"multi-bar progress-bar {{bar.cls}}\" *ngFor=\"let bar of data\" [style.width]=\"bar.progressBarWidth\"\n role=\"progressbar\" [attr.aria-valuenow]=\"datavalue\" [attr.aria-valuemin]=\"minvalue\" [attr.aria-valuemax]=\"maxvalue\"\n [attr.aria-label]=\"arialabel || 'Progress bar'\" [tabindex]=\"tabindex\">\n <span class=\"app-progress-label\" [attr.data-caption-placement]=\"captionplacement\">{{bar.displayValue}}</span>\n</div>\n" }]
183
184
  }], () => [{ type: i0.Injector }, { type: undefined, decorators: [{
184
185
  type: Attribute,
185
186
  args: ['dataset']
@@ -318,7 +319,7 @@ class ProgressCircleComponent extends StylableComponent {
318
319
  i0.ɵɵelement(0, "circle-progress", 0);
319
320
  } if (rf & 2) {
320
321
  i0.ɵɵproperty("percent", ctx.percentagevalue)("options", ctx.options);
321
- } }, dependencies: [i1.CircleProgressComponent], encapsulation: 2 }); }
322
+ } }, dependencies: [i1$1.CircleProgressComponent], encapsulation: 2 }); }
322
323
  }
323
324
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ProgressCircleComponent, [{
324
325
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/basic/progress/src/progress-bar/progress-bar.props.ts","../../../../../projects/components/widgets/basic/progress/src/utils.ts","../../../../../projects/components/widgets/basic/progress/src/progress-bar/progress-bar.component.html","../../../../../projects/components/widgets/basic/progress/src/progress-bar/progress-bar.component.ts","../../../../../projects/components/widgets/basic/progress/src/progress-circle/progress-circle.props.ts","../../../../../projects/components/widgets/basic/progress/src/progress-circle/progress-circle.component.ts","../../../../../projects/components/widgets/basic/progress/src/progress-circle/progress-circle.component.html","../../../../../projects/components/widgets/basic/progress/src/progress.module.ts","../../../../../projects/components/widgets/basic/progress/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-progress-bar',\n new Map(\n [\n ['captionplacement', {value: 'hidden', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['displayformat', PROP_STRING],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', {value: 100, ...PROP_NUMBER}],\n ['minvalue', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'default', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {isNaN, isString} from \"lodash-es\";\n// This function returns the maximum number of decimal digits allowed.\nexport const getDecimalCount = (val: string) => {\n val = val || '9';\n val = val.replace(/\\%$/, '');\n\n const n = val.lastIndexOf('.');\n\n return (n === -1) ? 0 : (val.length - n - 1);\n};\n\n// returns true if the given value contains '%'\nexport const isPercentageValue = (val: string): boolean => {\n if (isString(val)) {\n val = val.trim();\n return val.charAt(val.length - 1) === '%';\n }\n return false;\n};\n\nexport const calculatePercent = (value: number , min: number = 0, max: number = 0): number => {\n const percent: number = ((value - min) / (max - min)) * 100;\n\n if (isNaN(percent)) {\n console.warn('Circle Progress Bar: One of the properties Min, Max or datavalue is not a valid number');\n return 0;\n }\n return Math.abs(percent);\n};\n","@for (bar of data; track bar) {\n <div class=\"multi-bar progress-bar {{bar.cls}}\" [style.width]=\"bar.progressBarWidth\"\n role=\"progressbar\" [attr.aria-valuenow]=\"datavalue\" [attr.aria-valuemin]=\"minvalue\" [attr.aria-valuemax]=\"maxvalue\"\n [attr.aria-label]=\"arialabel || 'Progress bar'\" [tabindex]=\"tabindex\">\n <span class=\"app-progress-label\" [attr.data-caption-placement]=\"captionplacement\">{{bar.displayValue}}</span>\n </div>\n}\n","import {Attribute, Component, Inject, Injector, Optional} from '@angular/core';\n\nimport {findValueOf, isDefined} from '@wm/core';\nimport {IWidgetConfig, provideAsWidgetRef, StylableComponent, styler} from '@wm/components/base';\n\nimport {registerProps} from './progress-bar.props';\nimport {getDecimalCount, isPercentageValue} from '../utils';\nimport {debounce, isArray} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'progress app-progress';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-progress-bar', hostClass: DEFAULT_CLS};\n\n// map of progress-bar type and classes\nexport const TYPE_CLASS_MAP = {\n 'default': '',\n 'default-striped': 'progress-bar-striped',\n 'success': 'progress-bar-success',\n 'success-striped': 'progress-bar-success progress-bar-striped',\n 'info': 'progress-bar-info',\n 'info-striped': 'progress-bar-info progress-bar-striped',\n 'warning': 'progress-bar-warning',\n 'warning-striped': 'progress-bar-warning progress-bar-striped',\n 'danger': 'progress-bar-danger',\n 'danger-striped': 'progress-bar-danger progress-bar-striped'\n};\n\n\n// interface for the progress-bar info\ninterface IProgressInfo {\n cls: string;\n progressBarWidth: string;\n displayValue: string;\n}\n\n@Component({\n selector: '[wmProgressBar]',\n templateUrl: './progress-bar.component.html',\n providers: [\n provideAsWidgetRef(ProgressBarComponent)\n ]\n})\nexport class ProgressBarComponent extends StylableComponent {\n static initializeProps = registerProps();\n\n public displayformat: string;\n public datavalue: string;\n public minvalue: number;\n public maxvalue: number;\n public type: string;\n public dataset: Array<any>;\n public hint: string;\n public arialabel: string;\n public tabindex: string;\n\n private _prepareData: Function;\n private readonly hasDataset: boolean;\n\n // progress-bar data, ngFor in the template iterates on this\n public data: Array<IProgressInfo> = [{\n cls: TYPE_CLASS_MAP.default,\n progressBarWidth: '0%',\n displayValue: '0'\n }];\n\n constructor(inj: Injector, @Attribute('dataset') dataset: string, @Attribute('dataset.bind') boundDataset: string, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n // flag which determines whether dataset is provided or not\n this.hasDataset = !!(dataset || boundDataset);\n\n styler(this.nativeElement, this);\n\n this._prepareData = debounce(() => this.prepareData(), 50);\n }\n\n // update the proper classes when there is a change in type\n protected onTypeChange() {\n if (!this.hasDataset) {\n if (this.data[0]) {\n this.data[0].cls = TYPE_CLASS_MAP[this.type];\n }\n }\n }\n\n // returns the formatted display value based on the provided displayformat\n protected getFormattedDisplayVal(val: string | number): string {\n const format = this.displayformat || '9';\n\n val = parseFloat('' + val);\n val = (val.toFixed(getDecimalCount(format)));\n\n if (format && format.includes('%')) {\n val = `${val}%`;\n }\n return val;\n }\n\n protected prepareData() {\n // when the dataset is provided, iterate over the dataset to set the proper values in the data\n if (this.dataset && isArray(this.dataset) && this.type && this.datavalue) {\n this.data = this.dataset.map((datum): IProgressInfo => {\n const val: string = findValueOf(datum, this.datavalue).toString();\n let percentVal = val;\n if (val && !val.includes('%')) {\n percentVal = `${val}%`;\n }\n return {\n cls: TYPE_CLASS_MAP[findValueOf(datum, this.type)],\n progressBarWidth: percentVal,\n displayValue: this.getFormattedDisplayVal(val)\n };\n });\n } else {\n // if the dataset is not provided, update the values in the default data\n let width: string | number = 0;\n let displayVal: string | number = 0;\n if (this.datavalue) {\n if (isPercentageValue(this.datavalue)) {\n const val = (this.datavalue || '0%');\n width = displayVal = val;\n } else {\n if (isDefined(this.datavalue)) {\n const denominator = (+this.maxvalue - +this.minvalue) || 1;\n const val = ((+this.datavalue - +this.minvalue) * 100) / denominator + '%';\n width = displayVal = val;\n }\n }\n }\n this.data[0].displayValue = this.getFormattedDisplayVal(displayVal as string);\n this.data[0].progressBarWidth = width as string;\n this.data[0].cls = TYPE_CLASS_MAP[this.type];\n\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'type') {\n this.onTypeChange();\n } else if (key === 'minvalue' || key === 'maxvalue' || key === 'datavalue' || key === 'dataset' || key === 'displayformat') {\n this._prepareData();\n } else if (key === 'tabindex') {\n return;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-progress-circle',\n new Map(\n [\n ['captionplacement', {value: 'inside', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavalue', {value: '30', ...PROP_STRING}],\n ['displayformat', {value: '9%', ...PROP_STRING}],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', {value: 100, ...PROP_NUMBER}],\n ['minvalue', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['subtitle', PROP_STRING],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', PROP_STRING],\n ['type', {value: 'default', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {AfterViewInit, Component, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport {CircleProgressComponent, CircleProgressOptionsInterface} from 'ng-circle-progress';\n\n\nimport {IRedrawableComponent, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler} from '@wm/components/base';\nimport {registerProps} from './progress-circle.props';\nimport {calculatePercent, getDecimalCount, isPercentageValue} from '../utils';\nimport {clone, debounce, extend} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'progress app-progress circle';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-progress-circle', hostClass: DEFAULT_CLS};\nconst DEFAULT_OPTIONS: CircleProgressOptionsInterface = {\n responsive: true,\n innerStrokeWidth: 10,\n outerStrokeWidth: 10,\n unitsFontSize: '15',\n space: -10,\n toFixed: 0,\n maxPercent: 100,\n showSubtitle: false,\n clockwise: true,\n startFromZero: false,\n renderOnClick: false,\n innerStrokeColor: '',\n outerStrokeColor: ''\n};\n\n// map of progress-bar type and classes\nexport const TYPE_CLASS_MAP_PC = {\n 'default': '',\n 'success': 'progress-circle-success',\n 'info': 'progress-circle-info',\n 'warning': 'progress-circle-warning',\n 'danger': 'progress-circle-danger',\n};\n\n\n\n@Component({\n selector: '[wmProgressCircle]',\n templateUrl: './progress-circle.component.html',\n providers: [\n provideAsWidgetRef(ProgressCircleComponent)\n ],\n exportAs: 'wmProgressCircle'\n})\nexport class ProgressCircleComponent extends StylableComponent implements AfterViewInit, IRedrawableComponent {\n static initializeProps = registerProps();\n\n public displayformat: string;\n public datavalue: string;\n public minvalue: number;\n public maxvalue: number;\n public type: string;\n public title: string;\n public subtitle: string;\n public captionplacement: string;\n public percentagevalue: number;\n public redraw: Function;\n public options: CircleProgressOptionsInterface;\n public hint: string;\n public arialabel: string;\n public displayValue: string;\n\n @ViewChild(CircleProgressComponent, { static: true }) circleRef: CircleProgressComponent;\n\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n this.options = clone(DEFAULT_OPTIONS);\n this.redraw = debounce(this._redraw, 100);\n }\n\n private _redraw () {\n this.circleRef.render();\n // Select the <tspan> element that contains the percentage value\n let tspanElement = $(this.nativeElement).find('svg text tspan:first');\n this.displayValue = this.options.showUnits ? tspanElement?.text() + '%' : tspanElement?.text();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n this.invokeEventCallback('beforerender', {'$event' : {}});\n this.options = Object.assign(this.circleRef.options, this.options);\n }\n\n getDefaultOptions() {\n return this.options;\n }\n\n getLib() {\n return 'ng-circle-progress';\n }\n\n overrideDefaults(options) {\n extend(this.options, options);\n }\n\n updateDisplayValueFormat() {\n // show title and subtitle only when captionplacement is 'inside'\n this.options.showTitle = this.options.showSubtitle = (this.captionplacement === 'inside');\n\n // show units when title value is empty and captionplacement is 'inside'\n this.options.showUnits = !this.title && this.options.showTitle && isPercentageValue(this.displayformat);\n this.options.toFixed = getDecimalCount(this.displayformat);\n\n if (this.options.showTitle) {\n this.options.title = this.title || 'auto';\n this.options.showSubtitle = !!this.subtitle;\n this.options.subtitle = this.subtitle || '';\n }\n this.redraw();\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n switch (key) {\n case 'type':\n this.$element.removeClass(TYPE_CLASS_MAP_PC[ov]);\n this.$element.addClass(TYPE_CLASS_MAP_PC[nv]);\n break;\n case 'minvalue':\n case 'maxvalue':\n case 'datavalue':\n if (isPercentageValue(this.datavalue)) {\n this.percentagevalue = parseFloat(this.datavalue);\n } else {\n this.percentagevalue = calculatePercent(parseFloat(this.datavalue), this.minvalue, this.maxvalue);\n }\n break;\n case 'displayformat':\n case 'captionplacement':\n case 'title':\n case 'subtitle':\n this.updateDisplayValueFormat();\n break;\n }\n super.onPropertyChange(key, nv, ov);\n }\n}\n","<circle-progress [percent]=\"percentagevalue\" [options]=\"options\"></circle-progress>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NgCircleProgressModule } from 'ng-circle-progress';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { ProgressBarComponent } from './progress-bar/progress-bar.component';\nimport { ProgressCircleComponent } from './progress-circle/progress-circle.component';\n\nconst components = [\n ProgressBarComponent,\n ProgressCircleComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n NgCircleProgressModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class ProgressModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG","_c0"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/basic/progress/src/progress-bar/progress-bar.props.ts","../../../../../projects/components/widgets/basic/progress/src/utils.ts","../../../../../projects/components/widgets/basic/progress/src/progress-bar/progress-bar.component.html","../../../../../projects/components/widgets/basic/progress/src/progress-bar/progress-bar.component.ts","../../../../../projects/components/widgets/basic/progress/src/progress-circle/progress-circle.props.ts","../../../../../projects/components/widgets/basic/progress/src/progress-circle/progress-circle.component.ts","../../../../../projects/components/widgets/basic/progress/src/progress-circle/progress-circle.component.html","../../../../../projects/components/widgets/basic/progress/src/progress.module.ts","../../../../../projects/components/widgets/basic/progress/src/index.ts"],"sourcesContent":["import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-progress-bar',\n new Map(\n [\n ['captionplacement', {value: 'hidden', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['displayformat', PROP_STRING],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', {value: 100, ...PROP_NUMBER}],\n ['minvalue', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['type', {value: 'default', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {isNaN, isString} from \"lodash-es\";\n// This function returns the maximum number of decimal digits allowed.\nexport const getDecimalCount = (val: string) => {\n val = val || '9';\n val = val.replace(/\\%$/, '');\n\n const n = val.lastIndexOf('.');\n\n return (n === -1) ? 0 : (val.length - n - 1);\n};\n\n// returns true if the given value contains '%'\nexport const isPercentageValue = (val: string): boolean => {\n if (isString(val)) {\n val = val.trim();\n return val.charAt(val.length - 1) === '%';\n }\n return false;\n};\n\nexport const calculatePercent = (value: number , min: number = 0, max: number = 0): number => {\n const percent: number = ((value - min) / (max - min)) * 100;\n\n if (isNaN(percent)) {\n console.warn('Circle Progress Bar: One of the properties Min, Max or datavalue is not a valid number');\n return 0;\n }\n return Math.abs(percent);\n};\n","<div class=\"multi-bar progress-bar {{bar.cls}}\" *ngFor=\"let bar of data\" [style.width]=\"bar.progressBarWidth\"\n role=\"progressbar\" [attr.aria-valuenow]=\"datavalue\" [attr.aria-valuemin]=\"minvalue\" [attr.aria-valuemax]=\"maxvalue\"\n [attr.aria-label]=\"arialabel || 'Progress bar'\" [tabindex]=\"tabindex\">\n <span class=\"app-progress-label\" [attr.data-caption-placement]=\"captionplacement\">{{bar.displayValue}}</span>\n</div>\n","import {Attribute, Component, Inject, Injector, Optional} from '@angular/core';\n\nimport {findValueOf, isDefined} from '@wm/core';\nimport {IWidgetConfig, provideAsWidgetRef, StylableComponent, styler} from '@wm/components/base';\n\nimport {registerProps} from './progress-bar.props';\nimport {getDecimalCount, isPercentageValue} from '../utils';\nimport {debounce, isArray} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'progress app-progress';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-progress-bar', hostClass: DEFAULT_CLS};\n\n// map of progress-bar type and classes\nexport const TYPE_CLASS_MAP = {\n 'default': '',\n 'default-striped': 'progress-bar-striped',\n 'success': 'progress-bar-success',\n 'success-striped': 'progress-bar-success progress-bar-striped',\n 'info': 'progress-bar-info',\n 'info-striped': 'progress-bar-info progress-bar-striped',\n 'warning': 'progress-bar-warning',\n 'warning-striped': 'progress-bar-warning progress-bar-striped',\n 'danger': 'progress-bar-danger',\n 'danger-striped': 'progress-bar-danger progress-bar-striped'\n};\n\n\n// interface for the progress-bar info\ninterface IProgressInfo {\n cls: string;\n progressBarWidth: string;\n displayValue: string;\n}\n\n@Component({\n selector: '[wmProgressBar]',\n templateUrl: './progress-bar.component.html',\n providers: [\n provideAsWidgetRef(ProgressBarComponent)\n ]\n})\nexport class ProgressBarComponent extends StylableComponent {\n static initializeProps = registerProps();\n\n public displayformat: string;\n public datavalue: string;\n public minvalue: number;\n public maxvalue: number;\n public type: string;\n public dataset: Array<any>;\n public hint: string;\n public arialabel: string;\n public tabindex: string;\n\n private _prepareData: Function;\n private readonly hasDataset: boolean;\n\n // progress-bar data, ngFor in the template iterates on this\n public data: Array<IProgressInfo> = [{\n cls: TYPE_CLASS_MAP.default,\n progressBarWidth: '0%',\n displayValue: '0'\n }];\n\n constructor(inj: Injector, @Attribute('dataset') dataset: string, @Attribute('dataset.bind') boundDataset: string, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n\n // flag which determines whether dataset is provided or not\n this.hasDataset = !!(dataset || boundDataset);\n\n styler(this.nativeElement, this);\n\n this._prepareData = debounce(() => this.prepareData(), 50);\n }\n\n // update the proper classes when there is a change in type\n protected onTypeChange() {\n if (!this.hasDataset) {\n if (this.data[0]) {\n this.data[0].cls = TYPE_CLASS_MAP[this.type];\n }\n }\n }\n\n // returns the formatted display value based on the provided displayformat\n protected getFormattedDisplayVal(val: string | number): string {\n const format = this.displayformat || '9';\n\n val = parseFloat('' + val);\n val = (val.toFixed(getDecimalCount(format)));\n\n if (format && format.includes('%')) {\n val = `${val}%`;\n }\n return val;\n }\n\n protected prepareData() {\n // when the dataset is provided, iterate over the dataset to set the proper values in the data\n if (this.dataset && isArray(this.dataset) && this.type && this.datavalue) {\n this.data = this.dataset.map((datum): IProgressInfo => {\n const val: string = findValueOf(datum, this.datavalue).toString();\n let percentVal = val;\n if (val && !val.includes('%')) {\n percentVal = `${val}%`;\n }\n return {\n cls: TYPE_CLASS_MAP[findValueOf(datum, this.type)],\n progressBarWidth: percentVal,\n displayValue: this.getFormattedDisplayVal(val)\n };\n });\n } else {\n // if the dataset is not provided, update the values in the default data\n let width: string | number = 0;\n let displayVal: string | number = 0;\n if (this.datavalue) {\n if (isPercentageValue(this.datavalue)) {\n const val = (this.datavalue || '0%');\n width = displayVal = val;\n } else {\n if (isDefined(this.datavalue)) {\n const denominator = (+this.maxvalue - +this.minvalue) || 1;\n const val = ((+this.datavalue - +this.minvalue) * 100) / denominator + '%';\n width = displayVal = val;\n }\n }\n }\n this.data[0].displayValue = this.getFormattedDisplayVal(displayVal as string);\n this.data[0].progressBarWidth = width as string;\n this.data[0].cls = TYPE_CLASS_MAP[this.type];\n\n }\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'type') {\n this.onTypeChange();\n } else if (key === 'minvalue' || key === 'maxvalue' || key === 'datavalue' || key === 'dataset' || key === 'displayformat') {\n this._prepareData();\n } else if (key === 'tabindex') {\n return;\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n}\n","import {PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n register(\n 'wm-progress-circle',\n new Map(\n [\n ['captionplacement', {value: 'inside', ...PROP_STRING}],\n ['class', PROP_STRING],\n ['dataset', PROP_ANY],\n ['datavalue', {value: '30', ...PROP_STRING}],\n ['displayformat', {value: '9%', ...PROP_STRING}],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['maxvalue', {value: 100, ...PROP_NUMBER}],\n ['minvalue', {value: 0, ...PROP_NUMBER}],\n ['name', PROP_STRING],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['subtitle', PROP_STRING],\n ['tabindex', {value: 0, ...PROP_NUMBER}],\n ['title', PROP_STRING],\n ['type', {value: 'default', ...PROP_STRING}]\n ]\n )\n );\n};\n","import {AfterViewInit, Component, Inject, Injector, Optional, ViewChild} from '@angular/core';\nimport {CircleProgressComponent, CircleProgressOptionsInterface} from 'ng-circle-progress';\n\n\nimport {IRedrawableComponent, IWidgetConfig, provideAsWidgetRef, StylableComponent, styler} from '@wm/components/base';\nimport {registerProps} from './progress-circle.props';\nimport {calculatePercent, getDecimalCount, isPercentageValue} from '../utils';\nimport {clone, debounce, extend} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'progress app-progress circle';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-progress-circle', hostClass: DEFAULT_CLS};\nconst DEFAULT_OPTIONS: CircleProgressOptionsInterface = {\n responsive: true,\n innerStrokeWidth: 10,\n outerStrokeWidth: 10,\n unitsFontSize: '15',\n space: -10,\n toFixed: 0,\n maxPercent: 100,\n showSubtitle: false,\n clockwise: true,\n startFromZero: false,\n renderOnClick: false,\n innerStrokeColor: '',\n outerStrokeColor: ''\n};\n\n// map of progress-bar type and classes\nexport const TYPE_CLASS_MAP_PC = {\n 'default': '',\n 'success': 'progress-circle-success',\n 'info': 'progress-circle-info',\n 'warning': 'progress-circle-warning',\n 'danger': 'progress-circle-danger',\n};\n\n\n\n@Component({\n selector: '[wmProgressCircle]',\n templateUrl: './progress-circle.component.html',\n providers: [\n provideAsWidgetRef(ProgressCircleComponent)\n ],\n exportAs: 'wmProgressCircle'\n})\nexport class ProgressCircleComponent extends StylableComponent implements AfterViewInit, IRedrawableComponent {\n static initializeProps = registerProps();\n\n public displayformat: string;\n public datavalue: string;\n public minvalue: number;\n public maxvalue: number;\n public type: string;\n public title: string;\n public subtitle: string;\n public captionplacement: string;\n public percentagevalue: number;\n public redraw: Function;\n public options: CircleProgressOptionsInterface;\n public hint: string;\n public arialabel: string;\n public displayValue: string;\n\n @ViewChild(CircleProgressComponent, { static: true }) circleRef: CircleProgressComponent;\n\n\n constructor(inj: Injector, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_CONFIG, explicitContext);\n styler(this.nativeElement, this);\n this.options = clone(DEFAULT_OPTIONS);\n this.redraw = debounce(this._redraw, 100);\n }\n\n private _redraw () {\n this.circleRef.render();\n // Select the <tspan> element that contains the percentage value\n let tspanElement = $(this.nativeElement).find('svg text tspan:first');\n this.displayValue = this.options.showUnits ? tspanElement?.text() + '%' : tspanElement?.text();\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n this.invokeEventCallback('beforerender', {'$event' : {}});\n this.options = Object.assign(this.circleRef.options, this.options);\n }\n\n getDefaultOptions() {\n return this.options;\n }\n\n getLib() {\n return 'ng-circle-progress';\n }\n\n overrideDefaults(options) {\n extend(this.options, options);\n }\n\n updateDisplayValueFormat() {\n // show title and subtitle only when captionplacement is 'inside'\n this.options.showTitle = this.options.showSubtitle = (this.captionplacement === 'inside');\n\n // show units when title value is empty and captionplacement is 'inside'\n this.options.showUnits = !this.title && this.options.showTitle && isPercentageValue(this.displayformat);\n this.options.toFixed = getDecimalCount(this.displayformat);\n\n if (this.options.showTitle) {\n this.options.title = this.title || 'auto';\n this.options.showSubtitle = !!this.subtitle;\n this.options.subtitle = this.subtitle || '';\n }\n this.redraw();\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n switch (key) {\n case 'type':\n this.$element.removeClass(TYPE_CLASS_MAP_PC[ov]);\n this.$element.addClass(TYPE_CLASS_MAP_PC[nv]);\n break;\n case 'minvalue':\n case 'maxvalue':\n case 'datavalue':\n if (isPercentageValue(this.datavalue)) {\n this.percentagevalue = parseFloat(this.datavalue);\n } else {\n this.percentagevalue = calculatePercent(parseFloat(this.datavalue), this.minvalue, this.maxvalue);\n }\n break;\n case 'displayformat':\n case 'captionplacement':\n case 'title':\n case 'subtitle':\n this.updateDisplayValueFormat();\n break;\n }\n super.onPropertyChange(key, nv, ov);\n }\n}\n","<circle-progress [percent]=\"percentagevalue\" [options]=\"options\"></circle-progress>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { NgCircleProgressModule } from 'ng-circle-progress';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { ProgressBarComponent } from './progress-bar/progress-bar.component';\nimport { ProgressCircleComponent } from './progress-circle/progress-circle.component';\n\nconst components = [\n ProgressBarComponent,\n ProgressCircleComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n NgCircleProgressModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class ProgressModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["registerProps","DEFAULT_CLS","WIDGET_CONFIG","_c0"],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@wm/components/base'), require('@angular/forms'), require('@wm/core'), require('@wm/components/input'), require('lodash-es')) :
3
3
  typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/common', '@wm/components/base', '@angular/forms', '@wm/core', '@wm/components/input', 'lodash-es'], factory) :
4
4
  (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.wm = global.wm || {}, global.wm.components = global.wm.components || {}, global.wm.components.basic = global.wm.components.basic || {}, global.wm.components.basic.richtexteditor = {}), global.ng.core, global.ng.common, global.wm.components.base, global.ng.forms, global.wm.core, global.wm.components.input, global._));
5
- })(this, (function (exports, i0, common, i1, forms, core, input, lodashEs) { 'use strict';
5
+ })(this, (function (exports, i0, i2, i1, forms, core, input, lodashEs) { 'use strict';
6
6
 
7
7
  function _interopNamespaceDefault(e) {
8
8
  var n = Object.create(null);
@@ -22,6 +22,7 @@
22
22
  }
23
23
 
24
24
  var i0__namespace = /*#__PURE__*/_interopNamespaceDefault(i0);
25
+ var i2__namespace = /*#__PURE__*/_interopNamespaceDefault(i2);
25
26
  var i1__namespace = /*#__PURE__*/_interopNamespaceDefault(i1);
26
27
 
27
28
  const richTextProps = new Map([
@@ -44,8 +45,8 @@
44
45
  };
45
46
 
46
47
  const _c0 = ["wmRichTextEditor", ""];
47
- function RichTextEditorComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
48
- i0__namespace.ɵɵelement(0, "div", 1);
48
+ function RichTextEditorComponent_div_1_Template(rf, ctx) { if (rf & 1) {
49
+ i0__namespace.ɵɵelement(0, "div", 3);
49
50
  } if (rf & 2) {
50
51
  const ctx_r0 = i0__namespace.ɵɵnextContext();
51
52
  i0__namespace.ɵɵproperty("innerHTML", ctx_r0.proxyModel, i0__namespace.ɵɵsanitizeHtml);
@@ -223,23 +224,23 @@
223
224
  static { this.ɵcmp = /*@__PURE__*/ i0__namespace.ɵɵdefineComponent({ type: RichTextEditorComponent, selectors: [["div", "wmRichTextEditor", ""]], exportAs: ["wmRichTextEditor"], features: [i0__namespace.ɵɵProvidersFeature([
224
225
  i1.provideAs(RichTextEditorComponent, forms.NG_VALUE_ACCESSOR, true),
225
226
  i1.provideAsWidgetRef(RichTextEditorComponent)
226
- ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 3, vars: 2, consts: [["richTextEditor", ""], [1, "ta-preview", 3, "innerHTML"], ["hidden", "", 1, "model-holder", 3, "disabled"]], template: function RichTextEditorComponent_Template(rf, ctx) { if (rf & 1) {
227
+ ]), i0__namespace.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 3, vars: 2, consts: [["richTextEditor", ""], ["class", "ta-preview", 3, "innerHTML", 4, "ngIf"], ["hidden", "", 1, "model-holder", 3, "disabled"], [1, "ta-preview", 3, "innerHTML"]], template: function RichTextEditorComponent_Template(rf, ctx) { if (rf & 1) {
227
228
  i0__namespace.ɵɵelement(0, "div", 0);
228
- i0__namespace.ɵɵtemplate(1, RichTextEditorComponent_Conditional_1_Template, 1, 1, "div", 1);
229
+ i0__namespace.ɵɵtemplate(1, RichTextEditorComponent_div_1_Template, 1, 1, "div", 1);
229
230
  i0__namespace.ɵɵelement(2, "input", 2);
230
231
  } if (rf & 2) {
231
232
  i0__namespace.ɵɵadvance();
232
- i0__namespace.ɵɵconditional(ctx.showpreview ? 1 : -1);
233
+ i0__namespace.ɵɵproperty("ngIf", ctx.showpreview);
233
234
  i0__namespace.ɵɵadvance();
234
235
  i0__namespace.ɵɵproperty("disabled", ctx.disabled);
235
- } }, encapsulation: 2 }); }
236
+ } }, dependencies: [i2__namespace.NgIf], encapsulation: 2 }); }
236
237
  }
237
238
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(RichTextEditorComponent, [{
238
239
  type: i0.Component,
239
240
  args: [{ selector: 'div[wmRichTextEditor]', providers: [
240
241
  i1.provideAs(RichTextEditorComponent, forms.NG_VALUE_ACCESSOR, true),
241
242
  i1.provideAsWidgetRef(RichTextEditorComponent)
242
- ], exportAs: 'wmRichTextEditor', template: "<div richTextEditor></div>\n@if (showpreview) {\n <div [innerHTML]=\"proxyModel\" class=\"ta-preview\"></div>\n}\n<input class=\"model-holder\" [disabled]=\"disabled\" hidden>\n" }]
243
+ ], exportAs: 'wmRichTextEditor', template: "<div richTextEditor></div>\n<div [innerHTML]=\"proxyModel\" class=\"ta-preview\" *ngIf=\"showpreview\"></div>\n<input class=\"model-holder\" [disabled]=\"disabled\" hidden>\n" }]
243
244
  }], () => [{ type: i0__namespace.Injector }, { type: i1__namespace.SanitizePipe }, { type: i0__namespace.NgZone }, { type: undefined, decorators: [{
244
245
  type: i0.Inject,
245
246
  args: ['EXPLICIT_CONTEXT']
@@ -254,21 +255,21 @@
254
255
  class RichTextEditorModule {
255
256
  static { this.ɵfac = function RichTextEditorModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || RichTextEditorModule)(); }; }
256
257
  static { this.ɵmod = /*@__PURE__*/ i0__namespace.ɵɵdefineNgModule({ type: RichTextEditorModule }); }
257
- static { this.ɵinj = /*@__PURE__*/ i0__namespace.ɵɵdefineInjector({ imports: [common.CommonModule,
258
+ static { this.ɵinj = /*@__PURE__*/ i0__namespace.ɵɵdefineInjector({ imports: [i2.CommonModule,
258
259
  i1.WmComponentsModule] }); }
259
260
  }
260
261
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0__namespace.ɵsetClassMetadata(RichTextEditorModule, [{
261
262
  type: i0.NgModule,
262
263
  args: [{
263
264
  imports: [
264
- common.CommonModule,
265
+ i2.CommonModule,
265
266
  i1.WmComponentsModule
266
267
  ],
267
268
  declarations: [...components],
268
269
  exports: [...components]
269
270
  }]
270
271
  }], null, null); })();
271
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0__namespace.ɵɵsetNgModuleScope(RichTextEditorModule, { declarations: [RichTextEditorComponent], imports: [common.CommonModule,
272
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0__namespace.ɵɵsetNgModuleScope(RichTextEditorModule, { declarations: [RichTextEditorComponent], imports: [i2.CommonModule,
272
273
  i1.WmComponentsModule], exports: [RichTextEditorComponent] }); })();
273
274
 
274
275
  exports.RichTextEditorComponent = RichTextEditorComponent;
@@ -7,9 +7,10 @@ import { registerProps } from './rich-text-editor.props';
7
7
  import { extend } from "lodash-es";
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@wm/components/base";
10
+ import * as i2 from "@angular/common";
10
11
  const _c0 = ["wmRichTextEditor", ""];
11
- function RichTextEditorComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
12
- i0.ɵɵelement(0, "div", 1);
12
+ function RichTextEditorComponent_div_1_Template(rf, ctx) { if (rf & 1) {
13
+ i0.ɵɵelement(0, "div", 3);
13
14
  } if (rf & 2) {
14
15
  const ctx_r0 = i0.ɵɵnextContext();
15
16
  i0.ɵɵproperty("innerHTML", ctx_r0.proxyModel, i0.ɵɵsanitizeHtml);
@@ -187,23 +188,23 @@ export class RichTextEditorComponent extends BaseFormCustomComponent {
187
188
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RichTextEditorComponent, selectors: [["div", "wmRichTextEditor", ""]], exportAs: ["wmRichTextEditor"], features: [i0.ɵɵProvidersFeature([
188
189
  provideAs(RichTextEditorComponent, NG_VALUE_ACCESSOR, true),
189
190
  provideAsWidgetRef(RichTextEditorComponent)
190
- ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 3, vars: 2, consts: [["richTextEditor", ""], [1, "ta-preview", 3, "innerHTML"], ["hidden", "", 1, "model-holder", 3, "disabled"]], template: function RichTextEditorComponent_Template(rf, ctx) { if (rf & 1) {
191
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 3, vars: 2, consts: [["richTextEditor", ""], ["class", "ta-preview", 3, "innerHTML", 4, "ngIf"], ["hidden", "", 1, "model-holder", 3, "disabled"], [1, "ta-preview", 3, "innerHTML"]], template: function RichTextEditorComponent_Template(rf, ctx) { if (rf & 1) {
191
192
  i0.ɵɵelement(0, "div", 0);
192
- i0.ɵɵtemplate(1, RichTextEditorComponent_Conditional_1_Template, 1, 1, "div", 1);
193
+ i0.ɵɵtemplate(1, RichTextEditorComponent_div_1_Template, 1, 1, "div", 1);
193
194
  i0.ɵɵelement(2, "input", 2);
194
195
  } if (rf & 2) {
195
196
  i0.ɵɵadvance();
196
- i0.ɵɵconditional(ctx.showpreview ? 1 : -1);
197
+ i0.ɵɵproperty("ngIf", ctx.showpreview);
197
198
  i0.ɵɵadvance();
198
199
  i0.ɵɵproperty("disabled", ctx.disabled);
199
- } }, encapsulation: 2 }); }
200
+ } }, dependencies: [i2.NgIf], encapsulation: 2 }); }
200
201
  }
201
202
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RichTextEditorComponent, [{
202
203
  type: Component,
203
204
  args: [{ selector: 'div[wmRichTextEditor]', providers: [
204
205
  provideAs(RichTextEditorComponent, NG_VALUE_ACCESSOR, true),
205
206
  provideAsWidgetRef(RichTextEditorComponent)
206
- ], exportAs: 'wmRichTextEditor', template: "<div richTextEditor></div>\n@if (showpreview) {\n <div [innerHTML]=\"proxyModel\" class=\"ta-preview\"></div>\n}\n<input class=\"model-holder\" [disabled]=\"disabled\" hidden>\n" }]
207
+ ], exportAs: 'wmRichTextEditor', template: "<div richTextEditor></div>\n<div [innerHTML]=\"proxyModel\" class=\"ta-preview\" *ngIf=\"showpreview\"></div>\n<input class=\"model-holder\" [disabled]=\"disabled\" hidden>\n" }]
207
208
  }], () => [{ type: i0.Injector }, { type: i1.SanitizePipe }, { type: i0.NgZone }, { type: undefined, decorators: [{
208
209
  type: Inject,
209
210
  args: ['EXPLICIT_CONTEXT']
@@ -211,4 +212,4 @@ export class RichTextEditorComponent extends BaseFormCustomComponent {
211
212
  type: Optional
212
213
  }] }], null); })();
213
214
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(RichTextEditorComponent, { className: "RichTextEditorComponent", filePath: "rich-text-editor.component.ts", lineNumber: 59 }); })();
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC10ZXh0LWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvcmljaC10ZXh0LWVkaXRvci9zcmMvcmljaC10ZXh0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvcmljaC10ZXh0LWVkaXRvci9zcmMvcmljaC10ZXh0LWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFxQixRQUFRLEVBQUUsZUFBZSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNsRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU3RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7SUNOL0IseUJBQXVEOzs7SUFBbEQsZ0VBQXdCOztBRFMvQixNQUFNLFdBQVcsR0FBRyxFQUFDLFVBQVUsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsNkJBQTZCLEVBQUMsQ0FBQztBQUVoRyxNQUFNLFlBQVksR0FBRyxHQUFHLEVBQUU7SUFDdEIsSUFBSSxTQUFTLENBQUM7SUFDZCx5RUFBeUU7SUFDekUs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QUMsRUFBRSxDQUFDLENBQUM7WUFDOUIsT0FBTztRQUNYLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2QsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUk7UUFDQSxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELEtBQUs7UUFDRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7d0hBOUpRLHVCQUF1QixrSUFzRStELGtCQUFrQjtvRUF0RXhHLHVCQUF1QixpSEFOckI7Z0JBQ1AsU0FBUyxDQUFDLHVCQUF1QixFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQztnQkFDM0Qsa0JBQWtCLENBQUMsdUJBQXVCLENBQUM7YUFDOUM7WUN2REwseUJBQTBCO1lBQzFCLGdGQUFtQjtZQUduQiwyQkFBeUQ7O1lBSHpELGNBRUM7WUFGRCwwQ0FFQztZQUMyQixjQUFxQjtZQUFyQix1Q0FBcUI7OztpRkRzRHBDLHVCQUF1QjtjQVRuQyxTQUFTOzJCQUNJLHVCQUF1QixhQUV0QjtvQkFDUCxTQUFTLDBCQUEwQixpQkFBaUIsRUFBRSxJQUFJLENBQUM7b0JBQzNELGtCQUFrQix5QkFBeUI7aUJBQzlDLFlBQ1Msa0JBQWtCOztzQkF3RTRELE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFROztrRkF0RW5ILHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yLCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgU2VjdXJpdHlDb250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtzZXRBdHRyLCBzZXRDU1MsIHNldEh0bWx9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7QVBQTFlfU1RZTEVTX1RZUEUsIHByb3ZpZGVBcywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBTYW5pdGl6ZVBpcGUsIHN0eWxlcn0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQge0Jhc2VGb3JtQ3VzdG9tQ29tcG9uZW50fSBmcm9tICdAd20vY29tcG9uZW50cy9pbnB1dCc7XG5cbmltcG9ydCB7cmVnaXN0ZXJQcm9wc30gZnJvbSAnLi9yaWNoLXRleHQtZWRpdG9yLnByb3BzJztcbmltcG9ydCB7ZXh0ZW5kfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cblxuY29uc3QgV0lER0VUX0lORk8gPSB7d2lkZ2V0VHlwZTogJ3dtLXJpY2h0ZXh0ZWRpdG9yJywgaG9zdENsYXNzOiAnYXBwLXJpY2h0ZXh0ZWRpdG9yIGNsZWFyZml4J307XG5cbmNvbnN0IGdldENoYW5nZUV2dCA9ICgpID0+IHtcbiAgICBsZXQgY2hhbmdlRXZ0O1xuICAgIC8vIGZvciBJRSB0aGUgZXZlbnQgY29uc3RydWN0b3IgZG9lc24ndCB3b3JrIHNvIHVzZSB0aGUgY3JlYXRlRXZlbnQgcHJvdG9cbiAgICBpZiAodHlwZW9mKEV2ZW50KSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjaGFuZ2VFdnQgPSBuZXcgRXZlbnQoJ2NoYW5nZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNoYW5nZUV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudCcpO1xuICAgICAgICBjaGFuZ2VFdnQuaW5pdEV2ZW50KCdjaGFuZ2UnLCB0cnVlLCB0cnVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNoYW5nZUV2dDtcbn07XG5cbmRlY2xhcmUgY29uc3QgXywgJDtcblxuY29uc3Qgb3ZlcnJpZGVTdW1tZXJOb3RlID0gKCkgPT4ge1xuICAgIGlmICghJC5zdW1tZXJub3RlLl9fb3ZlcmlkZGVuKSB7XG4gICAgICAgIC8vIG92ZXJyaWRlIHN1bW1lcm5vdGUgbWV0aG9kc1xuXG4gICAgICAgIGNvbnN0IG9yaWdGbiA9ICQuc3VtbWVybm90ZS51aV90ZW1wbGF0ZSgpLmJ1dHRvbi5iaW5kKCQuc3VtbWVybm90ZSk7XG5cbiAgICAgICAgJC5zdW1tZXJub3RlLnVpX3RlbXBsYXRlLmJ1dHRvbiA9ICguLi5hcmdzKSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IHJldFZhbCA9IG9yaWdGbiguLi5hcmdzKTtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdDYWxsYmFjayA9IHJldFZhbC5jYWxsYmFjaztcblxuICAgICAgICAgICAgcmV0VmFsLmNhbGxiYWNrID0gKCRub2RlLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gYWRkIGJzMyBidG4gY2xhc3MgdG8gdGhlIGJ1dHRvbnNcbiAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcygnYnRuJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdDYWxsYmFjaygkbm9kZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHJldFZhbDtcbiAgICAgICAgfTtcbiAgICAgICAgJC5zdW1tZXJub3RlLl9fb3ZlcmlkZGVuID0gdHJ1ZTtcbiAgICB9XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2Rpdlt3bVJpY2hUZXh0RWRpdG9yXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JpY2gtdGV4dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXMoUmljaFRleHRFZGl0b3JDb21wb25lbnQsIE5HX1ZBTFVFX0FDQ0VTU09SLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50KVxuICAgIF0sXG4gICAgZXhwb3J0QXM6ICd3bVJpY2hUZXh0RWRpdG9yJ1xufSlcbmV4cG9ydCBjbGFzcyBSaWNoVGV4dEVkaXRvckNvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ3VzdG9tQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICAkcmljaFRleHRFZGl0b3I7XG4gICAgJGhpZGRlbklucHV0RWxlO1xuXG4gICAgcHJveHlNb2RlbDtcbiAgICBfb3BlcmF0aW9uU3RhY2sgPSBbXTtcbiAgICBpc0VkaXRvckxvYWRlZCA9IGZhbHNlO1xuXG4gICAgcHVibGljIHNob3dwcmV2aWV3OiBhbnk7XG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgRURJVE9SX0RFRkFVTFRfT1BUSU9OUyA9IHtcbiAgICAgICAgdG9vbGJhcjogW1xuICAgICAgICAgICAgLy8gW2dyb3VwTmFtZSwgW2xpc3Qgb2YgYnV0dG9uXV1cbiAgICAgICAgICAgIFsnbWlzYycsIFsndW5kbycsICdyZWRvJ11dLFxuICAgICAgICAgICAgWydzdHlsZScsIFsnc3R5bGUnXV0sXG4gICAgICAgICAgICBbJ2ZvbnRuYW1lJywgWydmb250bmFtZSddXSxcbiAgICAgICAgICAgIFsnZm9udHNpemUnLCBbJ2ZvbnRzaXplJ11dLFxuICAgICAgICAgICAgWydoZWlnaHQnLCBbJ2hlaWdodCddXSxcbiAgICAgICAgICAgIFsnc3R5bGUnLCBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZScsICdjbGVhciddXSxcbiAgICAgICAgICAgIFsnZm9udCcsIFsnc3RyaWtldGhyb3VnaCcsICdzdXBlcnNjcmlwdCcsICdzdWJzY3JpcHQnXV0sXG4gICAgICAgICAgICBbJ2NvbG9yJywgWydjb2xvciddXSxcbiAgICAgICAgICAgIFsnaW5zZXJ0JywgWyd0YWJsZScsICdwaWN0dXJlJywgJ2xpbmsnLCAndmlkZW8nLCAnaHInXV0sXG4gICAgICAgICAgICBbJ3BhcmEnLCBbJ3VsJywgJ29sJywgJ3BhcmFncmFwaCddXSxcbiAgICAgICAgICAgIFsnbWlzYycsIFsnY29kZXZpZXcnLCAnZnVsbHNjcmVlbicsICdoZWxwJ11dXG4gICAgICAgIF0sXG4gICAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAgICAgb25Jbml0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0VkaXRvckxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX29wZXJhdGlvblN0YWNrLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRpb25TdGFjay5mb3JFYWNoKG9wZXJhdGlvblBhcmFtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IEFycmF5LmZyb20ob3BlcmF0aW9uUGFyYW0ua2V5cygpKVswXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBvcGVyYXRpb25QYXJhbS5nZXQoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGVyZm9ybUVkaXRvck9wZXJhdGlvbihrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRpb25TdGFjayA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkNoYW5nZTogKGNvbnRlbnRzLCBlZGl0YWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucHJveHlNb2RlbCA9IHRoaXMuc2FuaXRpemVQaXBlLnRyYW5zZm9ybShjb250ZW50cywgU2VjdXJpdHlDb250ZXh0LkhUTUwpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UoY29udGVudHMsIGdldENoYW5nZUV2dCgpLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmludm9rZU9uVG91Y2hlZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmb250TmFtZXM6IFsnQXJpYWwnLCAnQXJpYWwgQmxhY2snLCAnQ29taWMgU2FucyBNUycsICdDb3VyaWVyIE5ldycsICdNZXJyaXdlYXRoZXInXSxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICd3cml0ZSBoZXJlLi4uJyxcbiAgICAgICAgbWluSGVpZ2h0OiAxMDAsXG4gICAgICAgIGRpc2FibGVSZXNpemVFZGl0b3I6IHRydWVcbiAgICB9O1xuXG4gICAgZ2V0IGh0bWxjb250ZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdjb2RlJyk7XG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGdldCBkYXRhdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0bWxjb250ZW50O1xuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBzZXQgZGF0YXZhbHVlKG52KSB7XG4gICAgICAgIGlmIChudiAhPT0gdW5kZWZpbmVkICYmIG52ICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLiRoaWRkZW5JbnB1dEVsZS52YWwobnYpO1xuICAgICAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdyZXNldCcpO1xuICAgICAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdjb2RlJywgbnYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgcHJpdmF0ZSBzYW5pdGl6ZVBpcGU6IFNhbml0aXplUGlwZSwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0lORk8sIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLkNPTlRBSU5FUiwgWydoZWlnaHQnXSk7XG4gICAgICAgIG92ZXJyaWRlU3VtbWVyTm90ZSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLiRyaWNoVGV4dEVkaXRvciA9ICQodGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tyaWNoVGV4dEVkaXRvcl0nKSk7XG4gICAgICAgIHRoaXMuJGhpZGRlbklucHV0RWxlID0gJCh0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQubW9kZWwtaG9sZGVyJykpO1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmluaXRFZGl0b3IoKTtcbiAgICAgICAgJCgnLm5vdGUtZWRpdGFibGUnKS5hdHRyKCdhcmlhLWxhYmVsJywgJ3RleHRib3gnKTtcbiAgICB9XG5cbiAgICBpbml0RWRpdG9yKCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2JlZm9yZXJlbmRlcicsIHsnJGV2ZW50JyA6IHt9fSk7XG4gICAgICAgICAgICB0aGlzLiRyaWNoVGV4dEVkaXRvci5zdW1tZXJub3RlKHRoaXMuRURJVE9SX0RFRkFVTFRfT1BUSU9OUyk7XG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgZ2V0RGVmYXVsdE9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLkVESVRPUl9ERUZBVUxUX09QVElPTlM7XG4gICAgfVxuXG4gICAgZ2V0TGliKCkge1xuICAgICAgICByZXR1cm4gJ3N1bW1lcm5vdGUnO1xuICAgIH1cblxuICAgIG92ZXJyaWRlRGVmYXVsdHMob3B0aW9ucykge1xuICAgICAgICBleHRlbmQodGhpcy5FRElUT1JfREVGQVVMVF9PUFRJT05TLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkge1xuICAgICAgICBpZiAoa2V5ID09PSAncGxhY2Vob2xkZXInKSB7XG4gICAgICAgICAgICB0aGlzLnBlcmZvcm1FZGl0b3JPcGVyYXRpb24oJ3BsYWNlaG9sZGVyJywgbnYpO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2Rpc2FibGVkJyB8fCBrZXkgPT09ICdyZWFkb25seScpIHtcbiAgICAgICAgICAgIHRoaXMucGVyZm9ybUVkaXRvck9wZXJhdGlvbihudiA/ICdkaXNhYmxlJyA6ICdlbmFibGUnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TdHlsZUNoYW5nZShrZXksIG52LCBvdikge1xuICAgICAgICBpZiAoa2V5ID09PSAnaGVpZ2h0Jykge1xuICAgICAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdoZWlnaHQnLCBudik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwZXJmb3JtRWRpdG9yT3BlcmF0aW9uKGtleSwgdmFsdWU/KSB7XG4gICAgICAgIGlmICh0aGlzLmlzRWRpdG9yTG9hZGVkKSB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAnaGVpZ2h0Jykge1xuICAgICAgICAgICAgICAgIHNldENTUyh0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignZGl2Lm5vdGUtZWRpdGFibGUnKSwga2V5LCB2YWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3BsYWNlaG9sZGVyJykge1xuICAgICAgICAgICAgICAgIHNldEF0dHIodGhpcy5uYXRpdmVFbGVtZW50LCBrZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICBzZXRIdG1sKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdkaXYubm90ZS1wbGFjZWhvbGRlcicpLCB2YWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGlmIGVkaXRvciBjb250ZW50IGlzIGVtcHR5IHRoZW4gc3VtbWVybm90ZSgnY29kZScpIGlzIHJldHVybmluZyBlbXB0eSBwIHRhZ3MgbGlrZSA8cD48L2JyPjwvcD4uIFNvIGNoZWNraW5nIGZvciBlbXB0eSBhbmQgcmV0dXJuaW5nIHVuZGVmaW5lZC5cbiAgICAgICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJiBrZXkgPT09ICdjb2RlJyAmJiB0aGlzLiRyaWNoVGV4dEVkaXRvci5zdW1tZXJub3RlKCdpc0VtcHR5JykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMuJHJpY2hUZXh0RWRpdG9yLnN1bW1lcm5vdGUoJ2NvZGUnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQgPT09ICcnID8gY29udGVudCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuJHJpY2hUZXh0RWRpdG9yLnN1bW1lcm5vdGUoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBvcDogYW55ID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgb3Auc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fb3BlcmF0aW9uU3RhY2sucHVzaChvcCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRDdXJyZW50UG9zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBlcmZvcm1FZGl0b3JPcGVyYXRpb24oJ2NyZWF0ZVJhbmdlJyk7XG4gICAgfVxuXG4gICAgdW5kbygpIHtcbiAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCd1bmRvJyk7XG4gICAgfVxuXG4gICAgZm9jdXMoKSB7XG4gICAgICAgIHRoaXMucGVyZm9ybUVkaXRvck9wZXJhdGlvbignZm9jdXMnKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdkZXN0cm95Jyk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiByaWNoVGV4dEVkaXRvcj48L2Rpdj5cbkBpZiAoc2hvd3ByZXZpZXcpIHtcbiAgPGRpdiBbaW5uZXJIVE1MXT1cInByb3h5TW9kZWxcIiBjbGFzcz1cInRhLXByZXZpZXdcIj48L2Rpdj5cbn1cbjxpbnB1dCBjbGFzcz1cIm1vZGVsLWhvbGRlclwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIGhpZGRlbj5cbiJdfQ==
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC10ZXh0LWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvcmljaC10ZXh0LWVkaXRvci9zcmMvcmljaC10ZXh0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3dpZGdldHMvYmFzaWMvcmljaC10ZXh0LWVkaXRvci9zcmMvcmljaC10ZXh0LWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFxQixRQUFRLEVBQUUsZUFBZSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hILE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNsRCxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUMzRyxPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUU3RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDdkQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFdBQVcsQ0FBQzs7Ozs7O0lDUGpDLHlCQUEyRTs7O0lBQXRFLGdFQUF3Qjs7QURVN0IsTUFBTSxXQUFXLEdBQUcsRUFBQyxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLDZCQUE2QixFQUFDLENBQUM7QUFFaEcsTUFBTSxZQUFZLEdBQUcsR0FBRyxFQUFFO0lBQ3RCLElBQUksU0FBUyxDQUFDO0lBQ2QseUVBQXlFO0lBQ3pF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QUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlCLE9BQU87UUFDWCxDQUFDO0lBQ0wsQ0FBQztJQUVELGtCQUFrQjtRQUNkLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxLQUFLO1FBQ0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN4QixDQUFDO3dIQTlKUSx1QkFBdUIsa0lBc0UrRCxrQkFBa0I7b0VBdEV4Ryx1QkFBdUIsaUhBTnJCO2dCQUNQLFNBQVMsQ0FBQyx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLENBQUM7Z0JBQzNELGtCQUFrQixDQUFDLHVCQUF1QixDQUFDO2FBQzlDO1lDdkRMLHlCQUEwQjtZQUMxQix3RUFBcUU7WUFDckUsMkJBQXlEOztZQURQLGNBQWlCO1lBQWpCLHNDQUFpQjtZQUN2QyxjQUFxQjtZQUFyQix1Q0FBcUI7OztpRkR3RHBDLHVCQUF1QjtjQVRuQyxTQUFTOzJCQUNJLHVCQUF1QixhQUV0QjtvQkFDUCxTQUFTLDBCQUEwQixpQkFBaUIsRUFBRSxJQUFJLENBQUM7b0JBQzNELGtCQUFrQix5QkFBeUI7aUJBQzlDLFlBQ1Msa0JBQWtCOztzQkF3RTRELE1BQU07dUJBQUMsa0JBQWtCOztzQkFBRyxRQUFROztrRkF0RW5ILHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yLCBOZ1pvbmUsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgU2VjdXJpdHlDb250ZXh0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtzZXRBdHRyLCBzZXRDU1MsIHNldEh0bWx9IGZyb20gJ0B3bS9jb3JlJztcbmltcG9ydCB7QVBQTFlfU1RZTEVTX1RZUEUsIHByb3ZpZGVBcywgcHJvdmlkZUFzV2lkZ2V0UmVmLCBTYW5pdGl6ZVBpcGUsIHN0eWxlcn0gZnJvbSAnQHdtL2NvbXBvbmVudHMvYmFzZSc7XG5pbXBvcnQge0Jhc2VGb3JtQ3VzdG9tQ29tcG9uZW50fSBmcm9tICdAd20vY29tcG9uZW50cy9pbnB1dCc7XG5cbmltcG9ydCB7cmVnaXN0ZXJQcm9wc30gZnJvbSAnLi9yaWNoLXRleHQtZWRpdG9yLnByb3BzJztcbmltcG9ydCB7ZXh0ZW5kfSBmcm9tIFwibG9kYXNoLWVzXCI7XG5cblxuY29uc3QgV0lER0VUX0lORk8gPSB7d2lkZ2V0VHlwZTogJ3dtLXJpY2h0ZXh0ZWRpdG9yJywgaG9zdENsYXNzOiAnYXBwLXJpY2h0ZXh0ZWRpdG9yIGNsZWFyZml4J307XG5cbmNvbnN0IGdldENoYW5nZUV2dCA9ICgpID0+IHtcbiAgICBsZXQgY2hhbmdlRXZ0O1xuICAgIC8vIGZvciBJRSB0aGUgZXZlbnQgY29uc3RydWN0b3IgZG9lc24ndCB3b3JrIHNvIHVzZSB0aGUgY3JlYXRlRXZlbnQgcHJvdG9cbiAgICBpZiAodHlwZW9mKEV2ZW50KSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICBjaGFuZ2VFdnQgPSBuZXcgRXZlbnQoJ2NoYW5nZScpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGNoYW5nZUV2dCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdFdmVudCcpO1xuICAgICAgICBjaGFuZ2VFdnQuaW5pdEV2ZW50KCdjaGFuZ2UnLCB0cnVlLCB0cnVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGNoYW5nZUV2dDtcbn07XG5cbmRlY2xhcmUgY29uc3QgXywgJDtcblxuY29uc3Qgb3ZlcnJpZGVTdW1tZXJOb3RlID0gKCkgPT4ge1xuICAgIGlmICghJC5zdW1tZXJub3RlLl9fb3ZlcmlkZGVuKSB7XG4gICAgICAgIC8vIG92ZXJyaWRlIHN1bW1lcm5vdGUgbWV0aG9kc1xuXG4gICAgICAgIGNvbnN0IG9yaWdGbiA9ICQuc3VtbWVybm90ZS51aV90ZW1wbGF0ZSgpLmJ1dHRvbi5iaW5kKCQuc3VtbWVybm90ZSk7XG5cbiAgICAgICAgJC5zdW1tZXJub3RlLnVpX3RlbXBsYXRlLmJ1dHRvbiA9ICguLi5hcmdzKSA9PiB7XG5cbiAgICAgICAgICAgIGNvbnN0IHJldFZhbCA9IG9yaWdGbiguLi5hcmdzKTtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdDYWxsYmFjayA9IHJldFZhbC5jYWxsYmFjaztcblxuICAgICAgICAgICAgcmV0VmFsLmNhbGxiYWNrID0gKCRub2RlLCBvcHRpb25zKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gYWRkIGJzMyBidG4gY2xhc3MgdG8gdGhlIGJ1dHRvbnNcbiAgICAgICAgICAgICAgICAkbm9kZS5hZGRDbGFzcygnYnRuJyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9yaWdDYWxsYmFjaygkbm9kZSwgb3B0aW9ucyk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuIHJldFZhbDtcbiAgICAgICAgfTtcbiAgICAgICAgJC5zdW1tZXJub3RlLl9fb3ZlcmlkZGVuID0gdHJ1ZTtcbiAgICB9XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2Rpdlt3bVJpY2hUZXh0RWRpdG9yXScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3JpY2gtdGV4dC1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBwcm92aWRlQXMoUmljaFRleHRFZGl0b3JDb21wb25lbnQsIE5HX1ZBTFVFX0FDQ0VTU09SLCB0cnVlKSxcbiAgICAgICAgcHJvdmlkZUFzV2lkZ2V0UmVmKFJpY2hUZXh0RWRpdG9yQ29tcG9uZW50KVxuICAgIF0sXG4gICAgZXhwb3J0QXM6ICd3bVJpY2hUZXh0RWRpdG9yJ1xufSlcbmV4cG9ydCBjbGFzcyBSaWNoVGV4dEVkaXRvckNvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtQ3VzdG9tQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHN0YXRpYyBpbml0aWFsaXplUHJvcHMgPSByZWdpc3RlclByb3BzKCk7XG5cbiAgICAkcmljaFRleHRFZGl0b3I7XG4gICAgJGhpZGRlbklucHV0RWxlO1xuXG4gICAgcHJveHlNb2RlbDtcbiAgICBfb3BlcmF0aW9uU3RhY2sgPSBbXTtcbiAgICBpc0VkaXRvckxvYWRlZCA9IGZhbHNlO1xuXG4gICAgcHVibGljIHNob3dwcmV2aWV3OiBhbnk7XG4gICAgcHVibGljIGRpc2FibGVkOiBib29sZWFuO1xuXG4gICAgRURJVE9SX0RFRkFVTFRfT1BUSU9OUyA9IHtcbiAgICAgICAgdG9vbGJhcjogW1xuICAgICAgICAgICAgLy8gW2dyb3VwTmFtZSwgW2xpc3Qgb2YgYnV0dG9uXV1cbiAgICAgICAgICAgIFsnbWlzYycsIFsndW5kbycsICdyZWRvJ11dLFxuICAgICAgICAgICAgWydzdHlsZScsIFsnc3R5bGUnXV0sXG4gICAgICAgICAgICBbJ2ZvbnRuYW1lJywgWydmb250bmFtZSddXSxcbiAgICAgICAgICAgIFsnZm9udHNpemUnLCBbJ2ZvbnRzaXplJ11dLFxuICAgICAgICAgICAgWydoZWlnaHQnLCBbJ2hlaWdodCddXSxcbiAgICAgICAgICAgIFsnc3R5bGUnLCBbJ2JvbGQnLCAnaXRhbGljJywgJ3VuZGVybGluZScsICdjbGVhciddXSxcbiAgICAgICAgICAgIFsnZm9udCcsIFsnc3RyaWtldGhyb3VnaCcsICdzdXBlcnNjcmlwdCcsICdzdWJzY3JpcHQnXV0sXG4gICAgICAgICAgICBbJ2NvbG9yJywgWydjb2xvciddXSxcbiAgICAgICAgICAgIFsnaW5zZXJ0JywgWyd0YWJsZScsICdwaWN0dXJlJywgJ2xpbmsnLCAndmlkZW8nLCAnaHInXV0sXG4gICAgICAgICAgICBbJ3BhcmEnLCBbJ3VsJywgJ29sJywgJ3BhcmFncmFwaCddXSxcbiAgICAgICAgICAgIFsnbWlzYycsIFsnY29kZXZpZXcnLCAnZnVsbHNjcmVlbicsICdoZWxwJ11dXG4gICAgICAgIF0sXG4gICAgICAgIGNhbGxiYWNrczoge1xuICAgICAgICAgICAgb25Jbml0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0VkaXRvckxvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX29wZXJhdGlvblN0YWNrLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRpb25TdGFjay5mb3JFYWNoKG9wZXJhdGlvblBhcmFtID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGtleSA9IEFycmF5LmZyb20ob3BlcmF0aW9uUGFyYW0ua2V5cygpKVswXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSBvcGVyYXRpb25QYXJhbS5nZXQoa2V5KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucGVyZm9ybUVkaXRvck9wZXJhdGlvbihrZXksIHZhbCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9vcGVyYXRpb25TdGFjayA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbkNoYW5nZTogKGNvbnRlbnRzLCBlZGl0YWJsZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucHJveHlNb2RlbCA9IHRoaXMuc2FuaXRpemVQaXBlLnRyYW5zZm9ybShjb250ZW50cywgU2VjdXJpdHlDb250ZXh0LkhUTUwpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW52b2tlT25DaGFuZ2UoY29udGVudHMsIGdldENoYW5nZUV2dCgpLCB0cnVlKTtcbiAgICAgICAgICAgICAgICB0aGlzLmludm9rZU9uVG91Y2hlZCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBmb250TmFtZXM6IFsnQXJpYWwnLCAnQXJpYWwgQmxhY2snLCAnQ29taWMgU2FucyBNUycsICdDb3VyaWVyIE5ldycsICdNZXJyaXdlYXRoZXInXSxcbiAgICAgICAgcGxhY2Vob2xkZXI6ICd3cml0ZSBoZXJlLi4uJyxcbiAgICAgICAgbWluSGVpZ2h0OiAxMDAsXG4gICAgICAgIGRpc2FibGVSZXNpemVFZGl0b3I6IHRydWVcbiAgICB9O1xuXG4gICAgZ2V0IGh0bWxjb250ZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdjb2RlJyk7XG4gICAgfVxuXG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGdldCBkYXRhdmFsdWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmh0bWxjb250ZW50O1xuICAgIH1cblxuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBzZXQgZGF0YXZhbHVlKG52KSB7XG4gICAgICAgIGlmIChudiAhPT0gdW5kZWZpbmVkICYmIG52ICE9PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLiRoaWRkZW5JbnB1dEVsZS52YWwobnYpO1xuICAgICAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdyZXNldCcpO1xuICAgICAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdjb2RlJywgbnYpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoaW5qOiBJbmplY3RvciwgcHJpdmF0ZSBzYW5pdGl6ZVBpcGU6IFNhbml0aXplUGlwZSwgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSwgQEluamVjdCgnRVhQTElDSVRfQ09OVEVYVCcpIEBPcHRpb25hbCgpIGV4cGxpY2l0Q29udGV4dDogYW55KSB7XG4gICAgICAgIHN1cGVyKGluaiwgV0lER0VUX0lORk8sIGV4cGxpY2l0Q29udGV4dCk7XG4gICAgICAgIHN0eWxlcih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMsIEFQUExZX1NUWUxFU19UWVBFLkNPTlRBSU5FUiwgWydoZWlnaHQnXSk7XG4gICAgICAgIG92ZXJyaWRlU3VtbWVyTm90ZSgpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLiRyaWNoVGV4dEVkaXRvciA9ICQodGhpcy5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tyaWNoVGV4dEVkaXRvcl0nKSk7XG4gICAgICAgIHRoaXMuJGhpZGRlbklucHV0RWxlID0gJCh0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQubW9kZWwtaG9sZGVyJykpO1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmluaXRFZGl0b3IoKTtcbiAgICAgICAgJCgnLm5vdGUtZWRpdGFibGUnKS5hdHRyKCdhcmlhLWxhYmVsJywgJ3RleHRib3gnKTtcbiAgICB9XG5cbiAgICBpbml0RWRpdG9yKCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmludm9rZUV2ZW50Q2FsbGJhY2soJ2JlZm9yZXJlbmRlcicsIHsnJGV2ZW50JyA6IHt9fSk7XG4gICAgICAgICAgICB0aGlzLiRyaWNoVGV4dEVkaXRvci5zdW1tZXJub3RlKHRoaXMuRURJVE9SX0RFRkFVTFRfT1BUSU9OUyk7XG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgZ2V0RGVmYXVsdE9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLkVESVRPUl9ERUZBVUxUX09QVElPTlM7XG4gICAgfVxuXG4gICAgZ2V0TGliKCkge1xuICAgICAgICByZXR1cm4gJ3N1bW1lcm5vdGUnO1xuICAgIH1cblxuICAgIG92ZXJyaWRlRGVmYXVsdHMob3B0aW9ucykge1xuICAgICAgICBleHRlbmQodGhpcy5FRElUT1JfREVGQVVMVF9PUFRJT05TLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICBvblByb3BlcnR5Q2hhbmdlKGtleTogc3RyaW5nLCBudjogYW55LCBvdj86IGFueSkge1xuICAgICAgICBpZiAoa2V5ID09PSAncGxhY2Vob2xkZXInKSB7XG4gICAgICAgICAgICB0aGlzLnBlcmZvcm1FZGl0b3JPcGVyYXRpb24oJ3BsYWNlaG9sZGVyJywgbnYpO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2Rpc2FibGVkJyB8fCBrZXkgPT09ICdyZWFkb25seScpIHtcbiAgICAgICAgICAgIHRoaXMucGVyZm9ybUVkaXRvck9wZXJhdGlvbihudiA/ICdkaXNhYmxlJyA6ICdlbmFibGUnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHN1cGVyLm9uUHJvcGVydHlDaGFuZ2Uoa2V5LCBudiwgb3YpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TdHlsZUNoYW5nZShrZXksIG52LCBvdikge1xuICAgICAgICBpZiAoa2V5ID09PSAnaGVpZ2h0Jykge1xuICAgICAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdoZWlnaHQnLCBudik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwZXJmb3JtRWRpdG9yT3BlcmF0aW9uKGtleSwgdmFsdWU/KSB7XG4gICAgICAgIGlmICh0aGlzLmlzRWRpdG9yTG9hZGVkKSB7XG4gICAgICAgICAgICBpZiAoa2V5ID09PSAnaGVpZ2h0Jykge1xuICAgICAgICAgICAgICAgIHNldENTUyh0aGlzLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignZGl2Lm5vdGUtZWRpdGFibGUnKSwga2V5LCB2YWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3BsYWNlaG9sZGVyJykge1xuICAgICAgICAgICAgICAgIHNldEF0dHIodGhpcy5uYXRpdmVFbGVtZW50LCBrZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICBzZXRIdG1sKHRoaXMubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdkaXYubm90ZS1wbGFjZWhvbGRlcicpLCB2YWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIGlmIGVkaXRvciBjb250ZW50IGlzIGVtcHR5IHRoZW4gc3VtbWVybm90ZSgnY29kZScpIGlzIHJldHVybmluZyBlbXB0eSBwIHRhZ3MgbGlrZSA8cD48L2JyPjwvcD4uIFNvIGNoZWNraW5nIGZvciBlbXB0eSBhbmQgcmV0dXJuaW5nIHVuZGVmaW5lZC5cbiAgICAgICAgICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMSAmJiBrZXkgPT09ICdjb2RlJyAmJiB0aGlzLiRyaWNoVGV4dEVkaXRvci5zdW1tZXJub3RlKCdpc0VtcHR5JykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IHRoaXMuJHJpY2hUZXh0RWRpdG9yLnN1bW1lcm5vdGUoJ2NvZGUnKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQgPT09ICcnID8gY29udGVudCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuJHJpY2hUZXh0RWRpdG9yLnN1bW1lcm5vdGUoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBvcDogYW55ID0gbmV3IE1hcCgpO1xuICAgICAgICAgICAgb3Auc2V0KGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fb3BlcmF0aW9uU3RhY2sucHVzaChvcCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXRDdXJyZW50UG9zaXRpb24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBlcmZvcm1FZGl0b3JPcGVyYXRpb24oJ2NyZWF0ZVJhbmdlJyk7XG4gICAgfVxuXG4gICAgdW5kbygpIHtcbiAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCd1bmRvJyk7XG4gICAgfVxuXG4gICAgZm9jdXMoKSB7XG4gICAgICAgIHRoaXMucGVyZm9ybUVkaXRvck9wZXJhdGlvbignZm9jdXMnKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5wZXJmb3JtRWRpdG9yT3BlcmF0aW9uKCdkZXN0cm95Jyk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPGRpdiByaWNoVGV4dEVkaXRvcj48L2Rpdj5cbjxkaXYgW2lubmVySFRNTF09XCJwcm94eU1vZGVsXCIgY2xhc3M9XCJ0YS1wcmV2aWV3XCIgKm5nSWY9XCJzaG93cHJldmlld1wiPjwvZGl2PlxuPGlucHV0IGNsYXNzPVwibW9kZWwtaG9sZGVyXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgaGlkZGVuPlxuIl19
@@ -1,5 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { SecurityContext, Component, Inject, Optional, NgModule } from '@angular/core';
3
+ import * as i2 from '@angular/common';
3
4
  import { CommonModule } from '@angular/common';
4
5
  import * as i1 from '@wm/components/base';
5
6
  import { PROP_STRING, PROP_ANY, PROP_BOOLEAN, PROP_NUMBER, register, registerFormWidget, styler, APPLY_STYLES_TYPE, provideAs, provideAsWidgetRef, WmComponentsModule } from '@wm/components/base';
@@ -28,8 +29,8 @@ const registerProps = () => {
28
29
  };
29
30
 
30
31
  const _c0 = ["wmRichTextEditor", ""];
31
- function RichTextEditorComponent_Conditional_1_Template(rf, ctx) { if (rf & 1) {
32
- i0.ɵɵelement(0, "div", 1);
32
+ function RichTextEditorComponent_div_1_Template(rf, ctx) { if (rf & 1) {
33
+ i0.ɵɵelement(0, "div", 3);
33
34
  } if (rf & 2) {
34
35
  const ctx_r0 = i0.ɵɵnextContext();
35
36
  i0.ɵɵproperty("innerHTML", ctx_r0.proxyModel, i0.ɵɵsanitizeHtml);
@@ -207,23 +208,23 @@ class RichTextEditorComponent extends BaseFormCustomComponent {
207
208
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: RichTextEditorComponent, selectors: [["div", "wmRichTextEditor", ""]], exportAs: ["wmRichTextEditor"], features: [i0.ɵɵProvidersFeature([
208
209
  provideAs(RichTextEditorComponent, NG_VALUE_ACCESSOR, true),
209
210
  provideAsWidgetRef(RichTextEditorComponent)
210
- ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 3, vars: 2, consts: [["richTextEditor", ""], [1, "ta-preview", 3, "innerHTML"], ["hidden", "", 1, "model-holder", 3, "disabled"]], template: function RichTextEditorComponent_Template(rf, ctx) { if (rf & 1) {
211
+ ]), i0.ɵɵInheritDefinitionFeature], attrs: _c0, decls: 3, vars: 2, consts: [["richTextEditor", ""], ["class", "ta-preview", 3, "innerHTML", 4, "ngIf"], ["hidden", "", 1, "model-holder", 3, "disabled"], [1, "ta-preview", 3, "innerHTML"]], template: function RichTextEditorComponent_Template(rf, ctx) { if (rf & 1) {
211
212
  i0.ɵɵelement(0, "div", 0);
212
- i0.ɵɵtemplate(1, RichTextEditorComponent_Conditional_1_Template, 1, 1, "div", 1);
213
+ i0.ɵɵtemplate(1, RichTextEditorComponent_div_1_Template, 1, 1, "div", 1);
213
214
  i0.ɵɵelement(2, "input", 2);
214
215
  } if (rf & 2) {
215
216
  i0.ɵɵadvance();
216
- i0.ɵɵconditional(ctx.showpreview ? 1 : -1);
217
+ i0.ɵɵproperty("ngIf", ctx.showpreview);
217
218
  i0.ɵɵadvance();
218
219
  i0.ɵɵproperty("disabled", ctx.disabled);
219
- } }, encapsulation: 2 }); }
220
+ } }, dependencies: [i2.NgIf], encapsulation: 2 }); }
220
221
  }
221
222
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RichTextEditorComponent, [{
222
223
  type: Component,
223
224
  args: [{ selector: 'div[wmRichTextEditor]', providers: [
224
225
  provideAs(RichTextEditorComponent, NG_VALUE_ACCESSOR, true),
225
226
  provideAsWidgetRef(RichTextEditorComponent)
226
- ], exportAs: 'wmRichTextEditor', template: "<div richTextEditor></div>\n@if (showpreview) {\n <div [innerHTML]=\"proxyModel\" class=\"ta-preview\"></div>\n}\n<input class=\"model-holder\" [disabled]=\"disabled\" hidden>\n" }]
227
+ ], exportAs: 'wmRichTextEditor', template: "<div richTextEditor></div>\n<div [innerHTML]=\"proxyModel\" class=\"ta-preview\" *ngIf=\"showpreview\"></div>\n<input class=\"model-holder\" [disabled]=\"disabled\" hidden>\n" }]
227
228
  }], () => [{ type: i0.Injector }, { type: i1.SanitizePipe }, { type: i0.NgZone }, { type: undefined, decorators: [{
228
229
  type: Inject,
229
230
  args: ['EXPLICIT_CONTEXT']
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/basic/rich-text-editor/src/rich-text-editor.props.ts","../../../../../projects/components/widgets/basic/rich-text-editor/src/rich-text-editor.component.html","../../../../../projects/components/widgets/basic/rich-text-editor/src/rich-text-editor.component.ts","../../../../../projects/components/widgets/basic/rich-text-editor/src/rich-text-editor.module.ts","../../../../../projects/components/widgets/basic/rich-text-editor/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 richTextProps = new Map(\n [\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['height', PROP_STRING],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['name', PROP_STRING],\n ['placeholder', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showpreview', {value: false, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-richtexteditor',\n richTextProps\n );\n registerFormWidget(\n FormWidgetType.RICHTEXT,\n new Map(richTextProps)\n );\n};\n","<div richTextEditor></div>\n@if (showpreview) {\n <div [innerHTML]=\"proxyModel\" class=\"ta-preview\"></div>\n}\n<input class=\"model-holder\" [disabled]=\"disabled\" hidden>\n","import {Component, Inject, Injector, NgZone, OnDestroy, OnInit, Optional, SecurityContext} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\n\nimport {setAttr, setCSS, setHtml} from '@wm/core';\nimport {APPLY_STYLES_TYPE, provideAs, provideAsWidgetRef, SanitizePipe, styler} from '@wm/components/base';\nimport {BaseFormCustomComponent} from '@wm/components/input';\n\nimport {registerProps} from './rich-text-editor.props';\nimport {extend} from \"lodash-es\";\n\n\nconst WIDGET_INFO = {widgetType: 'wm-richtexteditor', hostClass: 'app-richtexteditor clearfix'};\n\nconst getChangeEvt = () => {\n let changeEvt;\n // for IE the event constructor doesn't work so use the createEvent proto\n if (typeof(Event) === 'function') {\n changeEvt = new Event('change');\n } else {\n changeEvt = document.createEvent('Event');\n changeEvt.initEvent('change', true, true);\n }\n return changeEvt;\n};\n\ndeclare const _, $;\n\nconst overrideSummerNote = () => {\n if (!$.summernote.__overidden) {\n // override summernote methods\n\n const origFn = $.summernote.ui_template().button.bind($.summernote);\n\n $.summernote.ui_template.button = (...args) => {\n\n const retVal = origFn(...args);\n const origCallback = retVal.callback;\n\n retVal.callback = ($node, options) => {\n // add bs3 btn class to the buttons\n $node.addClass('btn');\n return origCallback($node, options);\n };\n return retVal;\n };\n $.summernote.__overidden = true;\n }\n};\n\n@Component({\n selector: 'div[wmRichTextEditor]',\n templateUrl: './rich-text-editor.component.html',\n providers: [\n provideAs(RichTextEditorComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(RichTextEditorComponent)\n ],\n exportAs: 'wmRichTextEditor'\n})\nexport class RichTextEditorComponent extends BaseFormCustomComponent implements OnInit, OnDestroy {\n static initializeProps = registerProps();\n\n $richTextEditor;\n $hiddenInputEle;\n\n proxyModel;\n _operationStack = [];\n isEditorLoaded = false;\n\n public showpreview: any;\n public disabled: boolean;\n\n EDITOR_DEFAULT_OPTIONS = {\n toolbar: [\n // [groupName, [list of button]]\n ['misc', ['undo', 'redo']],\n ['style', ['style']],\n ['fontname', ['fontname']],\n ['fontsize', ['fontsize']],\n ['height', ['height']],\n ['style', ['bold', 'italic', 'underline', 'clear']],\n ['font', ['strikethrough', 'superscript', 'subscript']],\n ['color', ['color']],\n ['insert', ['table', 'picture', 'link', 'video', 'hr']],\n ['para', ['ul', 'ol', 'paragraph']],\n ['misc', ['codeview', 'fullscreen', 'help']]\n ],\n callbacks: {\n onInit: () => {\n this.isEditorLoaded = true;\n if (this._operationStack.length) {\n this._operationStack.forEach(operationParam => {\n const key = Array.from(operationParam.keys())[0],\n val = operationParam.get(key);\n this.performEditorOperation(key, val);\n });\n this._operationStack = [];\n }\n },\n onChange: (contents, editable) => {\n this.proxyModel = this.sanitizePipe.transform(contents, SecurityContext.HTML);\n this.invokeOnChange(contents, getChangeEvt(), true);\n this.invokeOnTouched();\n }\n },\n fontNames: ['Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Merriweather'],\n placeholder: 'write here...',\n minHeight: 100,\n disableResizeEditor: true\n };\n\n get htmlcontent() {\n return this.performEditorOperation('code');\n }\n\n // @ts-ignore\n get datavalue() {\n return this.htmlcontent;\n }\n\n // @ts-ignore\n set datavalue(nv) {\n if (nv !== undefined && nv !== null) {\n this.$hiddenInputEle.val(nv);\n this.performEditorOperation('reset');\n this.performEditorOperation('code', nv);\n }\n }\n\n constructor(inj: Injector, private sanitizePipe: SanitizePipe, private ngZone: NgZone, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_INFO, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER, ['height']);\n overrideSummerNote();\n }\n\n ngOnInit() {\n this.$richTextEditor = $(this.nativeElement.querySelector('[richTextEditor]'));\n this.$hiddenInputEle = $(this.nativeElement.querySelector('input.model-holder'));\n super.ngOnInit();\n this.initEditor();\n $('.note-editable').attr('aria-label', 'textbox');\n }\n\n initEditor() {\n this.ngZone.runOutsideAngular(() => {\n this.invokeEventCallback('beforerender', {'$event' : {}});\n this.$richTextEditor.summernote(this.EDITOR_DEFAULT_OPTIONS);\n });\n\n }\n\n getDefaultOptions() {\n return this.EDITOR_DEFAULT_OPTIONS;\n }\n\n getLib() {\n return 'summernote';\n }\n\n overrideDefaults(options) {\n extend(this.EDITOR_DEFAULT_OPTIONS, options);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'placeholder') {\n this.performEditorOperation('placeholder', nv);\n } else if (key === 'disabled' || key === 'readonly') {\n this.performEditorOperation(nv ? 'disable' : 'enable');\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n onStyleChange(key, nv, ov) {\n if (key === 'height') {\n this.performEditorOperation('height', nv);\n }\n }\n\n performEditorOperation(key, value?) {\n if (this.isEditorLoaded) {\n if (key === 'height') {\n setCSS(this.nativeElement.querySelector('div.note-editable'), key, value, true);\n } else if (key === 'placeholder') {\n setAttr(this.nativeElement, key, value);\n setHtml(this.nativeElement.querySelector('div.note-placeholder'), value, true);\n } else {\n // if editor content is empty then summernote('code') is returning empty p tags like <p></br></p>. So checking for empty and returning undefined.\n if (arguments.length === 1 && key === 'code' && this.$richTextEditor.summernote('isEmpty')) {\n const content = this.$richTextEditor.summernote('code');\n return content === '' ? content : undefined;\n }\n return this.$richTextEditor.summernote(key, value);\n }\n } else {\n const op: any = new Map();\n op.set(key, value);\n this._operationStack.push(op);\n return;\n }\n }\n\n getCurrentPosition() {\n return this.performEditorOperation('createRange');\n }\n\n undo() {\n this.performEditorOperation('undo');\n }\n\n focus() {\n this.performEditorOperation('focus');\n }\n\n ngOnDestroy() {\n this.performEditorOperation('destroy');\n super.ngOnDestroy();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { RichTextEditorComponent } from './rich-text-editor.component';\n\nconst components = [\n RichTextEditorComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class RichTextEditorModule {\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/basic/rich-text-editor/src/rich-text-editor.props.ts","../../../../../projects/components/widgets/basic/rich-text-editor/src/rich-text-editor.component.html","../../../../../projects/components/widgets/basic/rich-text-editor/src/rich-text-editor.component.ts","../../../../../projects/components/widgets/basic/rich-text-editor/src/rich-text-editor.module.ts","../../../../../projects/components/widgets/basic/rich-text-editor/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 richTextProps = new Map(\n [\n ['class', PROP_STRING],\n ['datavaluesource', PROP_ANY],\n ['datavalue', PROP_STRING],\n ['height', PROP_STRING],\n ['hint', PROP_STRING],\n ['arialabel', PROP_STRING],\n ['name', PROP_STRING],\n ['placeholder', PROP_STRING],\n ['readonly', PROP_BOOLEAN],\n ['show', {value: true, ...PROP_BOOLEAN}],\n ['showpreview', {value: false, ...PROP_BOOLEAN}],\n ['tabindex', {value: 0, ...PROP_NUMBER}]\n ]\n);\n\nexport const registerProps = () => {\n register(\n 'wm-richtexteditor',\n richTextProps\n );\n registerFormWidget(\n FormWidgetType.RICHTEXT,\n new Map(richTextProps)\n );\n};\n","<div richTextEditor></div>\n<div [innerHTML]=\"proxyModel\" class=\"ta-preview\" *ngIf=\"showpreview\"></div>\n<input class=\"model-holder\" [disabled]=\"disabled\" hidden>\n","import {Component, Inject, Injector, NgZone, OnDestroy, OnInit, Optional, SecurityContext} from '@angular/core';\nimport {NG_VALUE_ACCESSOR} from '@angular/forms';\n\nimport {setAttr, setCSS, setHtml} from '@wm/core';\nimport {APPLY_STYLES_TYPE, provideAs, provideAsWidgetRef, SanitizePipe, styler} from '@wm/components/base';\nimport {BaseFormCustomComponent} from '@wm/components/input';\n\nimport {registerProps} from './rich-text-editor.props';\nimport {extend} from \"lodash-es\";\n\n\nconst WIDGET_INFO = {widgetType: 'wm-richtexteditor', hostClass: 'app-richtexteditor clearfix'};\n\nconst getChangeEvt = () => {\n let changeEvt;\n // for IE the event constructor doesn't work so use the createEvent proto\n if (typeof(Event) === 'function') {\n changeEvt = new Event('change');\n } else {\n changeEvt = document.createEvent('Event');\n changeEvt.initEvent('change', true, true);\n }\n return changeEvt;\n};\n\ndeclare const _, $;\n\nconst overrideSummerNote = () => {\n if (!$.summernote.__overidden) {\n // override summernote methods\n\n const origFn = $.summernote.ui_template().button.bind($.summernote);\n\n $.summernote.ui_template.button = (...args) => {\n\n const retVal = origFn(...args);\n const origCallback = retVal.callback;\n\n retVal.callback = ($node, options) => {\n // add bs3 btn class to the buttons\n $node.addClass('btn');\n return origCallback($node, options);\n };\n return retVal;\n };\n $.summernote.__overidden = true;\n }\n};\n\n@Component({\n selector: 'div[wmRichTextEditor]',\n templateUrl: './rich-text-editor.component.html',\n providers: [\n provideAs(RichTextEditorComponent, NG_VALUE_ACCESSOR, true),\n provideAsWidgetRef(RichTextEditorComponent)\n ],\n exportAs: 'wmRichTextEditor'\n})\nexport class RichTextEditorComponent extends BaseFormCustomComponent implements OnInit, OnDestroy {\n static initializeProps = registerProps();\n\n $richTextEditor;\n $hiddenInputEle;\n\n proxyModel;\n _operationStack = [];\n isEditorLoaded = false;\n\n public showpreview: any;\n public disabled: boolean;\n\n EDITOR_DEFAULT_OPTIONS = {\n toolbar: [\n // [groupName, [list of button]]\n ['misc', ['undo', 'redo']],\n ['style', ['style']],\n ['fontname', ['fontname']],\n ['fontsize', ['fontsize']],\n ['height', ['height']],\n ['style', ['bold', 'italic', 'underline', 'clear']],\n ['font', ['strikethrough', 'superscript', 'subscript']],\n ['color', ['color']],\n ['insert', ['table', 'picture', 'link', 'video', 'hr']],\n ['para', ['ul', 'ol', 'paragraph']],\n ['misc', ['codeview', 'fullscreen', 'help']]\n ],\n callbacks: {\n onInit: () => {\n this.isEditorLoaded = true;\n if (this._operationStack.length) {\n this._operationStack.forEach(operationParam => {\n const key = Array.from(operationParam.keys())[0],\n val = operationParam.get(key);\n this.performEditorOperation(key, val);\n });\n this._operationStack = [];\n }\n },\n onChange: (contents, editable) => {\n this.proxyModel = this.sanitizePipe.transform(contents, SecurityContext.HTML);\n this.invokeOnChange(contents, getChangeEvt(), true);\n this.invokeOnTouched();\n }\n },\n fontNames: ['Arial', 'Arial Black', 'Comic Sans MS', 'Courier New', 'Merriweather'],\n placeholder: 'write here...',\n minHeight: 100,\n disableResizeEditor: true\n };\n\n get htmlcontent() {\n return this.performEditorOperation('code');\n }\n\n // @ts-ignore\n get datavalue() {\n return this.htmlcontent;\n }\n\n // @ts-ignore\n set datavalue(nv) {\n if (nv !== undefined && nv !== null) {\n this.$hiddenInputEle.val(nv);\n this.performEditorOperation('reset');\n this.performEditorOperation('code', nv);\n }\n }\n\n constructor(inj: Injector, private sanitizePipe: SanitizePipe, private ngZone: NgZone, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n super(inj, WIDGET_INFO, explicitContext);\n styler(this.nativeElement, this, APPLY_STYLES_TYPE.CONTAINER, ['height']);\n overrideSummerNote();\n }\n\n ngOnInit() {\n this.$richTextEditor = $(this.nativeElement.querySelector('[richTextEditor]'));\n this.$hiddenInputEle = $(this.nativeElement.querySelector('input.model-holder'));\n super.ngOnInit();\n this.initEditor();\n $('.note-editable').attr('aria-label', 'textbox');\n }\n\n initEditor() {\n this.ngZone.runOutsideAngular(() => {\n this.invokeEventCallback('beforerender', {'$event' : {}});\n this.$richTextEditor.summernote(this.EDITOR_DEFAULT_OPTIONS);\n });\n\n }\n\n getDefaultOptions() {\n return this.EDITOR_DEFAULT_OPTIONS;\n }\n\n getLib() {\n return 'summernote';\n }\n\n overrideDefaults(options) {\n extend(this.EDITOR_DEFAULT_OPTIONS, options);\n }\n\n onPropertyChange(key: string, nv: any, ov?: any) {\n if (key === 'placeholder') {\n this.performEditorOperation('placeholder', nv);\n } else if (key === 'disabled' || key === 'readonly') {\n this.performEditorOperation(nv ? 'disable' : 'enable');\n } else {\n super.onPropertyChange(key, nv, ov);\n }\n }\n\n onStyleChange(key, nv, ov) {\n if (key === 'height') {\n this.performEditorOperation('height', nv);\n }\n }\n\n performEditorOperation(key, value?) {\n if (this.isEditorLoaded) {\n if (key === 'height') {\n setCSS(this.nativeElement.querySelector('div.note-editable'), key, value, true);\n } else if (key === 'placeholder') {\n setAttr(this.nativeElement, key, value);\n setHtml(this.nativeElement.querySelector('div.note-placeholder'), value, true);\n } else {\n // if editor content is empty then summernote('code') is returning empty p tags like <p></br></p>. So checking for empty and returning undefined.\n if (arguments.length === 1 && key === 'code' && this.$richTextEditor.summernote('isEmpty')) {\n const content = this.$richTextEditor.summernote('code');\n return content === '' ? content : undefined;\n }\n return this.$richTextEditor.summernote(key, value);\n }\n } else {\n const op: any = new Map();\n op.set(key, value);\n this._operationStack.push(op);\n return;\n }\n }\n\n getCurrentPosition() {\n return this.performEditorOperation('createRange');\n }\n\n undo() {\n this.performEditorOperation('undo');\n }\n\n focus() {\n this.performEditorOperation('focus');\n }\n\n ngOnDestroy() {\n this.performEditorOperation('destroy');\n super.ngOnDestroy();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { WmComponentsModule } from '@wm/components/base';\n\nimport { RichTextEditorComponent } from './rich-text-editor.component';\n\nconst components = [\n RichTextEditorComponent\n];\n\n@NgModule({\n imports: [\n CommonModule,\n WmComponentsModule\n ],\n declarations: [...components],\n exports: [...components]\n})\nexport class RichTextEditorModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}