sk-front-lib 0.17.53 → 0.17.55

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/api/model/api-config.d.ts +6 -0
  2. package/api/model/api-pageable-param.d.ts +11 -0
  3. package/api/model/api-pageable.d.ts +11 -0
  4. package/api/model/api-response.d.ts +8 -0
  5. package/api/model/index.d.ts +4 -0
  6. package/api/package.json +10 -0
  7. package/api/public_api.d.ts +3 -0
  8. package/api/sk-api.module.d.ts +12 -0
  9. package/api/sk-api.service.d.ts +34 -0
  10. package/api/sk-front-lib-api.d.ts +5 -0
  11. package/article/package.json +10 -0
  12. package/article/public_api.d.ts +6 -0
  13. package/article/sk-article-editor-server.component.d.ts +23 -0
  14. package/article/sk-article-editor.component.d.ts +27 -0
  15. package/article/sk-article-server.module.d.ts +10 -0
  16. package/article/sk-article.module.d.ts +9 -0
  17. package/article/sk-article.service.d.ts +96 -0
  18. package/article/sk-froala-editor.directive.d.ts +40 -0
  19. package/article/sk-front-lib-article.d.ts +5 -0
  20. package/crud/package.json +10 -0
  21. package/crud/public_api.d.ts +24 -0
  22. package/crud/sk-account.service.d.ts +16 -0
  23. package/crud/sk-affiliate.service.d.ts +38 -0
  24. package/crud/sk-auth-admin.guard.d.ts +13 -0
  25. package/crud/sk-auth.guard.d.ts +13 -0
  26. package/crud/sk-auth.service.d.ts +33 -0
  27. package/crud/sk-board.service.d.ts +21 -0
  28. package/crud/sk-brand.service.d.ts +19 -0
  29. package/crud/sk-cart.service.d.ts +72 -0
  30. package/crud/sk-category.service.d.ts +28 -0
  31. package/crud/sk-comment.service.d.ts +15 -0
  32. package/crud/sk-config.service.d.ts +13 -0
  33. package/crud/sk-contact.service.d.ts +15 -0
  34. package/crud/sk-coupon.service.d.ts +24 -0
  35. package/crud/sk-document.service.d.ts +51 -0
  36. package/crud/sk-etc.service.d.ts +12 -0
  37. package/crud/sk-file.service.d.ts +18 -0
  38. package/crud/sk-front-lib-crud.d.ts +5 -0
  39. package/crud/sk-keyword.service.d.ts +19 -0
  40. package/crud/sk-order.service.d.ts +45 -0
  41. package/crud/sk-point.service.d.ts +17 -0
  42. package/crud/sk-product.service.d.ts +84 -0
  43. package/crud/sk-promotion.service.d.ts +41 -0
  44. package/crud/sk-search.service.d.ts +12 -0
  45. package/crud/sk-store.service.d.ts +17 -0
  46. package/crud/sk-user.service.d.ts +25 -0
  47. package/esm2020/api/model/api-config.mjs +2 -0
  48. package/esm2020/api/model/api-pageable-param.mjs +29 -0
  49. package/esm2020/api/model/api-pageable.mjs +3 -0
  50. package/esm2020/api/model/api-response.mjs +3 -0
  51. package/esm2020/api/model/index.mjs +4 -0
  52. package/esm2020/api/public_api.mjs +4 -0
  53. package/esm2020/api/sk-api.module.mjs +35 -0
  54. package/esm2020/api/sk-api.service.mjs +145 -0
  55. package/esm2020/api/sk-front-lib-api.mjs +5 -0
  56. package/esm2020/article/public_api.mjs +7 -0
  57. package/esm2020/article/sk-article-editor-server.component.mjs +51 -0
  58. package/esm2020/article/sk-article-editor.component.mjs +93 -0
  59. package/esm2020/article/sk-article-server.module.mjs +33 -0
  60. package/esm2020/article/sk-article.module.mjs +32 -0
  61. package/esm2020/article/sk-article.service.mjs +248 -0
  62. package/esm2020/article/sk-froala-editor.directive.mjs +325 -0
  63. package/esm2020/article/sk-front-lib-article.mjs +5 -0
  64. package/esm2020/crud/public_api.mjs +25 -0
  65. package/esm2020/crud/sk-account.service.mjs +36 -0
  66. package/esm2020/crud/sk-affiliate.service.mjs +94 -0
  67. package/esm2020/crud/sk-auth-admin.guard.mjs +31 -0
  68. package/esm2020/crud/sk-auth.guard.mjs +31 -0
  69. package/esm2020/crud/sk-auth.service.mjs +67 -0
  70. package/esm2020/crud/sk-board.service.mjs +54 -0
  71. package/esm2020/crud/sk-brand.service.mjs +46 -0
  72. package/esm2020/crud/sk-cart.service.mjs +256 -0
  73. package/esm2020/crud/sk-category.service.mjs +63 -0
  74. package/esm2020/crud/sk-comment.service.mjs +43 -0
  75. package/esm2020/crud/sk-config.service.mjs +31 -0
  76. package/esm2020/crud/sk-contact.service.mjs +39 -0
  77. package/esm2020/crud/sk-coupon.service.mjs +62 -0
  78. package/esm2020/crud/sk-document.service.mjs +110 -0
  79. package/esm2020/crud/sk-etc.service.mjs +25 -0
  80. package/esm2020/crud/sk-file.service.mjs +37 -0
  81. package/esm2020/crud/sk-front-lib-crud.mjs +5 -0
  82. package/esm2020/crud/sk-keyword.service.mjs +46 -0
  83. package/esm2020/crud/sk-order.service.mjs +133 -0
  84. package/esm2020/crud/sk-point.service.mjs +45 -0
  85. package/esm2020/crud/sk-product.service.mjs +168 -0
  86. package/esm2020/crud/sk-promotion.service.mjs +84 -0
  87. package/esm2020/crud/sk-search.service.mjs +25 -0
  88. package/esm2020/crud/sk-store.service.mjs +47 -0
  89. package/esm2020/crud/sk-user.service.mjs +73 -0
  90. package/esm2020/google-analytics/google-analytics-router.module.mjs +30 -0
  91. package/esm2020/google-analytics/google-analytics.module.mjs +40 -0
  92. package/esm2020/google-analytics/initializers/google-analytics-router.initializer.mjs +24 -0
  93. package/esm2020/google-analytics/initializers/google-analytics.initializer.mjs +46 -0
  94. package/esm2020/google-analytics/interfaces/google-analytics-command.mjs +2 -0
  95. package/esm2020/google-analytics/interfaces/google-analytics-settings.mjs +2 -0
  96. package/esm2020/google-analytics/public_api.mjs +11 -0
  97. package/esm2020/google-analytics/services/google-analytics.service.mjs +223 -0
  98. package/esm2020/google-analytics/sk-front-lib-google-analytics.mjs +5 -0
  99. package/esm2020/google-analytics/tokens/google-analytics-settings-token.mjs +5 -0
  100. package/esm2020/google-analytics/types/ga-action.type.mjs +2 -0
  101. package/esm2020/google-analytics/types/ga-bind.type.mjs +2 -0
  102. package/esm2020/image/public_api.mjs +3 -0
  103. package/esm2020/image/sk-front-lib-image.mjs +5 -0
  104. package/esm2020/image/sk-image.component.mjs +262 -0
  105. package/esm2020/image/sk-image.module.mjs +43 -0
  106. package/esm2020/lib/sk-byte.pipe.mjs +4 -4
  107. package/esm2020/lib/sk-date-time.pipe.mjs +4 -4
  108. package/esm2020/lib/sk-date.pipe.mjs +4 -4
  109. package/esm2020/lib/sk-front-lib.module.mjs +5 -5
  110. package/esm2020/lib/sk-keys.pipe.mjs +4 -4
  111. package/esm2020/lib/sk-time.pipe.mjs +4 -4
  112. package/esm2020/model/lib/article.mjs +11 -0
  113. package/esm2020/model/lib/audit.mjs +12 -0
  114. package/esm2020/model/lib/auth.mjs +2 -0
  115. package/esm2020/model/lib/board.mjs +21 -0
  116. package/esm2020/model/lib/cart.mjs +29 -0
  117. package/esm2020/model/lib/comment.mjs +25 -0
  118. package/esm2020/model/lib/contact.mjs +28 -0
  119. package/esm2020/model/lib/coupon.mjs +23 -0
  120. package/esm2020/model/lib/document.mjs +49 -0
  121. package/esm2020/model/lib/etc.mjs +57 -0
  122. package/esm2020/model/lib/file.mjs +8 -0
  123. package/esm2020/model/lib/filetype.mjs +179 -0
  124. package/esm2020/model/lib/grid.mjs +83 -0
  125. package/esm2020/model/lib/nicepay.mjs +81 -0
  126. package/esm2020/model/lib/order.mjs +106 -0
  127. package/esm2020/model/lib/payment.mjs +36 -0
  128. package/esm2020/model/lib/point.mjs +47 -0
  129. package/esm2020/model/lib/product-series.mjs +2 -0
  130. package/esm2020/model/lib/product.mjs +157 -0
  131. package/esm2020/model/lib/promotion.mjs +80 -0
  132. package/esm2020/model/lib/shipping.mjs +37 -0
  133. package/esm2020/model/lib/tosspay.mjs +61 -0
  134. package/esm2020/model/lib/user.mjs +61 -0
  135. package/esm2020/model/public_api.mjs +24 -0
  136. package/esm2020/model/sk-front-lib-model.mjs +5 -0
  137. package/esm2020/search-address/dialog/dialog.component.mjs +27 -0
  138. package/esm2020/search-address/public_api.mjs +4 -0
  139. package/esm2020/search-address/sk-front-lib-search-address.mjs +5 -0
  140. package/esm2020/search-address/sk-search-address.directive.mjs +41 -0
  141. package/esm2020/search-address/sk-search-address.model.mjs +8 -0
  142. package/esm2020/search-address/sk-search-address.module.mjs +52 -0
  143. package/esm2020/search-address/sk-search-address.service.mjs +65 -0
  144. package/esm2020/uploader/public_api.mjs +4 -0
  145. package/esm2020/uploader/sk-front-lib-uploader.mjs +5 -0
  146. package/esm2020/uploader/sk-uploader-file-item.model.mjs +95 -0
  147. package/esm2020/uploader/sk-uploader.animation.mjs +47 -0
  148. package/esm2020/uploader/sk-uploader.class.mjs +188 -0
  149. package/esm2020/uploader/sk-uploader.component.mjs +120 -0
  150. package/esm2020/uploader/sk-uploader.directive.mjs +44 -0
  151. package/esm2020/uploader/sk-uploader.module.mjs +62 -0
  152. package/fesm2015/sk-front-lib-api.mjs +218 -0
  153. package/fesm2015/sk-front-lib-api.mjs.map +1 -0
  154. package/fesm2015/sk-front-lib-article.mjs +762 -0
  155. package/fesm2015/sk-front-lib-article.mjs.map +1 -0
  156. package/fesm2015/sk-front-lib-crud.mjs +1529 -0
  157. package/fesm2015/sk-front-lib-crud.mjs.map +1 -0
  158. package/fesm2015/sk-front-lib-google-analytics.mjs +361 -0
  159. package/fesm2015/sk-front-lib-google-analytics.mjs.map +1 -0
  160. package/fesm2015/sk-front-lib-image.mjs +306 -0
  161. package/fesm2015/sk-front-lib-image.mjs.map +1 -0
  162. package/fesm2015/sk-front-lib-model.mjs +1173 -0
  163. package/fesm2015/sk-front-lib-model.mjs.map +1 -0
  164. package/fesm2015/sk-front-lib-search-address.mjs +188 -0
  165. package/fesm2015/sk-front-lib-search-address.mjs.map +1 -0
  166. package/fesm2015/sk-front-lib-uploader.mjs +551 -0
  167. package/fesm2015/sk-front-lib-uploader.mjs.map +1 -0
  168. package/fesm2015/sk-front-lib.mjs +19 -19
  169. package/fesm2015/sk-front-lib.mjs.map +1 -1
  170. package/fesm2020/sk-front-lib-api.mjs +216 -0
  171. package/fesm2020/sk-front-lib-api.mjs.map +1 -0
  172. package/fesm2020/sk-front-lib-article.mjs +771 -0
  173. package/fesm2020/sk-front-lib-article.mjs.map +1 -0
  174. package/fesm2020/sk-front-lib-crud.mjs +1525 -0
  175. package/fesm2020/sk-front-lib-crud.mjs.map +1 -0
  176. package/fesm2020/sk-front-lib-google-analytics.mjs +358 -0
  177. package/fesm2020/sk-front-lib-google-analytics.mjs.map +1 -0
  178. package/fesm2020/sk-front-lib-image.mjs +309 -0
  179. package/fesm2020/sk-front-lib-image.mjs.map +1 -0
  180. package/fesm2020/sk-front-lib-model.mjs +1173 -0
  181. package/fesm2020/sk-front-lib-model.mjs.map +1 -0
  182. package/fesm2020/sk-front-lib-search-address.mjs +186 -0
  183. package/fesm2020/sk-front-lib-search-address.mjs.map +1 -0
  184. package/fesm2020/sk-front-lib-uploader.mjs +549 -0
  185. package/fesm2020/sk-front-lib-uploader.mjs.map +1 -0
  186. package/fesm2020/sk-front-lib.mjs +19 -19
  187. package/fesm2020/sk-front-lib.mjs.map +1 -1
  188. package/google-analytics/google-analytics-router.module.d.ts +8 -0
  189. package/google-analytics/google-analytics.module.d.ts +10 -0
  190. package/google-analytics/initializers/google-analytics-router.initializer.d.ts +5 -0
  191. package/google-analytics/initializers/google-analytics.initializer.d.ts +4 -0
  192. package/google-analytics/interfaces/google-analytics-command.d.ts +4 -0
  193. package/google-analytics/interfaces/google-analytics-settings.d.ts +6 -0
  194. package/google-analytics/package.json +10 -0
  195. package/google-analytics/public_api.d.ts +10 -0
  196. package/google-analytics/services/google-analytics.service.d.ts +85 -0
  197. package/google-analytics/sk-front-lib-google-analytics.d.ts +5 -0
  198. package/google-analytics/tokens/google-analytics-settings-token.d.ts +3 -0
  199. package/google-analytics/types/ga-action.type.d.ts +1 -0
  200. package/google-analytics/types/ga-bind.type.d.ts +1 -0
  201. package/image/package.json +10 -0
  202. package/image/public_api.d.ts +3 -0
  203. package/image/sk-front-lib-image.d.ts +5 -0
  204. package/image/sk-image.component.d.ts +112 -0
  205. package/image/sk-image.module.d.ts +12 -0
  206. package/lib/sk-byte.pipe.d.ts +1 -1
  207. package/lib/sk-date-time.pipe.d.ts +1 -1
  208. package/lib/sk-date.pipe.d.ts +1 -1
  209. package/lib/sk-keys.pipe.d.ts +1 -1
  210. package/lib/sk-time.pipe.d.ts +1 -1
  211. package/model/lib/article.d.ts +13 -0
  212. package/model/lib/audit.d.ts +13 -0
  213. package/model/lib/auth.d.ts +8 -0
  214. package/model/lib/board.d.ts +39 -0
  215. package/model/lib/cart.d.ts +45 -0
  216. package/model/lib/comment.d.ts +43 -0
  217. package/model/lib/contact.d.ts +40 -0
  218. package/model/lib/coupon.d.ts +116 -0
  219. package/model/lib/document.d.ts +104 -0
  220. package/model/lib/etc.d.ts +220 -0
  221. package/model/lib/file.d.ts +24 -0
  222. package/model/lib/filetype.d.ts +10 -0
  223. package/model/lib/grid.d.ts +97 -0
  224. package/model/lib/nicepay.d.ts +39 -0
  225. package/model/lib/order.d.ts +163 -0
  226. package/model/lib/payment.d.ts +33 -0
  227. package/model/lib/point.d.ts +30 -0
  228. package/model/lib/product-series.d.ts +25 -0
  229. package/model/lib/product.d.ts +310 -0
  230. package/model/lib/promotion.d.ts +169 -0
  231. package/model/lib/shipping.d.ts +44 -0
  232. package/model/lib/tosspay.d.ts +29 -0
  233. package/model/lib/user.d.ts +54 -0
  234. package/model/package.json +10 -0
  235. package/model/public_api.d.ts +23 -0
  236. package/model/sk-front-lib-model.d.ts +5 -0
  237. package/package.json +67 -3
  238. package/search-address/dialog/dialog.component.d.ts +13 -0
  239. package/search-address/package.json +10 -0
  240. package/search-address/public_api.d.ts +3 -0
  241. package/search-address/sk-front-lib-search-address.d.ts +5 -0
  242. package/search-address/sk-search-address.directive.d.ts +15 -0
  243. package/search-address/sk-search-address.model.d.ts +40 -0
  244. package/search-address/sk-search-address.module.d.ts +14 -0
  245. package/search-address/sk-search-address.service.d.ts +13 -0
  246. package/uploader/package.json +10 -0
  247. package/uploader/public_api.d.ts +4 -0
  248. package/uploader/sk-front-lib-uploader.d.ts +5 -0
  249. package/uploader/sk-uploader-file-item.model.d.ts +29 -0
  250. package/uploader/sk-uploader.animation.d.ts +1 -0
  251. package/uploader/sk-uploader.class.d.ts +47 -0
  252. package/uploader/sk-uploader.component.d.ts +28 -0
  253. package/uploader/sk-uploader.directive.d.ts +15 -0
  254. package/uploader/sk-uploader.module.d.ts +16 -0
  255. /package/{index.d.ts → sk-front-lib.d.ts} +0 -0
@@ -0,0 +1,248 @@
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==