@dignite-ng/expand.cms 0.0.33 → 0.0.34

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 (361) hide show
  1. package/config/cms-config.module.d.ts +8 -0
  2. package/config/{src/enums/index.ts → enums/index.d.ts} +1 -1
  3. package/config/enums/route-names.d.ts +7 -0
  4. package/config/index.d.ts +5 -0
  5. package/config/{src/providers/index.ts → providers/index.d.ts} +1 -1
  6. package/config/providers/route.provider.d.ts +9 -0
  7. package/config/{src/public-api.ts → public-api.d.ts} +3 -3
  8. package/esm2022/config/cms-config.module.mjs +19 -0
  9. package/esm2022/config/dignite-ng-expand.cms-config.mjs +5 -0
  10. package/esm2022/config/enums/index.mjs +2 -0
  11. package/esm2022/config/enums/route-names.mjs +2 -0
  12. package/esm2022/config/providers/index.mjs +2 -0
  13. package/esm2022/config/providers/route.provider.mjs +78 -0
  14. package/esm2022/config/public-api.mjs +4 -0
  15. package/esm2022/dignite-ng-expand.cms.mjs +5 -0
  16. package/esm2022/lib/cms-routing.module.mjs +100 -0
  17. package/esm2022/lib/cms.module.mjs +132 -0
  18. package/esm2022/lib/components/admin/domains/domains.component.mjs +90 -0
  19. package/esm2022/lib/components/admin/domains/index.mjs +2 -0
  20. package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +286 -0
  21. package/esm2022/lib/components/admin/entries/create-or-update-entry-input-base.mjs +32 -0
  22. package/esm2022/lib/components/admin/entries/create.component.mjs +108 -0
  23. package/esm2022/lib/components/admin/entries/edit.component.mjs +107 -0
  24. package/esm2022/lib/components/admin/entries/entries.component.mjs +211 -0
  25. package/esm2022/lib/components/admin/entries/index.mjs +5 -0
  26. package/esm2022/lib/components/admin/fields/create-field.component.mjs +82 -0
  27. package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +119 -0
  28. package/esm2022/lib/components/admin/fields/create-or-update-field-input-base.mjs +25 -0
  29. package/esm2022/lib/components/admin/fields/edit-field.component.mjs +110 -0
  30. package/esm2022/lib/components/admin/fields/field-group.component.mjs +124 -0
  31. package/esm2022/lib/components/admin/fields/fields.component.mjs +119 -0
  32. package/esm2022/lib/components/admin/fields/index.mjs +7 -0
  33. package/esm2022/lib/components/admin/index.mjs +6 -0
  34. package/esm2022/lib/components/admin/sections/create-or-update-sections-input-base.mjs +27 -0
  35. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.mjs +71 -0
  36. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +416 -0
  37. package/esm2022/lib/components/admin/sections/entry-types/index.mjs +3 -0
  38. package/esm2022/lib/components/admin/sections/index.mjs +4 -0
  39. package/esm2022/lib/components/admin/sections/sections.component.mjs +344 -0
  40. package/esm2022/lib/components/admin/sites/create-or-update-sites-input-base.mjs +18 -0
  41. package/esm2022/lib/components/admin/sites/index.mjs +3 -0
  42. package/esm2022/lib/components/admin/sites/sites.component.mjs +29 -0
  43. package/esm2022/lib/components/dynamic-form/entry/entry-config.component.mjs +124 -0
  44. package/esm2022/lib/components/dynamic-form/entry/entry-config.mjs +18 -0
  45. package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +115 -0
  46. package/esm2022/lib/components/dynamic-form/entry/index.mjs +4 -0
  47. package/esm2022/lib/components/dynamic-form/form-control-group.mjs +28 -0
  48. package/esm2022/lib/components/dynamic-form/index.mjs +5 -0
  49. package/esm2022/lib/components/dynamic-form/matrix/index.mjs +4 -0
  50. package/esm2022/lib/components/dynamic-form/matrix/matrix-config.component.mjs +227 -0
  51. package/esm2022/lib/components/dynamic-form/matrix/matrix-config.mjs +50 -0
  52. package/esm2022/lib/components/dynamic-form/matrix/matrix-control.component.mjs +111 -0
  53. package/esm2022/lib/components/dynamic-form/table/index.mjs +4 -0
  54. package/esm2022/lib/components/dynamic-form/table/table-config.component.mjs +173 -0
  55. package/esm2022/lib/components/dynamic-form/table/table-config.mjs +38 -0
  56. package/esm2022/lib/components/dynamic-form/table/table-control.component.mjs +121 -0
  57. package/esm2022/lib/components/index.mjs +3 -0
  58. package/esm2022/lib/constants/styles.mjs +14 -0
  59. package/esm2022/lib/enums/ecms-component.mjs +13 -0
  60. package/esm2022/lib/enums/index.mjs +2 -0
  61. package/esm2022/lib/proxy/admin/domains/domain-admin.service.mjs +34 -0
  62. package/esm2022/lib/proxy/admin/domains/index.mjs +3 -0
  63. package/esm2022/lib/proxy/admin/domains/models.mjs +2 -0
  64. package/esm2022/lib/proxy/admin/dynamic-forms/form-admin.service.mjs +24 -0
  65. package/esm2022/lib/proxy/admin/dynamic-forms/index.mjs +3 -0
  66. package/esm2022/lib/proxy/admin/dynamic-forms/models.mjs +2 -0
  67. package/esm2022/lib/proxy/admin/entries/entry-admin.service.mjs +72 -0
  68. package/esm2022/lib/proxy/admin/entries/index.mjs +3 -0
  69. package/esm2022/lib/proxy/admin/entries/models.mjs +2 -0
  70. package/esm2022/lib/proxy/admin/fields/field-admin.service.mjs +47 -0
  71. package/esm2022/lib/proxy/admin/fields/field-group-admin.service.mjs +43 -0
  72. package/esm2022/lib/proxy/admin/fields/index.mjs +4 -0
  73. package/esm2022/lib/proxy/admin/fields/models.mjs +2 -0
  74. package/esm2022/lib/proxy/admin/sections/entry-type-admin.service.mjs +43 -0
  75. package/esm2022/lib/proxy/admin/sections/index.mjs +4 -0
  76. package/esm2022/lib/proxy/admin/sections/models.mjs +2 -0
  77. package/esm2022/lib/proxy/admin/sections/section-admin.service.mjs +53 -0
  78. package/esm2022/lib/proxy/admin/settings/index.mjs +2 -0
  79. package/esm2022/lib/proxy/admin/settings/site-settings-admin.service.mjs +33 -0
  80. package/esm2022/lib/proxy/dignite/abp/data/models.mjs +2 -0
  81. package/esm2022/lib/proxy/entries/entry-status.enum.mjs +8 -0
  82. package/esm2022/lib/proxy/entries/index.mjs +2 -0
  83. package/esm2022/lib/proxy/fields/models.mjs +2 -0
  84. package/esm2022/lib/proxy/sections/index.mjs +3 -0
  85. package/esm2022/lib/proxy/sections/models.mjs +2 -0
  86. package/esm2022/lib/proxy/sections/section-type.enum.mjs +9 -0
  87. package/esm2022/lib/proxy/settings/models.mjs +2 -0
  88. package/esm2022/lib/proxy/volo/cms-kit/users/models.mjs +2 -0
  89. package/esm2022/lib/services/appent-content.mjs +15 -0
  90. package/esm2022/lib/services/cms-api.service.mjs +80 -0
  91. package/esm2022/lib/services/cms.service.mjs +23 -0
  92. package/esm2022/lib/services/field-abstracts.service.mjs +45 -0
  93. package/esm2022/lib/services/index.mjs +5 -0
  94. package/esm2022/lib/services/simple-reuse-strategy.mjs +43 -0
  95. package/esm2022/lib/services/update-list.service.mjs +19 -0
  96. package/esm2022/lib/toolbar/index.mjs +3 -0
  97. package/esm2022/lib/toolbar/toolbar-btn-default-action.mjs +160 -0
  98. package/esm2022/lib/toolbar/toolbar-config.mjs +79 -0
  99. package/esm2022/public-api.mjs +10 -0
  100. package/fesm2022/dignite-ng-expand.cms-config.mjs +101 -0
  101. package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -0
  102. package/fesm2022/dignite-ng-expand.cms.mjs +4079 -0
  103. package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -0
  104. package/index.d.ts +5 -0
  105. package/lib/cms-routing.module.d.ts +7 -0
  106. package/lib/cms.module.d.ts +35 -0
  107. package/lib/components/admin/domains/domains.component.d.ts +21 -0
  108. package/lib/components/admin/domains/index.d.ts +1 -0
  109. package/lib/components/admin/entries/create-or-edit-entries.component.d.ts +92 -0
  110. package/lib/components/admin/entries/create-or-update-entry-input-base.d.ts +23 -0
  111. package/lib/components/admin/entries/create.component.d.ts +40 -0
  112. package/lib/components/admin/entries/edit.component.d.ts +40 -0
  113. package/lib/components/admin/entries/entries.component.d.ts +66 -0
  114. package/lib/components/admin/entries/index.d.ts +4 -0
  115. package/lib/components/admin/fields/create-field.component.d.ts +31 -0
  116. package/lib/components/admin/fields/create-or-edit-field.component.d.ts +36 -0
  117. package/lib/components/admin/fields/create-or-update-field-input-base.d.ts +16 -0
  118. package/lib/components/admin/fields/edit-field.component.d.ts +40 -0
  119. package/lib/components/admin/fields/field-group.component.d.ts +51 -0
  120. package/lib/components/admin/fields/fields.component.d.ts +37 -0
  121. package/lib/components/admin/fields/index.d.ts +6 -0
  122. package/lib/components/admin/index.d.ts +5 -0
  123. package/lib/components/admin/sections/create-or-update-sections-input-base.d.ts +17 -0
  124. package/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.d.ts +38 -0
  125. package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +132 -0
  126. package/lib/components/admin/sections/entry-types/index.d.ts +2 -0
  127. package/lib/components/admin/sections/index.d.ts +3 -0
  128. package/lib/components/admin/sections/sections.component.d.ts +90 -0
  129. package/lib/components/admin/sites/create-or-update-sites-input-base.d.ts +8 -0
  130. package/lib/components/admin/sites/index.d.ts +2 -0
  131. package/lib/components/admin/sites/sites.component.d.ts +5 -0
  132. package/lib/components/dynamic-form/entry/entry-config.component.d.ts +39 -0
  133. package/lib/components/dynamic-form/entry/entry-config.d.ts +9 -0
  134. package/lib/components/dynamic-form/entry/entry-control.component.d.ts +35 -0
  135. package/lib/components/dynamic-form/entry/index.d.ts +3 -0
  136. package/lib/components/dynamic-form/form-control-group.d.ts +4 -0
  137. package/lib/components/dynamic-form/index.d.ts +4 -0
  138. package/lib/components/dynamic-form/matrix/index.d.ts +3 -0
  139. package/lib/components/dynamic-form/matrix/matrix-config.component.d.ts +73 -0
  140. package/lib/components/dynamic-form/matrix/matrix-config.d.ts +24 -0
  141. package/lib/components/dynamic-form/matrix/matrix-control.component.d.ts +39 -0
  142. package/lib/components/dynamic-form/table/index.d.ts +3 -0
  143. package/lib/components/dynamic-form/table/table-config.component.d.ts +58 -0
  144. package/lib/components/dynamic-form/table/table-config.d.ts +18 -0
  145. package/lib/components/dynamic-form/table/table-control.component.d.ts +39 -0
  146. package/lib/components/index.d.ts +2 -0
  147. package/lib/constants/styles.d.ts +2 -0
  148. package/lib/enums/ecms-component.d.ts +11 -0
  149. package/lib/enums/index.d.ts +1 -0
  150. package/lib/proxy/admin/domains/domain-admin.service.d.ts +13 -0
  151. package/{src/lib/proxy/admin/domains/models.ts → lib/proxy/admin/domains/models.d.ts} +7 -9
  152. package/lib/proxy/admin/dynamic-forms/form-admin.service.d.ts +12 -0
  153. package/lib/proxy/admin/dynamic-forms/models.d.ts +4 -0
  154. package/lib/proxy/admin/entries/entry-admin.service.d.ts +22 -0
  155. package/lib/proxy/admin/entries/models.d.ts +60 -0
  156. package/lib/proxy/admin/fields/field-admin.service.d.ts +17 -0
  157. package/lib/proxy/admin/fields/field-group-admin.service.d.ts +16 -0
  158. package/{src/lib/proxy/admin/fields/models.ts → lib/proxy/admin/fields/models.d.ts} +34 -42
  159. package/lib/proxy/admin/sections/entry-type-admin.service.d.ts +15 -0
  160. package/{src/lib/proxy/admin/sections/models.ts → lib/proxy/admin/sections/models.d.ts} +67 -81
  161. package/lib/proxy/admin/sections/section-admin.service.d.ts +18 -0
  162. package/lib/proxy/admin/settings/site-settings-admin.service.d.ts +13 -0
  163. package/lib/proxy/dignite/abp/data/models.d.ts +3 -0
  164. package/lib/proxy/entries/entry-status.enum.d.ts +5 -0
  165. package/lib/proxy/fields/models.d.ts +8 -0
  166. package/lib/proxy/sections/models.d.ts +12 -0
  167. package/lib/proxy/sections/section-type.enum.d.ts +6 -0
  168. package/lib/proxy/settings/models.d.ts +5 -0
  169. package/{src/lib/proxy/volo/cms-kit/users/models.ts → lib/proxy/volo/cms-kit/users/models.d.ts} +7 -8
  170. package/lib/services/appent-content.d.ts +1 -0
  171. package/lib/services/cms-api.service.d.ts +20 -0
  172. package/lib/services/cms.service.d.ts +10 -0
  173. package/lib/services/field-abstracts.service.d.ts +20 -0
  174. package/lib/services/index.d.ts +4 -0
  175. package/lib/services/simple-reuse-strategy.d.ts +11 -0
  176. package/lib/services/update-list.service.d.ts +9 -0
  177. package/lib/toolbar/index.d.ts +2 -0
  178. package/lib/toolbar/toolbar-btn-default-action.d.ts +18 -0
  179. package/lib/toolbar/toolbar-config.d.ts +56 -0
  180. package/package.json +21 -6
  181. package/{src/public-api.ts → public-api.d.ts} +4 -10
  182. package/config/ng-package.json +0 -7
  183. package/config/src/cms-config.module.ts +0 -12
  184. package/config/src/enums/route-names.ts +0 -8
  185. package/config/src/providers/route.provider.ts +0 -82
  186. package/ng-package.json +0 -7
  187. package/src/lib/cms-routing.module.ts +0 -108
  188. package/src/lib/cms.module.ts +0 -108
  189. package/src/lib/components/admin/domains/domains.component.html +0 -19
  190. package/src/lib/components/admin/domains/domains.component.scss +0 -0
  191. package/src/lib/components/admin/domains/domains.component.spec.ts +0 -21
  192. package/src/lib/components/admin/domains/domains.component.ts +0 -99
  193. package/src/lib/components/admin/domains/index.ts +0 -1
  194. package/src/lib/components/admin/entries/create-or-edit-entries.component.html +0 -113
  195. package/src/lib/components/admin/entries/create-or-edit-entries.component.scss +0 -1
  196. package/src/lib/components/admin/entries/create-or-edit-entries.component.spec.ts +0 -21
  197. package/src/lib/components/admin/entries/create-or-edit-entries.component.ts +0 -284
  198. package/src/lib/components/admin/entries/create-or-update-entry-input-base.ts +0 -33
  199. package/src/lib/components/admin/entries/create.component.html +0 -13
  200. package/src/lib/components/admin/entries/create.component.scss +0 -1
  201. package/src/lib/components/admin/entries/create.component.spec.ts +0 -21
  202. package/src/lib/components/admin/entries/create.component.ts +0 -104
  203. package/src/lib/components/admin/entries/edit.component.html +0 -9
  204. package/src/lib/components/admin/entries/edit.component.scss +0 -1
  205. package/src/lib/components/admin/entries/edit.component.spec.ts +0 -21
  206. package/src/lib/components/admin/entries/edit.component.ts +0 -98
  207. package/src/lib/components/admin/entries/entries.component.html +0 -112
  208. package/src/lib/components/admin/entries/entries.component.scss +0 -1
  209. package/src/lib/components/admin/entries/entries.component.spec.ts +0 -21
  210. package/src/lib/components/admin/entries/entries.component.ts +0 -219
  211. package/src/lib/components/admin/entries/index.ts +0 -4
  212. package/src/lib/components/admin/fields/create-field.component.html +0 -12
  213. package/src/lib/components/admin/fields/create-field.component.scss +0 -1
  214. package/src/lib/components/admin/fields/create-field.component.spec.ts +0 -21
  215. package/src/lib/components/admin/fields/create-field.component.ts +0 -68
  216. package/src/lib/components/admin/fields/create-or-edit-field.component.html +0 -39
  217. package/src/lib/components/admin/fields/create-or-edit-field.component.scss +0 -0
  218. package/src/lib/components/admin/fields/create-or-edit-field.component.spec.ts +0 -21
  219. package/src/lib/components/admin/fields/create-or-edit-field.component.ts +0 -116
  220. package/src/lib/components/admin/fields/create-or-update-field-input-base.ts +0 -33
  221. package/src/lib/components/admin/fields/edit-field.component.html +0 -13
  222. package/src/lib/components/admin/fields/edit-field.component.scss +0 -0
  223. package/src/lib/components/admin/fields/edit-field.component.spec.ts +0 -21
  224. package/src/lib/components/admin/fields/edit-field.component.ts +0 -100
  225. package/src/lib/components/admin/fields/field-group.component.html +0 -69
  226. package/src/lib/components/admin/fields/field-group.component.scss +0 -0
  227. package/src/lib/components/admin/fields/field-group.component.spec.ts +0 -21
  228. package/src/lib/components/admin/fields/field-group.component.ts +0 -132
  229. package/src/lib/components/admin/fields/fields.component.html +0 -74
  230. package/src/lib/components/admin/fields/fields.component.scss +0 -1
  231. package/src/lib/components/admin/fields/fields.component.spec.ts +0 -21
  232. package/src/lib/components/admin/fields/fields.component.ts +0 -111
  233. package/src/lib/components/admin/fields/index.ts +0 -6
  234. package/src/lib/components/admin/index.ts +0 -5
  235. package/src/lib/components/admin/sections/create-or-update-sections-input-base.ts +0 -36
  236. package/src/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.ts +0 -79
  237. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.html +0 -191
  238. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.scss +0 -1
  239. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.spec.ts +0 -21
  240. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.ts +0 -408
  241. package/src/lib/components/admin/sections/entry-types/index.ts +0 -2
  242. package/src/lib/components/admin/sections/index.ts +0 -3
  243. package/src/lib/components/admin/sections/sections.component.html +0 -190
  244. package/src/lib/components/admin/sections/sections.component.scss +0 -1
  245. package/src/lib/components/admin/sections/sections.component.spec.ts +0 -21
  246. package/src/lib/components/admin/sections/sections.component.ts +0 -370
  247. package/src/lib/components/admin/sites/create-or-update-sites-input-base.ts +0 -18
  248. package/src/lib/components/admin/sites/index.ts +0 -2
  249. package/src/lib/components/admin/sites/sites.component.html +0 -136
  250. package/src/lib/components/admin/sites/sites.component.scss +0 -1
  251. package/src/lib/components/admin/sites/sites.component.spec.ts +0 -21
  252. package/src/lib/components/admin/sites/sites.component.ts +0 -250
  253. package/src/lib/components/dynamic-form/entry/entry-config.component.html +0 -36
  254. package/src/lib/components/dynamic-form/entry/entry-config.component.scss +0 -0
  255. package/src/lib/components/dynamic-form/entry/entry-config.component.spec.ts +0 -21
  256. package/src/lib/components/dynamic-form/entry/entry-config.component.ts +0 -115
  257. package/src/lib/components/dynamic-form/entry/entry-config.ts +0 -24
  258. package/src/lib/components/dynamic-form/entry/entry-control.component.html +0 -26
  259. package/src/lib/components/dynamic-form/entry/entry-control.component.scss +0 -1
  260. package/src/lib/components/dynamic-form/entry/entry-control.component.spec.ts +0 -21
  261. package/src/lib/components/dynamic-form/entry/entry-control.component.ts +0 -109
  262. package/src/lib/components/dynamic-form/entry/index.ts +0 -3
  263. package/src/lib/components/dynamic-form/form-control-group.ts +0 -27
  264. package/src/lib/components/dynamic-form/index.ts +0 -4
  265. package/src/lib/components/dynamic-form/matrix/index.ts +0 -3
  266. package/src/lib/components/dynamic-form/matrix/matrix-config.component.html +0 -147
  267. package/src/lib/components/dynamic-form/matrix/matrix-config.component.scss +0 -0
  268. package/src/lib/components/dynamic-form/matrix/matrix-config.component.spec.ts +0 -21
  269. package/src/lib/components/dynamic-form/matrix/matrix-config.component.ts +0 -236
  270. package/src/lib/components/dynamic-form/matrix/matrix-config.ts +0 -63
  271. package/src/lib/components/dynamic-form/matrix/matrix-control.component.html +0 -42
  272. package/src/lib/components/dynamic-form/matrix/matrix-control.component.scss +0 -0
  273. package/src/lib/components/dynamic-form/matrix/matrix-control.component.spec.ts +0 -21
  274. package/src/lib/components/dynamic-form/matrix/matrix-control.component.ts +0 -104
  275. package/src/lib/components/dynamic-form/table/index.ts +0 -3
  276. package/src/lib/components/dynamic-form/table/table-config.component.html +0 -85
  277. package/src/lib/components/dynamic-form/table/table-config.component.scss +0 -10
  278. package/src/lib/components/dynamic-form/table/table-config.component.spec.ts +0 -21
  279. package/src/lib/components/dynamic-form/table/table-config.component.ts +0 -170
  280. package/src/lib/components/dynamic-form/table/table-config.ts +0 -45
  281. package/src/lib/components/dynamic-form/table/table-control.component.html +0 -54
  282. package/src/lib/components/dynamic-form/table/table-control.component.scss +0 -1
  283. package/src/lib/components/dynamic-form/table/table-control.component.spec.ts +0 -21
  284. package/src/lib/components/dynamic-form/table/table-control.component.ts +0 -115
  285. package/src/lib/components/index.ts +0 -2
  286. package/src/lib/constants/index.ts +0 -1
  287. package/src/lib/constants/styles.ts +0 -13
  288. package/src/lib/enums/ecms-component.ts +0 -11
  289. package/src/lib/enums/index.ts +0 -1
  290. package/src/lib/proxy/README.md +0 -17
  291. package/src/lib/proxy/admin/domains/domain-admin.service.ts +0 -38
  292. package/src/lib/proxy/admin/dynamic-forms/form-admin.service.ts +0 -21
  293. package/src/lib/proxy/admin/dynamic-forms/models.ts +0 -5
  294. package/src/lib/proxy/admin/entries/entry-admin.service.ts +0 -109
  295. package/src/lib/proxy/admin/entries/models.ts +0 -68
  296. package/src/lib/proxy/admin/fields/field-admin.service.ts +0 -64
  297. package/src/lib/proxy/admin/fields/field-group-admin.service.ts +0 -56
  298. package/src/lib/proxy/admin/index.ts +0 -7
  299. package/src/lib/proxy/admin/sections/entry-type-admin.service.ts +0 -55
  300. package/src/lib/proxy/admin/sections/section-admin.service.ts +0 -74
  301. package/src/lib/proxy/admin/settings/site-settings-admin.service.ts +0 -37
  302. package/src/lib/proxy/dignite/abp/data/index.ts +0 -1
  303. package/src/lib/proxy/dignite/abp/data/models.ts +0 -4
  304. package/src/lib/proxy/dignite/abp/index.ts +0 -2
  305. package/src/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.ts +0 -65
  306. package/src/lib/proxy/dignite/file-explorer/directories/index.ts +0 -2
  307. package/src/lib/proxy/dignite/file-explorer/directories/models.ts +0 -35
  308. package/src/lib/proxy/dignite/file-explorer/files/file-descriptor.service.ts +0 -86
  309. package/src/lib/proxy/dignite/file-explorer/files/index.ts +0 -2
  310. package/src/lib/proxy/dignite/file-explorer/files/models.ts +0 -58
  311. package/src/lib/proxy/dignite/file-explorer/index.ts +0 -3
  312. package/src/lib/proxy/dignite/index.ts +0 -3
  313. package/src/lib/proxy/entries/entry-status.enum.ts +0 -8
  314. package/src/lib/proxy/fields/index.ts +0 -1
  315. package/src/lib/proxy/fields/models.ts +0 -9
  316. package/src/lib/proxy/generate-proxy.json +0 -11425
  317. package/src/lib/proxy/index.ts +0 -9
  318. package/src/lib/proxy/microsoft/asp-net-core/index.ts +0 -2
  319. package/src/lib/proxy/microsoft/asp-net-core/mvc/index.ts +0 -1
  320. package/src/lib/proxy/microsoft/asp-net-core/mvc/models.ts +0 -12
  321. package/src/lib/proxy/microsoft/extensions/index.ts +0 -2
  322. package/src/lib/proxy/microsoft/extensions/primitives/index.ts +0 -1
  323. package/src/lib/proxy/microsoft/extensions/primitives/models.ts +0 -9
  324. package/src/lib/proxy/microsoft/index.ts +0 -4
  325. package/src/lib/proxy/microsoft/net/http/headers/index.ts +0 -1
  326. package/src/lib/proxy/microsoft/net/http/headers/models.ts +0 -7
  327. package/src/lib/proxy/microsoft/net/http/index.ts +0 -2
  328. package/src/lib/proxy/microsoft/net/index.ts +0 -2
  329. package/src/lib/proxy/sections/models.ts +0 -14
  330. package/src/lib/proxy/sections/section-type.enum.ts +0 -9
  331. package/src/lib/proxy/settings/index.ts +0 -1
  332. package/src/lib/proxy/settings/models.ts +0 -6
  333. package/src/lib/proxy/volo/abp/content/index.ts +0 -1
  334. package/src/lib/proxy/volo/abp/content/models.ts +0 -6
  335. package/src/lib/proxy/volo/abp/index.ts +0 -2
  336. package/src/lib/proxy/volo/cms-kit/index.ts +0 -2
  337. package/src/lib/proxy/volo/cms-kit/users/index.ts +0 -1
  338. package/src/lib/proxy/volo/index.ts +0 -3
  339. package/src/lib/proxy.zip +0 -0
  340. package/src/lib/services/appent-content.ts +0 -13
  341. package/src/lib/services/cms-api.service.ts +0 -71
  342. package/src/lib/services/cms.service.ts +0 -18
  343. package/src/lib/services/field-abstracts.service.ts +0 -40
  344. package/src/lib/services/index.ts +0 -4
  345. package/src/lib/services/simple-reuse-strategy.ts +0 -49
  346. package/src/lib/services/update-list.service.ts +0 -15
  347. package/src/lib/toolbar/index.ts +0 -2
  348. package/src/lib/toolbar/toolbar-btn-default-action.ts +0 -171
  349. package/src/lib/toolbar/toolbar-config.ts +0 -93
  350. package/src/test.ts +0 -26
  351. package/tsconfig.lib.json +0 -34
  352. package/tsconfig.lib.prod.json +0 -10
  353. package/tsconfig.spec.json +0 -17
  354. /package/{src/lib/proxy/admin/domains/index.ts → lib/proxy/admin/domains/index.d.ts} +0 -0
  355. /package/{src/lib/proxy/admin/dynamic-forms/index.ts → lib/proxy/admin/dynamic-forms/index.d.ts} +0 -0
  356. /package/{src/lib/proxy/admin/entries/index.ts → lib/proxy/admin/entries/index.d.ts} +0 -0
  357. /package/{src/lib/proxy/admin/fields/index.ts → lib/proxy/admin/fields/index.d.ts} +0 -0
  358. /package/{src/lib/proxy/admin/sections/index.ts → lib/proxy/admin/sections/index.d.ts} +0 -0
  359. /package/{src/lib/proxy/admin/settings/index.ts → lib/proxy/admin/settings/index.d.ts} +0 -0
  360. /package/{src/lib/proxy/entries/index.ts → lib/proxy/entries/index.d.ts} +0 -0
  361. /package/{src/lib/proxy/sections/index.ts → lib/proxy/sections/index.d.ts} +0 -0
