@dangl/angular-material-shared 2.2.0 → 2.3.0-beta0037

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 (172) hide show
  1. package/{esm2015/dangl-angular-material-shared.js → esm2020/dangl-angular-material-shared.mjs} +0 -0
  2. package/esm2020/lib/angular-material-shared.module.mjs +38 -0
  3. package/esm2020/lib/components/footer/footer.component.mjs +33 -0
  4. package/esm2020/lib/components/header/header.component.mjs +80 -0
  5. package/esm2020/lib/components/tiny-mce/tiny-mce.component.mjs +104 -0
  6. package/{esm2015/lib/models/footer-options.js → esm2020/lib/models/footer-options.mjs} +0 -0
  7. package/{esm2015/lib/utils/guid-generator.js → esm2020/lib/utils/guid-generator.mjs} +0 -0
  8. package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
  9. package/fesm2015/dangl-angular-material-shared.mjs +292 -0
  10. package/fesm2015/dangl-angular-material-shared.mjs.map +1 -0
  11. package/fesm2020/dangl-angular-material-shared.mjs +290 -0
  12. package/fesm2020/dangl-angular-material-shared.mjs.map +1 -0
  13. package/{dangl-angular-material-shared.d.ts → index.d.ts} +1 -0
  14. package/lib/angular-material-shared.module.d.ts +12 -0
  15. package/lib/components/footer/footer.component.d.ts +3 -0
  16. package/lib/components/header/header.component.d.ts +3 -0
  17. package/lib/components/tiny-mce/tiny-mce.component.d.ts +3 -0
  18. package/package.json +28 -16
  19. package/styles/material-style.scss +1 -1
  20. package/styles/material-theme.scss +4 -3
  21. package/styles/material-variables.scss +9 -8
  22. package/tinymce-assets/icons/default/icons.js +11 -1
  23. package/tinymce-assets/icons/default/icons.min.js +1 -1
  24. package/tinymce-assets/langs/cs.js +118 -75
  25. package/tinymce-assets/langs/cy.js +61 -18
  26. package/tinymce-assets/langs/da.js +60 -17
  27. package/tinymce-assets/langs/de.js +60 -17
  28. package/tinymce-assets/langs/eo.js +334 -138
  29. package/tinymce-assets/langs/es_ES.js +32 -2
  30. package/tinymce-assets/langs/fa.js +60 -17
  31. package/tinymce-assets/langs/fa_IR.js +31 -1
  32. package/tinymce-assets/langs/fr_FR.js +60 -17
  33. package/tinymce-assets/langs/hu_HU.js +60 -17
  34. package/tinymce-assets/langs/ja.js +60 -17
  35. package/tinymce-assets/langs/ko_KR.js +3 -3
  36. package/tinymce-assets/langs/nb_NO.js +61 -18
  37. package/tinymce-assets/langs/nl.js +60 -17
  38. package/tinymce-assets/langs/pl.js +60 -17
  39. package/tinymce-assets/langs/pt_BR.js +60 -17
  40. package/tinymce-assets/langs/pt_PT.js +60 -17
  41. package/tinymce-assets/langs/ro.js +60 -17
  42. package/tinymce-assets/langs/ro_RO.js +32 -2
  43. package/tinymce-assets/langs/ru.js +60 -17
  44. package/tinymce-assets/langs/ru_RU.js +445 -0
  45. package/tinymce-assets/langs/sl.js +59 -14
  46. package/tinymce-assets/langs/ta.js +60 -17
  47. package/tinymce-assets/langs/ta_IN.js +60 -17
  48. package/tinymce-assets/langs/th_TH.js +60 -17
  49. package/tinymce-assets/langs/tr_TR.js +81 -8
  50. package/tinymce-assets/langs/vi.js +179 -21
  51. package/tinymce-assets/langs/zh_CN.js +60 -17
  52. package/tinymce-assets/plugins/advlist/plugin.js +29 -48
  53. package/tinymce-assets/plugins/advlist/plugin.min.js +2 -2
  54. package/tinymce-assets/plugins/anchor/plugin.js +8 -8
  55. package/tinymce-assets/plugins/anchor/plugin.min.js +2 -2
  56. package/tinymce-assets/plugins/autolink/plugin.js +58 -30
  57. package/tinymce-assets/plugins/autolink/plugin.min.js +2 -2
  58. package/tinymce-assets/plugins/autoresize/plugin.js +25 -12
  59. package/tinymce-assets/plugins/autoresize/plugin.min.js +2 -2
  60. package/tinymce-assets/plugins/autosave/plugin.js +9 -9
  61. package/tinymce-assets/plugins/autosave/plugin.min.js +2 -2
  62. package/tinymce-assets/plugins/bbcode/plugin.js +6 -6
  63. package/tinymce-assets/plugins/bbcode/plugin.min.js +2 -2
  64. package/tinymce-assets/plugins/charmap/plugin.js +39 -49
  65. package/tinymce-assets/plugins/charmap/plugin.min.js +2 -2
  66. package/tinymce-assets/plugins/code/plugin.js +9 -10
  67. package/tinymce-assets/plugins/code/plugin.min.js +2 -2
  68. package/tinymce-assets/plugins/codesample/plugin.js +1921 -1914
  69. package/tinymce-assets/plugins/codesample/plugin.min.js +2 -2
  70. package/tinymce-assets/plugins/colorpicker/plugin.js +1 -2
  71. package/tinymce-assets/plugins/colorpicker/plugin.min.js +2 -2
  72. package/tinymce-assets/plugins/contextmenu/plugin.js +1 -2
  73. package/tinymce-assets/plugins/contextmenu/plugin.min.js +2 -2
  74. package/tinymce-assets/plugins/directionality/plugin.js +186 -53
  75. package/tinymce-assets/plugins/directionality/plugin.min.js +2 -2
  76. package/tinymce-assets/plugins/emoticons/js/emojiimages.js +1572 -1572
  77. package/tinymce-assets/plugins/emoticons/js/emojiimages.min.js +1 -1
  78. package/tinymce-assets/plugins/emoticons/js/emojis.js +1572 -1572
  79. package/tinymce-assets/plugins/emoticons/js/emojis.min.js +1 -1
  80. package/tinymce-assets/plugins/emoticons/plugin.js +231 -200
  81. package/tinymce-assets/plugins/emoticons/plugin.min.js +2 -2
  82. package/tinymce-assets/plugins/fullpage/plugin.js +42 -42
  83. package/tinymce-assets/plugins/fullpage/plugin.min.js +2 -2
  84. package/tinymce-assets/plugins/fullscreen/plugin.js +496 -129
  85. package/tinymce-assets/plugins/fullscreen/plugin.min.js +2 -2
  86. package/tinymce-assets/plugins/help/plugin.js +101 -122
  87. package/tinymce-assets/plugins/help/plugin.min.js +2 -2
  88. package/tinymce-assets/plugins/hr/plugin.js +9 -10
  89. package/tinymce-assets/plugins/hr/plugin.min.js +2 -2
  90. package/tinymce-assets/plugins/image/plugin.js +78 -73
  91. package/tinymce-assets/plugins/image/plugin.min.js +2 -2
  92. package/tinymce-assets/plugins/imagetools/plugin.js +484 -307
  93. package/tinymce-assets/plugins/imagetools/plugin.min.js +2 -2
  94. package/tinymce-assets/plugins/importcss/plugin.js +50 -51
  95. package/tinymce-assets/plugins/importcss/plugin.min.js +2 -2
  96. package/tinymce-assets/plugins/insertdatetime/plugin.js +22 -17
  97. package/tinymce-assets/plugins/insertdatetime/plugin.min.js +2 -2
  98. package/tinymce-assets/plugins/legacyoutput/plugin.js +8 -8
  99. package/tinymce-assets/plugins/legacyoutput/plugin.min.js +2 -2
  100. package/tinymce-assets/plugins/link/plugin.js +131 -125
  101. package/tinymce-assets/plugins/link/plugin.min.js +2 -2
  102. package/tinymce-assets/plugins/lists/plugin.js +256 -229
  103. package/tinymce-assets/plugins/lists/plugin.min.js +2 -2
  104. package/tinymce-assets/plugins/media/plugin.js +124 -147
  105. package/tinymce-assets/plugins/media/plugin.min.js +2 -2
  106. package/tinymce-assets/plugins/nonbreaking/plugin.js +13 -14
  107. package/tinymce-assets/plugins/nonbreaking/plugin.min.js +2 -2
  108. package/tinymce-assets/plugins/noneditable/plugin.js +6 -6
  109. package/tinymce-assets/plugins/noneditable/plugin.min.js +2 -2
  110. package/tinymce-assets/plugins/pagebreak/plugin.js +16 -17
  111. package/tinymce-assets/plugins/pagebreak/plugin.min.js +2 -2
  112. package/tinymce-assets/plugins/paste/plugin.js +196 -157
  113. package/tinymce-assets/plugins/paste/plugin.min.js +2 -2
  114. package/tinymce-assets/plugins/preview/plugin.js +13 -14
  115. package/tinymce-assets/plugins/preview/plugin.min.js +2 -2
  116. package/tinymce-assets/plugins/print/plugin.js +13 -14
  117. package/tinymce-assets/plugins/print/plugin.min.js +2 -2
  118. package/tinymce-assets/plugins/quickbars/plugin.js +33 -48
  119. package/tinymce-assets/plugins/quickbars/plugin.min.js +2 -2
  120. package/tinymce-assets/plugins/save/plugin.js +9 -8
  121. package/tinymce-assets/plugins/save/plugin.min.js +2 -2
  122. package/tinymce-assets/plugins/searchreplace/plugin.js +73 -70
  123. package/tinymce-assets/plugins/searchreplace/plugin.min.js +2 -2
  124. package/tinymce-assets/plugins/spellchecker/plugin.js +22 -23
  125. package/tinymce-assets/plugins/spellchecker/plugin.min.js +2 -2
  126. package/tinymce-assets/plugins/tabfocus/plugin.js +21 -20
  127. package/tinymce-assets/plugins/tabfocus/plugin.min.js +2 -2
  128. package/tinymce-assets/plugins/table/plugin.js +2831 -2264
  129. package/tinymce-assets/plugins/table/plugin.min.js +2 -2
  130. package/tinymce-assets/plugins/template/plugin.js +84 -70
  131. package/tinymce-assets/plugins/template/plugin.min.js +2 -2
  132. package/tinymce-assets/plugins/textcolor/plugin.js +1 -2
  133. package/tinymce-assets/plugins/textcolor/plugin.min.js +2 -2
  134. package/tinymce-assets/plugins/textpattern/plugin.js +76 -96
  135. package/tinymce-assets/plugins/textpattern/plugin.min.js +2 -2
  136. package/tinymce-assets/plugins/toc/plugin.js +31 -29
  137. package/tinymce-assets/plugins/toc/plugin.min.js +2 -2
  138. package/tinymce-assets/plugins/visualblocks/plugin.js +10 -11
  139. package/tinymce-assets/plugins/visualblocks/plugin.min.js +2 -2
  140. package/tinymce-assets/plugins/visualchars/plugin.js +52 -67
  141. package/tinymce-assets/plugins/visualchars/plugin.min.js +2 -2
  142. package/tinymce-assets/plugins/wordcount/plugin.js +67 -58
  143. package/tinymce-assets/plugins/wordcount/plugin.min.js +2 -2
  144. package/tinymce-assets/skins/ui/oxide/content.css +1 -1
  145. package/tinymce-assets/skins/ui/oxide/content.inline.css +1 -1
  146. package/tinymce-assets/skins/ui/oxide/content.inline.min.css +1 -1
  147. package/tinymce-assets/skins/ui/oxide/content.min.css +1 -1
  148. package/tinymce-assets/skins/ui/oxide/skin.css +35 -22
  149. package/tinymce-assets/skins/ui/oxide/skin.min.css +1 -1
  150. package/tinymce-assets/skins/ui/oxide/skin.shadowdom.css +7 -7
  151. package/tinymce-assets/skins/ui/oxide/skin.shadowdom.min.css +1 -1
  152. package/tinymce-assets/skins/ui/oxide-dark/content.css +1 -1
  153. package/tinymce-assets/skins/ui/oxide-dark/content.inline.css +1 -1
  154. package/tinymce-assets/skins/ui/oxide-dark/content.inline.min.css +1 -1
  155. package/tinymce-assets/skins/ui/oxide-dark/content.min.css +1 -1
  156. package/tinymce-assets/skins/ui/oxide-dark/skin.css +35 -22
  157. package/tinymce-assets/skins/ui/oxide-dark/skin.min.css +1 -1
  158. package/tinymce-assets/skins/ui/oxide-dark/skin.shadowdom.css +7 -7
  159. package/tinymce-assets/skins/ui/oxide-dark/skin.shadowdom.min.css +1 -1
  160. package/tinymce-assets/themes/mobile/theme.js +2798 -3255
  161. package/tinymce-assets/themes/mobile/theme.min.js +2 -2
  162. package/tinymce-assets/themes/silver/theme.js +25400 -25371
  163. package/tinymce-assets/themes/silver/theme.min.js +2 -2
  164. package/bundles/dangl-angular-material-shared.umd.js +0 -285
  165. package/bundles/dangl-angular-material-shared.umd.js.map +0 -1
  166. package/dangl-angular-material-shared.metadata.json +0 -1
  167. package/esm2015/lib/angular-material-shared.module.js +0 -25
  168. package/esm2015/lib/components/footer/footer.component.js +0 -27
  169. package/esm2015/lib/components/header/header.component.js +0 -67
  170. package/esm2015/lib/components/tiny-mce/tiny-mce.component.js +0 -100
  171. package/fesm2015/dangl-angular-material-shared.js +0 -259
  172. package/fesm2015/dangl-angular-material-shared.js.map +0 -1
