@skyux/text-editor 4.0.0-beta.2 → 5.0.0-beta.4

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 (101) hide show
  1. package/LICENSE +21 -0
  2. package/bundles/skyux-text-editor.umd.js +730 -562
  3. package/bundles/skyux-text-editor.umd.js.map +1 -1
  4. package/documentation.json +1961 -0
  5. package/esm2015/modules/rich-text-display/rich-text-display.component.js +17 -20
  6. package/esm2015/modules/rich-text-display/rich-text-display.module.js +22 -17
  7. package/esm2015/modules/shared/forms-utility.js +1 -1
  8. package/esm2015/modules/shared/sky-text-editor-resources.module.js +41 -0
  9. package/esm2015/modules/text-editor/defaults/font-list-defaults.js +1 -1
  10. package/esm2015/modules/text-editor/defaults/font-size-list-defaults.js +1 -1
  11. package/esm2015/modules/text-editor/defaults/menu-defaults.js +1 -1
  12. package/esm2015/modules/text-editor/defaults/style-state-defaults.js +1 -1
  13. package/esm2015/modules/text-editor/defaults/toolbar-action-defaults.js +1 -1
  14. package/esm2015/modules/text-editor/menubar/text-editor-menubar.component.js +32 -36
  15. package/esm2015/modules/text-editor/services/text-editor-adapter.service.js +17 -22
  16. package/esm2015/modules/text-editor/services/text-editor-selection.service.js +12 -13
  17. package/esm2015/modules/text-editor/services/text-editor.service.js +11 -11
  18. package/esm2015/modules/text-editor/services/text-sanitization.service.js +12 -14
  19. package/esm2015/modules/text-editor/text-editor.component.js +63 -68
  20. package/esm2015/modules/text-editor/text-editor.module.js +68 -27
  21. package/esm2015/modules/text-editor/toolbar/text-editor-toolbar.component.js +40 -42
  22. package/esm2015/modules/text-editor/types/editor-command.js +2 -1
  23. package/esm2015/modules/text-editor/types/editor-setting.js +2 -1
  24. package/esm2015/modules/text-editor/types/font-state.js +2 -1
  25. package/esm2015/modules/text-editor/types/menu-type.js +2 -1
  26. package/esm2015/modules/text-editor/types/style-state.js +2 -1
  27. package/esm2015/modules/text-editor/types/text-editor-merge-field.js +2 -1
  28. package/esm2015/modules/text-editor/types/toolbar-action-type.js +2 -1
  29. package/esm2015/modules/text-editor/url-modal/text-editor-url-modal-context.js +1 -1
  30. package/esm2015/modules/text-editor/url-modal/text-editor-url-modal-result.js +2 -1
  31. package/esm2015/modules/text-editor/url-modal/text-editor-url-modal.component.js +21 -18
  32. package/esm2015/modules/text-editor/url-modal/text-editor-url-target.js +1 -1
  33. package/esm2015/public-api.js +15 -0
  34. package/esm2015/skyux-text-editor.js +2 -14
  35. package/fesm2015/skyux-text-editor.js +359 -312
  36. package/fesm2015/skyux-text-editor.js.map +1 -1
  37. package/modules/rich-text-display/rich-text-display.component.d.ts +3 -0
  38. package/modules/rich-text-display/rich-text-display.module.d.ts +6 -0
  39. package/modules/shared/sky-text-editor-resources.module.d.ts +14 -0
  40. package/modules/text-editor/menubar/text-editor-menubar.component.d.ts +3 -0
  41. package/modules/text-editor/services/text-editor-adapter.service.d.ts +3 -0
  42. package/modules/text-editor/services/text-editor-selection.service.d.ts +3 -0
  43. package/modules/text-editor/services/text-editor.service.d.ts +3 -0
  44. package/modules/text-editor/services/text-sanitization.service.d.ts +3 -0
  45. package/modules/text-editor/text-editor.component.d.ts +3 -0
  46. package/modules/text-editor/text-editor.module.d.ts +21 -0
  47. package/modules/text-editor/toolbar/text-editor-toolbar.component.d.ts +3 -0
  48. package/modules/text-editor/url-modal/text-editor-url-modal.component.d.ts +3 -0
  49. package/package.json +20 -36
  50. package/public-api.d.ts +12 -0
  51. package/skyux-text-editor.d.ts +2 -13
  52. package/CHANGELOG.md +0 -13
  53. package/bundles/skyux-text-editor.umd.min.js +0 -2
  54. package/bundles/skyux-text-editor.umd.min.js.map +0 -1
  55. package/esm2015/plugin-resources/text-editor-resources-provider.js +0 -16
  56. package/esm2015/plugin-resources/text-editor-resources.module.js +0 -19
  57. package/esm2015/public_api.js +0 -3
  58. package/esm5/modules/rich-text-display/rich-text-display.component.js +0 -44
  59. package/esm5/modules/rich-text-display/rich-text-display.module.js +0 -24
  60. package/esm5/modules/shared/forms-utility.js +0 -14
  61. package/esm5/modules/text-editor/defaults/font-list-defaults.js +0 -42
  62. package/esm5/modules/text-editor/defaults/font-size-list-defaults.js +0 -5
  63. package/esm5/modules/text-editor/defaults/menu-defaults.js +0 -8
  64. package/esm5/modules/text-editor/defaults/style-state-defaults.js +0 -15
  65. package/esm5/modules/text-editor/defaults/toolbar-action-defaults.js +0 -12
  66. package/esm5/modules/text-editor/menubar/text-editor-menubar.component.js +0 -199
  67. package/esm5/modules/text-editor/services/text-editor-adapter.service.js +0 -470
  68. package/esm5/modules/text-editor/services/text-editor-selection.service.js +0 -77
  69. package/esm5/modules/text-editor/services/text-editor.service.js +0 -49
  70. package/esm5/modules/text-editor/services/text-sanitization.service.js +0 -41
  71. package/esm5/modules/text-editor/text-editor.component.js +0 -287
  72. package/esm5/modules/text-editor/text-editor.module.js +0 -63
  73. package/esm5/modules/text-editor/toolbar/text-editor-toolbar.component.js +0 -178
  74. package/esm5/modules/text-editor/types/editor-command.js +0 -1
  75. package/esm5/modules/text-editor/types/editor-setting.js +0 -1
  76. package/esm5/modules/text-editor/types/font-state.js +0 -1
  77. package/esm5/modules/text-editor/types/menu-type.js +0 -1
  78. package/esm5/modules/text-editor/types/style-state.js +0 -1
  79. package/esm5/modules/text-editor/types/text-editor-merge-field.js +0 -1
  80. package/esm5/modules/text-editor/types/toolbar-action-type.js +0 -1
  81. package/esm5/modules/text-editor/url-modal/text-editor-url-modal-context.js +0 -10
  82. package/esm5/modules/text-editor/url-modal/text-editor-url-modal-result.js +0 -1
  83. package/esm5/modules/text-editor/url-modal/text-editor-url-modal.component.js +0 -120
  84. package/esm5/modules/text-editor/url-modal/text-editor-url-target.js +0 -9
  85. package/esm5/plugin-resources/text-editor-resources-provider.js +0 -17
  86. package/esm5/plugin-resources/text-editor-resources.module.js +0 -22
  87. package/esm5/public_api.js +0 -3
  88. package/esm5/skyux-text-editor.js +0 -17
  89. package/fesm5/skyux-text-editor.js +0 -1620
  90. package/fesm5/skyux-text-editor.js.map +0 -1
  91. package/plugin-resources/text-editor-resources-provider.d.ts +0 -5
  92. package/plugin-resources/text-editor-resources.module.d.ts +0 -2
  93. package/public_api.d.ts +0 -7
  94. package/skyux-text-editor.metadata.json +0 -1
  95. package/src/assets/img/default-anatomy.png +0 -0
  96. package/src/assets/img/default-option-menu-toolbar-items.png +0 -0
  97. package/src/assets/img/default-use-when.png +0 -0
  98. package/src/assets/img/modern-anatomy.png +0 -0
  99. package/src/assets/img/modern-option-menu-toolbar-items.png +0 -0
  100. package/src/assets/img/modern-use-when.png +0 -0
  101. package/src/assets/locales/resources_en_US.json +0 -130
