sk-front-lib 0.17.49 → 0.17.51

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 (255) hide show
  1. package/esm2020/lib/sk-byte.pipe.mjs +4 -4
  2. package/esm2020/lib/sk-date-time.pipe.mjs +4 -4
  3. package/esm2020/lib/sk-date.pipe.mjs +4 -4
  4. package/esm2020/lib/sk-front-lib.module.mjs +5 -5
  5. package/esm2020/lib/sk-keys.pipe.mjs +4 -4
  6. package/esm2020/lib/sk-time.pipe.mjs +4 -4
  7. package/fesm2015/sk-front-lib.mjs +19 -19
  8. package/fesm2015/sk-front-lib.mjs.map +1 -1
  9. package/fesm2020/sk-front-lib.mjs +19 -19
  10. package/fesm2020/sk-front-lib.mjs.map +1 -1
  11. package/lib/sk-byte.pipe.d.ts +1 -1
  12. package/lib/sk-date-time.pipe.d.ts +1 -1
  13. package/lib/sk-date.pipe.d.ts +1 -1
  14. package/lib/sk-keys.pipe.d.ts +1 -1
  15. package/lib/sk-time.pipe.d.ts +1 -1
  16. package/package.json +3 -67
  17. package/api/model/api-config.d.ts +0 -6
  18. package/api/model/api-pageable-param.d.ts +0 -11
  19. package/api/model/api-pageable.d.ts +0 -11
  20. package/api/model/api-response.d.ts +0 -8
  21. package/api/model/index.d.ts +0 -4
  22. package/api/package.json +0 -10
  23. package/api/public_api.d.ts +0 -3
  24. package/api/sk-api.module.d.ts +0 -12
  25. package/api/sk-api.service.d.ts +0 -34
  26. package/api/sk-front-lib-api.d.ts +0 -5
  27. package/article/package.json +0 -10
  28. package/article/public_api.d.ts +0 -6
  29. package/article/sk-article-editor-server.component.d.ts +0 -23
  30. package/article/sk-article-editor.component.d.ts +0 -27
  31. package/article/sk-article-server.module.d.ts +0 -10
  32. package/article/sk-article.module.d.ts +0 -9
  33. package/article/sk-article.service.d.ts +0 -96
  34. package/article/sk-froala-editor.directive.d.ts +0 -40
  35. package/article/sk-front-lib-article.d.ts +0 -5
  36. package/crud/package.json +0 -10
  37. package/crud/public_api.d.ts +0 -24
  38. package/crud/sk-account.service.d.ts +0 -16
  39. package/crud/sk-affiliate.service.d.ts +0 -38
  40. package/crud/sk-auth-admin.guard.d.ts +0 -13
  41. package/crud/sk-auth.guard.d.ts +0 -13
  42. package/crud/sk-auth.service.d.ts +0 -33
  43. package/crud/sk-board.service.d.ts +0 -21
  44. package/crud/sk-brand.service.d.ts +0 -19
  45. package/crud/sk-cart.service.d.ts +0 -72
  46. package/crud/sk-category.service.d.ts +0 -28
  47. package/crud/sk-comment.service.d.ts +0 -15
  48. package/crud/sk-config.service.d.ts +0 -13
  49. package/crud/sk-contact.service.d.ts +0 -15
  50. package/crud/sk-coupon.service.d.ts +0 -24
  51. package/crud/sk-document.service.d.ts +0 -51
  52. package/crud/sk-etc.service.d.ts +0 -12
  53. package/crud/sk-file.service.d.ts +0 -18
  54. package/crud/sk-front-lib-crud.d.ts +0 -5
  55. package/crud/sk-keyword.service.d.ts +0 -19
  56. package/crud/sk-order.service.d.ts +0 -45
  57. package/crud/sk-point.service.d.ts +0 -17
  58. package/crud/sk-product.service.d.ts +0 -84
  59. package/crud/sk-promotion.service.d.ts +0 -41
  60. package/crud/sk-search.service.d.ts +0 -12
  61. package/crud/sk-store.service.d.ts +0 -17
  62. package/crud/sk-user.service.d.ts +0 -25
  63. package/esm2020/api/model/api-config.mjs +0 -2
  64. package/esm2020/api/model/api-pageable-param.mjs +0 -29
  65. package/esm2020/api/model/api-pageable.mjs +0 -3
  66. package/esm2020/api/model/api-response.mjs +0 -3
  67. package/esm2020/api/model/index.mjs +0 -4
  68. package/esm2020/api/public_api.mjs +0 -4
  69. package/esm2020/api/sk-api.module.mjs +0 -35
  70. package/esm2020/api/sk-api.service.mjs +0 -145
  71. package/esm2020/api/sk-front-lib-api.mjs +0 -5
  72. package/esm2020/article/public_api.mjs +0 -7
  73. package/esm2020/article/sk-article-editor-server.component.mjs +0 -51
  74. package/esm2020/article/sk-article-editor.component.mjs +0 -93
  75. package/esm2020/article/sk-article-server.module.mjs +0 -33
  76. package/esm2020/article/sk-article.module.mjs +0 -32
  77. package/esm2020/article/sk-article.service.mjs +0 -248
  78. package/esm2020/article/sk-froala-editor.directive.mjs +0 -325
  79. package/esm2020/article/sk-front-lib-article.mjs +0 -5
  80. package/esm2020/crud/public_api.mjs +0 -25
  81. package/esm2020/crud/sk-account.service.mjs +0 -36
  82. package/esm2020/crud/sk-affiliate.service.mjs +0 -94
  83. package/esm2020/crud/sk-auth-admin.guard.mjs +0 -31
  84. package/esm2020/crud/sk-auth.guard.mjs +0 -31
  85. package/esm2020/crud/sk-auth.service.mjs +0 -67
  86. package/esm2020/crud/sk-board.service.mjs +0 -54
  87. package/esm2020/crud/sk-brand.service.mjs +0 -46
  88. package/esm2020/crud/sk-cart.service.mjs +0 -256
  89. package/esm2020/crud/sk-category.service.mjs +0 -63
  90. package/esm2020/crud/sk-comment.service.mjs +0 -43
  91. package/esm2020/crud/sk-config.service.mjs +0 -31
  92. package/esm2020/crud/sk-contact.service.mjs +0 -39
  93. package/esm2020/crud/sk-coupon.service.mjs +0 -62
  94. package/esm2020/crud/sk-document.service.mjs +0 -110
  95. package/esm2020/crud/sk-etc.service.mjs +0 -25
  96. package/esm2020/crud/sk-file.service.mjs +0 -37
  97. package/esm2020/crud/sk-front-lib-crud.mjs +0 -5
  98. package/esm2020/crud/sk-keyword.service.mjs +0 -46
  99. package/esm2020/crud/sk-order.service.mjs +0 -133
  100. package/esm2020/crud/sk-point.service.mjs +0 -45
  101. package/esm2020/crud/sk-product.service.mjs +0 -168
  102. package/esm2020/crud/sk-promotion.service.mjs +0 -84
  103. package/esm2020/crud/sk-search.service.mjs +0 -25
  104. package/esm2020/crud/sk-store.service.mjs +0 -47
  105. package/esm2020/crud/sk-user.service.mjs +0 -73
  106. package/esm2020/google-analytics/google-analytics-router.module.mjs +0 -30
  107. package/esm2020/google-analytics/google-analytics.module.mjs +0 -40
  108. package/esm2020/google-analytics/initializers/google-analytics-router.initializer.mjs +0 -24
  109. package/esm2020/google-analytics/initializers/google-analytics.initializer.mjs +0 -46
  110. package/esm2020/google-analytics/interfaces/google-analytics-command.mjs +0 -2
  111. package/esm2020/google-analytics/interfaces/google-analytics-settings.mjs +0 -2
  112. package/esm2020/google-analytics/public_api.mjs +0 -11
  113. package/esm2020/google-analytics/services/google-analytics.service.mjs +0 -223
  114. package/esm2020/google-analytics/sk-front-lib-google-analytics.mjs +0 -5
  115. package/esm2020/google-analytics/tokens/google-analytics-settings-token.mjs +0 -5
  116. package/esm2020/google-analytics/types/ga-action.type.mjs +0 -2
  117. package/esm2020/google-analytics/types/ga-bind.type.mjs +0 -2
  118. package/esm2020/image/public_api.mjs +0 -3
  119. package/esm2020/image/sk-front-lib-image.mjs +0 -5
  120. package/esm2020/image/sk-image.component.mjs +0 -262
  121. package/esm2020/image/sk-image.module.mjs +0 -43
  122. package/esm2020/model/lib/article.mjs +0 -11
  123. package/esm2020/model/lib/audit.mjs +0 -12
  124. package/esm2020/model/lib/auth.mjs +0 -2
  125. package/esm2020/model/lib/board.mjs +0 -21
  126. package/esm2020/model/lib/cart.mjs +0 -29
  127. package/esm2020/model/lib/comment.mjs +0 -25
  128. package/esm2020/model/lib/contact.mjs +0 -28
  129. package/esm2020/model/lib/coupon.mjs +0 -23
  130. package/esm2020/model/lib/document.mjs +0 -49
  131. package/esm2020/model/lib/etc.mjs +0 -57
  132. package/esm2020/model/lib/file.mjs +0 -8
  133. package/esm2020/model/lib/filetype.mjs +0 -179
  134. package/esm2020/model/lib/grid.mjs +0 -83
  135. package/esm2020/model/lib/nicepay.mjs +0 -81
  136. package/esm2020/model/lib/order.mjs +0 -106
  137. package/esm2020/model/lib/payment.mjs +0 -35
  138. package/esm2020/model/lib/point.mjs +0 -47
  139. package/esm2020/model/lib/product-series.mjs +0 -2
  140. package/esm2020/model/lib/product.mjs +0 -156
  141. package/esm2020/model/lib/promotion.mjs +0 -80
  142. package/esm2020/model/lib/shipping.mjs +0 -37
  143. package/esm2020/model/lib/tosspay.mjs +0 -61
  144. package/esm2020/model/lib/user.mjs +0 -61
  145. package/esm2020/model/public_api.mjs +0 -24
  146. package/esm2020/model/sk-front-lib-model.mjs +0 -5
  147. package/esm2020/search-address/dialog/dialog.component.mjs +0 -27
  148. package/esm2020/search-address/public_api.mjs +0 -4
  149. package/esm2020/search-address/sk-front-lib-search-address.mjs +0 -5
  150. package/esm2020/search-address/sk-search-address.directive.mjs +0 -41
  151. package/esm2020/search-address/sk-search-address.model.mjs +0 -8
  152. package/esm2020/search-address/sk-search-address.module.mjs +0 -52
  153. package/esm2020/search-address/sk-search-address.service.mjs +0 -65
  154. package/esm2020/uploader/public_api.mjs +0 -4
  155. package/esm2020/uploader/sk-front-lib-uploader.mjs +0 -5
  156. package/esm2020/uploader/sk-uploader-file-item.model.mjs +0 -95
  157. package/esm2020/uploader/sk-uploader.animation.mjs +0 -47
  158. package/esm2020/uploader/sk-uploader.class.mjs +0 -188
  159. package/esm2020/uploader/sk-uploader.component.mjs +0 -120
  160. package/esm2020/uploader/sk-uploader.directive.mjs +0 -44
  161. package/esm2020/uploader/sk-uploader.module.mjs +0 -62
  162. package/fesm2015/sk-front-lib-api.mjs +0 -218
  163. package/fesm2015/sk-front-lib-api.mjs.map +0 -1
  164. package/fesm2015/sk-front-lib-article.mjs +0 -762
  165. package/fesm2015/sk-front-lib-article.mjs.map +0 -1
  166. package/fesm2015/sk-front-lib-crud.mjs +0 -1529
  167. package/fesm2015/sk-front-lib-crud.mjs.map +0 -1
  168. package/fesm2015/sk-front-lib-google-analytics.mjs +0 -361
  169. package/fesm2015/sk-front-lib-google-analytics.mjs.map +0 -1
  170. package/fesm2015/sk-front-lib-image.mjs +0 -306
  171. package/fesm2015/sk-front-lib-image.mjs.map +0 -1
  172. package/fesm2015/sk-front-lib-model.mjs +0 -1171
  173. package/fesm2015/sk-front-lib-model.mjs.map +0 -1
  174. package/fesm2015/sk-front-lib-search-address.mjs +0 -188
  175. package/fesm2015/sk-front-lib-search-address.mjs.map +0 -1
  176. package/fesm2015/sk-front-lib-uploader.mjs +0 -551
  177. package/fesm2015/sk-front-lib-uploader.mjs.map +0 -1
  178. package/fesm2020/sk-front-lib-api.mjs +0 -216
  179. package/fesm2020/sk-front-lib-api.mjs.map +0 -1
  180. package/fesm2020/sk-front-lib-article.mjs +0 -771
  181. package/fesm2020/sk-front-lib-article.mjs.map +0 -1
  182. package/fesm2020/sk-front-lib-crud.mjs +0 -1525
  183. package/fesm2020/sk-front-lib-crud.mjs.map +0 -1
  184. package/fesm2020/sk-front-lib-google-analytics.mjs +0 -358
  185. package/fesm2020/sk-front-lib-google-analytics.mjs.map +0 -1
  186. package/fesm2020/sk-front-lib-image.mjs +0 -309
  187. package/fesm2020/sk-front-lib-image.mjs.map +0 -1
  188. package/fesm2020/sk-front-lib-model.mjs +0 -1171
  189. package/fesm2020/sk-front-lib-model.mjs.map +0 -1
  190. package/fesm2020/sk-front-lib-search-address.mjs +0 -186
  191. package/fesm2020/sk-front-lib-search-address.mjs.map +0 -1
  192. package/fesm2020/sk-front-lib-uploader.mjs +0 -549
  193. package/fesm2020/sk-front-lib-uploader.mjs.map +0 -1
  194. package/google-analytics/google-analytics-router.module.d.ts +0 -8
  195. package/google-analytics/google-analytics.module.d.ts +0 -10
  196. package/google-analytics/initializers/google-analytics-router.initializer.d.ts +0 -5
  197. package/google-analytics/initializers/google-analytics.initializer.d.ts +0 -4
  198. package/google-analytics/interfaces/google-analytics-command.d.ts +0 -4
  199. package/google-analytics/interfaces/google-analytics-settings.d.ts +0 -6
  200. package/google-analytics/package.json +0 -10
  201. package/google-analytics/public_api.d.ts +0 -10
  202. package/google-analytics/services/google-analytics.service.d.ts +0 -85
  203. package/google-analytics/sk-front-lib-google-analytics.d.ts +0 -5
  204. package/google-analytics/tokens/google-analytics-settings-token.d.ts +0 -3
  205. package/google-analytics/types/ga-action.type.d.ts +0 -1
  206. package/google-analytics/types/ga-bind.type.d.ts +0 -1
  207. package/image/package.json +0 -10
  208. package/image/public_api.d.ts +0 -3
  209. package/image/sk-front-lib-image.d.ts +0 -5
  210. package/image/sk-image.component.d.ts +0 -112
  211. package/image/sk-image.module.d.ts +0 -12
  212. package/model/lib/article.d.ts +0 -13
  213. package/model/lib/audit.d.ts +0 -13
  214. package/model/lib/auth.d.ts +0 -8
  215. package/model/lib/board.d.ts +0 -39
  216. package/model/lib/cart.d.ts +0 -45
  217. package/model/lib/comment.d.ts +0 -43
  218. package/model/lib/contact.d.ts +0 -40
  219. package/model/lib/coupon.d.ts +0 -116
  220. package/model/lib/document.d.ts +0 -104
  221. package/model/lib/etc.d.ts +0 -220
  222. package/model/lib/file.d.ts +0 -24
  223. package/model/lib/filetype.d.ts +0 -10
  224. package/model/lib/grid.d.ts +0 -97
  225. package/model/lib/nicepay.d.ts +0 -39
  226. package/model/lib/order.d.ts +0 -163
  227. package/model/lib/payment.d.ts +0 -32
  228. package/model/lib/point.d.ts +0 -30
  229. package/model/lib/product-series.d.ts +0 -25
  230. package/model/lib/product.d.ts +0 -309
  231. package/model/lib/promotion.d.ts +0 -169
  232. package/model/lib/shipping.d.ts +0 -44
  233. package/model/lib/tosspay.d.ts +0 -29
  234. package/model/lib/user.d.ts +0 -54
  235. package/model/package.json +0 -10
  236. package/model/public_api.d.ts +0 -23
  237. package/model/sk-front-lib-model.d.ts +0 -5
  238. package/search-address/dialog/dialog.component.d.ts +0 -13
  239. package/search-address/package.json +0 -10
  240. package/search-address/public_api.d.ts +0 -3
  241. package/search-address/sk-front-lib-search-address.d.ts +0 -5
  242. package/search-address/sk-search-address.directive.d.ts +0 -15
  243. package/search-address/sk-search-address.model.d.ts +0 -40
  244. package/search-address/sk-search-address.module.d.ts +0 -14
  245. package/search-address/sk-search-address.service.d.ts +0 -13
  246. package/uploader/package.json +0 -10
  247. package/uploader/public_api.d.ts +0 -4
  248. package/uploader/sk-front-lib-uploader.d.ts +0 -5
  249. package/uploader/sk-uploader-file-item.model.d.ts +0 -29
  250. package/uploader/sk-uploader.animation.d.ts +0 -1
  251. package/uploader/sk-uploader.class.d.ts +0 -47
  252. package/uploader/sk-uploader.component.d.ts +0 -28
  253. package/uploader/sk-uploader.directive.d.ts +0 -15
  254. package/uploader/sk-uploader.module.d.ts +0 -16
  255. /package/{sk-front-lib.d.ts → index.d.ts} +0 -0