@@ -1,285 +0,0 @@
1
- (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/core'), require('@angular/material/button'), require('@angular/material/icon'), require('@angular/material/toolbar'), require('@angular/router'), require('@angular/forms')) :
3
- typeof define === 'function' && define.amd ? define('@dangl/angular-material-shared', ['exports', '@angular/common', '@angular/core', '@angular/material/button', '@angular/material/icon', '@angular/material/toolbar', '@angular/router', '@angular/forms'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.dangl = global.dangl || {}, global.dangl['angular-material-shared'] = {}), global.ng.common, global.ng.core, global.ng.material.button, global.ng.material.icon, global.ng.material.toolbar, global.ng.router, global.ng.forms));
5
- }(this, (function (exports, common, core, button, icon, toolbar, router, forms) { 'use strict';
6
-
7
- var FooterComponent = /** @class */ (function () {
8
- function FooterComponent() {
9
- this.currentYear = new Date().getFullYear();
10
- this.showLegalNotice = false;
11
- this.legalNoticeText = 'Legal Notice';
12
- this.legalNoticeLink = 'legal-notice';
13
- this.useLegalNoticeCallback = false;
14
- this.legalNoticeCallback = new core.EventEmitter();
15
- }
16
- return FooterComponent;
17
- }());
18
- FooterComponent.decorators = [
19
- { type: core.Component, args: [{
20
- selector: 'dangl-footer',
21
- template: "<footer class=\"gd-footer\">\r\n <p>\r\n <ng-template [ngIf]=\"!options\">\r\n <span class=\"gd-logo gd-logo-sm\">GD</span>\r\n <span>&nbsp;</span>\r\n <a href=\"https://www.dangl-it.com\"\r\n >Dangl<strong>IT</strong> GmbH \u00A9 {{ currentYear }}</a\r\n >\r\n </ng-template>\r\n <ng-template [ngIf]=\"options\">\r\n <span *ngIf=\"options.logoInitials\" class=\"gd-logo gd-logo-sm\">{{\r\n options.logoInitials\r\n }}</span>\r\n <span>&nbsp;</span>\r\n <a *ngIf=\"options.copyrightUrl\" href=\"{{ options.copyrightUrl }}\"\r\n ><span [innerHtml]=\"options.companyNameHtml\"></span\r\n ></a>\r\n <span\r\n *ngIf=\"!options.copyrightUrl\"\r\n [innerHtml]=\"options.companyNameHtml\"\r\n ></span>\r\n </ng-template>\r\n <ng-template [ngIf]=\"showLegalNotice\">\r\n -\r\n <a *ngIf=\"!useLegalNoticeCallback\" [routerLink]=\"legalNoticeLink\">{{\r\n legalNoticeText\r\n }}</a>\r\n <a\r\n href=\"javascript:void(0)\"\r\n *ngIf=\"useLegalNoticeCallback\"\r\n (click)=\"legalNoticeCallback.next(null)\"\r\n >{{ legalNoticeText }}</a\r\n >\r\n </ng-template>\r\n </p>\r\n</footer>\r\n",
22
- styles: [""]
23
- },] }
24
- ];
25
- FooterComponent.propDecorators = {
26
- showLegalNotice: [{ type: core.Input }],
27
- legalNoticeText: [{ type: core.Input }],
28
- legalNoticeLink: [{ type: core.Input }],
29
- useLegalNoticeCallback: [{ type: core.Input }],
30
- options: [{ type: core.Input }],
31
- legalNoticeCallback: [{ type: core.Output }]
32
- };
33
-
34
- var HeaderComponent = /** @class */ (function () {
35
- function HeaderComponent() {
36
- this.showMenuButton = false;
37
- this.logoInitials = "GD";
38
- this.menuButtonClicked = new core.EventEmitter();
39
- this._forceDisablePrereleaseHeader = false;
40
- }
41
- Object.defineProperty(HeaderComponent.prototype, "showPrerelease", {
42
- get: function () {
43
- if (this._forceDisablePrereleaseHeader) {
44
- return false;
45
- }
46
- return this._showPrerelease;
47
- },
48
- set: function (val) {
49
- if (val) {
50
- this._forceDisablePrereleaseHeader = false;
51
- this._showPrerelease = this.checkPrereleaseData();
52
- }
53
- else {
54
- this._forceDisablePrereleaseHeader = true;
55
- this._showPrerelease = false;
56
- }
57
- },
58
- enumerable: false,
59
- configurable: true
60
- });
61
- HeaderComponent.prototype.ngOnChanges = function (_) {
62
- if (!this._forceDisablePrereleaseHeader) {
63
- this._showPrerelease = this.checkPrereleaseData();
64
- }
65
- };
66
- HeaderComponent.prototype.checkPrereleaseData = function () {
67
- var isShowing = this.preReleaseVersion != null ||
68
- this.preReleaseBuildDate != null ||
69
- this.preReleaseLiveSiteLink != null;
70
- if (this.preReleaseVersion != null && typeof Storage !== "undefined") {
71
- isShowing =
72
- this.preReleaseVersion !==
73
- localStorage.getItem("dangl_preview_notice_header_hide_version");
74
- }
75
- return isShowing;
76
- };
77
- HeaderComponent.prototype.hideForCurrentVersion = function () {
78
- if (typeof Storage !== "undefined") {
79
- localStorage.setItem("dangl_preview_notice_header_hide_version", this.preReleaseVersion);
80
- this.showPrerelease = false;
81
- }
82
- };
83
- return HeaderComponent;
84
- }());
85
- HeaderComponent.decorators = [
86
- { type: core.Component, args: [{
87
- selector: "dangl-header",
88
- template: "<mat-toolbar color=\"primary\">\r\n <mat-toolbar-row>\r\n <button\r\n mat-button\r\n class=\"menu-button\"\r\n *ngIf=\"showMenuButton\"\r\n (click)=\"menuButtonClicked.next(null)\"\r\n >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n <a routerLink=\"/\" class=\"header-title\" *ngIf=\"iconUrl\">\r\n <img class=\"dangl-header-logo\" [src]=\"iconUrl\" />\r\n </a>\r\n <a routerLink=\"/\" class=\"header-title\">\r\n <h1>\r\n <span *ngIf=\"logoInitials\" class=\"gd-logo\">{{ logoInitials }}</span>\r\n <ng-container *ngIf=\"prefix || postfix\">\r\n {{ prefix }}<strong>{{ postfix }}</strong>\r\n </ng-container>\r\n </h1>\r\n </a>\r\n <span class=\"toolbar-spacer\"></span>\r\n <ng-content></ng-content>\r\n </mat-toolbar-row>\r\n <mat-toolbar-row *ngIf=\"showPrerelease\" class=\"preview-notice\">\r\n <div class=\"preview-row\">\r\n <span> <mat-icon>warning</mat-icon> This is a preview site. </span>\r\n <a href=\"{{ preReleaseLiveSiteLink }}\" *ngIf=\"preReleaseLiveSiteLink\"\r\n >Click here to go to the live site</a\r\n >\r\n <div>\r\n <button\r\n mat-button\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"showPrerelease = false\"\r\n >\r\n OK\r\n </button>\r\n <button\r\n mat-button\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"hideForCurrentVersion()\"\r\n >\r\n Hide for this version\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"preview-row\">\r\n <span *ngIf=\"preReleaseVersion\">Version: {{ preReleaseVersion }}</span>\r\n <span *ngIf=\"preReleaseBuildDate\"\r\n >Built: {{ preReleaseBuildDate | date: \"dd.MM.yyyy HH:mm\" }}</span\r\n >\r\n </div>\r\n </mat-toolbar-row>\r\n <mat-toolbar-row class=\"header-divider\"></mat-toolbar-row>\r\n</mat-toolbar>\r\n",
89
- styles: [".header-divider{background-color:#3b4c55;height:12px}.preview-notice{background-color:#f44336;display:flex;flex-direction:column}.preview-notice .preview-row{display:flex;width:100%;flex-direction:row;justify-content:space-between}.preview-notice .preview-row a{text-decoration:underline}.dangl-header-logo{max-height:64px;vertical-align:middle}@media (max-width: 599px){.dangl-header-logo{max-height:56px}}mat-toolbar-row{padding-left:0}.header-title{padding-left:16px}.menu-button{height:100%;margin-left:0;min-width:auto;width:52px}.menu-button mat-icon{transform:scale(1.25)}.toolbar-spacer{flex:1 1 auto}\n"]
90
- },] }
91
- ];
92
- HeaderComponent.propDecorators = {
93
- prefix: [{ type: core.Input }],
94
- postfix: [{ type: core.Input }],
95
- showMenuButton: [{ type: core.Input }],
96
- logoInitials: [{ type: core.Input }],
97
- iconUrl: [{ type: core.Input }],
98
- menuButtonClicked: [{ type: core.Output }],
99
- preReleaseVersion: [{ type: core.Input }],
100
- preReleaseBuildDate: [{ type: core.Input }],
101
- preReleaseLiveSiteLink: [{ type: core.Input }],
102
- showPrerelease: [{ type: core.Input }]
103
- };
104
-
105
- // tslint:disable:no-bitwise
106
- var GuidGenerator = /** @class */ (function () {
107
- function GuidGenerator() {
108
- }
109
- /**
110
- * Taken from https://github.com/Steve-Fenton/TypeScriptUtilities/blob/master/Guid
111
- * (modified)
112
- * Generates a Version 4 (= Pseudorandom) Guid
113
- */
114
- GuidGenerator.generatePseudoRandomGuid = function () {
115
- var _this = this;
116
- var newGuidPlaceholder = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';
117
- var pseudoGuid = newGuidPlaceholder.replace(/[xy]/g, function (letter) { return _this.generateRandomHexDigit(letter); });
118
- return pseudoGuid;
119
- };
120
- GuidGenerator.generateRandomHexDigit = function (letter) {
121
- var r = Math.random() * 16 | 0;
122
- var v;
123
- if (letter === 'x') {
124
- v = r;
125
- }
126
- else if (letter === 'y') {
127
- v = r & 0x3 | 0x8;
128
- /* r & 0x3 -> Allows either 0x0000, 0x0001, 0x0010 or 0x0011
129
- * | 0x8 -> 0x1000 = 8
130
- * 0x1001 = 9
131
- * 0x1010 = A
132
- * 0x1011 = B
133
- * The possible variants of version 4 Guids
134
- */
135
- }
136
- else {
137
- throw new Error('Please provide either "x" to indicate a random replacement or "y" to '
138
- + 'indicate the generation of the variant identifier');
139
- }
140
- return v.toString(16);
141
- };
142
- return GuidGenerator;
143
- }());
144
-
145
- var TinyMceComponent = /** @class */ (function () {
146
- function TinyMceComponent(baseUrl, ngZone) {
147
- this.baseUrl = baseUrl;
148
- this.ngZone = ngZone;
149
- this.elementId = GuidGenerator.generatePseudoRandomGuid();
150
- this.onTouchedCallback = function () { };
151
- this.onChangeCallback = function () { };
152
- }
153
- Object.defineProperty(TinyMceComponent.prototype, "editorContent", {
154
- get: function () {
155
- return this._editorContent;
156
- },
157
- set: function (value) {
158
- var _this = this;
159
- if (value !== this._editorContent) {
160
- this._editorContent = value;
161
- this.ngZone.run(function () {
162
- // tinyMCE events are outside of the Angular zone
163
- // ngZone.run() makes sure everything runs in the
164
- // Angular zone, so it integrates in the Angular
165
- // lifecycle. Otherwise, e.g., 'required' validation
166
- // would not update on change
167
- _this.onChangeCallback(value);
168
- });
169
- }
170
- },
171
- enumerable: false,
172
- configurable: true
173
- });
174
- TinyMceComponent.prototype.ngAfterViewInit = function () {
175
- var _this = this;
176
- tinymce.init({
177
- selector: '#' + this.elementId,
178
- plugins: ['link', 'paste', 'table', 'image', 'code'],
179
- language: this.tinyMceLanguageCode,
180
- base_url: this.baseUrl,
181
- branding: false,
182
- setup: function (editor) {
183
- editor.on('change keyup', function () {
184
- var content = editor.getContent();
185
- _this.editorContent = content;
186
- });
187
- },
188
- init_instance_callback: function (editor) {
189
- if (editor && _this.editorContent) {
190
- editor.setContent(_this.editorContent);
191
- }
192
- _this.editor = editor;
193
- }
194
- });
195
- };
196
- TinyMceComponent.prototype.ngOnDestroy = function () {
197
- tinymce.remove(this.editor);
198
- };
199
- TinyMceComponent.prototype.writeValue = function (obj) {
200
- obj = obj || '';
201
- this.editorContent = obj;
202
- if (!this.editor) {
203
- return;
204
- }
205
- var tinyMceContent = this.editor.getContent();
206
- if (tinyMceContent !== obj) {
207
- this.editor.setContent(obj);
208
- }
209
- };
210
- TinyMceComponent.prototype.registerOnChange = function (fn) {
211
- this.onChangeCallback = fn;
212
- };
213
- TinyMceComponent.prototype.registerOnTouched = function (fn) {
214
- this.onTouchedCallback = fn;
215
- };
216
- TinyMceComponent.prototype.setDisabledState = function (isDisabled) {
217
- if (isDisabled) {
218
- this.editor.setMode('readonly');
219
- }
220
- else {
221
- this.editor.setMode('design');
222
- }
223
- };
224
- return TinyMceComponent;
225
- }());
226
- TinyMceComponent.decorators = [
227
- { type: core.Component, args: [{
228
- selector: 'dangl-tiny-mce',
229
- template: "<textarea id=\"{{ elementId }}\"></textarea>\r\n",
230
- providers: [
231
- {
232
- provide: forms.NG_VALUE_ACCESSOR,
233
- useExisting: core.forwardRef(function () { return TinyMceComponent; }),
234
- multi: true,
235
- }
236
- ],
237
- styles: [""]
238
- },] }
239
- ];
240
- TinyMceComponent.ctorParameters = function () { return [
241
- { type: String, decorators: [{ type: core.Inject, args: ['TINYMCE_BASE_URL',] }] },
242
- { type: core.NgZone }
243
- ]; };
244
- TinyMceComponent.propDecorators = {
245
- tinyMceLanguageUrl: [{ type: core.Input }],
246
- tinyMceLanguageCode: [{ type: core.Input }]
247
- };
248
-
249
- var AngularMaterialSharedModule = /** @class */ (function () {
250
- function AngularMaterialSharedModule() {
251
- }
252
- return AngularMaterialSharedModule;
253
- }());
254
- AngularMaterialSharedModule.decorators = [
255
- { type: core.NgModule, args: [{
256
- imports: [
257
- toolbar.MatToolbarModule,
258
- icon.MatIconModule,
259
- button.MatButtonModule,
260
- router.RouterModule,
261
- common.CommonModule
262
- ],
263
- declarations: [FooterComponent, HeaderComponent, TinyMceComponent],
264
- exports: [FooterComponent, HeaderComponent, TinyMceComponent]
265
- },] }
266
- ];
267
-
268
- /*
269
- * Public API Surface of angular-material-shared
270
- */
271
-
272
- /**
273
- * Generated bundle index. Do not edit.
274
- */
275
-
276
- exports.AngularMaterialSharedModule = AngularMaterialSharedModule;
277
- exports.FooterComponent = FooterComponent;
278
- exports.GuidGenerator = GuidGenerator;
279
- exports.HeaderComponent = HeaderComponent;
280
- exports.TinyMceComponent = TinyMceComponent;
281
-
282
- Object.defineProperty(exports, '__esModule', { value: true });
283
-
284
- })));
285
- //# sourceMappingURL=dangl-angular-material-shared.umd.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"dangl-angular-material-shared.umd.js","sources":["../../../projects/angular-material-shared/src/lib/components/footer/footer.component.ts","../../../projects/angular-material-shared/src/lib/components/header/header.component.ts","../../../projects/angular-material-shared/src/lib/utils/guid-generator.ts","../../../projects/angular-material-shared/src/lib/components/tiny-mce/tiny-mce.component.ts","../../../projects/angular-material-shared/src/lib/angular-material-shared.module.ts","../../../projects/angular-material-shared/src/public_api.ts","../../../projects/angular-material-shared/src/dangl-angular-material-shared.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\nimport { FooterOptions } from '../../models/footer-options';\r\n\r\n@Component({\r\n selector: 'dangl-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent {\r\n\r\n currentYear = new Date().getFullYear();\r\n\r\n @Input() showLegalNotice = false;\r\n @Input() legalNoticeText = 'Legal Notice';\r\n @Input() legalNoticeLink = 'legal-notice';\r\n @Input() useLegalNoticeCallback = false;\r\n @Input() options: FooterOptions;\r\n @Output() legalNoticeCallback = new EventEmitter();\r\n\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"dangl-header\",\r\n templateUrl: \"./header.component.html\",\r\n styleUrls: [\"./header.component.scss\"],\r\n})\r\nexport class HeaderComponent implements OnChanges {\r\n @Input() prefix: string;\r\n @Input() postfix: string;\r\n @Input() showMenuButton = false;\r\n @Input() logoInitials = \"GD\";\r\n @Input() iconUrl: string;\r\n @Output() menuButtonClicked = new EventEmitter();\r\n\r\n @Input() preReleaseVersion: string;\r\n @Input() preReleaseBuildDate: Date;\r\n @Input() preReleaseLiveSiteLink: string;\r\n\r\n @Input() set showPrerelease(val: boolean) {\r\n if (val) {\r\n this._forceDisablePrereleaseHeader = false;\r\n this._showPrerelease = this.checkPrereleaseData();\r\n } else {\r\n this._forceDisablePrereleaseHeader = true;\r\n this._showPrerelease = false;\r\n }\r\n }\r\n\r\n get showPrerelease() {\r\n if (this._forceDisablePrereleaseHeader) {\r\n return false;\r\n }\r\n return this._showPrerelease;\r\n }\r\n\r\n private _showPrerelease: boolean;\r\n private _forceDisablePrereleaseHeader = false;\r\n\r\n ngOnChanges(_: SimpleChanges): void {\r\n if (!this._forceDisablePrereleaseHeader) {\r\n this._showPrerelease = this.checkPrereleaseData();\r\n }\r\n }\r\n\r\n checkPrereleaseData(): boolean {\r\n let isShowing =\r\n this.preReleaseVersion != null ||\r\n this.preReleaseBuildDate != null ||\r\n this.preReleaseLiveSiteLink != null;\r\n if (this.preReleaseVersion != null && typeof Storage !== \"undefined\") {\r\n isShowing =\r\n this.preReleaseVersion !==\r\n localStorage.getItem(\"dangl_preview_notice_header_hide_version\");\r\n }\r\n return isShowing;\r\n }\r\n\r\n hideForCurrentVersion() {\r\n if (typeof Storage !== \"undefined\") {\r\n localStorage.setItem(\r\n \"dangl_preview_notice_header_hide_version\",\r\n this.preReleaseVersion\r\n );\r\n this.showPrerelease = false;\r\n }\r\n }\r\n}\r\n","// tslint:disable:no-bitwise\r\n\r\nexport class GuidGenerator {\r\n /**\r\n * Taken from https://github.com/Steve-Fenton/TypeScriptUtilities/blob/master/Guid\r\n * (modified)\r\n * Generates a Version 4 (= Pseudorandom) Guid\r\n */\r\n public static generatePseudoRandomGuid(): string {\r\n const newGuidPlaceholder = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx';\r\n const pseudoGuid = newGuidPlaceholder.replace(/[xy]/g, letter => this.generateRandomHexDigit(letter));\r\n return pseudoGuid;\r\n }\r\n\r\n private static generateRandomHexDigit(letter: string): string {\r\n const r = Math.random() * 16 | 0;\r\n let v: number;\r\n if (letter === 'x') {\r\n v = r;\r\n } else if (letter === 'y') {\r\n v = r & 0x3 | 0x8;\r\n /* r & 0x3 -> Allows either 0x0000, 0x0001, 0x0010 or 0x0011\r\n * | 0x8 -> 0x1000 = 8\r\n * 0x1001 = 9\r\n * 0x1010 = A\r\n * 0x1011 = B\r\n * The possible variants of version 4 Guids\r\n */\r\n } else {\r\n throw new Error('Please provide either \"x\" to indicate a random replacement or \"y\" to '\r\n + 'indicate the generation of the variant identifier');\r\n }\r\n return v.toString(16);\r\n }\r\n}\r\n","import { Component, forwardRef, Inject, NgZone, Input } from '@angular/core';\r\n// 'AfterViewInit' and 'OnDestroy' should be placed in a separate import to\r\n// mitigate this bug: https://github.com/ng-packagr/ng-packagr/issues/1543#issuecomment-593873874\r\nimport { AfterViewInit, OnDestroy } from '@angular/core';\r\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\r\nimport { GuidGenerator } from '../../utils/guid-generator';\r\n\r\ndeclare var tinymce: any;\r\n\r\n@Component({\r\n selector: 'dangl-tiny-mce',\r\n templateUrl: './tiny-mce.component.html',\r\n styleUrls: ['./tiny-mce.component.scss'],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TinyMceComponent),\r\n multi: true,\r\n }\r\n ]\r\n})\r\nexport class TinyMceComponent implements AfterViewInit, OnDestroy, ControlValueAccessor {\r\n\r\n @Input() tinyMceLanguageUrl: string;\r\n @Input() tinyMceLanguageCode: string;\r\n\r\n elementId = GuidGenerator.generatePseudoRandomGuid();\r\n editor: any;\r\n private _editorContent: string;\r\n get editorContent(): string {\r\n return this._editorContent;\r\n }\r\n set editorContent(value: string) {\r\n if (value !== this._editorContent) {\r\n this._editorContent = value;\r\n this.ngZone.run(() => {\r\n // tinyMCE events are outside of the Angular zone\r\n // ngZone.run() makes sure everything runs in the\r\n // Angular zone, so it integrates in the Angular\r\n // lifecycle. Otherwise, e.g., 'required' validation\r\n // would not update on change\r\n this.onChangeCallback(value);\r\n });\r\n }\r\n }\r\n\r\n private onTouchedCallback: () => void = () => { };\r\n private onChangeCallback: (_: any) => void = () => { };\r\n\r\n constructor(@Inject('TINYMCE_BASE_URL') private baseUrl: string,\r\n private ngZone: NgZone) {\r\n }\r\n\r\n ngAfterViewInit() {\r\n tinymce.init({\r\n selector: '#' + this.elementId,\r\n plugins: ['link', 'paste', 'table', 'image', 'code'],\r\n language: this.tinyMceLanguageCode,\r\n base_url: this.baseUrl,\r\n branding: false, // To disable 'POWERED BY TINYMCE' in footer\r\n setup: editor => {\r\n editor.on('change keyup', () => {\r\n const content = editor.getContent();\r\n this.editorContent = content;\r\n });\r\n },\r\n init_instance_callback: editor => {\r\n if (editor && this.editorContent) {\r\n editor.setContent(this.editorContent);\r\n }\r\n this.editor = editor;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n tinymce.remove(this.editor);\r\n }\r\n\r\n writeValue(obj: any): void {\r\n obj = obj || '';\r\n this.editorContent = obj;\r\n if (!this.editor) {\r\n return;\r\n }\r\n const tinyMceContent = this.editor.getContent();\r\n if (tinyMceContent !== obj) {\r\n this.editor.setContent(obj);\r\n }\r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChangeCallback = fn;\r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouchedCallback = fn;\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n if (isDisabled) {\r\n this.editor.setMode('readonly');\r\n } else {\r\n this.editor.setMode('design');\r\n }\r\n }\r\n\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { FooterComponent } from './components/footer/footer.component';\r\nimport { HeaderComponent } from './components/header/header.component';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule } from '@angular/router';\r\nimport { TinyMceComponent } from './components/tiny-mce/tiny-mce.component';\r\n\r\n@NgModule({\r\n imports: [\r\n MatToolbarModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n RouterModule,\r\n CommonModule\r\n ],\r\n declarations: [FooterComponent, HeaderComponent, TinyMceComponent],\r\n exports: [FooterComponent, HeaderComponent, TinyMceComponent]\r\n})\r\nexport class AngularMaterialSharedModule { }\r\n","/*\r\n * Public API Surface of angular-material-shared\r\n */\r\n\r\nexport * from './lib/angular-material-shared.module';\r\nexport * from './lib/utils/guid-generator';\r\nexport * from './lib/models/footer-options';\r\n\r\nexport * from './lib/components/footer/footer.component';\r\nexport * from './lib/components/header/header.component';\r\nexport * from './lib/components/tiny-mce/tiny-mce.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["EventEmitter","Component","Input","Output","NG_VALUE_ACCESSOR","forwardRef","Inject","NgZone","NgModule","MatToolbarModule","MatIconModule","MatButtonModule","RouterModule","CommonModule"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"__symbolic":"module","version":4,"metadata":{"AngularMaterialSharedModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":10,"character":1},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/material/toolbar","name":"MatToolbarModule","line":12,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":13,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":14,"character":4},{"__symbolic":"reference","module":"@angular/router","name":"RouterModule","line":15,"character":4},{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":16,"character":4}],"declarations":[{"__symbolic":"reference","name":"FooterComponent"},{"__symbolic":"reference","name":"HeaderComponent"},{"__symbolic":"reference","name":"TinyMceComponent"}],"exports":[{"__symbolic":"reference","name":"FooterComponent"},{"__symbolic":"reference","name":"HeaderComponent"},{"__symbolic":"reference","name":"TinyMceComponent"}]}]}],"members":{}},"GuidGenerator":{"__symbolic":"class","members":{}},"FooterOptions":{"__symbolic":"interface"},"FooterComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":4,"character":1},"arguments":[{"selector":"dangl-footer","template":"<footer class=\"gd-footer\">\r\n <p>\r\n <ng-template [ngIf]=\"!options\">\r\n <span class=\"gd-logo gd-logo-sm\">GD</span>\r\n <span>&nbsp;</span>\r\n <a href=\"https://www.dangl-it.com\"\r\n >Dangl<strong>IT</strong> GmbH © {{ currentYear }}</a\r\n >\r\n </ng-template>\r\n <ng-template [ngIf]=\"options\">\r\n <span *ngIf=\"options.logoInitials\" class=\"gd-logo gd-logo-sm\">{{\r\n options.logoInitials\r\n }}</span>\r\n <span>&nbsp;</span>\r\n <a *ngIf=\"options.copyrightUrl\" href=\"{{ options.copyrightUrl }}\"\r\n ><span [innerHtml]=\"options.companyNameHtml\"></span\r\n ></a>\r\n <span\r\n *ngIf=\"!options.copyrightUrl\"\r\n [innerHtml]=\"options.companyNameHtml\"\r\n ></span>\r\n </ng-template>\r\n <ng-template [ngIf]=\"showLegalNotice\">\r\n -\r\n <a *ngIf=\"!useLegalNoticeCallback\" [routerLink]=\"legalNoticeLink\">{{\r\n legalNoticeText\r\n }}</a>\r\n <a\r\n href=\"javascript:void(0)\"\r\n *ngIf=\"useLegalNoticeCallback\"\r\n (click)=\"legalNoticeCallback.next(null)\"\r\n >{{ legalNoticeText }}</a\r\n >\r\n </ng-template>\r\n </p>\r\n</footer>\r\n","styles":[""]}]}],"members":{"showLegalNotice":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":13,"character":3}}]}],"legalNoticeText":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":14,"character":3}}]}],"legalNoticeLink":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":15,"character":3}}]}],"useLegalNoticeCallback":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"options":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"legalNoticeCallback":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":18,"character":3}}]}]}},"HeaderComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":10,"character":1},"arguments":[{"selector":"dangl-header","template":"<mat-toolbar color=\"primary\">\r\n <mat-toolbar-row>\r\n <button\r\n mat-button\r\n class=\"menu-button\"\r\n *ngIf=\"showMenuButton\"\r\n (click)=\"menuButtonClicked.next(null)\"\r\n >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n <a routerLink=\"/\" class=\"header-title\" *ngIf=\"iconUrl\">\r\n <img class=\"dangl-header-logo\" [src]=\"iconUrl\" />\r\n </a>\r\n <a routerLink=\"/\" class=\"header-title\">\r\n <h1>\r\n <span *ngIf=\"logoInitials\" class=\"gd-logo\">{{ logoInitials }}</span>\r\n <ng-container *ngIf=\"prefix || postfix\">\r\n {{ prefix }}<strong>{{ postfix }}</strong>\r\n </ng-container>\r\n </h1>\r\n </a>\r\n <span class=\"toolbar-spacer\"></span>\r\n <ng-content></ng-content>\r\n </mat-toolbar-row>\r\n <mat-toolbar-row *ngIf=\"showPrerelease\" class=\"preview-notice\">\r\n <div class=\"preview-row\">\r\n <span> <mat-icon>warning</mat-icon> This is a preview site. </span>\r\n <a href=\"{{ preReleaseLiveSiteLink }}\" *ngIf=\"preReleaseLiveSiteLink\"\r\n >Click here to go to the live site</a\r\n >\r\n <div>\r\n <button\r\n mat-button\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"showPrerelease = false\"\r\n >\r\n OK\r\n </button>\r\n <button\r\n mat-button\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"hideForCurrentVersion()\"\r\n >\r\n Hide for this version\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"preview-row\">\r\n <span *ngIf=\"preReleaseVersion\">Version: {{ preReleaseVersion }}</span>\r\n <span *ngIf=\"preReleaseBuildDate\"\r\n >Built: {{ preReleaseBuildDate | date: \"dd.MM.yyyy HH:mm\" }}</span\r\n >\r\n </div>\r\n </mat-toolbar-row>\r\n <mat-toolbar-row class=\"header-divider\"></mat-toolbar-row>\r\n</mat-toolbar>\r\n","styles":[".header-divider{background-color:#3b4c55;height:12px}.preview-notice{background-color:#f44336;display:flex;flex-direction:column}.preview-notice .preview-row{display:flex;width:100%;flex-direction:row;justify-content:space-between}.preview-notice .preview-row a{text-decoration:underline}.dangl-header-logo{max-height:64px;vertical-align:middle}@media (max-width: 599px){.dangl-header-logo{max-height:56px}}mat-toolbar-row{padding-left:0}.header-title{padding-left:16px}.menu-button{height:100%;margin-left:0;min-width:auto;width:52px}.menu-button mat-icon{transform:scale(1.25)}.toolbar-spacer{flex:1 1 auto}\n"]}]}],"members":{"prefix":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":16,"character":3}}]}],"postfix":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":17,"character":3}}]}],"showMenuButton":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":18,"character":3}}]}],"logoInitials":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":19,"character":3}}]}],"iconUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":20,"character":3}}]}],"menuButtonClicked":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Output","line":21,"character":3}}]}],"preReleaseVersion":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"preReleaseBuildDate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"preReleaseLiveSiteLink":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":25,"character":3}}]}],"showPrerelease":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":27,"character":3}}]}],"ngOnChanges":[{"__symbolic":"method"}],"checkPrereleaseData":[{"__symbolic":"method"}],"hideForCurrentVersion":[{"__symbolic":"method"}]}},"TinyMceComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":9,"character":1},"arguments":[{"selector":"dangl-tiny-mce","providers":[{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":15,"character":15},"useExisting":{"__symbolic":"reference","name":"TinyMceComponent"},"multi":true}],"template":"<textarea id=\"{{ elementId }}\"></textarea>\r\n","styles":[""]}]}],"members":{"tinyMceLanguageUrl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":23,"character":3}}]}],"tinyMceLanguageCode":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":24,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":49,"character":15},"arguments":["TINYMCE_BASE_URL"]}],null],"parameters":[{"__symbolic":"reference","name":"string"},{"__symbolic":"reference","module":"@angular/core","name":"NgZone","line":50,"character":20}]}],"ngAfterViewInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"writeValue":[{"__symbolic":"method"}],"registerOnChange":[{"__symbolic":"method"}],"registerOnTouched":[{"__symbolic":"method"}],"setDisabledState":[{"__symbolic":"method"}]}}},"origins":{"AngularMaterialSharedModule":"./lib/angular-material-shared.module","GuidGenerator":"./lib/utils/guid-generator","FooterOptions":"./lib/models/footer-options","FooterComponent":"./lib/components/footer/footer.component","HeaderComponent":"./lib/components/header/header.component","TinyMceComponent":"./lib/components/tiny-mce/tiny-mce.component"},"importAs":"@dangl/angular-material-shared"}
@@ -1,25 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { FooterComponent } from './components/footer/footer.component';
3
- import { HeaderComponent } from './components/header/header.component';
4
- import { MatButtonModule } from '@angular/material/button';
5
- import { MatIconModule } from '@angular/material/icon';
6
- import { MatToolbarModule } from '@angular/material/toolbar';
7
- import { NgModule } from '@angular/core';
8
- import { RouterModule } from '@angular/router';
9
- import { TinyMceComponent } from './components/tiny-mce/tiny-mce.component';
10
- export class AngularMaterialSharedModule {
11
- }
12
- AngularMaterialSharedModule.decorators = [
13
- { type: NgModule, args: [{
14
- imports: [
15
- MatToolbarModule,
16
- MatIconModule,
17
- MatButtonModule,
18
- RouterModule,
19
- CommonModule
20
- ],
21
- declarations: [FooterComponent, HeaderComponent, TinyMceComponent],
22
- exports: [FooterComponent, HeaderComponent, TinyMceComponent]
23
- },] }
24
- ];
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci1tYXRlcmlhbC1zaGFyZWQubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1tYXRlcmlhbC1zaGFyZWQvc3JjL2xpYi9hbmd1bGFyLW1hdGVyaWFsLXNoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQWE1RSxNQUFNLE9BQU8sMkJBQTJCOzs7WUFYdkMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRTtvQkFDUCxnQkFBZ0I7b0JBQ2hCLGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixZQUFZO29CQUNaLFlBQVk7aUJBQ2I7Z0JBQ0QsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQztnQkFDbEUsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQzthQUM5RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdEljb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pY29uJztcclxuaW1wb3J0IHsgTWF0VG9vbGJhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2xiYXInO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUaW55TWNlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RpbnktbWNlL3RpbnktbWNlLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtcclxuICAgIE1hdFRvb2xiYXJNb2R1bGUsXHJcbiAgICBNYXRJY29uTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgUm91dGVyTW9kdWxlLFxyXG4gICAgQ29tbW9uTW9kdWxlXHJcbiAgXSxcclxuICBkZWNsYXJhdGlvbnM6IFtGb290ZXJDb21wb25lbnQsIEhlYWRlckNvbXBvbmVudCwgVGlueU1jZUNvbXBvbmVudF0sXHJcbiAgZXhwb3J0czogW0Zvb3RlckNvbXBvbmVudCwgSGVhZGVyQ29tcG9uZW50LCBUaW55TWNlQ29tcG9uZW50XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5ndWxhck1hdGVyaWFsU2hhcmVkTW9kdWxlIHsgfVxyXG4iXX0=
@@ -1,27 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- export class FooterComponent {
3
- constructor() {
4
- this.currentYear = new Date().getFullYear();
5
- this.showLegalNotice = false;
6
- this.legalNoticeText = 'Legal Notice';
7
- this.legalNoticeLink = 'legal-notice';
8
- this.useLegalNoticeCallback = false;
9
- this.legalNoticeCallback = new EventEmitter();
10
- }
11
- }
12
- FooterComponent.decorators = [
13
- { type: Component, args: [{
14
- selector: 'dangl-footer',
15
- template: "<footer class=\"gd-footer\">\r\n <p>\r\n <ng-template [ngIf]=\"!options\">\r\n <span class=\"gd-logo gd-logo-sm\">GD</span>\r\n <span>&nbsp;</span>\r\n <a href=\"https://www.dangl-it.com\"\r\n >Dangl<strong>IT</strong> GmbH \u00A9 {{ currentYear }}</a\r\n >\r\n </ng-template>\r\n <ng-template [ngIf]=\"options\">\r\n <span *ngIf=\"options.logoInitials\" class=\"gd-logo gd-logo-sm\">{{\r\n options.logoInitials\r\n }}</span>\r\n <span>&nbsp;</span>\r\n <a *ngIf=\"options.copyrightUrl\" href=\"{{ options.copyrightUrl }}\"\r\n ><span [innerHtml]=\"options.companyNameHtml\"></span\r\n ></a>\r\n <span\r\n *ngIf=\"!options.copyrightUrl\"\r\n [innerHtml]=\"options.companyNameHtml\"\r\n ></span>\r\n </ng-template>\r\n <ng-template [ngIf]=\"showLegalNotice\">\r\n -\r\n <a *ngIf=\"!useLegalNoticeCallback\" [routerLink]=\"legalNoticeLink\">{{\r\n legalNoticeText\r\n }}</a>\r\n <a\r\n href=\"javascript:void(0)\"\r\n *ngIf=\"useLegalNoticeCallback\"\r\n (click)=\"legalNoticeCallback.next(null)\"\r\n >{{ legalNoticeText }}</a\r\n >\r\n </ng-template>\r\n </p>\r\n</footer>\r\n",
16
- styles: [""]
17
- },] }
18
- ];
19
- FooterComponent.propDecorators = {
20
- showLegalNotice: [{ type: Input }],
21
- legalNoticeText: [{ type: Input }],
22
- legalNoticeLink: [{ type: Input }],
23
- useLegalNoticeCallback: [{ type: Input }],
24
- options: [{ type: Input }],
25
- legalNoticeCallback: [{ type: Output }]
26
- };
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItbWF0ZXJpYWwtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9mb290ZXIvZm9vdGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBU3ZFLE1BQU0sT0FBTyxlQUFlO0lBTDVCO1FBT0UsZ0JBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTlCLG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLG9CQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ2pDLG9CQUFlLEdBQUcsY0FBYyxDQUFDO1FBQ2pDLDJCQUFzQixHQUFHLEtBQUssQ0FBQztRQUU5Qix3QkFBbUIsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXJELENBQUM7OztZQWhCQSxTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGNBQWM7Z0JBQ3hCLDB1Q0FBc0M7O2FBRXZDOzs7OEJBS0UsS0FBSzs4QkFDTCxLQUFLOzhCQUNMLEtBQUs7cUNBQ0wsS0FBSztzQkFDTCxLQUFLO2tDQUNMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgRm9vdGVyT3B0aW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy9mb290ZXItb3B0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RhbmdsLWZvb3RlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvb3Rlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9vdGVyLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvb3RlckNvbXBvbmVudCB7XHJcblxyXG4gIGN1cnJlbnRZZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpO1xyXG5cclxuICBASW5wdXQoKSBzaG93TGVnYWxOb3RpY2UgPSBmYWxzZTtcclxuICBASW5wdXQoKSBsZWdhbE5vdGljZVRleHQgPSAnTGVnYWwgTm90aWNlJztcclxuICBASW5wdXQoKSBsZWdhbE5vdGljZUxpbmsgPSAnbGVnYWwtbm90aWNlJztcclxuICBASW5wdXQoKSB1c2VMZWdhbE5vdGljZUNhbGxiYWNrID0gZmFsc2U7XHJcbiAgQElucHV0KCkgb3B0aW9uczogRm9vdGVyT3B0aW9ucztcclxuICBAT3V0cHV0KCkgbGVnYWxOb3RpY2VDYWxsYmFjayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbn1cclxuIl19
@@ -1,67 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, } from "@angular/core";
2
- export class HeaderComponent {
3
- constructor() {
4
- this.showMenuButton = false;
5
- this.logoInitials = "GD";
6
- this.menuButtonClicked = new EventEmitter();
7
- this._forceDisablePrereleaseHeader = false;
8
- }
9
- set showPrerelease(val) {
10
- if (val) {
11
- this._forceDisablePrereleaseHeader = false;
12
- this._showPrerelease = this.checkPrereleaseData();
13
- }
14
- else {
15
- this._forceDisablePrereleaseHeader = true;
16
- this._showPrerelease = false;
17
- }
18
- }
19
- get showPrerelease() {
20
- if (this._forceDisablePrereleaseHeader) {
21
- return false;
22
- }
23
- return this._showPrerelease;
24
- }
25
- ngOnChanges(_) {
26
- if (!this._forceDisablePrereleaseHeader) {
27
- this._showPrerelease = this.checkPrereleaseData();
28
- }
29
- }
30
- checkPrereleaseData() {
31
- let isShowing = this.preReleaseVersion != null ||
32
- this.preReleaseBuildDate != null ||
33
- this.preReleaseLiveSiteLink != null;
34
- if (this.preReleaseVersion != null && typeof Storage !== "undefined") {
35
- isShowing =
36
- this.preReleaseVersion !==
37
- localStorage.getItem("dangl_preview_notice_header_hide_version");
38
- }
39
- return isShowing;
40
- }
41
- hideForCurrentVersion() {
42
- if (typeof Storage !== "undefined") {
43
- localStorage.setItem("dangl_preview_notice_header_hide_version", this.preReleaseVersion);
44
- this.showPrerelease = false;
45
- }
46
- }
47
- }
48
- HeaderComponent.decorators = [
49
- { type: Component, args: [{
50
- selector: "dangl-header",
51
- template: "<mat-toolbar color=\"primary\">\r\n <mat-toolbar-row>\r\n <button\r\n mat-button\r\n class=\"menu-button\"\r\n *ngIf=\"showMenuButton\"\r\n (click)=\"menuButtonClicked.next(null)\"\r\n >\r\n <mat-icon>menu</mat-icon>\r\n </button>\r\n <a routerLink=\"/\" class=\"header-title\" *ngIf=\"iconUrl\">\r\n <img class=\"dangl-header-logo\" [src]=\"iconUrl\" />\r\n </a>\r\n <a routerLink=\"/\" class=\"header-title\">\r\n <h1>\r\n <span *ngIf=\"logoInitials\" class=\"gd-logo\">{{ logoInitials }}</span>\r\n <ng-container *ngIf=\"prefix || postfix\">\r\n {{ prefix }}<strong>{{ postfix }}</strong>\r\n </ng-container>\r\n </h1>\r\n </a>\r\n <span class=\"toolbar-spacer\"></span>\r\n <ng-content></ng-content>\r\n </mat-toolbar-row>\r\n <mat-toolbar-row *ngIf=\"showPrerelease\" class=\"preview-notice\">\r\n <div class=\"preview-row\">\r\n <span> <mat-icon>warning</mat-icon> This is a preview site. </span>\r\n <a href=\"{{ preReleaseLiveSiteLink }}\" *ngIf=\"preReleaseLiveSiteLink\"\r\n >Click here to go to the live site</a\r\n >\r\n <div>\r\n <button\r\n mat-button\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"showPrerelease = false\"\r\n >\r\n OK\r\n </button>\r\n <button\r\n mat-button\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"hideForCurrentVersion()\"\r\n >\r\n Hide for this version\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"preview-row\">\r\n <span *ngIf=\"preReleaseVersion\">Version: {{ preReleaseVersion }}</span>\r\n <span *ngIf=\"preReleaseBuildDate\"\r\n >Built: {{ preReleaseBuildDate | date: \"dd.MM.yyyy HH:mm\" }}</span\r\n >\r\n </div>\r\n </mat-toolbar-row>\r\n <mat-toolbar-row class=\"header-divider\"></mat-toolbar-row>\r\n</mat-toolbar>\r\n",
52
- styles: [".header-divider{background-color:#3b4c55;height:12px}.preview-notice{background-color:#f44336;display:flex;flex-direction:column}.preview-notice .preview-row{display:flex;width:100%;flex-direction:row;justify-content:space-between}.preview-notice .preview-row a{text-decoration:underline}.dangl-header-logo{max-height:64px;vertical-align:middle}@media (max-width: 599px){.dangl-header-logo{max-height:56px}}mat-toolbar-row{padding-left:0}.header-title{padding-left:16px}.menu-button{height:100%;margin-left:0;min-width:auto;width:52px}.menu-button mat-icon{transform:scale(1.25)}.toolbar-spacer{flex:1 1 auto}\n"]
53
- },] }
54
- ];
55
- HeaderComponent.propDecorators = {
56
- prefix: [{ type: Input }],
57
- postfix: [{ type: Input }],
58
- showMenuButton: [{ type: Input }],
59
- logoInitials: [{ type: Input }],
60
- iconUrl: [{ type: Input }],
61
- menuButtonClicked: [{ type: Output }],
62
- preReleaseVersion: [{ type: Input }],
63
- preReleaseBuildDate: [{ type: Input }],
64
- preReleaseLiveSiteLink: [{ type: Input }],
65
- showPrerelease: [{ type: Input }]
66
- };
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItbWF0ZXJpYWwtc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy9oZWFkZXIvaGVhZGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBT3ZCLE1BQU0sT0FBTyxlQUFlO0lBTDVCO1FBUVcsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFFbkIsc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQXdCekMsa0NBQTZCLEdBQUcsS0FBSyxDQUFDO0lBOEJoRCxDQUFDO0lBaERDLElBQWEsY0FBYyxDQUFDLEdBQVk7UUFDdEMsSUFBSSxHQUFHLEVBQUU7WUFDUCxJQUFJLENBQUMsNkJBQTZCLEdBQUcsS0FBSyxDQUFDO1lBQzNDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDbkQ7YUFBTTtZQUNMLElBQUksQ0FBQyw2QkFBNkIsR0FBRyxJQUFJLENBQUM7WUFDMUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLElBQUksSUFBSSxDQUFDLDZCQUE2QixFQUFFO1lBQ3RDLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQUtELFdBQVcsQ0FBQyxDQUFnQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLDZCQUE2QixFQUFFO1lBQ3ZDLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7U0FDbkQ7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLElBQUksU0FBUyxHQUNYLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJO1lBQzlCLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJO1lBQ2hDLElBQUksQ0FBQyxzQkFBc0IsSUFBSSxJQUFJLENBQUM7UUFDdEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxJQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRTtZQUNwRSxTQUFTO2dCQUNQLElBQUksQ0FBQyxpQkFBaUI7b0JBQ3RCLFlBQVksQ0FBQyxPQUFPLENBQUMsMENBQTBDLENBQUMsQ0FBQztTQUNwRTtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxPQUFPLE9BQU8sS0FBSyxXQUFXLEVBQUU7WUFDbEMsWUFBWSxDQUFDLE9BQU8sQ0FDbEIsMENBQTBDLEVBQzFDLElBQUksQ0FBQyxpQkFBaUIsQ0FDdkIsQ0FBQztZQUNGLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1NBQzdCO0lBQ0gsQ0FBQzs7O1lBaEVGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsY0FBYztnQkFDeEIsZytEQUFzQzs7YUFFdkM7OztxQkFFRSxLQUFLO3NCQUNMLEtBQUs7NkJBQ0wsS0FBSzsyQkFDTCxLQUFLO3NCQUNMLEtBQUs7Z0NBQ0wsTUFBTTtnQ0FFTixLQUFLO2tDQUNMLEtBQUs7cUNBQ0wsS0FBSzs2QkFFTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImRhbmdsLWhlYWRlclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaGVhZGVyLmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2hlYWRlci5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEhlYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgcHJlZml4OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcG9zdGZpeDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHNob3dNZW51QnV0dG9uID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbG9nb0luaXRpYWxzID0gXCJHRFwiO1xyXG4gIEBJbnB1dCgpIGljb25Vcmw6IHN0cmluZztcclxuICBAT3V0cHV0KCkgbWVudUJ1dHRvbkNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpIHByZVJlbGVhc2VWZXJzaW9uOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHJlUmVsZWFzZUJ1aWxkRGF0ZTogRGF0ZTtcclxuICBASW5wdXQoKSBwcmVSZWxlYXNlTGl2ZVNpdGVMaW5rOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBzaG93UHJlcmVsZWFzZSh2YWw6IGJvb2xlYW4pIHtcclxuICAgIGlmICh2YWwpIHtcclxuICAgICAgdGhpcy5fZm9yY2VEaXNhYmxlUHJlcmVsZWFzZUhlYWRlciA9IGZhbHNlO1xyXG4gICAgICB0aGlzLl9zaG93UHJlcmVsZWFzZSA9IHRoaXMuY2hlY2tQcmVyZWxlYXNlRGF0YSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fZm9yY2VEaXNhYmxlUHJlcmVsZWFzZUhlYWRlciA9IHRydWU7XHJcbiAgICAgIHRoaXMuX3Nob3dQcmVyZWxlYXNlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd1ByZXJlbGVhc2UoKSB7XHJcbiAgICBpZiAodGhpcy5fZm9yY2VEaXNhYmxlUHJlcmVsZWFzZUhlYWRlcikge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5fc2hvd1ByZXJlbGVhc2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zaG93UHJlcmVsZWFzZTogYm9vbGVhbjtcclxuICBwcml2YXRlIF9mb3JjZURpc2FibGVQcmVyZWxlYXNlSGVhZGVyID0gZmFsc2U7XHJcblxyXG4gIG5nT25DaGFuZ2VzKF86IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5fZm9yY2VEaXNhYmxlUHJlcmVsZWFzZUhlYWRlcikge1xyXG4gICAgICB0aGlzLl9zaG93UHJlcmVsZWFzZSA9IHRoaXMuY2hlY2tQcmVyZWxlYXNlRGF0YSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tQcmVyZWxlYXNlRGF0YSgpOiBib29sZWFuIHtcclxuICAgIGxldCBpc1Nob3dpbmcgPVxyXG4gICAgICB0aGlzLnByZVJlbGVhc2VWZXJzaW9uICE9IG51bGwgfHxcclxuICAgICAgdGhpcy5wcmVSZWxlYXNlQnVpbGREYXRlICE9IG51bGwgfHxcclxuICAgICAgdGhpcy5wcmVSZWxlYXNlTGl2ZVNpdGVMaW5rICE9IG51bGw7XHJcbiAgICBpZiAodGhpcy5wcmVSZWxlYXNlVmVyc2lvbiAhPSBudWxsICYmIHR5cGVvZiBTdG9yYWdlICE9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgIGlzU2hvd2luZyA9XHJcbiAgICAgICAgdGhpcy5wcmVSZWxlYXNlVmVyc2lvbiAhPT1cclxuICAgICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImRhbmdsX3ByZXZpZXdfbm90aWNlX2hlYWRlcl9oaWRlX3ZlcnNpb25cIik7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gaXNTaG93aW5nO1xyXG4gIH1cclxuXHJcbiAgaGlkZUZvckN1cnJlbnRWZXJzaW9uKCkge1xyXG4gICAgaWYgKHR5cGVvZiBTdG9yYWdlICE9PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFxyXG4gICAgICAgIFwiZGFuZ2xfcHJldmlld19ub3RpY2VfaGVhZGVyX2hpZGVfdmVyc2lvblwiLFxyXG4gICAgICAgIHRoaXMucHJlUmVsZWFzZVZlcnNpb25cclxuICAgICAgKTtcclxuICAgICAgdGhpcy5zaG93UHJlcmVsZWFzZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,100 +0,0 @@
1
- import { Component, forwardRef, Inject, NgZone, Input } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { GuidGenerator } from '../../utils/guid-generator';
4
- export class TinyMceComponent {
5
- constructor(baseUrl, ngZone) {
6
- this.baseUrl = baseUrl;
7
- this.ngZone = ngZone;
8
- this.elementId = GuidGenerator.generatePseudoRandomGuid();
9
- this.onTouchedCallback = () => { };
10
- this.onChangeCallback = () => { };
11
- }
12
- get editorContent() {
13
- return this._editorContent;
14
- }
15
- set editorContent(value) {
16
- if (value !== this._editorContent) {
17
- this._editorContent = value;
18
- this.ngZone.run(() => {
19
- // tinyMCE events are outside of the Angular zone
20
- // ngZone.run() makes sure everything runs in the
21
- // Angular zone, so it integrates in the Angular
22
- // lifecycle. Otherwise, e.g., 'required' validation
23
- // would not update on change
24
- this.onChangeCallback(value);
25
- });
26
- }
27
- }
28
- ngAfterViewInit() {
29
- tinymce.init({
30
- selector: '#' + this.elementId,
31
- plugins: ['link', 'paste', 'table', 'image', 'code'],
32
- language: this.tinyMceLanguageCode,
33
- base_url: this.baseUrl,
34
- branding: false,
35
- setup: editor => {
36
- editor.on('change keyup', () => {
37
- const content = editor.getContent();
38
- this.editorContent = content;
39
- });
40
- },
41
- init_instance_callback: editor => {
42
- if (editor && this.editorContent) {
43
- editor.setContent(this.editorContent);
44
- }
45
- this.editor = editor;
46
- }
47
- });
48
- }
49
- ngOnDestroy() {
50
- tinymce.remove(this.editor);
51
- }
52
- writeValue(obj) {
53
- obj = obj || '';
54
- this.editorContent = obj;
55
- if (!this.editor) {
56
- return;
57
- }
58
- const tinyMceContent = this.editor.getContent();
59
- if (tinyMceContent !== obj) {
60
- this.editor.setContent(obj);
61
- }
62
- }
63
- registerOnChange(fn) {
64
- this.onChangeCallback = fn;
65
- }
66
- registerOnTouched(fn) {
67
- this.onTouchedCallback = fn;
68
- }
69
- setDisabledState(isDisabled) {
70
- if (isDisabled) {
71
- this.editor.setMode('readonly');
72
- }
73
- else {
74
- this.editor.setMode('design');
75
- }
76
- }
77
- }
78
- TinyMceComponent.decorators = [
79
- { type: Component, args: [{
80
- selector: 'dangl-tiny-mce',
81
- template: "<textarea id=\"{{ elementId }}\"></textarea>\r\n",
82
- providers: [
83
- {
84
- provide: NG_VALUE_ACCESSOR,
85
- useExisting: forwardRef(() => TinyMceComponent),
86
- multi: true,
87
- }
88
- ],
89
- styles: [""]
90
- },] }
91
- ];
92
- TinyMceComponent.ctorParameters = () => [
93
- { type: String, decorators: [{ type: Inject, args: ['TINYMCE_BASE_URL',] }] },
94
- { type: NgZone }
95
- ];
96
- TinyMceComponent.propDecorators = {
97
- tinyMceLanguageUrl: [{ type: Input }],
98
- tinyMceLanguageCode: [{ type: Input }]
99
- };
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlueS1tY2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1tYXRlcmlhbC1zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3RpbnktbWNlL3RpbnktbWNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUk3RSxPQUFPLEVBQUUsaUJBQWlCLEVBQXdCLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBZ0IzRCxNQUFNLE9BQU8sZ0JBQWdCO0lBNEIzQixZQUFnRCxPQUFlLEVBQ3JELE1BQWM7UUFEd0IsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNyRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBeEJ4QixjQUFTLEdBQUcsYUFBYSxDQUFDLHdCQUF3QixFQUFFLENBQUM7UUFvQjdDLHNCQUFpQixHQUFlLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxQyxxQkFBZ0IsR0FBcUIsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBSXZELENBQUM7SUF0QkQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDO0lBQzdCLENBQUM7SUFDRCxJQUFJLGFBQWEsQ0FBQyxLQUFhO1FBQzdCLElBQUksS0FBSyxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDakMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7WUFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNuQixpREFBaUQ7Z0JBQ2pELGlEQUFpRDtnQkFDakQsZ0RBQWdEO2dCQUNoRCxvREFBb0Q7Z0JBQ3BELDZCQUE2QjtnQkFDN0IsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQy9CLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBU0QsZUFBZTtRQUNiLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDWCxRQUFRLEVBQUUsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTO1lBQzlCLE9BQU8sRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUM7WUFDcEQsUUFBUSxFQUFFLElBQUksQ0FBQyxtQkFBbUI7WUFDbEMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ3RCLFFBQVEsRUFBRSxLQUFLO1lBQ2YsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNkLE1BQU0sQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFLEdBQUcsRUFBRTtvQkFDN0IsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNwQyxJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0Qsc0JBQXNCLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQy9CLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7b0JBQ2hDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2lCQUN2QztnQkFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztZQUN2QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVE7UUFDakIsR0FBRyxHQUFHLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDaEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTztTQUNSO1FBQ0QsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoRCxJQUFJLGNBQWMsS0FBSyxHQUFHLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0I7SUFDSCxDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFDRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUNELGdCQUFnQixDQUFFLFVBQW1CO1FBQ25DLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDakM7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQzs7O1lBN0ZGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2dCQUMxQiw0REFBd0M7Z0JBRXhDLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO3dCQUMvQyxLQUFLLEVBQUUsSUFBSTtxQkFDWjtpQkFDRjs7YUFDRjs7O3lDQTZCYyxNQUFNLFNBQUMsa0JBQWtCO1lBakRBLE1BQU07OztpQ0F1QjNDLEtBQUs7a0NBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5qZWN0LCBOZ1pvbmUsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbi8vICdBZnRlclZpZXdJbml0JyBhbmQgJ09uRGVzdHJveScgc2hvdWxkIGJlIHBsYWNlZCBpbiBhIHNlcGFyYXRlIGltcG9ydCB0b1xyXG4vLyBtaXRpZ2F0ZSB0aGlzIGJ1ZzogaHR0cHM6Ly9naXRodWIuY29tL25nLXBhY2thZ3IvbmctcGFja2Fnci9pc3N1ZXMvMTU0MyNpc3N1ZWNvbW1lbnQtNTkzODczODc0XHJcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEd1aWRHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi91dGlscy9ndWlkLWdlbmVyYXRvcic7XHJcblxyXG5kZWNsYXJlIHZhciB0aW55bWNlOiBhbnk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RhbmdsLXRpbnktbWNlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGlueS1tY2UuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RpbnktbWNlLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUaW55TWNlQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlueU1jZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG5cclxuICBASW5wdXQoKSB0aW55TWNlTGFuZ3VhZ2VVcmw6IHN0cmluZztcclxuICBASW5wdXQoKSB0aW55TWNlTGFuZ3VhZ2VDb2RlOiBzdHJpbmc7XHJcblxyXG4gIGVsZW1lbnRJZCA9IEd1aWRHZW5lcmF0b3IuZ2VuZXJhdGVQc2V1ZG9SYW5kb21HdWlkKCk7XHJcbiAgZWRpdG9yOiBhbnk7XHJcbiAgcHJpdmF0ZSBfZWRpdG9yQ29udGVudDogc3RyaW5nO1xyXG4gIGdldCBlZGl0b3JDb250ZW50KCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fZWRpdG9yQ29udGVudDtcclxuICB9XHJcbiAgc2V0IGVkaXRvckNvbnRlbnQodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHZhbHVlICE9PSB0aGlzLl9lZGl0b3JDb250ZW50KSB7XHJcbiAgICAgIHRoaXMuX2VkaXRvckNvbnRlbnQgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcclxuICAgICAgICAvLyB0aW55TUNFIGV2ZW50cyBhcmUgb3V0c2lkZSBvZiB0aGUgQW5ndWxhciB6b25lXHJcbiAgICAgICAgLy8gbmdab25lLnJ1bigpIG1ha2VzIHN1cmUgZXZlcnl0aGluZyBydW5zIGluIHRoZVxyXG4gICAgICAgIC8vIEFuZ3VsYXIgem9uZSwgc28gaXQgaW50ZWdyYXRlcyBpbiB0aGUgQW5ndWxhclxyXG4gICAgICAgIC8vIGxpZmVjeWNsZS4gT3RoZXJ3aXNlLCBlLmcuLCAncmVxdWlyZWQnIHZhbGlkYXRpb25cclxuICAgICAgICAvLyB3b3VsZCBub3QgdXBkYXRlIG9uIGNoYW5nZVxyXG4gICAgICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayh2YWx1ZSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvblRvdWNoZWRDYWxsYmFjazogKCkgPT4gdm9pZCA9ICgpID0+IHsgfTtcclxuICBwcml2YXRlIG9uQ2hhbmdlQ2FsbGJhY2s6IChfOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB7IH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoJ1RJTllNQ0VfQkFTRV9VUkwnKSBwcml2YXRlIGJhc2VVcmw6IHN0cmluZyxcclxuICAgIHByaXZhdGUgbmdab25lOiBOZ1pvbmUpIHtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRpbnltY2UuaW5pdCh7XHJcbiAgICAgIHNlbGVjdG9yOiAnIycgKyB0aGlzLmVsZW1lbnRJZCxcclxuICAgICAgcGx1Z2luczogWydsaW5rJywgJ3Bhc3RlJywgJ3RhYmxlJywgJ2ltYWdlJywgJ2NvZGUnXSxcclxuICAgICAgbGFuZ3VhZ2U6IHRoaXMudGlueU1jZUxhbmd1YWdlQ29kZSxcclxuICAgICAgYmFzZV91cmw6IHRoaXMuYmFzZVVybCxcclxuICAgICAgYnJhbmRpbmc6IGZhbHNlLCAvLyBUbyBkaXNhYmxlICdQT1dFUkVEIEJZIFRJTllNQ0UnIGluIGZvb3RlclxyXG4gICAgICBzZXR1cDogZWRpdG9yID0+IHtcclxuICAgICAgICBlZGl0b3Iub24oJ2NoYW5nZSBrZXl1cCcsICgpID0+IHtcclxuICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBlZGl0b3IuZ2V0Q29udGVudCgpO1xyXG4gICAgICAgICAgdGhpcy5lZGl0b3JDb250ZW50ID0gY29udGVudDtcclxuICAgICAgICB9KTtcclxuICAgICAgfSxcclxuICAgICAgaW5pdF9pbnN0YW5jZV9jYWxsYmFjazogZWRpdG9yID0+IHtcclxuICAgICAgICBpZiAoZWRpdG9yICYmIHRoaXMuZWRpdG9yQ29udGVudCkge1xyXG4gICAgICAgICAgZWRpdG9yLnNldENvbnRlbnQodGhpcy5lZGl0b3JDb250ZW50KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5lZGl0b3IgPSBlZGl0b3I7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aW55bWNlLnJlbW92ZSh0aGlzLmVkaXRvcik7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICBvYmogPSBvYmogfHwgJyc7XHJcbiAgICB0aGlzLmVkaXRvckNvbnRlbnQgPSBvYmo7XHJcbiAgICBpZiAoIXRoaXMuZWRpdG9yKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIGNvbnN0IHRpbnlNY2VDb250ZW50ID0gdGhpcy5lZGl0b3IuZ2V0Q29udGVudCgpO1xyXG4gICAgaWYgKHRpbnlNY2VDb250ZW50ICE9PSBvYmopIHtcclxuICAgICAgdGhpcy5lZGl0b3Iuc2V0Q29udGVudChvYmopO1xyXG4gICAgfVxyXG4gIH1cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuZWRpdG9yLnNldE1vZGUoJ3JlYWRvbmx5Jyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVkaXRvci5zZXRNb2RlKCdkZXNpZ24nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==