@@ -1,49 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * @internal
6
- */
7
- var SkyTextEditorService = /** @class */ (function () {
8
- function SkyTextEditorService() {
9
- /**
10
- * A dictionary representing all active text editors and their settings.
11
- */
12
- this.editors = {};
13
- }
14
- /**
15
- * Returns the click observable from the editor with the corresponding id.
16
- */
17
- SkyTextEditorService.prototype.clickListener = function (id) {
18
- return this.editors[id].clickObservable;
19
- };
20
- /**
21
- * Returns the command change observable from the editor with the corresponding id.
22
- */
23
- SkyTextEditorService.prototype.commandChangeListener = function (id) {
24
- return this.editors[id].commandChangeObservable;
25
- };
26
- /**
27
- * Removes editor from the `editors` index by id.
28
- */
29
- SkyTextEditorService.prototype.removeEditor = function (id) {
30
- if (id in this.editors) {
31
- delete this.editors[id];
32
- }
33
- };
34
- /**
35
- * Returns the selection change observable from the editor with the corresponding id.
36
- */
37
- SkyTextEditorService.prototype.selectionChangeListener = function (id) {
38
- return this.editors[id].selectionChangeObservable;
39
- };
40
- SkyTextEditorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SkyTextEditorService_Factory() { return new SkyTextEditorService(); }, token: SkyTextEditorService, providedIn: "root" });
41
- SkyTextEditorService = __decorate([
42
- Injectable({
43
- providedIn: 'root'
44
- })
45
- ], SkyTextEditorService);
46
- return SkyTextEditorService;
47
- }());
48
- export { SkyTextEditorService };
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90ZXh0LWVkaXRvci8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdGV4dC1lZGl0b3Ivc2VydmljZXMvdGV4dC1lZGl0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQzs7QUFVdkI7O0dBRUc7QUFJSDtJQUFBO1FBRUU7O1dBRUc7UUFDSSxZQUFPLEdBQXFDLEVBQUUsQ0FBQztLQWdDdkQ7SUE5QkM7O09BRUc7SUFDSSw0Q0FBYSxHQUFwQixVQUFxQixFQUFVO1FBQzdCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksb0RBQXFCLEdBQTVCLFVBQTZCLEVBQVU7UUFDckMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLHVCQUF1QixDQUFDO0lBQ2xELENBQUM7SUFFRDs7T0FFRztJQUNJLDJDQUFZLEdBQW5CLFVBQW9CLEVBQVU7UUFDNUIsSUFBSSxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDekI7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxzREFBdUIsR0FBOUIsVUFBK0IsRUFBVTtRQUN2QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMseUJBQXlCLENBQUM7SUFDcEQsQ0FBQzs7SUFuQ1Usb0JBQW9CO1FBSGhDLFVBQVUsQ0FBQztZQUNWLFVBQVUsRUFBRSxNQUFNO1NBQ25CLENBQUM7T0FDVyxvQkFBb0IsQ0FxQ2hDOytCQXZERDtDQXVEQyxBQXJDRCxJQXFDQztTQXJDWSxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBPYnNlcnZhYmxlXG59IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge1xuICBFZGl0b3JTZXR0aW5nXG59IGZyb20gJy4uL3R5cGVzL2VkaXRvci1zZXR0aW5nJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGV4dEVkaXRvclNlcnZpY2Uge1xuXG4gIC8qKlxuICAgKiBBIGRpY3Rpb25hcnkgcmVwcmVzZW50aW5nIGFsbCBhY3RpdmUgdGV4dCBlZGl0b3JzIGFuZCB0aGVpciBzZXR0aW5ncy5cbiAgICovXG4gIHB1YmxpYyBlZGl0b3JzOiB7IFtrZXk6IHN0cmluZ106IEVkaXRvclNldHRpbmcgfSA9IHt9O1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjbGljayBvYnNlcnZhYmxlIGZyb20gdGhlIGVkaXRvciB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGlkLlxuICAgKi9cbiAgcHVibGljIGNsaWNrTGlzdGVuZXIoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dW5rbm93bj4ge1xuICAgIHJldHVybiB0aGlzLmVkaXRvcnNbaWRdLmNsaWNrT2JzZXJ2YWJsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb21tYW5kIGNoYW5nZSBvYnNlcnZhYmxlIGZyb20gdGhlIGVkaXRvciB3aXRoIHRoZSBjb3JyZXNwb25kaW5nIGlkLlxuICAgKi9cbiAgcHVibGljIGNvbW1hbmRDaGFuZ2VMaXN0ZW5lcihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yc1tpZF0uY29tbWFuZENoYW5nZU9ic2VydmFibGU7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBlZGl0b3IgZnJvbSB0aGUgYGVkaXRvcnNgIGluZGV4IGJ5IGlkLlxuICAgKi9cbiAgcHVibGljIHJlbW92ZUVkaXRvcihpZDogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKGlkIGluIHRoaXMuZWRpdG9ycykge1xuICAgICAgZGVsZXRlIHRoaXMuZWRpdG9yc1tpZF07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHNlbGVjdGlvbiBjaGFuZ2Ugb2JzZXJ2YWJsZSBmcm9tIHRoZSBlZGl0b3Igd2l0aCB0aGUgY29ycmVzcG9uZGluZyBpZC5cbiAgICovXG4gIHB1YmxpYyBzZWxlY3Rpb25DaGFuZ2VMaXN0ZW5lcihpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuZWRpdG9yc1tpZF0uc2VsZWN0aW9uQ2hhbmdlT2JzZXJ2YWJsZTtcbiAgfVxuXG59XG4iXX0=
@@ -1,41 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { Injectable } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- // TODO: figure out how to get the following `import` to work with docs-tools library.
5
- // import DOMPurify from 'dompurify';
6
- var createDOMPurify = require('dompurify');
7
- var domPurify = createDOMPurify(window);
8
- domPurify.addHook('afterSanitizeAttributes', function (node) {
9
- // Set all elements owning target to target=_blank
10
- // so we only allow the target attribute with that value.
11
- if (!!node.getAttribute('target')) {
12
- node.setAttribute('target', '_blank');
13
- node.setAttribute('rel', 'noopener noreferrer');
14
- }
15
- });
16
- /**
17
- * The `SkyTextSanitizationService` user the `DOMPurify` library to sanitize strings for use
18
- * in the DOM. `DOMPurify` allows more customization than Angular's internal `DomSanitizer` so we
19
- * can preserve `<style>` tags and allow `target` attributes for new tab links.
20
- * @internal
21
- */
22
- var SkyTextSanitizationService = /** @class */ (function () {
23
- function SkyTextSanitizationService() {
24
- this.allowedAttributes = ['target'];
25
- }
26
- /**
27
- * Returns a sanitized string, allowing target attribute for new tab links.
28
- */
29
- SkyTextSanitizationService.prototype.sanitize = function (htmlString) {
30
- return domPurify.sanitize(htmlString, { ADD_ATTR: this.allowedAttributes });
31
- };
32
- SkyTextSanitizationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function SkyTextSanitizationService_Factory() { return new SkyTextSanitizationService(); }, token: SkyTextSanitizationService, providedIn: "root" });
33
- SkyTextSanitizationService = __decorate([
34
- Injectable({
35
- providedIn: 'root'
36
- })
37
- ], SkyTextSanitizationService);
38
- return SkyTextSanitizationService;
39
- }());
40
- export { SkyTextSanitizationService };
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1zYW5pdGl6YXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC90ZXh0LWVkaXRvci8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdGV4dC1lZGl0b3Ivc2VydmljZXMvdGV4dC1zYW5pdGl6YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQzs7QUFFdkIsc0ZBQXNGO0FBQ3RGLHFDQUFxQztBQUNyQyxJQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDN0MsSUFBTSxTQUFTLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBRTFDLFNBQVMsQ0FBQyxPQUFPLENBQUMseUJBQXlCLEVBQUUsVUFBQyxJQUFhO0lBQ3pELGtEQUFrRDtJQUNsRCx5REFBeUQ7SUFDekQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRTtRQUNqQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0tBQ2pEO0FBQ0gsQ0FBQyxDQUFDLENBQUM7QUFFSDs7Ozs7R0FLRztBQUlIO0lBQUE7UUFFVSxzQkFBaUIsR0FBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBU2xEO0lBUEM7O09BRUc7SUFDSSw2Q0FBUSxHQUFmLFVBQWdCLFVBQWtCO1FBQ2hDLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDOztJQVRVLDBCQUEwQjtRQUh0QyxVQUFVLENBQUM7WUFDVixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDO09BQ1csMEJBQTBCLENBV3RDO3FDQXRDRDtDQXNDQyxBQVhELElBV0M7U0FYWSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJbmplY3RhYmxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBUT0RPOiBmaWd1cmUgb3V0IGhvdyB0byBnZXQgdGhlIGZvbGxvd2luZyBgaW1wb3J0YCB0byB3b3JrIHdpdGggZG9jcy10b29scyBsaWJyYXJ5LlxuLy8gaW1wb3J0IERPTVB1cmlmeSBmcm9tICdkb21wdXJpZnknO1xuY29uc3QgY3JlYXRlRE9NUHVyaWZ5ID0gcmVxdWlyZSgnZG9tcHVyaWZ5Jyk7XG5jb25zdCBkb21QdXJpZnkgPSBjcmVhdGVET01QdXJpZnkod2luZG93KTtcblxuZG9tUHVyaWZ5LmFkZEhvb2soJ2FmdGVyU2FuaXRpemVBdHRyaWJ1dGVzJywgKG5vZGU6IEVsZW1lbnQpID0+IHtcbiAgLy8gU2V0IGFsbCBlbGVtZW50cyBvd25pbmcgdGFyZ2V0IHRvIHRhcmdldD1fYmxhbmtcbiAgLy8gc28gd2Ugb25seSBhbGxvdyB0aGUgdGFyZ2V0IGF0dHJpYnV0ZSB3aXRoIHRoYXQgdmFsdWUuXG4gIGlmICghIW5vZGUuZ2V0QXR0cmlidXRlKCd0YXJnZXQnKSkge1xuICAgIG5vZGUuc2V0QXR0cmlidXRlKCd0YXJnZXQnLCAnX2JsYW5rJyk7XG4gICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ3JlbCcsICdub29wZW5lciBub3JlZmVycmVyJyk7XG4gIH1cbn0pO1xuXG4vKipcbiAqIFRoZSBgU2t5VGV4dFNhbml0aXphdGlvblNlcnZpY2VgIHVzZXIgdGhlIGBET01QdXJpZnlgIGxpYnJhcnkgdG8gc2FuaXRpemUgc3RyaW5ncyBmb3IgdXNlXG4gKiBpbiB0aGUgRE9NLiBgRE9NUHVyaWZ5YCBhbGxvd3MgbW9yZSBjdXN0b21pemF0aW9uIHRoYW4gQW5ndWxhcidzIGludGVybmFsIGBEb21TYW5pdGl6ZXJgIHNvIHdlXG4gKiBjYW4gcHJlc2VydmUgYDxzdHlsZT5gIHRhZ3MgYW5kIGFsbG93IGB0YXJnZXRgIGF0dHJpYnV0ZXMgZm9yIG5ldyB0YWIgbGlua3MuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGV4dFNhbml0aXphdGlvblNlcnZpY2Uge1xuXG4gIHByaXZhdGUgYWxsb3dlZEF0dHJpYnV0ZXM6IHN0cmluZ1tdID0gWyd0YXJnZXQnXTtcblxuICAvKipcbiAgICogUmV0dXJucyBhIHNhbml0aXplZCBzdHJpbmcsIGFsbG93aW5nIHRhcmdldCBhdHRyaWJ1dGUgZm9yIG5ldyB0YWIgbGlua3MuXG4gICAqL1xuICBwdWJsaWMgc2FuaXRpemUoaHRtbFN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gZG9tUHVyaWZ5LnNhbml0aXplKGh0bWxTdHJpbmcsIHsgQUREX0FUVFI6IHRoaXMuYWxsb3dlZEF0dHJpYnV0ZXMgfSk7XG4gIH1cblxufVxuIl19
@@ -1,287 +0,0 @@
1
- import { __assign, __decorate } from "tslib";
2
- import { AfterViewInit, ChangeDetectorRef, ChangeDetectionStrategy, Component, ElementRef, forwardRef, Input, OnDestroy, ViewChild, ViewEncapsulation } from '@angular/core';
3
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
4
- import { takeUntil } from 'rxjs/operators';
5
- import { Subject } from 'rxjs';
6
- import { SkyCoreAdapterService } from '@skyux/core';
7
- import { MENU_DEFAULTS } from './defaults/menu-defaults';
8
- import { STYLE_STATE_DEFAULTS } from './defaults/style-state-defaults';
9
- import { TOOLBAR_ACTION_DEFAULTS } from './defaults/toolbar-action-defaults';
10
- import { SkyTextEditorAdapterService } from './services/text-editor-adapter.service';
11
- import { SkyTextEditorService } from './services/text-editor.service';
12
- import { SkyTextSanitizationService } from './services/text-sanitization.service';
13
- import { FONT_LIST_DEFAULTS } from './defaults/font-list-defaults';
14
- import { FONT_SIZE_LIST_DEFAULTS } from './defaults/font-size-list-defaults';
15
- import { SkyFormsUtility } from '../shared/forms-utility';
16
- /**
17
- * Auto-incrementing integer used to generate unique ids for radio components.
18
- */
19
- var nextUniqueId = 0;
20
- /**
21
- * The text editor component lets users format and manipulate text.
22
- */
23
- var SkyTextEditorComponent = /** @class */ (function () {
24
- function SkyTextEditorComponent(changeDetector, coreAdapterService, adapterService, editorService, sanitizationService) {
25
- this.changeDetector = changeDetector;
26
- this.coreAdapterService = coreAdapterService;
27
- this.adapterService = adapterService;
28
- this.editorService = editorService;
29
- this.sanitizationService = sanitizationService;
30
- /**
31
- * Indicates whether to put focus on the editor after it renders.
32
- */
33
- this.autofocus = false;
34
- this.editorFocusStream = new Subject();
35
- // tslint:disable: max-line-length
36
- /**
37
- * Specifies the fonts to include in the font picker.
38
- * @default [{name: 'Blackbaud Sans', value: '"Blackbaud Sans", Arial, sans-serif'}, {name: 'Arial', value: 'Arial'}, {name: 'Arial Black', value: '"Arial Black"'}, {name: 'Courier New', value: '"Courier New"'}, {name: 'Georgia', value: 'Georgia, serif'}, {name: 'Tahoma', value: 'Tahoma, Geneva, sans-serif'}, {name: 'Times New Roman', value: '"Times New Roman"'}, {name: 'Trebuchet MS', value: '"Trebuchet MS", sans-serif'}, {name: 'Verdana', value: 'Verdana, Geneva, sans-serif'}]
39
- */
40
- // tslint:enable: max-line-length
41
- this.fontList = FONT_LIST_DEFAULTS;
42
- /**
43
- * Specifies the font sizes to include in the font size picker.
44
- * @default [6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 24, 26, 28, 36, 48]
45
- */
46
- this.fontSizeList = FONT_SIZE_LIST_DEFAULTS;
47
- /**
48
- * Specifies a unique ID attribute for the text editor.
49
- * By default, the component generates a random ID.
50
- */
51
- this.id = "sky-text-editor-" + ++nextUniqueId;
52
- /**
53
- * Specifies the menus to include in the menu bar.
54
- * @default [ 'edit', 'format' ]
55
- */
56
- this.menus = MENU_DEFAULTS;
57
- /**
58
- * Specifies the merge fields to include in the merge field menu.
59
- */
60
- this.mergeFields = [];
61
- // tslint:disable: max-line-length
62
- /**
63
- * Specifies the actions to include in the toolbar and determines their order.
64
- * @default [ 'font-family', 'font-size', 'font-style', 'color', 'list', 'link ]
65
- */
66
- // tslint:enable: max-line-length
67
- this.toolbarActions = TOOLBAR_ACTION_DEFAULTS;
68
- this.focusInitialized = false;
69
- this.initialized = false;
70
- this.ngUnsubscribe = new Subject();
71
- this._disabled = false;
72
- this._initialStyleState = Object.assign({}, STYLE_STATE_DEFAULTS);
73
- this._placeholder = '';
74
- this._value = '<p></p>';
75
- /* istanbul ignore next */
76
- this.onTouch = function () { };
77
- /* istanbul ignore next */
78
- this._onChange = function (_) { };
79
- }
80
- SkyTextEditorComponent_1 = SkyTextEditorComponent;
81
- Object.defineProperty(SkyTextEditorComponent.prototype, "disabled", {
82
- get: function () {
83
- return this._disabled;
84
- },
85
- /**
86
- * Indicates whether to disable the text editor.
87
- * @default false
88
- */
89
- set: function (value) {
90
- var coercedValue = SkyFormsUtility.coerceBooleanProperty(value);
91
- if (coercedValue !== this.disabled) {
92
- this._disabled = coercedValue;
93
- if (this._disabled) {
94
- this.adapterService.disableEditor(this.id, this.focusableChildren, this.iframeRef.nativeElement);
95
- }
96
- else {
97
- this.adapterService.enableEditor(this.id, this.focusableChildren, this.iframeRef.nativeElement);
98
- }
99
- this.changeDetector.markForCheck();
100
- }
101
- },
102
- enumerable: true,
103
- configurable: true
104
- });
105
- Object.defineProperty(SkyTextEditorComponent.prototype, "initialStyleState", {
106
- get: function () {
107
- return this._initialStyleState;
108
- },
109
- /**
110
- * Specifies the initial styles for all content, including background color, font size, and link state.
111
- */
112
- set: function (state) {
113
- // Do not update the state after initialization has taken place
114
- if (!this.initialized) {
115
- this._initialStyleState = __assign(__assign({}, STYLE_STATE_DEFAULTS), state);
116
- }
117
- },
118
- enumerable: true,
119
- configurable: true
120
- });
121
- Object.defineProperty(SkyTextEditorComponent.prototype, "placeholder", {
122
- get: function () {
123
- return this._placeholder;
124
- },
125
- /**
126
- * Specifies placeholder text to display when the text entry area is empty.
127
- */
128
- set: function (value) {
129
- if (value !== this._placeholder) {
130
- this._placeholder = value;
131
- if (this.initialized) {
132
- this.adapterService.setPlaceholder(this.id, value);
133
- }
134
- }
135
- },
136
- enumerable: true,
137
- configurable: true
138
- });
139
- Object.defineProperty(SkyTextEditorComponent.prototype, "value", {
140
- get: function () {
141
- return this._value;
142
- },
143
- set: function (value) {
144
- // Set clear state to be an empty string
145
- var valueString = value;
146
- if (!value || (value.trim() === '<p></p>' && value.trim() === '<br>')) {
147
- valueString = '';
148
- }
149
- valueString = this.sanitizationService.sanitize(valueString).trim();
150
- if (this._value !== valueString) {
151
- this._value = valueString;
152
- // Autofocus isn't testable in Firefox and IE.
153
- /* istanbul ignore next */
154
- if (this.autofocus && !this.focusInitialized) {
155
- this.adapterService.focusEditor(this.id);
156
- this.focusInitialized = true;
157
- }
158
- this.onChange();
159
- }
160
- },
161
- enumerable: true,
162
- configurable: true
163
- });
164
- SkyTextEditorComponent.prototype.ngAfterViewInit = function () {
165
- var _this = this;
166
- this.adapterService.addEditor(this.id, this.iframeRef.nativeElement, this.initialStyleState, this.placeholder);
167
- this.editorService.selectionChangeListener(this.id)
168
- .pipe(takeUntil(this.ngUnsubscribe))
169
- .subscribe(function () {
170
- _this.updateValueAndStyle();
171
- _this.editorFocusStream.next();
172
- });
173
- this.editorService.clickListener(this.id)
174
- .pipe(takeUntil(this.ngUnsubscribe))
175
- .subscribe(function () {
176
- _this.editorFocusStream.next();
177
- });
178
- this.editorService.commandChangeListener(this.id)
179
- .pipe(takeUntil(this.ngUnsubscribe))
180
- .subscribe(function () {
181
- _this.updateValueAndStyle();
182
- });
183
- this.adapterService.setEditorInnerHtml(this.id, this._value);
184
- /* istanbul ignore next */
185
- if (this.autofocus) {
186
- this.adapterService.focusEditor(this.id);
187
- }
188
- this.focusableChildren = this.coreAdapterService.getFocusableChildren(this.iframeRef.nativeElement, {
189
- ignoreVisibility: true
190
- });
191
- this.initialized = true;
192
- };
193
- SkyTextEditorComponent.prototype.ngOnDestroy = function () {
194
- this.adapterService.removeObservers(this.editorService.editors[this.id]);
195
- this.editorService.removeEditor(this.id);
196
- this.ngUnsubscribe.next();
197
- this.ngUnsubscribe.complete();
198
- };
199
- SkyTextEditorComponent.prototype.writeValue = function (obj) {
200
- this.value = obj;
201
- // Update HTML if necessary.
202
- var editorValue = this.adapterService.getEditorInnerHtml(this.id);
203
- if (this.initialized && editorValue !== this._value) {
204
- this.adapterService.setEditorInnerHtml(this.id, this._value);
205
- }
206
- };
207
- SkyTextEditorComponent.prototype.registerOnChange = function (fn) {
208
- this._onChange = fn;
209
- };
210
- SkyTextEditorComponent.prototype.registerOnTouched = function (fn) {
211
- this.onTouch = fn;
212
- };
213
- /**
214
- * Implemented as part of ControlValueAccessor.
215
- */
216
- SkyTextEditorComponent.prototype.setDisabledState = function (isDisabled) {
217
- this.disabled = isDisabled;
218
- };
219
- SkyTextEditorComponent.prototype.onChange = function () {
220
- this._onChange(this.value);
221
- };
222
- SkyTextEditorComponent.prototype.updateValueAndStyle = function () {
223
- this.value = this.adapterService.getEditorInnerHtml(this.id);
224
- this._initialStyleState = __assign(__assign({}, this._initialStyleState), this.adapterService.getStyleState(this.id));
225
- };
226
- var SkyTextEditorComponent_1;
227
- SkyTextEditorComponent.ctorParameters = function () { return [
228
- { type: ChangeDetectorRef },
229
- { type: SkyCoreAdapterService },
230
- { type: SkyTextEditorAdapterService },
231
- { type: SkyTextEditorService },
232
- { type: SkyTextSanitizationService }
233
- ]; };
234
- __decorate([
235
- Input()
236
- ], SkyTextEditorComponent.prototype, "autofocus", void 0);
237
- __decorate([
238
- Input()
239
- ], SkyTextEditorComponent.prototype, "disabled", null);
240
- __decorate([
241
- Input()
242
- ], SkyTextEditorComponent.prototype, "fontList", void 0);
243
- __decorate([
244
- Input()
245
- ], SkyTextEditorComponent.prototype, "fontSizeList", void 0);
246
- __decorate([
247
- Input()
248
- ], SkyTextEditorComponent.prototype, "id", void 0);
249
- __decorate([
250
- Input()
251
- ], SkyTextEditorComponent.prototype, "initialStyleState", null);
252
- __decorate([
253
- Input()
254
- ], SkyTextEditorComponent.prototype, "menus", void 0);
255
- __decorate([
256
- Input()
257
- ], SkyTextEditorComponent.prototype, "mergeFields", void 0);
258
- __decorate([
259
- Input()
260
- ], SkyTextEditorComponent.prototype, "placeholder", null);
261
- __decorate([
262
- Input()
263
- ], SkyTextEditorComponent.prototype, "toolbarActions", void 0);
264
- __decorate([
265
- ViewChild('iframe')
266
- ], SkyTextEditorComponent.prototype, "iframeRef", void 0);
267
- SkyTextEditorComponent = SkyTextEditorComponent_1 = __decorate([
268
- Component({
269
- selector: 'sky-text-editor',
270
- template: "<div\n class=\"sky-text-editor\"\n>\n <sky-toolbar\n class=\"sky-text-editor-toolbar\"\n >\n <sky-toolbar-section\n aria-label=\"Text formatting\"\n class=\"menubar\"\n role=\"toolbar\"\n >\n <sky-text-editor-menubar\n [disabled]=\"disabled\"\n [editorFocusStream]=\"editorFocusStream\"\n [editorId]=\"id\"\n [menus]=\"menus\"\n [mergeFields]=\"mergeFields\"\n >\n </sky-text-editor-menubar>\n </sky-toolbar-section>\n <sky-toolbar-section\n aria-label=\"Text formatting\"\n class=\"toolbar\"\n role=\"toolbar\"\n >\n <sky-text-editor-toolbar\n [disabled]=\"disabled\"\n [editorFocusStream]=\"editorFocusStream\"\n [editorId]=\"id\"\n [fontList]=\"fontList\"\n [fontSizeList]=\"fontSizeList\"\n [toolbarActions]=\"toolbarActions\"\n [styleState]=\"initialStyleState\"\n >\n </sky-text-editor-toolbar>\n </sky-toolbar-section>\n </sky-toolbar>\n <iframe\n class=\"sky-text-editor-wrapper\"\n src=\"about:blank\"\n title=\"Text Editor\"\n [ngClass]=\"{\n 'sky-text-editor-wrapper-disabled': disabled\n }\"\n #iframe\n >\n </iframe>\n</div>\n",
271
- providers: [
272
- {
273
- provide: NG_VALUE_ACCESSOR,
274
- // tslint:disable-next-line: no-forward-ref
275
- useExisting: forwardRef(function () { return SkyTextEditorComponent_1; }),
276
- multi: true
277
- }
278
- ],
279
- changeDetection: ChangeDetectionStrategy.OnPush,
280
- encapsulation: ViewEncapsulation.None,
281
- styles: [".sky-text-editor .sky-text-editor-wrapper{display:flex;flex-wrap:wrap;background-color:#fff;width:100%;height:300px;padding:1rem;font-size:1.2rem;border:1px solid silver;overflow-y:auto;outline:0}.sky-text-editor .sky-text-editor-wrapper.sky-text-editor-wrapper-disabled{background-color:#ededee}.sky-text-editor .sky-text-editor-toolbar .sky-toolbar-section{padding:10px 10px 0}.sky-text-editor .sky-text-editor-toolbar .sky-toolbar-sectioned{border-left:1px solid #cdcfd2!important;border-right:1px solid #cdcfd2!important}.sky-text-editor .sky-text-editor-toolbar .sky-toolbar-item{margin:0 20px 10px 0}.sky-text-editor .sky-text-editor-toolbar .sky-dropdown-button{border:none}.sky-text-editor .sky-text-editor-toolbar sky-text-editor-menubar,.sky-text-editor .sky-text-editor-toolbar sky-text-editor-toolbar{display:flex;flex-wrap:wrap}.sky-theme-modern .sky-text-editor .sky-text-editor-wrapper{border:1px solid #d2d2d2}.sky-theme-modern .sky-text-editor .sky-text-editor-wrapper.sky-text-editor-wrapper-disabled{background-color:#ececed}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar{padding:10px 10px 0}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar-section{padding:10px!important}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar-sectioned{border-top:1px solid #d2d2d2!important;border-left:1px solid #d2d2d2!important;border-right:1px solid #d2d2d2!important}.sky-theme-modern .sky-text-editor .sky-text-editor-toolbar .sky-toolbar-item{margin:0 20px 0 0!important}"]
282
- })
283
- ], SkyTextEditorComponent);
284
- return SkyTextEditorComponent;
285
- }());
286
- export { SkyTextEditorComponent };
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L3RleHQtZWRpdG9yLyIsInNvdXJjZXMiOlsibW9kdWxlcy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxhQUFhLEVBQ2IsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUVMLGlCQUFpQixFQUNsQixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFDTCxTQUFTLEVBQ1YsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQ0wsT0FBTyxFQUNSLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUNMLHFCQUFxQixFQUN0QixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQ0wsYUFBYSxFQUNkLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUNMLG9CQUFvQixFQUNyQixNQUFNLGlDQUFpQyxDQUFDO0FBRXpDLE9BQU8sRUFDTCx1QkFBdUIsRUFDeEIsTUFBTSxvQ0FBb0MsQ0FBQztBQUU1QyxPQUFPLEVBQ0wsMkJBQTJCLEVBQzVCLE1BQU0sd0NBQXdDLENBQUM7QUFFaEQsT0FBTyxFQUNMLG9CQUFvQixFQUNyQixNQUFNLGdDQUFnQyxDQUFDO0FBRXhDLE9BQU8sRUFDTCwwQkFBMEIsRUFDM0IsTUFBTSxzQ0FBc0MsQ0FBQztBQUU5QyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ25CLE1BQU0sK0JBQStCLENBQUM7QUFFdkMsT0FBTyxFQUNMLHVCQUF1QixFQUN4QixNQUFNLG9DQUFvQyxDQUFDO0FBc0I1QyxPQUFPLEVBQ0wsZUFBZSxFQUNoQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDOztH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QUFDOzZEQUNVO0lBOUluQixzQkFBc0I7UUFmbEMsU0FBUyxDQUFDO1lBQ1QsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQiw4dENBQTJDO1lBRTNDLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQiwyQ0FBMkM7b0JBQzNDLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLHdCQUFzQixFQUF0QixDQUFzQixDQUFDO29CQUNyRCxLQUFLLEVBQUUsSUFBSTtpQkFDWjthQUNGO1lBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07WUFDL0MsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7O1NBQ3RDLENBQUM7T0FDVyxzQkFBc0IsQ0FvUWxDO0lBQUQsNkJBQUM7Q0FBQSxBQXBRRCxJQW9RQztTQXBRWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIE5HX1ZBTFVFX0FDQ0VTU09SXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgdGFrZVVudGlsXG59IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgU3ViamVjdFxufSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHtcbiAgTUVOVV9ERUZBVUxUU1xufSBmcm9tICcuL2RlZmF1bHRzL21lbnUtZGVmYXVsdHMnO1xuXG5pbXBvcnQge1xuICBTVFlMRV9TVEFURV9ERUZBVUxUU1xufSBmcm9tICcuL2RlZmF1bHRzL3N0eWxlLXN0YXRlLWRlZmF1bHRzJztcblxuaW1wb3J0IHtcbiAgVE9PTEJBUl9BQ1RJT05fREVGQVVMVFNcbn0gZnJvbSAnLi9kZWZhdWx0cy90b29sYmFyLWFjdGlvbi1kZWZhdWx0cyc7XG5cbmltcG9ydCB7XG4gIFNreVRleHRFZGl0b3JBZGFwdGVyU2VydmljZVxufSBmcm9tICcuL3NlcnZpY2VzL3RleHQtZWRpdG9yLWFkYXB0ZXIuc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIFNreVRleHRFZGl0b3JTZXJ2aWNlXG59IGZyb20gJy4vc2VydmljZXMvdGV4dC1lZGl0b3Iuc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIFNreVRleHRTYW5pdGl6YXRpb25TZXJ2aWNlXG59IGZyb20gJy4vc2VydmljZXMvdGV4dC1zYW5pdGl6YXRpb24uc2VydmljZSc7XG5cbmltcG9ydCB7XG4gIEZPTlRfTElTVF9ERUZBVUxUU1xufSBmcm9tICcuL2RlZmF1bHRzL2ZvbnQtbGlzdC1kZWZhdWx0cyc7XG5cbmltcG9ydCB7XG4gIEZPTlRfU0laRV9MSVNUX0RFRkFVTFRTXG59IGZyb20gJy4vZGVmYXVsdHMvZm9udC1zaXplLWxpc3QtZGVmYXVsdHMnO1xuXG5pbXBvcnQge1xuICBTa3lUZXh0RWRpdG9yRm9udFxufSBmcm9tICcuL3R5cGVzL2ZvbnQtc3RhdGUnO1xuXG5pbXBvcnQge1xuICBTa3lUZXh0RWRpdG9yTWVudVR5cGVcbn0gZnJvbSAnLi90eXBlcy9tZW51LXR5cGUnO1xuXG5pbXBvcnQge1xuICBTa3lUZXh0RWRpdG9yU3R5bGVTdGF0ZVxufSBmcm9tICcuL3R5cGVzL3N0eWxlLXN0YXRlJztcblxuaW1wb3J0IHtcbiAgU2t5VGV4dEVkaXRvck1lcmdlRmllbGRcbn0gZnJvbSAnLi90eXBlcy90ZXh0LWVkaXRvci1tZXJnZS1maWVsZCc7XG5cbmltcG9ydCB7XG4gIFNreVRleHRFZGl0b3JUb29sYmFyQWN0aW9uVHlwZVxufSBmcm9tICcuL3R5cGVzL3Rvb2xiYXItYWN0aW9uLXR5cGUnO1xuXG5pbXBvcnQge1xuICBTa3lGb3Jtc1V0aWxpdHlcbn0gZnJvbSAnLi4vc2hhcmVkL2Zvcm1zLXV0aWxpdHknO1xuXG4vKipcbiAqIEF1dG8taW5jcmVtZW50aW5nIGludGVnZXIgdXNlZCB0byBnZW5lcmF0ZSB1bmlxdWUgaWRzIGZvciByYWRpbyBjb21wb25lbnRzLlxuICovXG5sZXQgbmV4dFVuaXF1ZUlkID0gMDtcblxuLyoqXG4gKiBUaGUgdGV4dCBlZGl0b3IgY29tcG9uZW50IGxldHMgdXNlcnMgZm9ybWF0IGFuZCBtYW5pcHVsYXRlIHRleHQuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10ZXh0LWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RleHQtZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBuby1mb3J3YXJkLXJlZlxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2t5VGV4dEVkaXRvckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGV4dEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3kge1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBwdXQgZm9jdXMgb24gdGhlIGVkaXRvciBhZnRlciBpdCByZW5kZXJzLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGF1dG9mb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB0byBkaXNhYmxlIHRoZSB0ZXh0IGVkaXRvci5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICBjb25zdCBjb2VyY2VkVmFsdWUgPSBTa3lGb3Jtc1V0aWxpdHkuY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICBpZiAoY29lcmNlZFZhbHVlICE9PSB0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZWRWYWx1ZTtcbiAgICAgIGlmICh0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLmRpc2FibGVFZGl0b3IodGhpcy5pZCwgdGhpcy5mb2N1c2FibGVDaGlsZHJlbiwgdGhpcy5pZnJhbWVSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmFkYXB0ZXJTZXJ2aWNlLmVuYWJsZUVkaXRvcih0aGlzLmlkLCB0aGlzLmZvY3VzYWJsZUNoaWxkcmVuLCB0aGlzLmlmcmFtZVJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgZWRpdG9yRm9jdXNTdHJlYW0gPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8vIHRzbGludDpkaXNhYmxlOiBtYXgtbGluZS1sZW5ndGhcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgZm9udHMgdG8gaW5jbHVkZSBpbiB0aGUgZm9udCBwaWNrZXIuXG4gICAqIEBkZWZhdWx0IFt7bmFtZTogJ0JsYWNrYmF1ZCBTYW5zJywgdmFsdWU6ICdcIkJsYWNrYmF1ZCBTYW5zXCIsIEFyaWFsLCBzYW5zLXNlcmlmJ30sIHtuYW1lOiAnQXJpYWwnLCB2YWx1ZTogJ0FyaWFsJ30sIHtuYW1lOiAnQXJpYWwgQmxhY2snLCB2YWx1ZTogJ1wiQXJpYWwgQmxhY2tcIid9LCB7bmFtZTogJ0NvdXJpZXIgTmV3JywgdmFsdWU6ICdcIkNvdXJpZXIgTmV3XCInfSwge25hbWU6ICdHZW9yZ2lhJywgdmFsdWU6ICdHZW9yZ2lhLCBzZXJpZid9LCB7bmFtZTogJ1RhaG9tYScsIHZhbHVlOiAnVGFob21hLCBHZW5ldmEsIHNhbnMtc2VyaWYnfSwge25hbWU6ICdUaW1lcyBOZXcgUm9tYW4nLCB2YWx1ZTogJ1wiVGltZXMgTmV3IFJvbWFuXCInfSwge25hbWU6ICdUcmVidWNoZXQgTVMnLCB2YWx1ZTogJ1wiVHJlYnVjaGV0IE1TXCIsIHNhbnMtc2VyaWYnfSwge25hbWU6ICdWZXJkYW5hJywgdmFsdWU6ICdWZXJkYW5hLCBHZW5ldmEsIHNhbnMtc2VyaWYnfV1cbiAgICovXG4gIC8vIHRzbGludDplbmFibGU6IG1heC1saW5lLWxlbmd0aFxuICBASW5wdXQoKVxuICBwdWJsaWMgZm9udExpc3Q6IFNreVRleHRFZGl0b3JGb250W10gPSBGT05UX0xJU1RfREVGQVVMVFM7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgZm9udCBzaXplcyB0byBpbmNsdWRlIGluIHRoZSBmb250IHNpemUgcGlja2VyLlxuICAgKiBAZGVmYXVsdCBbNiwgOCwgOSwgMTAsIDExLCAxMiwgMTMsIDE0LCAxNSwgMTYsIDE4LCAyMCwgMjIsIDI0LCAyNiwgMjgsIDM2LCA0OF1cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb250U2l6ZUxpc3Q6IG51bWJlcltdID0gRk9OVF9TSVpFX0xJU1RfREVGQVVMVFM7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyBhIHVuaXF1ZSBJRCBhdHRyaWJ1dGUgZm9yIHRoZSB0ZXh0IGVkaXRvci5cbiAgICogQnkgZGVmYXVsdCwgdGhlIGNvbXBvbmVudCBnZW5lcmF0ZXMgYSByYW5kb20gSUQuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWQgPSBgc2t5LXRleHQtZWRpdG9yLSR7KytuZXh0VW5pcXVlSWR9YDtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHRoZSBpbml0aWFsIHN0eWxlcyBmb3IgYWxsIGNvbnRlbnQsIGluY2x1ZGluZyBiYWNrZ3JvdW5kIGNvbG9yLCBmb250IHNpemUsIGFuZCBsaW5rIHN0YXRlLlxuICAgKi9cbiAgIEBJbnB1dCgpXG4gICBwdWJsaWMgc2V0IGluaXRpYWxTdHlsZVN0YXRlKHN0YXRlOiBTa3lUZXh0RWRpdG9yU3R5bGVTdGF0ZSkge1xuICAgICAvLyBEbyBub3QgdXBkYXRlIHRoZSBzdGF0ZSBhZnRlciBpbml0aWFsaXphdGlvbiBoYXMgdGFrZW4gcGxhY2VcbiAgICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSB7XG4gICAgICAgdGhpcy5faW5pdGlhbFN0eWxlU3RhdGUgPSB7XG4gICAgICAgICAuLi5TVFlMRV9TVEFURV9ERUZBVUxUUyxcbiAgICAgICAgIC4uLnN0YXRlXG4gICAgICAgfTtcbiAgICAgfVxuICAgfVxuXG4gICBwdWJsaWMgZ2V0IGluaXRpYWxTdHlsZVN0YXRlKCk6IFNreVRleHRFZGl0b3JTdHlsZVN0YXRlIHtcbiAgICAgcmV0dXJuIHRoaXMuX2luaXRpYWxTdHlsZVN0YXRlO1xuICAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIG1lbnVzIHRvIGluY2x1ZGUgaW4gdGhlIG1lbnUgYmFyLlxuICAgKiBAZGVmYXVsdCBbICdlZGl0JywgJ2Zvcm1hdCcgXVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG1lbnVzOiBTa3lUZXh0RWRpdG9yTWVudVR5cGVbXSA9IE1FTlVfREVGQVVMVFM7XG5cbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgbWVyZ2UgZmllbGRzIHRvIGluY2x1ZGUgaW4gdGhlIG1lcmdlIGZpZWxkIG1lbnUuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgbWVyZ2VGaWVsZHM6IFNreVRleHRFZGl0b3JNZXJnZUZpZWxkW10gPSBbXTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHBsYWNlaG9sZGVyIHRleHQgdG8gZGlzcGxheSB3aGVuIHRoZSB0ZXh0IGVudHJ5IGFyZWEgaXMgZW1wdHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodmFsdWUgIT09IHRoaXMuX3BsYWNlaG9sZGVyKSB7XG4gICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xuICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy5hZGFwdGVyU2VydmljZS5zZXRQbGFjZWhvbGRlcih0aGlzLmlkLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgfVxuXG4gIC8vIHRzbGludDpkaXNhYmxlOiBtYXgtbGluZS1sZW5ndGhcbiAgLyoqXG4gICAqIFNwZWNpZmllcyB0aGUgYWN0aW9ucyB0byBpbmNsdWRlIGluIHRoZSB0b29sYmFyIGFuZCBkZXRlcm1pbmVzIHRoZWlyIG9yZGVyLlxuICAgKiBAZGVmYXVsdCBbICdmb250LWZhbWlseScsICdmb250LXNpemUnLCAnZm9udC1zdHlsZScsICdjb2xvcicsICdsaXN0JywgJ2xpbmsgXVxuICAgKi9cbiAgLy8gdHNsaW50OmVuYWJsZTogbWF4LWxpbmUtbGVuZ3RoXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0b29sYmFyQWN0aW9uczogU2t5VGV4dEVkaXRvclRvb2xiYXJBY3Rpb25UeXBlW10gPSBUT09MQkFSX0FDVElPTl9ERUZBVUxUUztcblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAvLyBTZXQgY2xlYXIgc3RhdGUgdG8gYmUgYW4gZW1wdHkgc3RyaW5nXG4gICAgbGV0IHZhbHVlU3RyaW5nOiBzdHJpbmcgPSB2YWx1ZTtcbiAgICBpZiAoIXZhbHVlIHx8ICh2YWx1ZS50cmltKCkgPT09ICc8cD48L3A+JyAmJiB2YWx1ZS50cmltKCkgPT09ICc8YnI+JykpIHtcbiAgICAgIHZhbHVlU3RyaW5nID0gJyc7XG4gICAgfVxuICAgIHZhbHVlU3RyaW5nID0gdGhpcy5zYW5pdGl6YXRpb25TZXJ2aWNlLnNhbml0aXplKHZhbHVlU3RyaW5nKS50cmltKCk7XG5cbiAgICBpZiAodGhpcy5fdmFsdWUgIT09IHZhbHVlU3RyaW5nKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlU3RyaW5nO1xuXG4gICAgICAvLyBBdXRvZm9jdXMgaXNuJ3QgdGVzdGFibGUgaW4gRmlyZWZveCBhbmQgSUUuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgaWYgKHRoaXMuYXV0b2ZvY3VzICYmICF0aGlzLmZvY3VzSW5pdGlhbGl6ZWQpIHtcbiAgICAgICAgdGhpcy5hZGFwdGVyU2VydmljZS5mb2N1c0VkaXRvcih0aGlzLmlkKTtcbiAgICAgICAgdGhpcy5mb2N1c0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHRoaXMub25DaGFuZ2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c2FibGVDaGlsZHJlbjogSFRNTEVsZW1lbnRbXTtcblxuICBwcml2YXRlIGZvY3VzSW5pdGlhbGl6ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAVmlld0NoaWxkKCdpZnJhbWUnKVxuICBwcml2YXRlIGlmcmFtZVJlZjogRWxlbWVudFJlZjtcblxuICBwcml2YXRlIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIHByaXZhdGUgX2luaXRpYWxTdHlsZVN0YXRlID0gT2JqZWN0LmFzc2lnbih7fSwgU1RZTEVfU1RBVEVfREVGQVVMVFMpO1xuXG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyID0gJyc7XG5cbiAgcHJpdmF0ZSBfdmFsdWU6IHN0cmluZyA9ICc8cD48L3A+JztcblxuICBjb25zdHJ1Y3RvciAoXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBjb3JlQWRhcHRlclNlcnZpY2U6IFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgICBwcml2YXRlIGFkYXB0ZXJTZXJ2aWNlOiBTa3lUZXh0RWRpdG9yQWRhcHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlZGl0b3JTZXJ2aWNlOiBTa3lUZXh0RWRpdG9yU2VydmljZSxcbiAgICBwcml2YXRlIHNhbml0aXphdGlvblNlcnZpY2U6IFNreVRleHRTYW5pdGl6YXRpb25TZXJ2aWNlXG4gICkge31cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuYWRhcHRlclNlcnZpY2UuYWRkRWRpdG9yKFxuICAgICAgdGhpcy5pZCxcbiAgICAgIHRoaXMuaWZyYW1lUmVmLm5hdGl2ZUVsZW1lbnQsXG4gICAgICB0aGlzLmluaXRpYWxTdHlsZVN0YXRlLFxuICAgICAgdGhpcy5wbGFjZWhvbGRlclxuICAgICk7XG5cbiAgICB0aGlzLmVkaXRvclNlcnZpY2Uuc2VsZWN0aW9uQ2hhbmdlTGlzdGVuZXIodGhpcy5pZClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVBbmRTdHlsZSgpO1xuICAgICAgICB0aGlzLmVkaXRvckZvY3VzU3RyZWFtLm5leHQoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmNsaWNrTGlzdGVuZXIodGhpcy5pZClcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5uZ1Vuc3Vic2NyaWJlKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuZWRpdG9yRm9jdXNTdHJlYW0ubmV4dCgpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLmVkaXRvclNlcnZpY2UuY29tbWFuZENoYW5nZUxpc3RlbmVyKHRoaXMuaWQpXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlQW5kU3R5bGUoKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5hZGFwdGVyU2VydmljZS5zZXRFZGl0b3JJbm5lckh0bWwodGhpcy5pZCwgdGhpcy5fdmFsdWUpO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAodGhpcy5hdXRvZm9jdXMpIHtcbiAgICAgIHRoaXMuYWRhcHRlclNlcnZpY2UuZm9jdXNFZGl0b3IodGhpcy5pZCk7XG4gICAgfVxuXG4gICAgdGhpcy5mb2N1c2FibGVDaGlsZHJlbiA9IHRoaXMuY29yZUFkYXB0ZXJTZXJ2aWNlLmdldEZvY3VzYWJsZUNoaWxkcmVuKHRoaXMuaWZyYW1lUmVmLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgIGlnbm9yZVZpc2liaWxpdHk6IHRydWVcbiAgICB9KTtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuYWRhcHRlclNlcnZpY2UucmVtb3ZlT2JzZXJ2ZXJzKHRoaXMuZWRpdG9yU2VydmljZS5lZGl0b3JzW3RoaXMuaWRdKTtcbiAgICB0aGlzLmVkaXRvclNlcnZpY2UucmVtb3ZlRWRpdG9yKHRoaXMuaWQpO1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZShvYmo6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSBvYmo7XG5cbiAgICAvLyBVcGRhdGUgSFRNTCBpZiBuZWNlc3NhcnkuXG4gICAgY29uc3QgZWRpdG9yVmFsdWUgPSB0aGlzLmFkYXB0ZXJTZXJ2aWNlLmdldEVkaXRvcklubmVySHRtbCh0aGlzLmlkKTtcbiAgICBpZiAodGhpcy5pbml0aWFsaXplZCAmJiBlZGl0b3JWYWx1ZSAhPT0gdGhpcy5fdmFsdWUpIHtcbiAgICAgIHRoaXMuYWRhcHRlclNlcnZpY2Uuc2V0RWRpdG9ySW5uZXJIdG1sKHRoaXMuaWQsIHRoaXMuX3ZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICAvKipcbiAgICogSW1wbGVtZW50ZWQgYXMgcGFydCBvZiBDb250cm9sVmFsdWVBY2Nlc3Nvci5cbiAgICovXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHB1YmxpYyBvbkNoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVWYWx1ZUFuZFN0eWxlKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLmFkYXB0ZXJTZXJ2aWNlLmdldEVkaXRvcklubmVySHRtbCh0aGlzLmlkKTtcbiAgICB0aGlzLl9pbml0aWFsU3R5bGVTdGF0ZSA9IHtcbiAgICAgIC4uLnRoaXMuX2luaXRpYWxTdHlsZVN0YXRlLFxuICAgICAgLi4udGhpcy5hZGFwdGVyU2VydmljZS5nZXRTdHlsZVN0YXRlKHRoaXMuaWQpIGFzIGFueVxuICAgIH07XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwdWJsaWMgb25Ub3VjaCA9ICgpID0+IHt9O1xuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIHByaXZhdGUgX29uQ2hhbmdlID0gKF86IHN0cmluZykgPT4ge307XG59XG4iXX0=
@@ -1,63 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { NgModule } from '@angular/core';
3
- import { CommonModule } from '@angular/common';
4
- import { FormsModule, ReactiveFormsModule } from '@angular/forms';
5
- import { SkyColorpickerModule } from '@skyux/colorpicker';
6
- import { SkyCoreAdapterModule, SkyIdModule } from '@skyux/core';
7
- import { SkyCheckboxModule, SkyInputBoxModule } from '@skyux/forms';
8
- import { SkyModalModule } from '@skyux/modals';
9
- import { SkyI18nModule } from '@skyux/i18n';
10
- import { SkyIconModule } from '@skyux/indicators';
11
- import { SkyToolbarModule } from '@skyux/layout';
12
- import { SkyDropdownModule } from '@skyux/popovers';
13
- import { SkyTabsModule } from '@skyux/tabs';
14
- import { SkyThemeModule } from '@skyux/theme';
15
- import { SkyTextEditorResourcesModule } from '../../plugin-resources/text-editor-resources.module';
16
- import { SkyTextEditorMenubarComponent } from './menubar/text-editor-menubar.component';
17
- import { SkyTextEditorToolbarComponent } from './toolbar/text-editor-toolbar.component';
18
- import { SkyTextEditorUrlModalComponent } from './url-modal/text-editor-url-modal.component';
19
- import { SkyTextEditorComponent } from './text-editor.component';
20
- var SkyTextEditorModule = /** @class */ (function () {
21
- function SkyTextEditorModule() {
22
- }
23
- SkyTextEditorModule = __decorate([
24
- NgModule({
25
- imports: [
26
- CommonModule,
27
- FormsModule,
28
- ReactiveFormsModule,
29
- SkyCoreAdapterModule,
30
- SkyTextEditorResourcesModule,
31
- SkyI18nModule,
32
- SkyIconModule,
33
- SkyIdModule,
34
- SkyInputBoxModule,
35
- SkyColorpickerModule,
36
- SkyCheckboxModule,
37
- SkyDropdownModule,
38
- SkyModalModule,
39
- SkyTabsModule,
40
- SkyThemeModule,
41
- SkyToolbarModule
42
- ],
43
- exports: [
44
- SkyTextEditorComponent,
45
- SkyTextEditorUrlModalComponent,
46
- SkyTextEditorToolbarComponent,
47
- SkyTextEditorMenubarComponent
48
- ],
49
- declarations: [
50
- SkyTextEditorComponent,
51
- SkyTextEditorUrlModalComponent,
52
- SkyTextEditorToolbarComponent,
53
- SkyTextEditorMenubarComponent
54
- ],
55
- entryComponents: [
56
- SkyTextEditorUrlModalComponent
57
- ]
58
- })
59
- ], SkyTextEditorModule);
60
- return SkyTextEditorModule;
61
- }());
62
- export { SkyTextEditorModule };
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNreXV4L3RleHQtZWRpdG9yLyIsInNvdXJjZXMiOlsibW9kdWxlcy90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLFlBQVksRUFDYixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFDTCxXQUFXLEVBQ1gsbUJBQW1CLEVBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNMLG9CQUFvQixFQUNyQixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsV0FBVyxFQUNaLE1BQU0sYUFBYSxDQUFDO0FBRXJCLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2xCLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFDTCxjQUFjLEVBQ2YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLGFBQWEsRUFDZCxNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQ0wsYUFBYSxFQUNkLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUNMLGdCQUFnQixFQUNqQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2xCLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUNMLGFBQWEsRUFDZCxNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQ0wsY0FBYyxFQUNmLE1BQU0sY0FBYyxDQUFDO0FBRXRCLE9BQU8sRUFDTCw0QkFBNEIsRUFDN0IsTUFBTSxxREFBcUQsQ0FBQztBQUU3RCxPQUFPLEVBQ0wsNkJBQTZCLEVBQzlCLE1BQU0seUNBQXlDLENBQUM7QUFFakQsT0FBTyxFQUNMLDZCQUE2QixFQUM5QixNQUFNLHlDQUF5QyxDQUFDO0FBRWpELE9BQU8sRUFDTCw4QkFBOEIsRUFDL0IsTUFBTSw2Q0FBNkMsQ0FBQztBQUVyRCxPQUFPLEVBQ0wsc0JBQXNCLEVBQ3ZCLE1BQU0seUJBQXlCLENBQUM7QUFxQ2pDO0lBQUE7SUFBbUMsQ0FBQztJQUF2QixtQkFBbUI7UUFuQy9CLFFBQVEsQ0FBQztZQUNSLE9BQU8sRUFBRTtnQkFDUCxZQUFZO2dCQUNaLFdBQVc7Z0JBQ1gsbUJBQW1CO2dCQUNuQixvQkFBb0I7Z0JBQ3BCLDRCQUE0QjtnQkFDNUIsYUFBYTtnQkFDYixhQUFhO2dCQUNiLFdBQVc7Z0JBQ1gsaUJBQWlCO2dCQUNqQixvQkFBb0I7Z0JBQ3BCLGlCQUFpQjtnQkFDakIsaUJBQWlCO2dCQUNqQixjQUFjO2dCQUNkLGFBQWE7Z0JBQ2IsY0FBYztnQkFDZCxnQkFBZ0I7YUFDakI7WUFDRCxPQUFPLEVBQUU7Z0JBQ1Asc0JBQXNCO2dCQUN0Qiw4QkFBOEI7Z0JBQzlCLDZCQUE2QjtnQkFDN0IsNkJBQTZCO2FBQzlCO1lBQ0QsWUFBWSxFQUFFO2dCQUNaLHNCQUFzQjtnQkFDdEIsOEJBQThCO2dCQUM5Qiw2QkFBNkI7Z0JBQzdCLDZCQUE2QjthQUM5QjtZQUNELGVBQWUsRUFBRTtnQkFDZiw4QkFBOEI7YUFDL0I7U0FDRixDQUFDO09BQ1csbUJBQW1CLENBQUk7SUFBRCwwQkFBQztDQUFBLEFBQXBDLElBQW9DO1NBQXZCLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE5nTW9kdWxlXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBDb21tb25Nb2R1bGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHtcbiAgRm9ybXNNb2R1bGUsXG4gIFJlYWN0aXZlRm9ybXNNb2R1bGVcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge1xuICBTa3lDb2xvcnBpY2tlck1vZHVsZVxufSBmcm9tICdAc2t5dXgvY29sb3JwaWNrZXInO1xuXG5pbXBvcnQge1xuICBTa3lDb3JlQWRhcHRlck1vZHVsZSxcbiAgU2t5SWRNb2R1bGVcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQge1xuICBTa3lDaGVja2JveE1vZHVsZSxcbiAgU2t5SW5wdXRCb3hNb2R1bGVcbn0gZnJvbSAnQHNreXV4L2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgU2t5TW9kYWxNb2R1bGVcbn0gZnJvbSAnQHNreXV4L21vZGFscyc7XG5cbmltcG9ydCB7XG4gIFNreUkxOG5Nb2R1bGVcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5pbXBvcnQge1xuICBTa3lJY29uTW9kdWxlXG59IGZyb20gJ0Bza3l1eC9pbmRpY2F0b3JzJztcblxuaW1wb3J0IHtcbiAgU2t5VG9vbGJhck1vZHVsZVxufSBmcm9tICdAc2t5dXgvbGF5b3V0JztcblxuaW1wb3J0IHtcbiAgU2t5RHJvcGRvd25Nb2R1bGVcbn0gZnJvbSAnQHNreXV4L3BvcG92ZXJzJztcblxuaW1wb3J0IHtcbiAgU2t5VGFic01vZHVsZVxufSBmcm9tICdAc2t5dXgvdGFicyc7XG5cbmltcG9ydCB7XG4gIFNreVRoZW1lTW9kdWxlXG59IGZyb20gJ0Bza3l1eC90aGVtZSc7XG5cbmltcG9ydCB7XG4gIFNreVRleHRFZGl0b3JSZXNvdXJjZXNNb2R1bGVcbn0gZnJvbSAnLi4vLi4vcGx1Z2luLXJlc291cmNlcy90ZXh0LWVkaXRvci1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHtcbiAgU2t5VGV4dEVkaXRvck1lbnViYXJDb21wb25lbnRcbn0gZnJvbSAnLi9tZW51YmFyL3RleHQtZWRpdG9yLW1lbnViYXIuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5VGV4dEVkaXRvclRvb2xiYXJDb21wb25lbnRcbn0gZnJvbSAnLi90b29sYmFyL3RleHQtZWRpdG9yLXRvb2xiYXIuY29tcG9uZW50JztcblxuaW1wb3J0IHtcbiAgU2t5VGV4dEVkaXRvclVybE1vZGFsQ29tcG9uZW50XG59IGZyb20gJy4vdXJsLW1vZGFsL3RleHQtZWRpdG9yLXVybC1tb2RhbC5jb21wb25lbnQnO1xuXG5pbXBvcnQge1xuICBTa3lUZXh0RWRpdG9yQ29tcG9uZW50XG59IGZyb20gJy4vdGV4dC1lZGl0b3IuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIFNreUNvcmVBZGFwdGVyTW9kdWxlLFxuICAgIFNreVRleHRFZGl0b3JSZXNvdXJjZXNNb2R1bGUsXG4gICAgU2t5STE4bk1vZHVsZSxcbiAgICBTa3lJY29uTW9kdWxlLFxuICAgIFNreUlkTW9kdWxlLFxuICAgIFNreUlucHV0Qm94TW9kdWxlLFxuICAgIFNreUNvbG9ycGlja2VyTW9kdWxlLFxuICAgIFNreUNoZWNrYm94TW9kdWxlLFxuICAgIFNreURyb3Bkb3duTW9kdWxlLFxuICAgIFNreU1vZGFsTW9kdWxlLFxuICAgIFNreVRhYnNNb2R1bGUsXG4gICAgU2t5VGhlbWVNb2R1bGUsXG4gICAgU2t5VG9vbGJhck1vZHVsZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2t5VGV4dEVkaXRvckNvbXBvbmVudCxcbiAgICBTa3lUZXh0RWRpdG9yVXJsTW9kYWxDb21wb25lbnQsXG4gICAgU2t5VGV4dEVkaXRvclRvb2xiYXJDb21wb25lbnQsXG4gICAgU2t5VGV4dEVkaXRvck1lbnViYXJDb21wb25lbnRcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2t5VGV4dEVkaXRvckNvbXBvbmVudCxcbiAgICBTa3lUZXh0RWRpdG9yVXJsTW9kYWxDb21wb25lbnQsXG4gICAgU2t5VGV4dEVkaXRvclRvb2xiYXJDb21wb25lbnQsXG4gICAgU2t5VGV4dEVkaXRvck1lbnViYXJDb21wb25lbnRcbiAgXSxcbiAgZW50cnlDb21wb25lbnRzOiBbXG4gICAgU2t5VGV4dEVkaXRvclVybE1vZGFsQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2t5VGV4dEVkaXRvck1vZHVsZSB7IH1cbiJdfQ==