@@ -1,93 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { SkFile } from 'sk-front-lib/model';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "sk-front-lib/api";
5
- import * as i2 from "./sk-article.service";
6
- import * as i3 from "./sk-froala-editor.directive";
7
- export class SkArticleEditorComponent {
8
- constructor(_apiService, _articleService) {
9
- this._apiService = _apiService;
10
- this._articleService = _articleService;
11
- this.toolbarType = 'default';
12
- this._initOptions();
13
- }
14
- // -----------------------------------------------------------------------------------------------------
15
- // @ Accessors
16
- // ------------------------------------------1-----------------------------------------------------------
17
- // -----------------------------------------------------------------------------------------------------
18
- // @ Lifecycle hooks
19
- // -----------------------------------------------------------------------------------------------------
20
- ngOnInit() {
21
- }
22
- ngOnChanges(changes) {
23
- this._initData();
24
- this._initOptions();
25
- }
26
- // -----------------------------------------------------------------------------------------------------
27
- // @ Public methods
28
- // -----------------------------------------------------------------------------------------------------
29
- getData() {
30
- return { content: this.content, images: this.images };
31
- }
32
- // -----------------------------------------------------------------------------------------------------
33
- // @ Private methods
34
- // -----------------------------------------------------------------------------------------------------
35
- _initData() {
36
- if (!this.article) {
37
- return;
38
- }
39
- this.content = this.article.content;
40
- this.images = this.article.images || [];
41
- }
42
- _initOptions() {
43
- this.editorConfig = Object.assign({}, this._articleService.getBaseConfig(), {
44
- requestHeaders: {
45
- 'Authorization': 'Bearer ' + this._apiService.getToken(),
46
- 'ngsw-bypass': 'true'
47
- },
48
- imageUploadParams: {
49
- imageUrl: this._articleService.environment.apiServer + '/api/public/images/'
50
- },
51
- imageUploadParam: 'file',
52
- imageUploadRemoteUrls: true,
53
- imageUploadURL: this._articleService.environment.apiServer + '/external/froala/upload',
54
- fileUploadParams: {
55
- imageUrl: this._articleService.environment.apiServer + '/api/public/files/'
56
- },
57
- fileUploadParam: 'file',
58
- fileUploadURL: this._articleService.environment.apiServer + '/external/froala/upload',
59
- events: {
60
- 'image.inserted': ($img, response) => {
61
- this._addImage(JSON.parse(response).file);
62
- },
63
- 'image.removed': ($img) => {
64
- console.log($img, $img.dataset);
65
- for (let i = 0; i < $img.length; i++) {
66
- this._removeImage(Number($img[i].dataset.id));
67
- }
68
- }
69
- },
70
- ...this._articleService.getToolbar(this.toolbarType)
71
- });
72
- }
73
- _addImage(file) {
74
- this.images.push(new SkFile(file));
75
- }
76
- _removeImage(id) {
77
- const index = this.images.findIndex(value => value.id === id);
78
- if (index > -1) {
79
- this.images.splice(index, 1);
80
- }
81
- }
82
- }
83
- SkArticleEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkArticleEditorComponent, deps: [{ token: i1.SkApiService }, { token: i2.SkArticleService }], target: i0.ɵɵFactoryTarget.Component });
84
- SkArticleEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: SkArticleEditorComponent, selector: "sk-article-editor", inputs: { article: "article", toolbarType: "toolbarType" }, usesOnChanges: true, ngImport: i0, template: "<div [froalaEditor]=\"editorConfig\" [(froalaModel)]=\"content\"></div>\n", styles: [":host{position:relative;display:block}\n"], directives: [{ type: i3.SkFroalaEditorDirective, selector: "[froalaEditor]", inputs: ["froalaEditor", "froalaModel"], outputs: ["froalaModelChange", "froalaInit"], exportAs: ["froalaEditor"] }] });
85
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkArticleEditorComponent, decorators: [{
86
- type: Component,
87
- args: [{ selector: 'sk-article-editor', template: "<div [froalaEditor]=\"editorConfig\" [(froalaModel)]=\"content\"></div>\n", styles: [":host{position:relative;display:block}\n"] }]
88
- }], ctorParameters: function () { return [{ type: i1.SkApiService }, { type: i2.SkArticleService }]; }, propDecorators: { article: [{
89
- type: Input
90
- }], toolbarType: [{
91
- type: Input
92
- }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stYXJ0aWNsZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL2FydGljbGUvc3JjL3NrLWFydGljbGUtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3NrLWZyb250LWxpYi9hcnRpY2xlL3NyYy9zay1hcnRpY2xlLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBb0MsTUFBTSxlQUFlLENBQUM7QUFFbkYsT0FBTyxFQUFzQixNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7QUFRaEUsTUFBTSxPQUFPLHdCQUF3QjtJQVVqQyxZQUFvQixXQUF5QixFQUN6QixlQUFpQztRQURqQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUN6QixvQkFBZSxHQUFmLGVBQWUsQ0FBa0I7UUFSNUMsZ0JBQVcsR0FBVyxTQUFTLENBQUM7UUFTckMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCx3R0FBd0c7SUFDeEcsY0FBYztJQUNkLHlHQUF5RztJQUV6Ryx3R0FBd0c7SUFDeEcsb0JBQW9CO0lBQ3BCLHdHQUF3RztJQUV4RyxRQUFRO0lBQ1IsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFHRCx3R0FBd0c7SUFDeEcsbUJBQW1CO0lBQ25CLHdHQUF3RztJQUVqRyxPQUFPO1FBQ1YsT0FBTyxFQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELHdHQUF3RztJQUN4RyxvQkFBb0I7SUFDcEIs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bnQsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2tBcGlTZXJ2aWNlIH0gZnJvbSAnc2stZnJvbnQtbGliL2FwaSc7XG5pbXBvcnQgeyBJU2tGaWxlLCBTa0FydGljbGUsIFNrRmlsZSB9IGZyb20gJ3NrLWZyb250LWxpYi9tb2RlbCc7XG5pbXBvcnQgeyBTa0FydGljbGVTZXJ2aWNlIH0gZnJvbSAnLi9zay1hcnRpY2xlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NrLWFydGljbGUtZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2stYXJ0aWNsZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NrLWFydGljbGUtZWRpdG9yLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgU2tBcnRpY2xlRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gICAgQElucHV0KCkgYXJ0aWNsZTogU2tBcnRpY2xlO1xuICAgIEBJbnB1dCgpIHRvb2xiYXJUeXBlOiBzdHJpbmcgPSAnZGVmYXVsdCc7XG5cbiAgICBjb250ZW50OiBzdHJpbmc7XG4gICAgaW1hZ2VzOiBTa0ZpbGVbXTtcblxuICAgIGVkaXRvckNvbmZpZztcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2FwaVNlcnZpY2U6IFNrQXBpU2VydmljZSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9hcnRpY2xlU2VydmljZTogU2tBcnRpY2xlU2VydmljZSkge1xuICAgICAgICB0aGlzLl9pbml0T3B0aW9ucygpO1xuICAgIH1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQCBBY2Nlc3NvcnNcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0xLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgLy8gQCBMaWZlY3ljbGUgaG9va3NcbiAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pbml0RGF0YSgpO1xuICAgICAgICB0aGlzLl9pbml0T3B0aW9ucygpO1xuICAgIH1cblxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIFB1YmxpYyBtZXRob2RzXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAgIHB1YmxpYyBnZXREYXRhKCk6IHsgY29udGVudDogc3RyaW5nLCBpbWFnZXM6IFNrRmlsZVtdIH0ge1xuICAgICAgICByZXR1cm4ge2NvbnRlbnQ6IHRoaXMuY29udGVudCwgaW1hZ2VzOiB0aGlzLmltYWdlc307XG4gICAgfVxuXG4gICAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgICAvLyBAIFByaXZhdGUgbWV0aG9kc1xuICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblxuICAgIF9pbml0RGF0YSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmFydGljbGUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29udGVudCA9IHRoaXMuYXJ0aWNsZS5jb250ZW50O1xuICAgICAgICB0aGlzLmltYWdlcyA9IHRoaXMuYXJ0aWNsZS5pbWFnZXMgfHwgW107XG4gICAgfVxuXG4gICAgX2luaXRPcHRpb25zKCkge1xuICAgICAgICB0aGlzLmVkaXRvckNvbmZpZyA9IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX2FydGljbGVTZXJ2aWNlLmdldEJhc2VDb25maWcoKSwge1xuICAgICAgICAgICAgcmVxdWVzdEhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIHRoaXMuX2FwaVNlcnZpY2UuZ2V0VG9rZW4oKSxcbiAgICAgICAgICAgICAgICAnbmdzdy1ieXBhc3MnOiAndHJ1ZSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbWFnZVVwbG9hZFBhcmFtczoge1xuICAgICAgICAgICAgICAgIGltYWdlVXJsOiB0aGlzLl9hcnRpY2xlU2VydmljZS5lbnZpcm9ubWVudC5hcGlTZXJ2ZXIgKyAnL2FwaS9wdWJsaWMvaW1hZ2VzLydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBpbWFnZVVwbG9hZFBhcmFtOiAnZmlsZScsXG4gICAgICAgICAgICBpbWFnZVVwbG9hZFJlbW90ZVVybHM6IHRydWUsXG4gICAgICAgICAgICBpbWFnZVVwbG9hZFVSTDogdGhpcy5fYXJ0aWNsZVNlcnZpY2UuZW52aXJvbm1lbnQuYXBpU2VydmVyICsgJy9leHRlcm5hbC9mcm9hbGEvdXBsb2FkJyxcblxuICAgICAgICAgICAgZmlsZVVwbG9hZFBhcmFtczoge1xuICAgICAgICAgICAgICAgIGltYWdlVXJsOiB0aGlzLl9hcnRpY2xlU2VydmljZS5lbnZpcm9ubWVudC5hcGlTZXJ2ZXIgKyAnL2FwaS9wdWJsaWMvZmlsZXMvJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGZpbGVVcGxvYWRQYXJhbTogJ2ZpbGUnLFxuICAgICAgICAgICAgZmlsZVVwbG9hZFVSTDogdGhpcy5fYXJ0aWNsZVNlcnZpY2UuZW52aXJvbm1lbnQuYXBpU2VydmVyICsgJy9leHRlcm5hbC9mcm9hbGEvdXBsb2FkJyxcblxuICAgICAgICAgICAgZXZlbnRzOiB7XG4gICAgICAgICAgICAgICAgJ2ltYWdlLmluc2VydGVkJzogKCRpbWcsIHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2FkZEltYWdlKEpTT04ucGFyc2UocmVzcG9uc2UpLmZpbGUpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgJ2ltYWdlLnJlbW92ZWQnOiAoJGltZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygkaW1nLCAkaW1nLmRhdGFzZXQpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8ICRpbWcubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3JlbW92ZUltYWdlKE51bWJlcigkaW1nW2ldLmRhdGFzZXQuaWQpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAuLi50aGlzLl9hcnRpY2xlU2VydmljZS5nZXRUb29sYmFyKHRoaXMudG9vbGJhclR5cGUpXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIF9hZGRJbWFnZShmaWxlOiBJU2tGaWxlKSB7XG4gICAgICAgIHRoaXMuaW1hZ2VzLnB1c2gobmV3IFNrRmlsZShmaWxlKSk7XG4gICAgfVxuXG4gICAgX3JlbW92ZUltYWdlKGlkOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmltYWdlcy5maW5kSW5kZXgodmFsdWUgPT4gdmFsdWUuaWQgPT09IGlkKTtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHRoaXMuaW1hZ2VzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IFtmcm9hbGFFZGl0b3JdPVwiZWRpdG9yQ29uZmlnXCIgWyhmcm9hbGFNb2RlbCldPVwiY29udGVudFwiPjwvZGl2PlxuIl19
@@ -1,33 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { SkArticleEditorServerComponent } from './sk-article-editor-server.component';
4
- import * as i0 from "@angular/core";
5
- export class SkArticleServerModule {
6
- static forRoot(environment) {
7
- return {
8
- ngModule: SkArticleServerModule,
9
- providers: []
10
- };
11
- }
12
- }
13
- SkArticleServerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkArticleServerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
- SkArticleServerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkArticleServerModule, declarations: [SkArticleEditorServerComponent], imports: [CommonModule], exports: [SkArticleEditorServerComponent] });
15
- SkArticleServerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkArticleServerModule, providers: [], imports: [[
16
- CommonModule
17
- ]] });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkArticleServerModule, decorators: [{
19
- type: NgModule,
20
- args: [{
21
- declarations: [
22
- SkArticleEditorServerComponent,
23
- ],
24
- imports: [
25
- CommonModule
26
- ],
27
- exports: [
28
- SkArticleEditorServerComponent,
29
- ],
30
- providers: []
31
- }]
32
- }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stYXJ0aWNsZS1zZXJ2ZXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL2FydGljbGUvc3JjL3NrLWFydGljbGUtc2VydmVyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBZXRGLE1BQU0sT0FBTyxxQkFBcUI7SUFDOUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1FBQ3RCLE9BQU87WUFDSCxRQUFRLEVBQUUscUJBQXFCO1lBQy9CLFNBQVMsRUFBRSxFQUFFO1NBQ2hCLENBQUM7SUFDTixDQUFDOztrSEFOUSxxQkFBcUI7bUhBQXJCLHFCQUFxQixpQkFYMUIsOEJBQThCLGFBRzlCLFlBQVksYUFHWiw4QkFBOEI7bUhBS3pCLHFCQUFxQixhQUhuQixFQUNWLFlBUFE7WUFDTCxZQUFZO1NBQ2Y7MkZBT1EscUJBQXFCO2tCQWJqQyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRTt3QkFDViw4QkFBOEI7cUJBQ2pDO29CQUNELE9BQU8sRUFBRTt3QkFDTCxZQUFZO3FCQUNmO29CQUNELE9BQU8sRUFBRTt3QkFDTCw4QkFBOEI7cUJBQ2pDO29CQUNELFNBQVMsRUFBRSxFQUNWO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNrQXJ0aWNsZUVkaXRvclNlcnZlckNvbXBvbmVudCB9IGZyb20gJy4vc2stYXJ0aWNsZS1lZGl0b3Itc2VydmVyLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIFNrQXJ0aWNsZUVkaXRvclNlcnZlckNvbXBvbmVudCxcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFNrQXJ0aWNsZUVkaXRvclNlcnZlckNvbXBvbmVudCxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2tBcnRpY2xlU2VydmVyTW9kdWxlIHtcbiAgICBzdGF0aWMgZm9yUm9vdChlbnZpcm9ubWVudCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8U2tBcnRpY2xlU2VydmVyTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogU2tBcnRpY2xlU2VydmVyTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
@@ -1,32 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { SkArticleEditorComponent } from './sk-article-editor.component';
4
- import { SkFroalaEditorDirective } from './sk-froala-editor.directive';
5
- import * as i0 from "@angular/core";
6
- export class SkArticleModule {
7
- }
8
- SkArticleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkArticleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- SkArticleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkArticleModule, declarations: [SkArticleEditorComponent,
10
- SkFroalaEditorDirective], imports: [CommonModule], exports: [SkArticleEditorComponent,
11
- SkFroalaEditorDirective] });
12
- SkArticleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkArticleModule, providers: [], imports: [[
13
- CommonModule
14
- ]] });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkArticleModule, decorators: [{
16
- type: NgModule,
17
- args: [{
18
- declarations: [
19
- SkArticleEditorComponent,
20
- SkFroalaEditorDirective
21
- ],
22
- imports: [
23
- CommonModule
24
- ],
25
- exports: [
26
- SkArticleEditorComponent,
27
- SkFroalaEditorDirective
28
- ],
29
- providers: []
30
- }]
31
- }] });
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stYXJ0aWNsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9zay1mcm9udC1saWIvYXJ0aWNsZS9zcmMvc2stYXJ0aWNsZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDekUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBaUJ2RSxNQUFNLE9BQU8sZUFBZTs7NEdBQWYsZUFBZTs2R0FBZixlQUFlLGlCQWJwQix3QkFBd0I7UUFDeEIsdUJBQXVCLGFBR3ZCLFlBQVksYUFHWix3QkFBd0I7UUFDeEIsdUJBQXVCOzZHQUtsQixlQUFlLGFBSGIsRUFDVixZQVJRO1lBQ0wsWUFBWTtTQUNmOzJGQVFRLGVBQWU7a0JBZjNCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLHdCQUF3Qjt3QkFDeEIsdUJBQXVCO3FCQUMxQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsWUFBWTtxQkFDZjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsd0JBQXdCO3dCQUN4Qix1QkFBdUI7cUJBQzFCO29CQUNELFNBQVMsRUFBRSxFQUNWO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNrQXJ0aWNsZUVkaXRvckNvbXBvbmVudCB9IGZyb20gJy4vc2stYXJ0aWNsZS1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFNrRnJvYWxhRWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi9zay1mcm9hbGEtZWRpdG9yLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIFNrQXJ0aWNsZUVkaXRvckNvbXBvbmVudCxcbiAgICAgICAgU2tGcm9hbGFFZGl0b3JEaXJlY3RpdmVcbiAgICBdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIFNrQXJ0aWNsZUVkaXRvckNvbXBvbmVudCxcbiAgICAgICAgU2tGcm9hbGFFZGl0b3JEaXJlY3RpdmVcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2tBcnRpY2xlTW9kdWxlIHtcbn1cbiJdfQ==
@@ -1,248 +0,0 @@
1
- import { Inject, Injectable } from '@angular/core';
2
- import FroalaEditor from 'froala-editor';
3
- import 'froala-editor/js/plugins.pkgd.min.js';
4
- import * as i0 from "@angular/core";
5
- export class SkArticleService {
6
- constructor(environment) {
7
- this.environment = environment;
8
- this.initializeFroala();
9
- }
10
- initializeFroala() {
11
- FroalaEditor.DefineIconTemplate('material_design', '<i class="material-icons">[NAME]</i>');
12
- this.loadFontWeight();
13
- this.registerShortcuts();
14
- }
15
- loadFontWeight() {
16
- // Define an icon.
17
- FroalaEditor.DefineIcon('font-weight', { NAME: 'format_size', template: 'material_design' });
18
- // Define a dropdown button.
19
- FroalaEditor.RegisterCommand('font-weight-drop', {
20
- // Button title.
21
- title: 'Font Weight',
22
- // Mark the button as a dropdown.
23
- type: 'dropdown',
24
- // Specify the icon for the button.
25
- // If this option is not specified, the button name will be used.
26
- icon: 'font-weight',
27
- // Options for the dropdown.
28
- options: {
29
- 100: 'Thin',
30
- 300: 'Light',
31
- 400: 'Regular',
32
- 500: 'Medium',
33
- 700: 'Bold',
34
- 900: 'Black'
35
- },
36
- // If present, the options property will be ignored.
37
- // It can be used to define a custom HTML for the dropdown.
38
- // html: function () {
39
- // // The current context is the editor instance.
40
- // return '';
41
- // },
42
- // Save the dropdown action into undo stack.
43
- undo: true,
44
- // Focus inside the editor before callback.
45
- focus: true,
46
- // Refresh the button state after the callback.
47
- refreshAfterCallback: true,
48
- // Callback.
49
- callback(cmd, val, params) {
50
- this.format.removeStyle('font-weight');
51
- this.format.applyStyle('font-weight', val);
52
- },
53
- // Called when the dropdown button state might have changed.
54
- // refresh: function ($btn) {
55
- // // The current context is the editor instance.
56
- // console.log (this.selection.element());
57
- // console.log(this);
58
- // },
59
- // Called when the dropdown is shown.
60
- // refreshOnShow: function ($btn, $dropdown) {
61
- // // The current context is the editor instance.
62
- // console.log (this.selection.element());
63
- // }
64
- });
65
- }
66
- registerShortcuts() {
67
- FroalaEditor.RegisterShortcut(49, 'paragraphFormat', 'H1', '1', false);
68
- FroalaEditor.RegisterShortcut(50, 'paragraphFormat', 'H2', '2', false);
69
- FroalaEditor.RegisterShortcut(51, 'paragraphFormat', 'H3', '3', false);
70
- FroalaEditor.RegisterShortcut(52, 'paragraphFormat', 'N', '4', false);
71
- FroalaEditor.RegisterShortcut(66, 'font-weight-drop', '700');
72
- }
73
- getBaseConfig() {
74
- return {
75
- key: 'Ig1A7vB2D2E2E1F1B4muvugzxmwA-7I-7A5B-21qrC-11A2B2C2A1C9B3B3C6E2C1==',
76
- editorClass: 'sk-custom',
77
- fontFamily: {
78
- 'Noto Sans KR, Noto Sans, Arial,Helvetica,sans-serif': 'Noto Sans',
79
- 'Roboto, Arial,Helvetica,sans-serif': 'Roboto',
80
- 'Georgia,serif': 'Georgia',
81
- 'Impact,Charcoal,sans-serif': 'Impact',
82
- 'Tahoma,Geneva,sans-serif': 'Tahoma',
83
- '\'Times New Roman\',Times,serif': 'Times New Roman',
84
- 'Verdana,Geneva,sans-serif': 'Verdana'
85
- },
86
- imageDefaultWidth: 0,
87
- // remove image manager
88
- // imageInsertButtons: ['imageBack', '|', 'imageUpload', 'imageByURL', 'imageManager'],
89
- imageInsertButtons: ['imageBack', '|', 'imageUpload', 'imageByURL'],
90
- imageEditButtons: ['imageAlign', 'imageCaption', 'imageRemove', '|', 'imageLink', 'linkOpen', 'linkEdit', 'linkRemove', '-', 'imageDisplay', 'imageStyle', 'imageAlt', 'imageSize'],
91
- imageAllowedTypes: ['jpeg', 'jpg', 'png', 'gif'],
92
- // remove video upload
93
- // ['videoBack', '|', 'videoByURL', 'videoEmbed', 'videoUpload']
94
- videoInsertButtons: ['videoBack', '|', 'videoByURL', 'videoEmbed'],
95
- videoUpload: false,
96
- videoResponsive: true,
97
- pastePlain: true,
98
- pasteDeniedAttrs: ['class', 'id', 'style'],
99
- pasteDeniedTags: ['div'],
100
- wordPasteKeepFormatting: false,
101
- imagePaste: false,
102
- quickInsertEnabled: false,
103
- paragraphFormat: {
104
- H1: '대제목',
105
- H2: '소제목',
106
- H3: '문단 제목',
107
- N: '본문'
108
- },
109
- // toolbarContainer: '.sk-custom-editor-toolbar',
110
- toolbarSticky: false,
111
- toolbarBottom: false,
112
- attribution: false,
113
- helpSets: [
114
- {
115
- title: 'Gearlounge Custom',
116
- commands: [
117
- { val: 'OSkey1', desc: '대제목' },
118
- { val: 'OSkey2', desc: '소제목' },
119
- { val: 'OSkey3', desc: '문단 제목' },
120
- { val: 'OSkey4', desc: '본문' }
121
- ]
122
- },
123
- {
124
- title: 'Inline Editor',
125
- commands: [
126
- { val: 'OSkeyE', desc: 'Show the editor' }
127
- ]
128
- },
129
- {
130
- title: 'Common actions',
131
- commands: [
132
- { val: 'OSkeyC', desc: 'Copy' },
133
- { val: 'OSkeyX', desc: 'Cut' },
134
- { val: 'OSkeyV', desc: 'Paste' },
135
- { val: 'OSkeyZ', desc: 'Undo' },
136
- { val: 'OSkeyShift+Z', desc: 'Redo' },
137
- { val: 'OSkeyK', desc: 'Insert Link' },
138
- { val: 'OSkeyP', desc: 'Insert Image' }
139
- ]
140
- },
141
- {
142
- title: 'Basic Formatting',
143
- commands: [
144
- { val: 'OSkeyA', desc: 'Select All' },
145
- { val: 'OSkeyB', desc: 'Bold' },
146
- { val: 'OSkeyI', desc: 'Italic' },
147
- { val: 'OSkeyU', desc: 'Underline' },
148
- { val: 'OSkeyS', desc: 'Strikethrough' },
149
- { val: 'OSkey]', desc: 'Increase Indent' },
150
- { val: 'OSkey[', desc: 'Decrease Indent' }
151
- ]
152
- },
153
- {
154
- title: 'Quote',
155
- commands: [
156
- { val: 'OSkey\'', desc: 'Increase quote level' },
157
- { val: 'OSkeyShift+\'', desc: 'Decrease quote level' }
158
- ]
159
- },
160
- {
161
- title: 'Image / Video',
162
- commands: [
163
- { val: 'OSkey+', desc: 'Resize larger' },
164
- { val: 'OSkey-', desc: 'Resize smaller' }
165
- ]
166
- },
167
- {
168
- title: 'Table',
169
- commands: [
170
- { val: 'Alt+Space', desc: 'Select table cell' },
171
- { val: 'Shift+Left/Right arrow', desc: 'Extend selection one cell' },
172
- { val: 'Shift+Up/Down arrow', desc: 'Extend selection one row' }
173
- ]
174
- },
175
- {
176
- title: 'Navigation',
177
- commands: [
178
- { val: 'OSkey/', desc: 'Shortcuts' },
179
- { val: 'Alt+F10', desc: 'Focus popup / toolbar' },
180
- { val: 'Esc', desc: 'Return focus to previous position' }
181
- ]
182
- }
183
- ],
184
- };
185
- }
186
- getToolbar(type = 'default') {
187
- if (type === 'default') {
188
- return {
189
- toolbarButtons: {
190
- moreText: {
191
- buttons: ['font-weight-drop', 'fontFamily', 'fontSize', 'textColor', 'clearFormatting', 'italic', 'strikeThrough', 'subscript', 'superscript', 'backgroundColor', 'inlineClass', 'inlineStyle'],
192
- buttonsVisible: 5
193
- },
194
- moreParagraph: {
195
- buttons: ['paragraphFormat', 'alignLeft', 'alignCenter', 'formatUL', 'quote', 'alignRight', 'alignJustify', 'formatOLSimple', 'formatOL', 'paragraphStyle', 'lineHeight', 'outdent', 'indent'],
196
- buttonsVisible: 5
197
- },
198
- moreRich: {
199
- buttons: ['insertLink', 'insertImage', 'insertVideo', 'insertHR', 'insertTable', 'emoticons', 'fontAwesome', 'specialCharacters', 'embedly', 'insertFile'],
200
- buttonsVisible: 4
201
- },
202
- moreMisc: {
203
- buttons: ['undo', 'redo', 'fullscreen', 'print', 'getPDF', 'spellChecker', 'selectAll', 'html', 'help'],
204
- align: 'right',
205
- buttonsVisible: 3
206
- }
207
- },
208
- toolbarButtonsSm: {
209
- moreText: {
210
- buttons: ['font-weight-drop', 'underline', 'strikeThrough', 'subscript', 'superscript', 'fontFamily', 'fontSize', 'textColor', 'backgroundColor', 'inlineClass', 'inlineStyle', 'clearFormatting'],
211
- buttonsVisible: 2
212
- },
213
- moreParagraph: {
214
- buttons: ['alignLeft', 'alignCenter', 'formatOLSimple', 'alignRight', 'alignJustify', 'formatOL', 'formatUL', 'paragraphFormat', 'paragraphStyle', 'lineHeight', 'outdent', 'indent', 'quote'],
215
- buttonsVisible: 2
216
- },
217
- moreRich: {
218
- buttons: ['insertLink', 'insertImage', 'insertVideo', 'insertTable', 'emoticons', 'fontAwesome', 'specialCharacters', 'embedly', 'insertFile', 'insertHR'],
219
- buttonsVisible: 2
220
- },
221
- moreMisc: {
222
- buttons: ['undo', 'redo', 'fullscreen', 'print', 'getPDF', 'spellChecker', 'selectAll', 'html', 'help'],
223
- align: 'right',
224
- buttonsVisible: 2
225
- }
226
- },
227
- };
228
- }
229
- else if (type === 'simple') {
230
- return {
231
- toolbarButtons: [['font-weight-drop', 'fontFamily', 'fontSize', 'textColor', 'clearFormatting'], ['paragraphFormat', 'alignLeft', 'alignCenter', 'formatUL', 'quote'], ['insertLink']],
232
- toolbarButtonsSm: [['font-weight-drop', 'fontFamily', 'fontSize', 'textColor', 'clearFormatting'], ['paragraphFormat', 'alignLeft', 'alignCenter', 'formatUL', 'quote'], ['insertLink']],
233
- };
234
- }
235
- }
236
- }
237
- SkArticleService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkArticleService, deps: [{ token: 'environment' }], target: i0.ɵɵFactoryTarget.Injectable });
238
- SkArticleService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkArticleService, providedIn: 'root' });
239
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: SkArticleService, decorators: [{
240
- type: Injectable,
241
- args: [{
242
- providedIn: 'root'
243
- }]
244
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
245
- type: Inject,
246
- args: ['environment']
247
- }] }]; } });
248
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2stYXJ0aWNsZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvc2stZnJvbnQtbGliL2FydGljbGUvc3JjL3NrLWFydGljbGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLFlBQVksTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxzQ0FBc0MsQ0FBQzs7QUFLOUMsTUFBTSxPQUFPLGdCQUFnQjtJQUV6QixZQUEwQyxXQUFnQjtRQUFoQixnQkFBVyxHQUFYLFdBQVcsQ0FBSztRQUN0RCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQsZ0JBQWdCO1FBQ1osWUFBWSxDQUFDLGtCQUFrQixDQUFDLGlCQUFpQixFQUFFLHNDQUFzQyxDQUFDLENBQUM7UUFFM0YsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxjQUFjO1FBQ1Ysa0JBQWtCO1FBQ2xCLFlBQVksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLEVBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQyxDQUFDO1FBRTNGLDRCQUE0QjtRQUM1QixZQUFZLENBQUMsZUFBZSxDQUFDLGtCQUFrQixFQUFFO1lBQzdDLGdCQUFnQjtZQUNoQixLQUFLLEVBQUUsYUFBYTtZQUVwQixpQ0FBaUM7WUFDakMsSUFBSSxFQUFFLFVBQVU7WUFFaEIsbUNBQW1DO1lBQ25DLGlFQUFpRTtZQUNqRSxJQUFJLEVBQUUsYUFBYTtZQUVuQiw0QkFBNEI7WUFDNUIsT0FBTyxFQUFFO2dCQUNMLEdBQUcsRUFBRSxNQUFNO2dCQUNYLEdBQUcsRUFBRSxPQUFPO2dCQUNaLEdBQUcsRUFBRSxTQUFTO2dC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bGFyL2NvcmUnO1xuXG5pbXBvcnQgRnJvYWxhRWRpdG9yIGZyb20gJ2Zyb2FsYS1lZGl0b3InO1xuaW1wb3J0ICdmcm9hbGEtZWRpdG9yL2pzL3BsdWdpbnMucGtnZC5taW4uanMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFNrQXJ0aWNsZVNlcnZpY2Uge1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdCgnZW52aXJvbm1lbnQnKSBwdWJsaWMgZW52aXJvbm1lbnQ6IGFueSkge1xuICAgICAgICB0aGlzLmluaXRpYWxpemVGcm9hbGEoKTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplRnJvYWxhKCkge1xuICAgICAgICBGcm9hbGFFZGl0b3IuRGVmaW5lSWNvblRlbXBsYXRlKCdtYXRlcmlhbF9kZXNpZ24nLCAnPGkgY2xhc3M9XCJtYXRlcmlhbC1pY29uc1wiPltOQU1FXTwvaT4nKTtcblxuICAgICAgICB0aGlzLmxvYWRGb250V2VpZ2h0KCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJTaG9ydGN1dHMoKTtcbiAgICB9XG5cbiAgICBsb2FkRm9udFdlaWdodCgpIHtcbiAgICAgICAgLy8gRGVmaW5lIGFuIGljb24uXG4gICAgICAgIEZyb2FsYUVkaXRvci5EZWZpbmVJY29uKCdmb250LXdlaWdodCcsIHtOQU1FOiAnZm9ybWF0X3NpemUnLCB0ZW1wbGF0ZTogJ21hdGVyaWFsX2Rlc2lnbid9KTtcblxuICAgICAgICAvLyBEZWZpbmUgYSBkcm9wZG93biBidXR0b24uXG4gICAgICAgIEZyb2FsYUVkaXRvci5SZWdpc3RlckNvbW1hbmQoJ2ZvbnQtd2VpZ2h0LWRyb3AnLCB7XG4gICAgICAgICAgICAvLyBCdXR0b24gdGl0bGUuXG4gICAgICAgICAgICB0aXRsZTogJ0ZvbnQgV2VpZ2h0JyxcblxuICAgICAgICAgICAgLy8gTWFyayB0aGUgYnV0dG9uIGFzIGEgZHJvcGRvd24uXG4gICAgICAgICAgICB0eXBlOiAnZHJvcGRvd24nLFxuXG4gICAgICAgICAgICAvLyBTcGVjaWZ5IHRoZSBpY29uIGZvciB0aGUgYnV0dG9uLlxuICAgICAgICAgICAgLy8gSWYgdGhpcyBvcHRpb24gaXMgbm90IHNwZWNpZmllZCwgdGhlIGJ1dHRvbiBuYW1lIHdpbGwgYmUgdXNlZC5cbiAgICAgICAgICAgIGljb246ICdmb250LXdlaWdodCcsXG5cbiAgICAgICAgICAgIC8vIE9wdGlvbnMgZm9yIHRoZSBkcm9wZG93bi5cbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAxMDA6ICdUaGluJyxcbiAgICAgICAgICAgICAgICAzMDA6ICdMaWdodCcsXG4gICAgICAgICAgICAgICAgNDAwOiAnUmVndWxhcicsXG4gICAgICAgICAgICAgICAgNTAwOiAnTWVkaXVtJyxcbiAgICAgICAgICAgICAgICA3MDA6ICdCb2xkJyxcbiAgICAgICAgICAgICAgICA5MDA6ICdCbGFjaydcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8vIElmIHByZXNlbnQsIHRoZSBvcHRpb25zIHByb3BlcnR5IHdpbGwgYmUgaWdub3JlZC5cbiAgICAgICAgICAgIC8vIEl0IGNhbiBiZSB1c2VkIHRvIGRlZmluZSBhIGN1c3RvbSBIVE1MIGZvciB0aGUgZHJvcGRvd24uXG4gICAgICAgICAgICAvLyBodG1sOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAvLyAgICAgLy8gVGhlIGN1cnJlbnQgY29udGV4dCBpcyB0aGUgZWRpdG9yIGluc3RhbmNlLlxuICAgICAgICAgICAgLy8gICAgIHJldHVybiAnJztcbiAgICAgICAgICAgIC8vIH0sXG5cbiAgICAgICAgICAgIC8vIFNhdmUgdGhlIGRyb3Bkb3duIGFjdGlvbiBpbnRvIHVuZG8gc3RhY2suXG4gICAgICAgICAgICB1bmRvOiB0cnVlLFxuXG4gICAgICAgICAgICAvLyBGb2N1cyBpbnNpZGUgdGhlIGVkaXRvciBiZWZvcmUgY2FsbGJhY2suXG4gICAgICAgICAgICBmb2N1czogdHJ1ZSxcblxuICAgICAgICAgICAgLy8gUmVmcmVzaCB0aGUgYnV0dG9uIHN0YXRlIGFmdGVyIHRoZSBjYWxsYmFjay5cbiAgICAgICAgICAgIHJlZnJlc2hBZnRlckNhbGxiYWNrOiB0cnVlLFxuXG4gICAgICAgICAgICAvLyBDYWxsYmFjay5cbiAgICAgICAgICAgIGNhbGxiYWNrKGNtZCwgdmFsLCBwYXJhbXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdC5yZW1vdmVTdHlsZSgnZm9udC13ZWlnaHQnKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1hdC5hcHBseVN0eWxlKCdmb250LXdlaWdodCcsIHZhbCk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAvLyBDYWxsZWQgd2hlbiB0aGUgZHJvcGRvd24gYnV0dG9uIHN0YXRlIG1pZ2h0IGhhdmUgY2hhbmdlZC5cbiAgICAgICAgICAgIC8vIHJlZnJlc2g6IGZ1bmN0aW9uICgkYnRuKSB7XG4gICAgICAgICAgICAvLyAgICAgLy8gVGhlIGN1cnJlbnQgY29udGV4dCBpcyB0aGUgZWRpdG9yIGluc3RhbmNlLlxuICAgICAgICAgICAgLy8gICAgIGNvbnNvbGUubG9nICh0aGlzLnNlbGVjdGlvbi5lbGVtZW50KCkpO1xuICAgICAgICAgICAgLy8gICAgIGNvbnNvbGUubG9nKHRoaXMpO1xuICAgICAgICAgICAgLy8gfSxcblxuICAgICAgICAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIGRyb3Bkb3duIGlzIHNob3duLlxuICAgICAgICAgICAgLy8gcmVmcmVzaE9uU2hvdzogZnVuY3Rpb24gKCRidG4sICRkcm9wZG93bikge1xuICAgICAgICAgICAgLy8gICAgIC8vIFRoZSBjdXJyZW50IGNvbnRleHQgaXMgdGhlIGVkaXRvciBpbnN0YW5jZS5cbiAgICAgICAgICAgIC8vICAgICBjb25zb2xlLmxvZyAodGhpcy5zZWxlY3Rpb24uZWxlbWVudCgpKTtcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJTaG9ydGN1dHMoKSB7XG4gICAgICAgIEZyb2FsYUVkaXRvci5SZWdpc3RlclNob3J0Y3V0KDQ5LCAncGFyYWdyYXBoRm9ybWF0JywgJ0gxJywgJzEnLCBmYWxzZSk7XG4gICAgICAgIEZyb2FsYUVkaXRvci5SZWdpc3RlclNob3J0Y3V0KDUwLCAncGFyYWdyYXBoRm9ybWF0JywgJ0gyJywgJzInLCBmYWxzZSk7XG4gICAgICAgIEZyb2FsYUVkaXRvci5SZWdpc3RlclNob3J0Y3V0KDUxLCAncGFyYWdyYXBoRm9ybWF0JywgJ0gzJywgJzMnLCBmYWxzZSk7XG4gICAgICAgIEZyb2FsYUVkaXRvci5SZWdpc3RlclNob3J0Y3V0KDUyLCAncGFyYWdyYXBoRm9ybWF0JywgJ04nLCAnNCcsIGZhbHNlKTtcbiAgICAgICAgRnJvYWxhRWRpdG9yLlJlZ2lzdGVyU2hvcnRjdXQoNjYsICdmb250LXdlaWdodC1kcm9wJywgJzcwMCcpO1xuICAgIH1cblxuICAgIGdldEJhc2VDb25maWcoKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBrZXk6ICdJZzFBN3ZCMkQyRTJFMUYxQjRtdXZ1Z3p4bXdBLTdJLTdBNUItMjFxckMtMTFBMkIyQzJBMUM5QjNCM0M2RTJDMT09JyxcbiAgICAgICAgICAgIGVkaXRvckNsYXNzOiAnc2stY3VzdG9tJyxcbiAgICAgICAgICAgIGZvbnRGYW1pbHk6IHtcbiAgICAgICAgICAgICAgICAnTm90byBTYW5zIEtSLCBOb3RvIFNhbnMsIEFyaWFsLEhlbHZldGljYSxzYW5zLXNlcmlmJzogJ05vdG8gU2FucycsXG4gICAgICAgICAgICAgICAgJ1JvYm90bywgQXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWYnOiAnUm9ib3RvJyxcbiAgICAgICAgICAgICAgICAnR2VvcmdpYSxzZXJpZic6ICdHZW9yZ2lhJyxcbiAgICAgICAgICAgICAgICAnSW1wYWN0LENoYXJjb2FsLHNhbnMtc2VyaWYnOiAnSW1wYWN0JyxcbiAgICAgICAgICAgICAgICAnVGFob21hLEdlbmV2YSxzYW5zLXNlcmlmJzogJ1RhaG9tYScsXG4gICAgICAgICAgICAgICAgJ1xcJ1RpbWVzIE5ldyBSb21hblxcJyxUaW1lcyxzZXJpZic6ICdUaW1lcyBOZXcgUm9tYW4nLFxuICAgICAgICAgICAgICAgICdWZXJkYW5hLEdlbmV2YSxzYW5zLXNlcmlmJzogJ1ZlcmRhbmEnXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgaW1hZ2VEZWZhdWx0V2lkdGg6IDAsXG4gICAgICAgICAgICAvLyByZW1vdmUgaW1hZ2UgbWFuYWdlclxuICAgICAgICAgICAgLy8gaW1hZ2VJbnNlcnRCdXR0b25zOiBbJ2ltYWdlQmFjaycsICd8JywgJ2ltYWdlVXBsb2FkJywgJ2ltYWdlQnlVUkwnLCAnaW1hZ2VNYW5hZ2VyJ10sXG4gICAgICAgICAgICBpbWFnZUluc2VydEJ1dHRvbnM6IFsnaW1hZ2VCYWNrJywgJ3wnLCAnaW1hZ2VVcGxvYWQnLCAnaW1hZ2VCeVVSTCddLFxuICAgICAgICAgICAgaW1hZ2VFZGl0QnV0dG9uczogWydpbWFnZUFsaWduJywgJ2ltYWdlQ2FwdGlvbicsICdpbWFnZVJlbW92ZScsICd8JywgJ2ltYWdlTGluaycsICdsaW5rT3BlbicsICdsaW5rRWRpdCcsICdsaW5rUmVtb3ZlJywgJy0nLCAnaW1hZ2VEaXNwbGF5JywgJ2ltYWdlU3R5bGUnLCAnaW1hZ2VBbHQnLCAnaW1hZ2VTaXplJ10sXG4gICAgICAgICAgICBpbWFnZUFsbG93ZWRUeXBlczogWydqcGVnJywgJ2pwZycsICdwbmcnLCAnZ2lmJ10sXG5cbiAgICAgICAgICAgIC8vIHJlbW92ZSB2aWRlbyB1cGxvYWRcbiAgICAgICAgICAgIC8vIFsndmlkZW9CYWNrJywgJ3wnLCAndmlkZW9CeVVSTCcsICd2aWRlb0VtYmVkJywgJ3ZpZGVvVXBsb2FkJ11cbiAgICAgICAgICAgIHZpZGVvSW5zZXJ0QnV0dG9uczogWyd2aWRlb0JhY2snLCAnfCcsICd2aWRlb0J5VVJMJywgJ3ZpZGVvRW1iZWQnXSxcbiAgICAgICAgICAgIHZpZGVvVXBsb2FkOiBmYWxzZSxcbiAgICAgICAgICAgIHZpZGVvUmVzcG9uc2l2ZTogdHJ1ZSxcblxuICAgICAgICAgICAgcGFzdGVQbGFpbjogdHJ1ZSxcbiAgICAgICAgICAgIHBhc3RlRGVuaWVkQXR0cnM6IFsnY2xhc3MnLCAnaWQnLCAnc3R5bGUnXSxcbiAgICAgICAgICAgIHBhc3RlRGVuaWVkVGFnczogWydkaXYnXSxcbiAgICAgICAgICAgIHdvcmRQYXN0ZUtlZXBGb3JtYXR0aW5nOiBmYWxzZSxcbiAgICAgICAgICAgIGltYWdlUGFzdGU6IGZhbHNlLFxuXG4gICAgICAgICAgICBxdWlja0luc2VydEVuYWJsZWQ6IGZhbHNlLFxuXG4gICAgICAgICAgICBwYXJhZ3JhcGhGb3JtYXQ6IHtcbiAgICAgICAgICAgICAgICBIMTogJ+uMgOygnOuqqScsXG4gICAgICAgICAgICAgICAgSDI6ICfshozsoJzrqqknLFxuICAgICAgICAgICAgICAgIEgzOiAn66y464uoIOygnOuqqScsXG4gICAgICAgICAgICAgICAgTjogJ+uzuOusuCdcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIC8vIHRvb2xiYXJDb250YWluZXI6ICcuc2stY3VzdG9tLWVkaXRvci10b29sYmFyJyxcbiAgICAgICAgICAgIHRvb2xiYXJTdGlja3k6IGZhbHNlLFxuICAgICAgICAgICAgdG9vbGJhckJvdHRvbTogZmFsc2UsXG5cblxuICAgICAgICAgICAgYXR0cmlidXRpb246IGZhbHNlLFxuXG4gICAgICAgICAgICBoZWxwU2V0czogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdHZWFybG91bmdlIEN1c3RvbScsXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7dmFsOiAnT1NrZXkxJywgZGVzYzogJ+uMgOygnOuqqSd9LFxuICAgICAgICAgICAgICAgICAgICAgICAge3ZhbDogJ09Ta2V5MicsIGRlc2M6ICfshozsoJzrqqknfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHt2YWw6ICdPU2tleTMnLCBkZXNjOiAn66y464uoIOygnOuqqSd9LFxuICAgICAgICAgICAgICAgICAgICAgICAge3ZhbDogJ09Ta2V5NCcsIGRlc2M6ICfrs7jrrLgnfVxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnSW5saW5lIEVkaXRvcicsXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7dmFsOiAnT1NrZXlFJywgZGVzYzogJ1Nob3cgdGhlIGVkaXRvcid9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdDb21tb24gYWN0aW9ucycsXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7dmFsOiAnT1NrZXlDJywgZGVzYzogJ0NvcHknfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHt2YWw6ICdPU2tleVgnLCBkZXNjOiAnQ3V0J30sXG4gICAgICAgICAgICAgICAgICAgICAgICB7dmFsOiAnT1NrZXlWJywgZGVzYzogJ1Bhc3RlJ30sXG4gICAgICAgICAgICAgICAgICAgICAgICB7dmFsOiAnT1NrZXlaJywgZGVzYzogJ1VuZG8nfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHt2YWw6ICdPU2tleVNoaWZ0K1onLCBkZXNjOiAnUmVkbyd9LFxuICAgICAgICAgICAgICAgICAgICAgICAge3ZhbDogJ09Ta2V5SycsIGRlc2M6ICdJbnNlcnQgTGluayd9LFxuICAgICAgICAgICAgICAgICAgICAgICAge3ZhbDogJ09Ta2V5UCcsIGRlc2M6ICdJbnNlcnQgSW1hZ2UnfVxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnQmFzaWMgRm9ybWF0dGluZycsXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7dmFsOiAnT1NrZXlBJywgZGVzYzogJ1NlbGVjdCBBbGwnfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHt2YWw6ICdPU2tleUInLCBkZXNjOiAnQm9sZCd9LFxuICAgICAgICAgICAgICAgICAgICAgICAge3ZhbDogJ09Ta2V5SScsIGRlc2M6ICdJdGFsaWMnfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHt2YWw6ICdPU2tleVUnLCBkZXNjOiAnVW5kZXJsaW5lJ30sXG4gICAgICAgICAgICAgICAgICAgICAgICB7dmFsOiAnT1NrZXlTJywgZGVzYzogJ1N0cmlrZXRocm91Z2gnfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHt2YWw6ICdPU2tleV0nLCBkZXNjOiAnSW5jcmVhc2UgSW5kZW50J30sXG4gICAgICAgICAgICAgICAgICAgICAgICB7dmFsOiAnT1NrZXlbJywgZGVzYzogJ0RlY3JlYXNlIEluZGVudCd9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdRdW90ZScsXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7dmFsOiAnT1NrZXlcXCcnLCBkZXNjOiAnSW5jcmVhc2UgcXVvdGUgbGV2ZWwnfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHt2YWw6ICdPU2tleVNoaWZ0K1xcJycsIGRlc2M6ICdEZWNyZWFzZSBxdW90ZSBsZXZlbCd9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdJbWFnZSAvIFZpZGVvJyxcbiAgICAgICAgICAgICAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt2YWw6ICdPU2tleSsnLCBkZXNjOiAnUmVzaXplIGxhcmdlcid9LFxuICAgICAgICAgICAgICAgICAgICAgICAge3ZhbDogJ09Ta2V5LScsIGRlc2M6ICdSZXNpemUgc21hbGxlcid9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICdUYWJsZScsXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7dmFsOiAnQWx0K1NwYWNlJywgZGVzYzogJ1NlbGVjdCB0YWJsZSBjZWxsJ30sXG4gICAgICAgICAgICAgICAgICAgICAgICB7dmFsOiAnU2hpZnQrTGVmdC9SaWdodCBhcnJvdycsIGRlc2M6ICdFeHRlbmQgc2VsZWN0aW9uIG9uZSBjZWxsJ30sXG4gICAgICAgICAgICAgICAgICAgICAgICB7dmFsOiAnU2hpZnQrVXAvRG93biBhcnJvdycsIGRlc2M6ICdFeHRlbmQgc2VsZWN0aW9uIG9uZSByb3cnfVxuICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnTmF2aWdhdGlvbicsXG4gICAgICAgICAgICAgICAgICAgIGNvbW1hbmRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7dmFsOiAnT1NrZXkvJywgZGVzYzogJ1Nob3J0Y3V0cyd9LFxuICAgICAgICAgICAgICAgICAgICAgICAge3ZhbDogJ0FsdCtGMTAnLCBkZXNjOiAnRm9jdXMgcG9wdXAgLyB0b29sYmFyJ30sXG4gICAgICAgICAgICAgICAgICAgICAgICB7dmFsOiAnRXNjJywgZGVzYzogJ1JldHVybiBmb2N1cyB0byBwcmV2aW91cyBwb3NpdGlvbid9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdLFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldFRvb2xiYXIodHlwZTogc3RyaW5nID0gJ2RlZmF1bHQnKSB7XG4gICAgICAgIGlmICh0eXBlID09PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdG9vbGJhckJ1dHRvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgbW9yZVRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFsnZm9udC13ZWlnaHQtZHJvcCcsICdmb250RmFtaWx5JywgJ2ZvbnRTaXplJywgJ3RleHRDb2xvcicsICdjbGVhckZvcm1hdHRpbmcnLCAnaXRhbGljJywgJ3N0cmlrZVRocm91Z2gnLCAnc3Vic2NyaXB0JywgJ3N1cGVyc2NyaXB0JywgJ2JhY2tncm91bmRDb2xvcicsICdpbmxpbmVDbGFzcycsICdpbmxpbmVTdHlsZSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uc1Zpc2libGU6IDVcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbW9yZVBhcmFncmFwaDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uczogWydwYXJhZ3JhcGhGb3JtYXQnLCAnYWxpZ25MZWZ0JywgJ2FsaWduQ2VudGVyJywgJ2Zvcm1hdFVMJywgJ3F1b3RlJywgJ2FsaWduUmlnaHQnLCAnYWxpZ25KdXN0aWZ5JywgJ2Zvcm1hdE9MU2ltcGxlJywgJ2Zvcm1hdE9MJywgJ3BhcmFncmFwaFN0eWxlJywgJ2xpbmVIZWlnaHQnLCAnb3V0ZGVudCcsICdpbmRlbnQnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnNWaXNpYmxlOiA1XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG1vcmVSaWNoOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25zOiBbJ2luc2VydExpbmsnLCAnaW5zZXJ0SW1hZ2UnLCAnaW5zZXJ0VmlkZW8nLCAnaW5zZXJ0SFInLCAnaW5zZXJ0VGFibGUnLCAnZW1vdGljb25zJywgJ2ZvbnRBd2Vzb21lJywgJ3NwZWNpYWxDaGFyYWN0ZXJzJywgJ2VtYmVkbHknLCAnaW5zZXJ0RmlsZSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uc1Zpc2libGU6IDRcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbW9yZU1pc2M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFsndW5kbycsICdyZWRvJywgJ2Z1bGxzY3JlZW4nLCAncHJpbnQnLCAnZ2V0UERGJywgJ3NwZWxsQ2hlY2tlcicsICdzZWxlY3RBbGwnLCAnaHRtbCcsICdoZWxwJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogJ3JpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnNWaXNpYmxlOiAzXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHRvb2xiYXJCdXR0b25zU206IHtcbiAgICAgICAgICAgICAgICAgICAgbW9yZVRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFsnZm9udC13ZWlnaHQtZHJvcCcsICd1bmRlcmxpbmUnLCAnc3RyaWtlVGhyb3VnaCcsICdzdWJzY3JpcHQnLCAnc3VwZXJzY3JpcHQnLCAnZm9udEZhbWlseScsICdmb250U2l6ZScsICd0ZXh0Q29sb3InLCAnYmFja2dyb3VuZENvbG9yJywgJ2lubGluZUNsYXNzJywgJ2lubGluZVN0eWxlJywgJ2NsZWFyRm9ybWF0dGluZyddLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uc1Zpc2libGU6IDJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbW9yZVBhcmFncmFwaDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uczogWydhbGlnbkxlZnQnLCAnYWxpZ25DZW50ZXInLCAnZm9ybWF0T0xTaW1wbGUnLCAnYWxpZ25SaWdodCcsICdhbGlnbkp1c3RpZnknLCAnZm9ybWF0T0wnLCAnZm9ybWF0VUwnLCAncGFyYWdyYXBoRm9ybWF0JywgJ3BhcmFncmFwaFN0eWxlJywgJ2xpbmVIZWlnaHQnLCAnb3V0ZGVudCcsICdpbmRlbnQnLCAncXVvdGUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnNWaXNpYmxlOiAyXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG1vcmVSaWNoOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBidXR0b25zOiBbJ2luc2VydExpbmsnLCAnaW5zZXJ0SW1hZ2UnLCAnaW5zZXJ0VmlkZW8nLCAnaW5zZXJ0VGFibGUnLCAnZW1vdGljb25zJywgJ2ZvbnRBd2Vzb21lJywgJ3NwZWNpYWxDaGFyYWN0ZXJzJywgJ2VtYmVkbHknLCAnaW5zZXJ0RmlsZScsICdpbnNlcnRIUiddLFxuICAgICAgICAgICAgICAgICAgICAgICAgYnV0dG9uc1Zpc2libGU6IDJcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgbW9yZU1pc2M6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnM6IFsndW5kbycsICdyZWRvJywgJ2Z1bGxzY3JlZW4nLCAncHJpbnQnLCAnZ2V0UERGJywgJ3NwZWxsQ2hlY2tlcicsICdzZWxlY3RBbGwnLCAnaHRtbCcsICdoZWxwJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbjogJ3JpZ2h0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJ1dHRvbnNWaXNpYmxlOiAyXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnc2ltcGxlJykge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0b29sYmFyQnV0dG9uczogW1snZm9udC13ZWlnaHQtZHJvcCcsICdmb250RmFtaWx5JywgJ2ZvbnRTaXplJywgJ3RleHRDb2xvcicsICdjbGVhckZvcm1hdHRpbmcnXSwgWydwYXJhZ3JhcGhGb3JtYXQnLCAnYWxpZ25MZWZ0JywgJ2FsaWduQ2VudGVyJywgJ2Zvcm1hdFVMJywgJ3F1b3RlJ10sIFsnaW5zZXJ0TGluayddXSxcbiAgICAgICAgICAgICAgICB0b29sYmFyQnV0dG9uc1NtOiBbWydmb250LXdlaWdodC1kcm9wJywgJ2ZvbnRGYW1pbHknLCAnZm9udFNpemUnLCAndGV4dENvbG9yJywgJ2NsZWFyRm9ybWF0dGluZyddLCBbJ3BhcmFncmFwaEZvcm1hdCcsICdhbGlnbkxlZnQnLCAnYWxpZ25DZW50ZXInLCAnZm9ybWF0VUwnLCAncXVvdGUnXSwgWydpbnNlcnRMaW5rJ11dLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG5cbn1cbiJdfQ==