@@ -0,0 +1,286 @@
1
+ import { ConfigStateService } from '@abp/ng.core';
2
+ import { Component, inject, Input, ViewChildren, ViewContainerRef } from '@angular/core';
3
+ import { FormControl, Validators } from '@angular/forms';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@abp/ng.theme.shared";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@abp/ng.core";
8
+ import * as i4 from "../../../proxy/admin/sections";
9
+ import * as i5 from "../../../proxy/admin/entries";
10
+ import * as i6 from "@angular/router";
11
+ import * as i7 from "../../../services";
12
+ import * as i8 from "@angular/forms";
13
+ import * as i9 from "@ngx-validate/core";
14
+ import * as i10 from "@ng-bootstrap/ng-bootstrap";
15
+ import * as i11 from "@dignite-ng/expand.dynamic-form";
16
+ class CreateOrEditEntriesComponent {
17
+ toaster;
18
+ _location;
19
+ configState;
20
+ _SectionAdminService;
21
+ _EntryAdminService;
22
+ datePipe;
23
+ _LocalizationService;
24
+ router;
25
+ _CmsApiService;
26
+ constructor(toaster, _location, configState, _SectionAdminService, _EntryAdminService, datePipe, _LocalizationService, router, _CmsApiService) {
27
+ this.toaster = toaster;
28
+ this._location = _location;
29
+ this.configState = configState;
30
+ this._SectionAdminService = _SectionAdminService;
31
+ this._EntryAdminService = _EntryAdminService;
32
+ this.datePipe = datePipe;
33
+ this._LocalizationService = _LocalizationService;
34
+ this.router = router;
35
+ this._CmsApiService = _CmsApiService;
36
+ }
37
+ /**语言 */
38
+ cultureName = '';
39
+ /**条目id */
40
+ entryTypeId = '';
41
+ /**新建版本的版本id,同条目id */
42
+ RevisionEntryId = '';
43
+ /**选择的条目项 */
44
+ entryTypesItem = '';
45
+ /**版块id */
46
+ sectionId = '';
47
+ /**版块详情 */
48
+ SectionSelect = '';
49
+ /**语言列表 */
50
+ languagesList = [];
51
+ /**条目类型列表-用于选择上级条目 */
52
+ entryTypesList = [];
53
+ /**版本列表 */
54
+ AllVersionsList = [];
55
+ /**是否是编辑 */
56
+ isEdit = false;
57
+ /**来自父组件的传值 */
58
+ FromParentQueryParams = '';
59
+ set ParentQueryParams(v) {
60
+ if (v) {
61
+ this.FromParentQueryParams = v;
62
+ }
63
+ }
64
+ /**表单实体 */
65
+ _entity;
66
+ set entity(v) {
67
+ if (v) {
68
+ this._entity = v;
69
+ }
70
+ }
71
+ /**指定id的条目信息 */
72
+ entrySelect = '';
73
+ set parentEntrySelect(v) {
74
+ if (v) {
75
+ let V_extraProperties = this._CmsApiService.deepClone(this.convertExtraProperties(v.extraProperties));
76
+ v.extraProperties = V_extraProperties;
77
+ this.entrySelect = v;
78
+ }
79
+ }
80
+ /**将对象中的ExtraProperties赋值到extraProperties */
81
+ convertExtraProperties(obj) {
82
+ for (let key in obj) {
83
+ if (Array.isArray(obj[key])) {
84
+ obj[key].forEach(item => {
85
+ if (item.hasOwnProperty('ExtraProperties')) {
86
+ item['extraProperties'] = item['ExtraProperties'];
87
+ }
88
+ });
89
+ }
90
+ }
91
+ return obj;
92
+ }
93
+ /**别名表单实体 */
94
+ get sluginput() {
95
+ return this._entity.get('slug');
96
+ }
97
+ /**语言表单实体 */
98
+ get cultureinput() {
99
+ return this._entity.get('culture');
100
+ }
101
+ /**语言表单实体影子 */
102
+ get culture_shadowInput() {
103
+ return this._entity.get('culture_shadow');
104
+ }
105
+ /**extraProperties配置表单实体 */
106
+ get extraProperties() {
107
+ return this._entity.get('extraProperties');
108
+ }
109
+ async ngAfterContentInit() {
110
+ //Called after ngOnInit when the component's or directive's content has been initialized.
111
+ //Add 'implements AfterContentInit' to the class.
112
+ let queryParams = this.FromParentQueryParams;
113
+ if (this._entity && this.FromParentQueryParams) {
114
+ this._entity.setControl('slug', new FormControl('', {
115
+ validators: Validators.required,
116
+ asyncValidators: this.repetitionAsyncValidator(),
117
+ updateOn: 'blur'
118
+ }));
119
+ this._entity.setControl('culture_shadow', new FormControl('', {
120
+ validators: [Validators.required],
121
+ asyncValidators: this.cultureAsyncValidator_test(),
122
+ }));
123
+ this._entity.get('culture').disable();
124
+ if (queryParams.RevisionEntryId && this.entrySelect) {
125
+ this.RevisionEntryId = queryParams.RevisionEntryId;
126
+ this.setEntryconfig(this.entrySelect);
127
+ }
128
+ else {
129
+ this.setEntryconfig(queryParams);
130
+ }
131
+ if (this.sectionId)
132
+ await this.getSectionSelect();
133
+ if (this.RevisionEntryId)
134
+ await this.getAllVersionsList();
135
+ }
136
+ }
137
+ /**表单控件模板-动态表单配置组件 */
138
+ FormDynamicontrolRef;
139
+ /**定义自定义异步验证 */
140
+ cultureAsyncValidator_test() {
141
+ return (ctrl) => {
142
+ return new Promise(resolve => {
143
+ let subculture = this._entity?.get('culture').value;
144
+ if (subculture == this.entrySelect?.culture || this.SectionSelect.type !== 0) {
145
+ resolve(null);
146
+ return;
147
+ }
148
+ this._EntryAdminService.cultureExistWithSingleSection({
149
+ culture: subculture,
150
+ sectionId: this.sectionId,
151
+ entryTypeId: this.entryTypeId
152
+ }).subscribe(res => {
153
+ if (res) {
154
+ resolve({ repetition: this._LocalizationService.instant(`Cms::EntriesAlreadyExistEntryType`, this.entryTypesItem.displayName, this.languagesList.find(el => el.cultureName == subculture).displayName) });
155
+ }
156
+ else {
157
+ resolve(null);
158
+ }
159
+ });
160
+ });
161
+ };
162
+ }
163
+ /**
164
+ * 设置条目详情
165
+ * @param {object} source - 数据源对象
166
+ */
167
+ setEntryconfig(source) {
168
+ this.entryTypeId = source.entryTypeId;
169
+ this.cultureName = source.culture || source.cultureName;
170
+ this.sectionId = source.sectionId;
171
+ }
172
+ time = 0;
173
+ /**定义自定义异步验证 */
174
+ repetitionAsyncValidator() {
175
+ return (ctrl) => {
176
+ return new Promise(resolve => {
177
+ let subslug = this._entity?.get('slug').value;
178
+ if (subslug == this.entrySelect?.slug) {
179
+ resolve(null);
180
+ return;
181
+ }
182
+ this._EntryAdminService.slugExists({
183
+ culture: this.cultureName,
184
+ sectionId: this.sectionId,
185
+ slug: subslug
186
+ }).subscribe(res => {
187
+ if (res) {
188
+ resolve({ repetition: this._LocalizationService.instant(`Cms::EntrySlug{0}AlreadyExist`, ctrl.value) });
189
+ }
190
+ else {
191
+ resolve(null);
192
+ }
193
+ });
194
+ });
195
+ };
196
+ }
197
+ config = inject(ConfigStateService);
198
+ /**获取版块详情 */
199
+ getSectionSelect() {
200
+ return new Promise((resolve, rejects) => {
201
+ this._SectionAdminService.get(this.sectionId).subscribe(async (res) => {
202
+ let languages = this.configState.getDeep('localization.languages');
203
+ this.languagesList = languages;
204
+ let entryTypesItem = res.entryTypes.find(el => el.id == this.entryTypeId);
205
+ this.SectionSelect = res;
206
+ this.entryTypesItem = entryTypesItem;
207
+ this.entryTypesList = res.entryTypes.filter(el => el.id == this.entryTypeId);
208
+ this._entity.patchValue({
209
+ ...this.entrySelect,
210
+ initialVersionId: this.entrySelect?.initialVersionId || this.RevisionEntryId || '',
211
+ culture: this.cultureName,
212
+ culture_shadow: this.cultureName,
213
+ entryTypeId: this.entryTypeId,
214
+ publishTime: this.datePipe.transform(new Date(), 'yyyy-MM-dd HH:mm:ss'),
215
+ });
216
+ resolve(true);
217
+ });
218
+ });
219
+ }
220
+ /**获取条目版本列表 */
221
+ getAllVersionsList() {
222
+ return new Promise((resolve, rejects) => {
223
+ this._EntryAdminService.getAllVersions(this.RevisionEntryId).subscribe(res => {
224
+ this.AllVersionsList = res.items;
225
+ resolve(res);
226
+ });
227
+ });
228
+ }
229
+ /**标题转化别名 */
230
+ setTitleToSlugBlur(event) {
231
+ let val = event.target.value;
232
+ let slug = this._entity.get('slug');
233
+ let pinyinstr = '';
234
+ if (slug.value)
235
+ return;
236
+ pinyinstr = this._CmsApiService.chineseToPinyin(val);
237
+ this._entity.patchValue({
238
+ slug: pinyinstr || val
239
+ });
240
+ }
241
+ /**使用Unicode编码范围判断是否是中文字符 */
242
+ isChinese(str) {
243
+ return /^[\u4e00-\u9fa5]+$/.test(str);
244
+ }
245
+ /**激活 */
246
+ ActivatedVersion(VersionId) {
247
+ this._EntryAdminService.activate(VersionId).subscribe((res) => {
248
+ this.AllVersionsList.forEach(el => {
249
+ el.isActivatedVersion = el.id === VersionId;
250
+ });
251
+ return;
252
+ });
253
+ }
254
+ /**编辑版本 */
255
+ toEditUrl(id) {
256
+ this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {
257
+ this.router.navigate([`/cms/admin/entries/${id}/edit`]);
258
+ });
259
+ }
260
+ /**删除版本 */
261
+ delectVersion(vid) {
262
+ this._EntryAdminService.delete(vid).subscribe(res => {
263
+ this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));
264
+ this.getAllVersionsList();
265
+ });
266
+ }
267
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateOrEditEntriesComponent, deps: [{ token: i1.ToasterService }, { token: i2.Location }, { token: i3.ConfigStateService }, { token: i4.SectionAdminService }, { token: i5.EntryAdminService }, { token: i2.DatePipe }, { token: i3.LocalizationService }, { token: i6.Router }, { token: i7.CmsApiService }], target: i0.ɵɵFactoryTarget.Component });
268
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateOrEditEntriesComponent, selector: "cms-create-or-edit-entries", inputs: { isEdit: "isEdit", ParentQueryParams: "ParentQueryParams", entity: "entity", parentEntrySelect: "parentEntrySelect" }, viewQueries: [{ propertyName: "FormDynamicontrolRef", predicate: ["FormDynamicontrolRef"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div class=\"create-or-edit-entry-page\" [formGroup]=\"_entity\">\n <div class=\"container \">\n <div class=\"row\">\n <div class=\"col-md-8 \">\n <div class=\"card p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Title' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" (blur)=\"setTitleToSlugBlur($event)\"\n formControlName=\"title\">\n </div>\n <template #FormDynamicRef></template>\n <ng-container *ngFor=\"let item of entryTypesItem?.fieldTabs;let i =index\">\n <ng-container *ngFor=\"let el of item.fields;let i1 =index\">\n <ng-container *ngIf=\"el&&_entity\">\n <df-dynamic [entity]=\"_entity\" [fields]=\"el\"\n [selected]=\"entrySelect ? entrySelect.extraProperties[el.field.name] : ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"cultureinput.value\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-4 \">\n <div class=\"card mb-0 p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"slug\">{{'Cms::Slug' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"slug\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"sluginput.errors?.repetition\">\n {{sluginput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"culture\">{{'AbpUi::Languages' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"culture\">\n <ng-container *ngFor=\"let item of languagesList;let i =index\">\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\n </ng-container>\n </select>\n <input type=\"text\" formControlName=\"culture_shadow\"\n style=\"position: absolute;z-index: -1;opacity: 0;\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"culture_shadowInput.errors?.repetition\">\n {{culture_shadowInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"parentId\">{{'Cms::ParentEntry' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"parentId\">\n <option value=\"\"></option>\n <ng-container *ngFor=\"let item of entryTypesList;let i =index\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::PublishTime' | abpLocalization}}</label>\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"publishTime\">\n </div>\n <div class=\"mb-2\" *ngIf=\"isEdit\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::Version' | abpLocalization}}</label>\n <ul class=\"list-group\">\n <ng-container *ngFor=\"let item of AllVersionsList\">\n <li class=\"list-group-item flex-between\">\n <div>\n {{item.initialVersionId?(item.creationTime| date: 'YYYY/MM/dd HH:mm:s'):('Cms::InitialVersion' | abpLocalization)}}\n <span class=\"badge text-bg-success ms-1\"\n *ngIf=\"item.isActivatedVersion\">{{'Cms::IsActive' | abpLocalization}}</span>\n <span class=\"badge text-bg-primary ms-1\"\n *ngIf=\"item.id === RevisionEntryId\">{{'Cms::Editing' |\n abpLocalization}}</span>\n </div>\n <div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-link-primary p-2 \"\n style=\"line-height: 0;\" id=\"dropdownBasic1\" ngbDropdownToggle>\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <button ngbDropdownItem type=\"button\" *ngIf=\"!item.isActivatedVersion\"\n (click)=\"ActivatedVersion(item.id)\">\n <i class=\"fas fa-check me-1\"></i>{{'Cms::IsActive' |\n abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n routerLink=\"/cms/admin/entries/create\"\n [queryParams]=\"{RevisionEntryId:item.id}\">\n <i class=\"fas fa-plus me-1\"></i>{{'Cms::NewVersion' |\n abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\" (click.stop)=\"toEditUrl(item.id)\"\n *ngIf=\"item.id !== RevisionEntryId\">\n <i class=\"fas fa-edit me-1\"></i>{{'AbpUi::Edit' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n (click.stop)=\"delectVersion(item.id)\"\n *ngIf=\"item.initialVersionId&&!item.isActivatedVersion&&item.id !== RevisionEntryId\">\n <i class=\"fas fa-trash me-1\"></i>{{'AbpUi::Delete' |\n abpLocalization}}\n </button>\n </div>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"versionNotes\">{{'Cms::RevisionNotes' | abpLocalization}}</label>\n <textarea class=\"form-control\" formControlName=\"versionNotes\" rows=\"3\"></textarea>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: ["::ng-deep .create-or-edit-entry-page .dignite_page{height:calc(100vh - 125px);overflow:auto;background:transparent}::ng-deep .create-or-edit-entry-page .form-control,::ng-deep .create-or-edit-entry-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit}::ng-deep .create-or-edit-entry-page .flex-between{display:flex;align-items:center;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i8.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i8.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i8.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i8.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i8.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i8.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i8.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "directive", type: i9.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i9.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "directive", type: i10.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i10.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i10.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i10.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "component", type: i11.DynamicComponent, selector: "df-dynamic", inputs: ["selected", "type", "entity", "culture", "parentFiledName", "fields"] }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i3.LocalizationPipe, name: "abpLocalization" }] });
269
+ }
270
+ export { CreateOrEditEntriesComponent };
271
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateOrEditEntriesComponent, decorators: [{
272
+ type: Component,
273
+ args: [{ selector: 'cms-create-or-edit-entries', template: "<div class=\"create-or-edit-entry-page\" [formGroup]=\"_entity\">\n <div class=\"container \">\n <div class=\"row\">\n <div class=\"col-md-8 \">\n <div class=\"card p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"title\">{{'Cms::Title' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" (blur)=\"setTitleToSlugBlur($event)\"\n formControlName=\"title\">\n </div>\n <template #FormDynamicRef></template>\n <ng-container *ngFor=\"let item of entryTypesItem?.fieldTabs;let i =index\">\n <ng-container *ngFor=\"let el of item.fields;let i1 =index\">\n <ng-container *ngIf=\"el&&_entity\">\n <df-dynamic [entity]=\"_entity\" [fields]=\"el\"\n [selected]=\"entrySelect ? entrySelect.extraProperties[el.field.name] : ''\"\n [parentFiledName]=\"'extraProperties'\" [culture]=\"cultureinput.value\"></df-dynamic>\n </ng-container>\n </ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"col-md-4 \">\n <div class=\"card mb-0 p-2\">\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"slug\">{{'Cms::Slug' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"slug\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"sluginput.errors?.repetition\">\n {{sluginput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"culture\">{{'AbpUi::Languages' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"culture\">\n <ng-container *ngFor=\"let item of languagesList;let i =index\">\n <option [value]=\"item.cultureName\">{{item.displayName}}</option>\n </ng-container>\n </select>\n <input type=\"text\" formControlName=\"culture_shadow\"\n style=\"position: absolute;z-index: -1;opacity: 0;\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"culture_shadowInput.errors?.repetition\">\n {{culture_shadowInput.errors?.repetition}}\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"parentId\">{{'Cms::ParentEntry' | abpLocalization}}</label>\n <select class=\"form-select\" formControlName=\"parentId\">\n <option value=\"\"></option>\n <ng-container *ngFor=\"let item of entryTypesList;let i =index\">\n <option [value]=\"item.id\">{{item.displayName}}</option>\n </ng-container>\n </select>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::PublishTime' | abpLocalization}}</label>\n <input type=\"datetime-local\" class=\"form-control\" step=\"1\" formControlName=\"publishTime\">\n </div>\n <div class=\"mb-2\" *ngIf=\"isEdit\">\n <label class=\"form-label\" for=\"publishTime\">{{'Cms::Version' | abpLocalization}}</label>\n <ul class=\"list-group\">\n <ng-container *ngFor=\"let item of AllVersionsList\">\n <li class=\"list-group-item flex-between\">\n <div>\n {{item.initialVersionId?(item.creationTime| date: 'YYYY/MM/dd HH:mm:s'):('Cms::InitialVersion' | abpLocalization)}}\n <span class=\"badge text-bg-success ms-1\"\n *ngIf=\"item.isActivatedVersion\">{{'Cms::IsActive' | abpLocalization}}</span>\n <span class=\"badge text-bg-primary ms-1\"\n *ngIf=\"item.id === RevisionEntryId\">{{'Cms::Editing' |\n abpLocalization}}</span>\n </div>\n <div>\n <div ngbDropdown class=\"d-inline-block\">\n <button type=\"button\" class=\"btn btn-link-primary p-2 \"\n style=\"line-height: 0;\" id=\"dropdownBasic1\" ngbDropdownToggle>\n </button>\n <div ngbDropdownMenu aria-labelledby=\"dropdownBasic1\">\n <button ngbDropdownItem type=\"button\" *ngIf=\"!item.isActivatedVersion\"\n (click)=\"ActivatedVersion(item.id)\">\n <i class=\"fas fa-check me-1\"></i>{{'Cms::IsActive' |\n abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n routerLink=\"/cms/admin/entries/create\"\n [queryParams]=\"{RevisionEntryId:item.id}\">\n <i class=\"fas fa-plus me-1\"></i>{{'Cms::NewVersion' |\n abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\" (click.stop)=\"toEditUrl(item.id)\"\n *ngIf=\"item.id !== RevisionEntryId\">\n <i class=\"fas fa-edit me-1\"></i>{{'AbpUi::Edit' | abpLocalization}}\n </button>\n <button ngbDropdownItem type=\"button\"\n (click.stop)=\"delectVersion(item.id)\"\n *ngIf=\"item.initialVersionId&&!item.isActivatedVersion&&item.id !== RevisionEntryId\">\n <i class=\"fas fa-trash me-1\"></i>{{'AbpUi::Delete' |\n abpLocalization}}\n </button>\n </div>\n </div>\n </div>\n </li>\n </ng-container>\n </ul>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\" for=\"versionNotes\">{{'Cms::RevisionNotes' | abpLocalization}}</label>\n <textarea class=\"form-control\" formControlName=\"versionNotes\" rows=\"3\"></textarea>\n </div>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: ["::ng-deep .create-or-edit-entry-page .dignite_page{height:calc(100vh - 125px);overflow:auto;background:transparent}::ng-deep .create-or-edit-entry-page .form-control,::ng-deep .create-or-edit-entry-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit}::ng-deep .create-or-edit-entry-page .flex-between{display:flex;align-items:center;justify-content:space-between}\n"] }]
274
+ }], ctorParameters: function () { return [{ type: i1.ToasterService }, { type: i2.Location }, { type: i3.ConfigStateService }, { type: i4.SectionAdminService }, { type: i5.EntryAdminService }, { type: i2.DatePipe }, { type: i3.LocalizationService }, { type: i6.Router }, { type: i7.CmsApiService }]; }, propDecorators: { isEdit: [{
275
+ type: Input
276
+ }], ParentQueryParams: [{
277
+ type: Input
278
+ }], entity: [{
279
+ type: Input
280
+ }], parentEntrySelect: [{
281
+ type: Input
282
+ }], FormDynamicontrolRef: [{
283
+ type: ViewChildren,
284
+ args: ['FormDynamicontrolRef', { read: ViewContainerRef }]
285
+ }] } });
286
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtZW50cmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvY3JlYXRlLW9yLWVkaXQtZW50cmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvY3JlYXRlLW9yLWVkaXQtZW50cmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQXVCLE1BQU0sY0FBYyxDQUFDO0FBRXZFLE9BQU8sRUFBb0IsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBbUIsV0FBVyxFQUErQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVF2RyxNQUthLDRCQUE0QjtJQUk3QjtJQUNEO0lBQ0M7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFUVixZQUNVLE9BQXVCLEVBQ3hCLFNBQW1CLEVBQ2xCLFdBQStCLEVBQy9CLG9CQUF5QyxFQUN6QyxrQkFBcUMsRUFDckMsUUFBa0IsRUFDbEIsb0JBQXlDLEVBQ3pDLE1BQWMsRUFDZCxjQUE2QjtRQVI3QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN4QixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ2xCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBbUI7UUFDckMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pD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S0FBSztnQkFxRTRELG9CQUFvQjtzQkFBckYsWUFBWTt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ1N0YXRlU2VydmljZSwgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkJztcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgaW5qZWN0LCBJbnB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4sIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBFbnRyeUFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL2VudHJpZXMnO1xuaW1wb3J0IHsgU2VjdGlvbkFkbWluU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3Byb3h5L2FkbWluL3NlY3Rpb25zJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERhdGVQaXBlLCBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDbXNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtY3JlYXRlLW9yLWVkaXQtZW50cmllcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtb3ItZWRpdC1lbnRyaWVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLW9yLWVkaXQtZW50cmllcy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIENyZWF0ZU9yRWRpdEVudHJpZXNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHVibGljIF9sb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgX1NlY3Rpb25BZG1pblNlcnZpY2U6IFNlY3Rpb25BZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfRW50cnlBZG1pblNlcnZpY2U6IEVudHJ5QWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlLFxuICAgIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIF9DbXNBcGlTZXJ2aWNlOiBDbXNBcGlTZXJ2aWNlLFxuICApIHsgfVxuXG5cbiAgLyoq6K+t6KiAICovXG4gIGN1bHR1cmVOYW1lOiBzdHJpbmcgPSAnJ1xuICAvKirmnaHnm65pZCAqL1xuICBlbnRyeVR5cGVJZDogc3RyaW5nID0gJydcblxuICAvKirmlrDlu7rniYjmnKznmoTniYjmnKxpZO+8jOWQjOadoeebrmlkICovXG4gIFJldmlzaW9uRW50cnlJZDogYW55ID0gJydcbiAgLyoq6YCJ5oup55qE5p2h55uu6aG5ICovXG4gIGVudHJ5VHlwZXNJdGVtOiBhbnkgPSAnJ1xuICAvKirniYjlnZdpZCAqL1xuICBzZWN0aW9uSWQ6IHN0cmluZyA9ICcnXG4gIC8qKueJiOWdl+ivpuaDhSAqL1xuICBTZWN0aW9uU2VsZWN0OiBhbnkgPSAnJ1xuICAvKiror63oqIDliJfooaggKi9cbiAgbGFuZ3VhZ2VzTGlzdDogYW55W10gPSBbXVxuICAvKirmnaHnm67nsbvlnovliJfooagt55So5LqO6YCJ5oup5LiK57qn5p2h55uuICovXG4gIGVudHJ5VHlwZXNMaXN0OiBhbnlbXSA9IFtdXG4gIC8qKueJiOacrOWIl+ihqCAqL1xuICBBbGxWZXJzaW9uc0xpc3Q6IGFueVtdID0gW11cblxuICAvKirmmK/lkKbmmK/nvJbovpEgKi9cbiAgQElucHV0KCkgaXNFZGl0ID0gZmFsc2VcblxuICAvKirmnaXoh6rniLbnu4Tku7bnmoTkvKDlgLwgKi9cbiAgRnJvbVBhcmVudFF1ZXJ5UGFyYW1zOiBhbnkgPSAnJ1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IFBhcmVudFF1ZXJ5UGFyYW1zKHY6IGFueSkge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLkZyb21QYXJlbnRRdWVyeVBhcmFtcyA9IHY7XG4gICAgfVxuICB9XG5cbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIF9lbnRpdHk6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZFxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVudGl0eSh2OiBhbnkpIHtcbiAgICBpZiAodikge1xuICAgICAgdGhpcy5fZW50aXR5ID0gdjtcbiAgICB9XG4gIH1cbiAgLyoq5oyH5a6aaWTnmoTmnaHnm67kv6Hmga8gKi9cbiAgZW50cnlTZWxlY3Q6IGFueSA9ICcnXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgcGFyZW50RW50cnlTZWxlY3QodjogYW55KSB7XG4gICAgaWYgKHYpIHtcbiAgICAgIGxldCBWX2V4dHJhUHJvcGVydGllcyA9IHRoaXMuX0Ntc0FwaVNlcnZpY2UuZGVlcENsb25lKHRoaXMuY29udmVydEV4dHJhUHJvcGVydGllcyh2LmV4dHJhUHJvcGVydGllcykpXG4gICAgICB2LmV4dHJhUHJvcGVydGllcyA9IFZfZXh0cmFQcm9wZXJ0aWVzXG4gICAgICB0aGlzLmVudHJ5U2VsZWN0ID0gdjtcbiAgICB9XG4gIH1cbiAgLyoq5bCG5a+56LGh5Lit55qERXh0cmFQcm9wZXJ0aWVz6LWL5YC85YiwZXh0cmFQcm9wZXJ0aWVzICovXG4gIGNvbnZlcnRFeHRyYVByb3BlcnRpZXMob2JqKSB7XG4gICAgZm9yIChsZXQga2V5IGluIG9iaikge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob2JqW2tleV0pKSB7XG4gICAgICAgIG9ialtrZXldLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgaWYgKGl0ZW0uaGFzT3duUHJvcGVydHkoJ0V4dHJhUHJvcGVydGllcycpKSB7XG4gICAgICAgICAgICBpdGVtWydleHRyYVByb3BlcnRpZXMnXSA9IGl0ZW1bJ0V4dHJhUHJvcGVydGllcyddO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH1cblxuICAvKirliKvlkI3ooajljZXlrp7kvZMgKi9cbiAgZ2V0IHNsdWdpbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5LmdldCgnc2x1ZycpXG4gIH1cbiAgLyoq6K+t6KiA6KGo5Y2V5a6e5L2TICovXG4gIGdldCBjdWx0dXJlaW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eS5nZXQoJ2N1bHR1cmUnKVxuICB9XG4gIC8qKuivreiogOihqOWNleWunuS9k+W9seWtkCAqL1xuICBnZXQgY3VsdHVyZV9zaGFkb3dJbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5LmdldCgnY3VsdHVyZV9zaGFkb3cnKVxuICB9XG5cbiAgLyoqZXh0cmFQcm9wZXJ0aWVz6YWN572u6KGo5Y2V5a6e5L2TICovXG4gIGdldCBleHRyYVByb3BlcnRpZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2VudGl0eS5nZXQoJ2V4dHJhUHJvcGVydGllcycpIGFzIEZvcm1Hcm91cFxuICB9XG4gIGFzeW5jIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvL0NhbGxlZCBhZnRlciBuZ09uSW5pdCB3aGVuIHRoZSBjb21wb25lbnQncyBvciBkaXJlY3RpdmUncyBjb250ZW50IGhhcyBiZWVuIGluaXRpYWxpemVkLlxuICAgIC8vQWRkICdpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQnIHRvIHRoZSBjbGFzcy5cbiAgICBsZXQgcXVlcnlQYXJhbXMgPSB0aGlzLkZyb21QYXJlbnRRdWVyeVBhcmFtc1xuICAgIGlmICh0aGlzLl9lbnRpdHkgJiYgdGhpcy5Gcm9tUGFyZW50UXVlcnlQYXJhbXMpIHtcbiAgICAgIHRoaXMuX2VudGl0eS5zZXRDb250cm9sKCdzbHVnJywgbmV3IEZvcm1Db250cm9sKCcnLCB7XG4gICAgICAgIHZhbGlkYXRvcnM6IFZhbGlkYXRvcnMucmVxdWlyZWQsXG4gICAgICAgIGFzeW5jVmFsaWRhdG9yczogdGhpcy5yZXBldGl0aW9uQXN5bmNWYWxpZGF0b3IoKSxcbiAgICAgICAgdXBkYXRlT246ICdibHVyJ1xuICAgICAgfSkpXG4gICAgICB0aGlzLl9lbnRpdHkuc2V0Q29udHJvbCgnY3VsdHVyZV9zaGFkb3cnLCBuZXcgRm9ybUNvbnRyb2woJycsIHtcbiAgICAgICAgdmFsaWRhdG9yczogW1ZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICBhc3luY1ZhbGlkYXRvcnM6IHRoaXMuY3VsdHVyZUFzeW5jVmFsaWRhdG9yX3Rlc3QoKSxcbiAgICAgIH0pKVxuICAgICAgdGhpcy5fZW50aXR5LmdldCgnY3VsdHVyZScpLmRpc2FibGUoKTtcbiAgICAgIGlmIChxdWVyeVBhcmFtcy5SZXZpc2lvbkVudHJ5SWQgJiYgdGhpcy5lbnRyeVNlbGVjdCkge1xuICAgICAgICB0aGlzLlJldmlzaW9uRW50cnlJZCA9IHF1ZXJ5UGFyYW1zLlJldmlzaW9uRW50cnlJZFxuICAgICAgICB0aGlzLnNldEVudHJ5Y29uZmlnKHRoaXMuZW50cnlTZWxlY3QpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZXRFbnRyeWNvbmZpZyhxdWVyeVBhcmFtcyk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5zZWN0aW9uSWQpIGF3YWl0IHRoaXMuZ2V0U2VjdGlvblNlbGVjdCgpO1xuICAgICAgaWYgKHRoaXMuUmV2aXNpb25FbnRyeUlkKSBhd2FpdCB0aGlzLmdldEFsbFZlcnNpb25zTGlzdCgpXG5cbiAgICB9XG5cblxuICB9XG5cbiAgLyoq6KGo5Y2V5o6n5Lu25qih5p2/LeWKqOaAgeihqOWNlemFjee9rue7hOS7tiAqL1xuICBAVmlld0NoaWxkcmVuKCdGb3JtRHluYW1pY29udHJvbFJlZicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KSBGb3JtRHluYW1pY29udHJvbFJlZjogUXVlcnlMaXN0PFZpZXdDb250YWluZXJSZWY+O1xuXG5cblxuXG5cbiAgLyoq5a6a5LmJ6Ieq5a6a5LmJ5byC5q2l6aqM6K+BICovXG4gIGN1bHR1cmVBc3luY1ZhbGlkYXRvcl90ZXN0KCkge1xuICAgIHJldHVybiAoY3RybDogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIGxldCBzdWJjdWx0dXJlID0gdGhpcy5fZW50aXR5Py5nZXQoJ2N1bHR1cmUnKS52YWx1ZVxuICAgICAgICBpZiAoc3ViY3VsdHVyZSA9PSB0aGlzLmVudHJ5U2VsZWN0Py5jdWx0dXJlIHx8IHRoaXMuU2VjdGlvblNlbGVjdC50eXBlICE9PSAwKSB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9FbnRyeUFkbWluU2VydmljZS5jdWx0dXJlRXhpc3RXaXRoU2luZ2xlU2VjdGlvbih7XG4gICAgICAgICAgY3VsdHVyZTogc3ViY3VsdHVyZSxcbiAgICAgICAgICBzZWN0aW9uSWQ6IHRoaXMuc2VjdGlvbklkLFxuICAgICAgICAgIGVudHJ5VHlwZUlkOiB0aGlzLmVudHJ5VHlwZUlkXG4gICAgICAgIH0pLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgICAgIHJlc29sdmUoeyByZXBldGl0aW9uOiB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYENtczo6RW50cmllc0FscmVhZHlFeGlzdEVudHJ5VHlwZWAsIHRoaXMuZW50cnlUeXBlc0l0ZW0uZGlzcGxheU5hbWUsIHRoaXMubGFuZ3VhZ2VzTGlzdC5maW5kKGVsID0+IGVsLmN1bHR1cmVOYW1lID09IHN1YmN1bHR1cmUpLmRpc3BsYXlOYW1lKSB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cblxuICAvKiogIFxuICog6K6+572u5p2h55uu6K+m5oOFICBcbiAqIEBwYXJhbSB7b2JqZWN0fSBzb3VyY2UgLSDmlbDmja7mupDlr7nosaEgIFxuICovXG4gIHNldEVudHJ5Y29uZmlnKHNvdXJjZTogYW55KSB7XG4gICAgdGhpcy5lbnRyeVR5cGVJZCA9IHNvdXJjZS5lbnRyeVR5cGVJZDtcbiAgICB0aGlzLmN1bHR1cmVOYW1lID0gc291cmNlLmN1bHR1cmUgfHwgc291cmNlLmN1bHR1cmVOYW1lO1xuICAgIHRoaXMuc2VjdGlvbklkID0gc291cmNlLnNlY3Rpb25JZDtcbiAgfVxuICB0aW1lOiBudW1iZXIgPSAwXG5cbiAgLyoq5a6a5LmJ6Ieq5a6a5LmJ5byC5q2l6aqM6K+BICovXG4gIHJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpIHtcbiAgICByZXR1cm4gKGN0cmw6IEFic3RyYWN0Q29udHJvbCk6IFByb21pc2U8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+IHwgT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gPT4ge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgICBsZXQgc3Vic2x1ZyA9IHRoaXMuX2VudGl0eT8uZ2V0KCdzbHVnJykudmFsdWVcbiAgICAgICAgaWYgKHN1YnNsdWcgPT0gdGhpcy5lbnRyeVNlbGVjdD8uc2x1Zykge1xuICAgICAgICAgIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgcmV0dXJuXG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2Uuc2x1Z0V4aXN0cyh7XG4gICAgICAgICAgY3VsdHVyZTogdGhpcy5jdWx0dXJlTmFtZSxcbiAgICAgICAgICBzZWN0aW9uSWQ6IHRoaXMuc2VjdGlvbklkLFxuICAgICAgICAgIHNsdWc6IHN1YnNsdWdcbiAgICAgICAgfSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgcmVzb2x2ZSh7IHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zOjpFbnRyeVNsdWd7MH1BbHJlYWR5RXhpc3RgLCBjdHJsLnZhbHVlKSB9KTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9KTtcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBjb25maWcgPSBpbmplY3QoQ29uZmlnU3RhdGVTZXJ2aWNlKVxuXG4gIC8qKuiOt+WPlueJiOWdl+ivpuaDhSAqL1xuICBnZXRTZWN0aW9uU2VsZWN0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fU2VjdGlvbkFkbWluU2VydmljZS5nZXQodGhpcy5zZWN0aW9uSWQpLnN1YnNjcmliZShhc3luYyAocmVzKSA9PiB7XG4gICAgICAgIGxldCBsYW5ndWFnZXMgPSB0aGlzLmNvbmZpZ1N0YXRlLmdldERlZXAoJ2xvY2FsaXphdGlvbi5sYW5ndWFnZXMnKVxuICAgICAgICB0aGlzLmxhbmd1YWdlc0xpc3QgPSBsYW5ndWFnZXNcbiAgICAgICAgbGV0IGVudHJ5VHlwZXNJdGVtID0gcmVzLmVudHJ5VHlwZXMuZmluZChlbCA9PiBlbC5pZCA9PSB0aGlzLmVudHJ5VHlwZUlkKVxuICAgICAgICB0aGlzLlNlY3Rpb25TZWxlY3QgPSByZXNcbiAgICAgICAgdGhpcy5lbnRyeVR5cGVzSXRlbSA9IGVudHJ5VHlwZXNJdGVtXG4gICAgICAgIHRoaXMuZW50cnlUeXBlc0xpc3QgPSByZXMuZW50cnlUeXBlcy5maWx0ZXIoZWwgPT4gZWwuaWQgPT0gdGhpcy5lbnRyeVR5cGVJZClcbiAgICAgICAgdGhpcy5fZW50aXR5LnBhdGNoVmFsdWUoe1xuICAgICAgICAgIC4uLnRoaXMuZW50cnlTZWxlY3QsXG4gICAgICAgICAgaW5pdGlhbFZlcnNpb25JZDogdGhpcy5lbnRyeVNlbGVjdD8uaW5pdGlhbFZlcnNpb25JZCB8fCB0aGlzLlJldmlzaW9uRW50cnlJZCB8fCAnJyxcbiAgICAgICAgICBjdWx0dXJlOiB0aGlzLmN1bHR1cmVOYW1lLFxuICAgICAgICAgIGN1bHR1cmVfc2hhZG93OiB0aGlzLmN1bHR1cmVOYW1lLFxuICAgICAgICAgIGVudHJ5VHlwZUlkOiB0aGlzLmVudHJ5VHlwZUlkLFxuICAgICAgICAgIHB1Ymxpc2hUaW1lOiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShuZXcgRGF0ZSgpLCAneXl5eS1NTS1kZCBISDptbTpzcycpLFxuICAgICAgICB9KVxuICAgICAgICByZXNvbHZlKHRydWUpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuICAvKirojrflj5bmnaHnm67niYjmnKzliJfooaggKi9cbiAgZ2V0QWxsVmVyc2lvbnNMaXN0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2UuZ2V0QWxsVmVyc2lvbnModGhpcy5SZXZpc2lvbkVudHJ5SWQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgICB0aGlzLkFsbFZlcnNpb25zTGlzdCA9IHJlcy5pdGVtc1xuICAgICAgICByZXNvbHZlKHJlcylcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuXG4gIC8qKuagh+mimOi9rOWMluWIq+WQjSAqL1xuICBzZXRUaXRsZVRvU2x1Z0JsdXIoZXZlbnQpIHtcbiAgICBsZXQgdmFsID0gZXZlbnQudGFyZ2V0LnZhbHVlXG4gICAgbGV0IHNsdWcgPSB0aGlzLl9lbnRpdHkuZ2V0KCdzbHVnJylcbiAgICBsZXQgcGlueWluc3RyID0gJydcbiAgICBpZiAoc2x1Zy52YWx1ZSkgcmV0dXJuXG4gICAgcGlueWluc3RyID0gdGhpcy5fQ21zQXBpU2VydmljZS5jaGluZXNlVG9QaW55aW4odmFsKVxuICAgIHRoaXMuX2VudGl0eS5wYXRjaFZhbHVlKHtcbiAgICAgIHNsdWc6IHBpbnlpbnN0ciB8fCB2YWxcbiAgICB9KVxuICB9XG4gIC8qKuS9v+eUqFVuaWNvZGXnvJbnoIHojIPlm7TliKTmlq3mmK/lkKbmmK/kuK3mloflrZfnrKYgKi9cbiAgaXNDaGluZXNlKHN0cikge1xuICAgIHJldHVybiAvXltcXHU0ZTAwLVxcdTlmYTVdKyQvLnRlc3Qoc3RyKTtcbiAgfVxuXG4gIC8qKua/gOa0uyAqL1xuICBBY3RpdmF0ZWRWZXJzaW9uKFZlcnNpb25JZCkge1xuICAgIHRoaXMuX0VudHJ5QWRtaW5TZXJ2aWNlLmFjdGl2YXRlKFZlcnNpb25JZCkuc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIHRoaXMuQWxsVmVyc2lvbnNMaXN0LmZvckVhY2goZWwgPT4ge1xuICAgICAgICBlbC5pc0FjdGl2YXRlZFZlcnNpb24gPSBlbC5pZCA9PT0gVmVyc2lvbklkXG4gICAgICB9KVxuICAgICAgcmV0dXJuXG4gICAgfSlcbiAgfVxuICAvKirnvJbovpHniYjmnKwgKi9cbiAgdG9FZGl0VXJsKGlkKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnJywgeyBza2lwTG9jYXRpb25DaGFuZ2U6IHRydWUgfSkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jbXMvYWRtaW4vZW50cmllcy8ke2lkfS9lZGl0YF0pO1xuICAgIH0pO1xuICB9XG4gIC8qKuWIoOmZpOeJiOacrCAqL1xuICBkZWxlY3RWZXJzaW9uKHZpZCkge1xuICAgIHRoaXMuX0VudHJ5QWRtaW5TZXJ2aWNlLmRlbGV0ZSh2aWQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6U3VjY2Vzc2Z1bGx5RGVsZXRlZGApKTtcbiAgICAgIHRoaXMuZ2V0QWxsVmVyc2lvbnNMaXN0KClcbiAgICB9KVxuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJjcmVhdGUtb3ItZWRpdC1lbnRyeS1wYWdlXCIgW2Zvcm1Hcm91cF09XCJfZW50aXR5XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lciBcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC04IFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkICBwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJ0aXRsZVwiPnt7J0Ntczo6VGl0bGUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiAoYmx1cik9XCJzZXRUaXRsZVRvU2x1Z0JsdXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSAjRm9ybUR5bmFtaWNSZWY+PC90ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBlbnRyeVR5cGVzSXRlbT8uZmllbGRUYWJzO2xldCBpID1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWwgb2YgaXRlbS5maWVsZHM7bGV0IGkxID1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbCYmX2VudGl0eVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGYtZHluYW1pYyBbZW50aXR5XT1cIl9lbnRpdHlcIiBbZmllbGRzXT1cImVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzZWxlY3RlZF09XCJlbnRyeVNlbGVjdCA/IGVudHJ5U2VsZWN0LmV4dHJhUHJvcGVydGllc1tlbC5maWVsZC5uYW1lXSA6ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJlbnRGaWxlZE5hbWVdPVwiJ2V4dHJhUHJvcGVydGllcydcIiBbY3VsdHVyZV09XCJjdWx0dXJlaW5wdXQudmFsdWVcIj48L2RmLWR5bmFtaWM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNCBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZCBtYi0wIHAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInNsdWdcIj57eydDbXM6OlNsdWcnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJzbHVnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXIgaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwic2x1Z2lucHV0LmVycm9ycz8ucmVwZXRpdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7c2x1Z2lucHV0LmVycm9ycz8ucmVwZXRpdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwiY3VsdHVyZVwiPnt7J0FicFVpOjpMYW5ndWFnZXMnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgZm9ybUNvbnRyb2xOYW1lPVwiY3VsdHVyZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGFuZ3VhZ2VzTGlzdDtsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5jdWx0dXJlTmFtZVwiPnt7aXRlbS5kaXNwbGF5TmFtZX19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cImN1bHR1cmVfc2hhZG93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTt6LWluZGV4OiAtMTtvcGFjaXR5OiAwO1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyIGludmFsaWQtZmVlZGJhY2tcIiAqbmdJZj1cImN1bHR1cmVfc2hhZG93SW5wdXQuZXJyb3JzPy5yZXBldGl0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tjdWx0dXJlX3NoYWRvd0lucHV0LmVycm9ycz8ucmVwZXRpdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicGFyZW50SWRcIj57eydDbXM6OlBhcmVudEVudHJ5JyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIGZvcm1Db250cm9sTmFtZT1cInBhcmVudElkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIlwiPjwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZW50cnlUeXBlc0xpc3Q7bGV0IGkgPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cIml0ZW0uaWRcIj57e2l0ZW0uZGlzcGxheU5hbWV9fTwvb3B0aW9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInB1Ymxpc2hUaW1lXCI+e3snQ21zOjpQdWJsaXNoVGltZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBzdGVwPVwiMVwiIGZvcm1Db250cm9sTmFtZT1cInB1Ymxpc2hUaW1lXCI+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiICpuZ0lmPVwiaXNFZGl0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwicHVibGlzaFRpbWVcIj57eydDbXM6OlZlcnNpb24nIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgQWxsVmVyc2lvbnNMaXN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBmbGV4LWJldHdlZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tpdGVtLmluaXRpYWxWZXJzaW9uSWQ/KGl0ZW0uY3JlYXRpb25UaW1lfCBkYXRlOiAnWVlZWS9NTS9kZCBISDptbTpzJyk6KCdDbXM6OkluaXRpYWxWZXJzaW9uJyB8IGFicExvY2FsaXphdGlvbil9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgdGV4dC1iZy1zdWNjZXNzIG1zLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaXNBY3RpdmF0ZWRWZXJzaW9uXCI+e3snQ21zOjpJc0FjdGl2ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIHRleHQtYmctcHJpbWFyeSBtcy0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmlkID09PSBSZXZpc2lvbkVudHJ5SWRcIj57eydDbXM6OkVkaXRpbmcnIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJwTG9jYWxpemF0aW9ufX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saW5rLXByaW1hcnkgcC0yIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImxpbmUtaGVpZ2h0OiAwO1wiIGlkPVwiZHJvcGRvd25CYXNpYzFcIiBuZ2JEcm9wZG93blRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51IGFyaWEtbGFiZWxsZWRieT1cImRyb3Bkb3duQmFzaWMxXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCIhaXRlbS5pc0FjdGl2YXRlZFZlcnNpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJBY3RpdmF0ZWRWZXJzaW9uKGl0ZW0uaWQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hlY2sgbWUtMVwiPjwvaT57eydDbXM6OklzQWN0aXZlJyB8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluaz1cIi9jbXMvYWRtaW4vZW50cmllcy9jcmVhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJ7UmV2aXNpb25FbnRyeUlkOml0ZW0uaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1cyBtZS0xXCI+PC9pPnt7J0Ntczo6TmV3VmVyc2lvbicgfFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIHR5cGU9XCJidXR0b25cIiAoY2xpY2suc3RvcCk9XCJ0b0VkaXRVcmwoaXRlbS5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pZCAhPT0gUmV2aXNpb25FbnRyeUlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZWRpdCBtZS0xXCI+PC9pPnt7J0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljay5zdG9wKT1cImRlbGVjdFZlcnNpb24oaXRlbS5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pbml0aWFsVmVyc2lvbklkJiYhaXRlbS5pc0FjdGl2YXRlZFZlcnNpb24mJml0ZW0uaWQgIT09IFJldmlzaW9uRW50cnlJZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRyYXNoIG1lLTFcIj48L2k+e3snQWJwVWk6OkRlbGV0ZScgfFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInZlcnNpb25Ob3Rlc1wiPnt7J0Ntczo6UmV2aXNpb25Ob3RlcycgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ2ZXJzaW9uTm90ZXNcIiByb3dzPVwiM1wiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
@@ -0,0 +1,32 @@
1
+ import { FormGroup, Validators } from "@angular/forms";
2
+ export class CreateOrUpdateEntryInputBase {
3
+ /**语言 */
4
+ culture = ['', [Validators.required]];
5
+ /**条目id */
6
+ entryTypeId = [''];
7
+ /**标题 */
8
+ title = ['', [Validators.required]];
9
+ /**别名 */
10
+ slug = ['', [Validators.required]];
11
+ /**是否是草稿 */
12
+ draft = ['', []];
13
+ /**发布时间 */
14
+ publishTime = ['', [Validators.required]];
15
+ /**上级目录 */
16
+ parentId = [null];
17
+ /**修订说明 */
18
+ versionNotes = [null];
19
+ /**版本 */
20
+ initialVersionId = [null];
21
+ extraProperties = new FormGroup({});
22
+ constructor(data) {
23
+ if (data) {
24
+ for (const key in data) {
25
+ if (data.hasOwnProperty(key)) {
26
+ this[key] = data[key];
27
+ }
28
+ }
29
+ }
30
+ }
31
+ }
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLXVwZGF0ZS1lbnRyeS1pbnB1dC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9lbnRyaWVzL2NyZWF0ZS1vci11cGRhdGUtZW50cnktaW5wdXQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE1BQU0sT0FBTyw0QkFBNEI7SUFDckMsUUFBUTtJQUNSLE9BQU8sR0FBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQzFDLFVBQVU7SUFDVixXQUFXLEdBQVEsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUN2QixRQUFRO0lBQ1IsS0FBSyxHQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7SUFDeEMsUUFBUTtJQUNSLElBQUksR0FBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQ3ZDLFdBQVc7SUFDWCxLQUFLLEdBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDckIsVUFBVTtJQUNWLFdBQVcsR0FBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO0lBQzlDLFVBQVU7SUFDVixRQUFRLEdBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUNuQixVQUFVO0lBQ1YsWUFBWSxHQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDdkIsUUFBUTtJQUNSLGdCQUFnQixHQUFRLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDOUIsZUFBZSxHQUEwQixJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUMxRCxZQUFZLElBQW1DO1FBQzNDLElBQUksSUFBSSxFQUFFO1lBQ04sS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUU7Z0JBQ3BCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRTtvQkFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztpQkFDekI7YUFDSjtTQUNKO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JVcGRhdGVFbnRyeUlucHV0QmFzZSB7XHJcbiAgICAvKiror63oqIAgKi9cclxuICAgIGN1bHR1cmU6IGFueSA9IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXVxyXG4gICAgLyoq5p2h55uuaWQgKi9cclxuICAgIGVudHJ5VHlwZUlkOiBhbnkgPSBbJyddXHJcbiAgICAvKirmoIfpopggKi9cclxuICAgIHRpdGxlOiBhbnkgPSBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cclxuICAgIC8qKuWIq+WQjSAqL1xyXG4gICAgc2x1ZzogYW55ID0gWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dXHJcbiAgICAvKirmmK/lkKbmmK/ojYnnqL8gKi9cclxuICAgIGRyYWZ0OiBhbnkgPSBbJycsIFtdXVxyXG4gICAgLyoq5Y+R5biD5pe26Ze0ICovXHJcbiAgICBwdWJsaXNoVGltZTogYW55ID0gWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dXHJcbiAgICAvKirkuIrnuqfnm67lvZUgKi9cclxuICAgIHBhcmVudElkOmFueT1bbnVsbF1cclxuICAgIC8qKuS/ruiuouivtOaYjiAqL1xyXG4gICAgdmVyc2lvbk5vdGVzOmFueT1bbnVsbF1cclxuICAgIC8qKueJiOacrCAqL1xyXG4gICAgaW5pdGlhbFZlcnNpb25JZDogYW55ID0gW251bGxdXHJcbiAgICBleHRyYVByb3BlcnRpZXM6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZCA9IG5ldyBGb3JtR3JvdXAoe30pXHJcbiAgICBjb25zdHJ1Y3RvcihkYXRhPzogQ3JlYXRlT3JVcGRhdGVFbnRyeUlucHV0QmFzZSkge1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzW2tleV0gPSBkYXRhW2tleV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==
@@ -0,0 +1,108 @@
1
+ import { Component, ViewChild, inject } from '@angular/core';
2
+ import { FormBuilder } from '@angular/forms';
3
+ import { CreateOrUpdateEntryInputBase } from './create-or-update-entry-input-base';
4
+ import { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';
5
+ import { ECmsComponent } from '../../../enums/ecms-component';
6
+ import { UpdateListService } from '../../../services/update-list.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@abp/ng.theme.shared";
9
+ import * as i2 from "@angular/common";
10
+ import * as i3 from "@angular/router";
11
+ import * as i4 from "../../../proxy/admin/entries";
12
+ import * as i5 from "@abp/ng.core";
13
+ import * as i6 from "@angular/forms";
14
+ import * as i7 from "@ngx-validate/core";
15
+ import * as i8 from "@abp/ng.components/page";
16
+ import * as i9 from "./create-or-edit-entries.component";
17
+ class CreateComponent {
18
+ toaster;
19
+ _location;
20
+ route;
21
+ _EntryAdminService;
22
+ _LocalizationService;
23
+ router;
24
+ constructor(toaster, _location, route, _EntryAdminService, _LocalizationService, router) {
25
+ this.toaster = toaster;
26
+ this._location = _location;
27
+ this.route = route;
28
+ this._EntryAdminService = _EntryAdminService;
29
+ this._LocalizationService = _LocalizationService;
30
+ this.router = router;
31
+ }
32
+ fb = inject(FormBuilder);
33
+ _updateListService = inject(UpdateListService);
34
+ /**表单实体 */
35
+ newEntity;
36
+ /**是否是草稿 */
37
+ draftType = false;
38
+ /**页面传值用于传递到子组件 */
39
+ queryParams = '';
40
+ /**指定id的条目信息 */
41
+ entrySelect = '';
42
+ /**获取提交按钮替身,用于真实触发表单提交 */
43
+ submitclick;
44
+ async ngOnInit() {
45
+ this.queryParams = this.route.snapshot.queryParams;
46
+ this.newEntity = this.fb.group(new CreateOrUpdateEntryInputBase());
47
+ if (this.queryParams.RevisionEntryId)
48
+ await this.getEntrySelect();
49
+ }
50
+ /**获取条目信息 */
51
+ getEntrySelect() {
52
+ return new Promise((resolve, rejects) => {
53
+ this._EntryAdminService.get(this.queryParams.RevisionEntryId).subscribe(res => {
54
+ this.entrySelect = res;
55
+ resolve(res);
56
+ });
57
+ });
58
+ }
59
+ /**保存 */
60
+ save(draft) {
61
+ this.newEntity.patchValue({
62
+ draft: draft
63
+ });
64
+ let input = this.newEntity.value;
65
+ input.publishTime = new Date(new Date(input.publishTime).getTime() + (8 * 60 * 60 * 1000)).toISOString();
66
+ input.culture = this.newEntity.get('culture').value;
67
+ console.log(input, '保存', this.newEntity);
68
+ if (!this.newEntity.valid)
69
+ return;
70
+ this._EntryAdminService.create(input).subscribe(res => {
71
+ this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));
72
+ this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {
73
+ this.router.navigate([`/cms/admin/entries`]);
74
+ this._updateListService.updateList();
75
+ });
76
+ });
77
+ }
78
+ /**触发点击按钮替身 */
79
+ clickSubmit(type) {
80
+ this.draftType = type;
81
+ this.submitclick.nativeElement.click();
82
+ }
83
+ /**返回上一页 */
84
+ backTo() {
85
+ this._location.back();
86
+ }
87
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateComponent, deps: [{ token: i1.ToasterService }, { token: i2.Location }, { token: i3.ActivatedRoute }, { token: i4.EntryAdminService }, { token: i5.LocalizationService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
88
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateComponent, selector: "cms-create", providers: [
89
+ {
90
+ provide: EXTENSIONS_IDENTIFIER,
91
+ useValue: ECmsComponent.Entries_Create,
92
+ },
93
+ ], viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }], ngImport: i0, template: "<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save(draftType)\">\n <abp-page [title]=\"'Cms::New'| abpLocalization\" [toolbar]=\"true\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <ng-container *ngIf=\"entrySelect; else elseTemplate\">\n <cms-create-or-edit-entries [entity]=\"newEntity\" [ParentQueryParams]=\"queryParams\"\n [parentEntrySelect]=\"entrySelect\" ></cms-create-or-edit-entries>\n </ng-container>\n <ng-template #elseTemplate>\n <cms-create-or-edit-entries [entity]=\"newEntity\"\n [ParentQueryParams]=\"queryParams\" ></cms-create-or-edit-entries>\n </ng-template>\n </abp-page>\n</form>", styles: ["::ng-deep .create-or-edit-entry-page .dignite_page{height:calc(100vh - 125px);overflow:auto;background:transparent}::ng-deep .create-or-edit-entry-page .form-control,::ng-deep .create-or-edit-entry-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i7.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "component", type: i8.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "component", type: i9.CreateOrEditEntriesComponent, selector: "cms-create-or-edit-entries", inputs: ["isEdit", "ParentQueryParams", "entity", "parentEntrySelect"] }, { kind: "pipe", type: i5.LocalizationPipe, name: "abpLocalization" }] });
94
+ }
95
+ export { CreateComponent };
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateComponent, decorators: [{
97
+ type: Component,
98
+ args: [{ selector: 'cms-create', providers: [
99
+ {
100
+ provide: EXTENSIONS_IDENTIFIER,
101
+ useValue: ECmsComponent.Entries_Create,
102
+ },
103
+ ], template: "<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save(draftType)\">\n <abp-page [title]=\"'Cms::New'| abpLocalization\" [toolbar]=\"true\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <ng-container *ngIf=\"entrySelect; else elseTemplate\">\n <cms-create-or-edit-entries [entity]=\"newEntity\" [ParentQueryParams]=\"queryParams\"\n [parentEntrySelect]=\"entrySelect\" ></cms-create-or-edit-entries>\n </ng-container>\n <ng-template #elseTemplate>\n <cms-create-or-edit-entries [entity]=\"newEntity\"\n [ParentQueryParams]=\"queryParams\" ></cms-create-or-edit-entries>\n </ng-template>\n </abp-page>\n</form>", styles: ["::ng-deep .create-or-edit-entry-page .dignite_page{height:calc(100vh - 125px);overflow:auto;background:transparent}::ng-deep .create-or-edit-entry-page .form-control,::ng-deep .create-or-edit-entry-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit}\n"] }]
104
+ }], ctorParameters: function () { return [{ type: i1.ToasterService }, { type: i2.Location }, { type: i3.ActivatedRoute }, { type: i4.EntryAdminService }, { type: i5.LocalizationService }, { type: i3.Router }]; }, propDecorators: { submitclick: [{
105
+ type: ViewChild,
106
+ args: ['submitclick', { static: true }]
107
+ }] } });
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2NvbXBvbmVudHMvYWRtaW4vZW50cmllcy9jcmVhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9lbnRyaWVzL2NyZWF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFzQixTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pGLE9BQU8sRUFBRyxXQUFXLEVBQVksTUFBTSxnQkFBZ0IsQ0FBQztBQUd4RCxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUduRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7Ozs7O0FBSTFFLE1BV2EsZUFBZTtJQUVoQjtJQUNEO0lBQ0M7SUFDQTtJQUNBO0lBQ0E7SUFOVixZQUNVLE9BQXVCLEVBQ3hCLFNBQW1CLEVBQ2xCLEtBQXFCLEVBQ3JCLGtCQUFxQyxFQUNyQyxvQkFBeUMsRUFDekMsTUFBYztRQUxkLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXFCO1FBQ3pDLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDcEIsQ0FBQztJQUNHLEVBQUUsR0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDdEIsa0JBQWtCLEdBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFFcEQsVUFBVTtJQUNWLFNBQVMsQ0FBdUI7SUFFaEMsV0FBVztJQUNYLFNBQVMsR0FBWSxLQUFLLENBQUE7SUFDMUIsa0JBQWtCO0lBQ2xCLFdBQVcsR0FBUSxFQUFFLENBQUE7SUFFckIsZUFBZTtJQUNmLFdBQVcsR0FBUSxFQUFFLENBQUE7SUFFckIseUJBQXlCO0lBQ21CLFdBQVcsQ0FBYTtJQUVwRSxLQUFLLENBQUMsUUFBUTtRQUNaLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFBO1FBQ2xELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSw0QkFBNEIsRUFBRSxDQUFDLENBQUE7UUFDbEUsSUFBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWU7WUFBSSxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNyRSxDQUFDO0lBRUQsWUFBWTtJQUNaLGNBQWM7UUFDWixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzVFLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFBO2dCQUV0QixPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDZCxDQUFDLENBQUMsQ0FBQTtRQUNKLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUlELFFBQVE7SUFDUixJQUFJLENBQUMsS0FBSztRQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO1lBQ3hCLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUE7UUFDaEMsS0FBSyxDQUFDLFdBQVcsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFBO1FBQ3hHLEtBQUssQ0FBQyxPQUFPLEdBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBSyxDQUFBO1FBQ2pELE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFDLElBQUksRUFBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFdkMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSztZQUFFLE9BQU07UUFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQyxDQUFDLENBQUM7WUFDckYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO2dCQUNwRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVcsQ0FBQyxJQUFJO1FBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUE7UUFDckIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDeEMsQ0FBQztJQUNELFdBQVc7SUFDWCxNQUFNO1FBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUN2QixDQUFDO3dHQXpFVSxlQUFlOzRGQUFmLGVBQWUscUNBUGY7WUFDVDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLGNBQWM7YUFDdkM7U0FDRixvSkN2QkgsNnZCQVlPOztTRGFNLGVBQWU7NEZBQWYsZUFBZTtrQkFYM0IsU0FBUzsrQkFDRSxZQUFZLGFBR1g7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxjQUFjO3lCQUN2QztxQkFDRjtnUEEwQjJDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyAgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyAgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ3JlYXRlT3JVcGRhdGVFbnRyeUlucHV0QmFzZSB9IGZyb20gJy4vY3JlYXRlLW9yLXVwZGF0ZS1lbnRyeS1pbnB1dC1iYXNlJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xuaW1wb3J0IHsgRW50cnlBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9wcm94eS9hZG1pbi9lbnRyaWVzJztcbmltcG9ydCB7IEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHsgRUNtc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2VudW1zL2VjbXMtY29tcG9uZW50JztcbmltcG9ydCB7IFVwZGF0ZUxpc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdXBkYXRlLWxpc3Quc2VydmljZSc7XG5cblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbXMtY3JlYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NyZWF0ZS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBFWFRFTlNJT05TX0lERU5USUZJRVIsXG4gICAgICB1c2VWYWx1ZTogRUNtc0NvbXBvbmVudC5FbnRyaWVzX0NyZWF0ZSxcbiAgICB9LFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIENyZWF0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHVibGljIF9sb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBfRW50cnlBZG1pblNlcnZpY2U6IEVudHJ5QWRtaW5TZXJ2aWNlLFxuICAgIHByaXZhdGUgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgKSB7IH1cbiAgcHJpdmF0ZSBmYj1pbmplY3QoRm9ybUJ1aWxkZXIpXG4gIHByaXZhdGUgX3VwZGF0ZUxpc3RTZXJ2aWNlPWluamVjdChVcGRhdGVMaXN0U2VydmljZSlcblxuICAvKirooajljZXlrp7kvZMgKi9cbiAgbmV3RW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWRcblxuICAvKirmmK/lkKbmmK/ojYnnqL8gKi9cbiAgZHJhZnRUeXBlOiBib29sZWFuID0gZmFsc2VcbiAgLyoq6aG16Z2i5Lyg5YC855So5LqO5Lyg6YCS5Yiw5a2Q57uE5Lu2ICovXG4gIHF1ZXJ5UGFyYW1zOiBhbnkgPSAnJ1xuXG4gIC8qKuaMh+Wummlk55qE5p2h55uu5L+h5oGvICovXG4gIGVudHJ5U2VsZWN0OiBhbnkgPSAnJ1xuXG4gIC8qKuiOt+WPluaPkOS6pOaMiemSruabv+i6q++8jOeUqOS6juecn+WunuinpuWPkeihqOWNleaPkOS6pCAqL1xuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucXVlcnlQYXJhbXMgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnF1ZXJ5UGFyYW1zXG4gICAgdGhpcy5uZXdFbnRpdHkgPSB0aGlzLmZiLmdyb3VwKG5ldyBDcmVhdGVPclVwZGF0ZUVudHJ5SW5wdXRCYXNlKCkpXG4gICAgaWYodGhpcy5xdWVyeVBhcmFtcy5SZXZpc2lvbkVudHJ5SWQpICAgYXdhaXQgdGhpcy5nZXRFbnRyeVNlbGVjdCgpO1xuICB9XG5cbiAgLyoq6I635Y+W5p2h55uu5L+h5oGvICovXG4gIGdldEVudHJ5U2VsZWN0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2UuZ2V0KHRoaXMucXVlcnlQYXJhbXMuUmV2aXNpb25FbnRyeUlkKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgdGhpcy5lbnRyeVNlbGVjdCA9IHJlc1xuICAgICAgICBcbiAgICAgICAgcmVzb2x2ZShyZXMpXG4gICAgICB9KVxuICAgIH0pXG4gIH1cblxuXG5cbiAgLyoq5L+d5a2YICovXG4gIHNhdmUoZHJhZnQpIHtcbiAgICB0aGlzLm5ld0VudGl0eS5wYXRjaFZhbHVlKHtcbiAgICAgIGRyYWZ0OiBkcmFmdFxuICAgIH0pXG4gICAgbGV0IGlucHV0ID0gdGhpcy5uZXdFbnRpdHkudmFsdWVcbiAgICBpbnB1dC5wdWJsaXNoVGltZSA9IG5ldyBEYXRlKG5ldyBEYXRlKGlucHV0LnB1Ymxpc2hUaW1lKS5nZXRUaW1lKCkgKyAoOCAqIDYwICogNjAgKiAxMDAwKSkudG9JU09TdHJpbmcoKVxuICAgIGlucHV0LmN1bHR1cmU9dGhpcy5uZXdFbnRpdHkuZ2V0KCdjdWx0dXJlJykudmFsdWVcbiAgICBjb25zb2xlLmxvZyhpbnB1dCwn5L+d5a2YJyx0aGlzLm5ld0VudGl0eSk7XG4gICAgXG4gICAgaWYgKCF0aGlzLm5ld0VudGl0eS52YWxpZCkgcmV0dXJuXG4gICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2UuY3JlYXRlKGlucHV0KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zS2l0OjpTYXZlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJycsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jbXMvYWRtaW4vZW50cmllc2BdKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlTGlzdFNlcnZpY2UudXBkYXRlTGlzdCgpO1xuICAgICAgfSk7XG4gICAgfSlcbiAgfVxuXG4gIC8qKuinpuWPkeeCueWHu+aMiemSruabv+i6qyAqL1xuICBjbGlja1N1Ym1pdCh0eXBlKSB7XG4gICAgdGhpcy5kcmFmdFR5cGUgPSB0eXBlXG4gICAgdGhpcy5zdWJtaXRjbGljay5uYXRpdmVFbGVtZW50LmNsaWNrKClcbiAgfVxuICAvKirov5Tlm57kuIrkuIDpobUgKi9cbiAgYmFja1RvKCkge1xuICAgIHRoaXMuX2xvY2F0aW9uLmJhY2soKVxuICB9XG5cblxuXG5cbn1cbiIsIjxmb3JtIGNsYXNzPVwicm93IGctMyBuZWVkcy12YWxpZGF0aW9uXCIgW2Zvcm1Hcm91cF09XCJuZXdFbnRpdHlcIiAobmdTdWJtaXQpPVwic2F2ZShkcmFmdFR5cGUpXCI+XG4gICAgPGFicC1wYWdlIFt0aXRsZV09XCInQ21zOjpOZXcnfCBhYnBMb2NhbGl6YXRpb25cIiBbdG9vbGJhcl09XCJ0cnVlXCI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIHN0eWxlPVwiZGlzcGxheTogbm9uZTtcIiAjc3VibWl0Y2xpY2s+PC9idXR0b24+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJlbnRyeVNlbGVjdDsgZWxzZSBlbHNlVGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxjbXMtY3JlYXRlLW9yLWVkaXQtZW50cmllcyBbZW50aXR5XT1cIm5ld0VudGl0eVwiIFtQYXJlbnRRdWVyeVBhcmFtc109XCJxdWVyeVBhcmFtc1wiXG4gICAgICAgICAgICAgICAgW3BhcmVudEVudHJ5U2VsZWN0XT1cImVudHJ5U2VsZWN0XCIgPjwvY21zLWNyZWF0ZS1vci1lZGl0LWVudHJpZXM+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cbiAgICAgICAgICAgIDxjbXMtY3JlYXRlLW9yLWVkaXQtZW50cmllcyBbZW50aXR5XT1cIm5ld0VudGl0eVwiXG4gICAgICAgICAgICAgICAgW1BhcmVudFF1ZXJ5UGFyYW1zXT1cInF1ZXJ5UGFyYW1zXCIgPjwvY21zLWNyZWF0ZS1vci1lZGl0LWVudHJpZXM+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9hYnAtcGFnZT5cbjwvZm9ybT4iXX0=