@dignite-ng/expand.cms 0.0.51 → 0.0.52

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 (448) hide show
  1. package/config/ng-package.json +6 -0
  2. package/config/src/cms-config.module.ts +12 -0
  3. package/config/src/components/domains/domains.component.html +17 -0
  4. package/config/src/components/domains/domains.component.scss +0 -0
  5. package/config/src/components/domains/domains.component.spec.ts +21 -0
  6. package/config/src/components/domains/domains.component.ts +109 -0
  7. package/config/src/components/site-language/site-language.component.html +31 -0
  8. package/config/src/components/site-language/site-language.component.scss +0 -0
  9. package/config/src/components/site-language/site-language.component.spec.ts +21 -0
  10. package/config/src/components/site-language/site-language.component.ts +117 -0
  11. package/config/{enums/index.d.ts → src/enums/index.ts} +1 -1
  12. package/config/src/enums/route-names.ts +8 -0
  13. package/config/{providers/index.d.ts → src/providers/index.ts} +1 -1
  14. package/config/src/providers/route.provider.ts +82 -0
  15. package/config/src/proxy/admin/domains/domain-admin.service.ts +38 -0
  16. package/config/{proxy/admin/domains/models.d.ts → src/proxy/admin/domains/models.ts} +9 -7
  17. package/config/src/proxy/dignite/abp/data/index.ts +1 -0
  18. package/config/src/proxy/dignite/abp/data/models.ts +4 -0
  19. package/config/src/proxy/dignite/abp/index.ts +2 -0
  20. package/config/src/proxy/dignite/cms/admin/domains/domain-admin.service.ts +47 -0
  21. package/config/src/proxy/dignite/cms/admin/domains/index.ts +2 -0
  22. package/config/src/proxy/dignite/cms/admin/domains/models.ts +9 -0
  23. package/config/src/proxy/dignite/cms/admin/dynamic-forms/form-admin.service.ts +21 -0
  24. package/config/src/proxy/dignite/cms/admin/dynamic-forms/models.ts +5 -0
  25. package/config/src/proxy/dignite/cms/admin/entries/entry-admin.service.ts +109 -0
  26. package/config/src/proxy/dignite/cms/admin/entries/models.ts +68 -0
  27. package/config/src/proxy/dignite/cms/admin/fields/field-admin.service.ts +64 -0
  28. package/config/src/proxy/dignite/cms/admin/fields/field-group-admin.service.ts +56 -0
  29. package/config/src/proxy/dignite/cms/admin/fields/models.ts +42 -0
  30. package/config/src/proxy/dignite/cms/admin/index.ts +7 -0
  31. package/config/src/proxy/dignite/cms/admin/sections/entry-type-admin.service.ts +55 -0
  32. package/{lib/proxy/admin/sections/models.d.ts → config/src/proxy/dignite/cms/admin/sections/models.ts} +81 -67
  33. package/config/src/proxy/dignite/cms/admin/sections/section-admin.service.ts +74 -0
  34. package/config/src/proxy/dignite/cms/admin/sites/models.ts +5 -0
  35. package/config/src/proxy/dignite/cms/admin/sites/site-admin.service.ts +30 -0
  36. package/config/src/proxy/dignite/cms/entries/entry-status.enum.ts +8 -0
  37. package/config/src/proxy/dignite/cms/fields/index.ts +1 -0
  38. package/config/src/proxy/dignite/cms/fields/models.ts +9 -0
  39. package/config/src/proxy/dignite/cms/index.ts +6 -0
  40. package/config/src/proxy/dignite/cms/sections/models.ts +14 -0
  41. package/config/src/proxy/dignite/cms/sections/section-type.enum.ts +9 -0
  42. package/config/src/proxy/dignite/cms/sites/index.ts +1 -0
  43. package/config/src/proxy/dignite/cms/sites/models.ts +5 -0
  44. package/config/src/proxy/dignite/cms-kit/admin/brand/brand-admin.service.ts +21 -0
  45. package/config/src/proxy/dignite/cms-kit/admin/brand/index.ts +2 -0
  46. package/config/src/proxy/dignite/cms-kit/admin/brand/models.ts +7 -0
  47. package/config/src/proxy/dignite/cms-kit/admin/index.ts +2 -0
  48. package/config/src/proxy/dignite/cms-kit/brand/brand.service.ts +20 -0
  49. package/config/src/proxy/dignite/cms-kit/brand/index.ts +2 -0
  50. package/config/src/proxy/dignite/cms-kit/brand/models.ts +7 -0
  51. package/config/src/proxy/dignite/cms-kit/index.ts +3 -0
  52. package/config/src/proxy/dignite/file-explorer/directories/file-descriptor.service.ts +65 -0
  53. package/config/src/proxy/dignite/file-explorer/directories/index.ts +2 -0
  54. package/config/src/proxy/dignite/file-explorer/directories/models.ts +35 -0
  55. package/config/src/proxy/dignite/file-explorer/files/file-descriptor.service.ts +101 -0
  56. package/config/src/proxy/dignite/file-explorer/files/index.ts +2 -0
  57. package/config/src/proxy/dignite/file-explorer/files/models.ts +61 -0
  58. package/config/src/proxy/dignite/file-explorer/index.ts +3 -0
  59. package/config/src/proxy/dignite/index.ts +6 -0
  60. package/config/src/proxy/dignite/travely/areas/index.ts +1 -0
  61. package/config/src/proxy/dignite/travely/areas/models.ts +5 -0
  62. package/config/src/proxy/dignite/travely/common/index.ts +1 -0
  63. package/config/src/proxy/dignite/travely/common/models.ts +5 -0
  64. package/config/src/proxy/dignite/travely/entity-snapshots/index.ts +1 -0
  65. package/config/src/proxy/dignite/travely/entity-snapshots/models.ts +7 -0
  66. package/config/src/proxy/dignite/travely/guides/index.ts +1 -0
  67. package/config/src/proxy/dignite/travely/guides/models.ts +26 -0
  68. package/config/src/proxy/dignite/travely/index.ts +9 -0
  69. package/config/src/proxy/dignite/travely/merchants/index.ts +1 -0
  70. package/config/src/proxy/dignite/travely/merchants/models.ts +9 -0
  71. package/config/src/proxy/dignite/travely/orders/index.ts +1 -0
  72. package/config/src/proxy/dignite/travely/orders/models.ts +52 -0
  73. package/config/src/proxy/dignite/travely/payment/index.ts +1 -0
  74. package/config/src/proxy/dignite/travely/payment/models.ts +9 -0
  75. package/config/src/proxy/dignite/travely/tours/booking-time-type.enum.ts +9 -0
  76. package/config/src/proxy/dignite/travely/tours/index.ts +5 -0
  77. package/config/src/proxy/dignite/travely/tours/models.ts +77 -0
  78. package/config/src/proxy/dignite/travely/tours/period-type.enum.ts +9 -0
  79. package/config/src/proxy/dignite/travely/tours/tour-recommendation-rank.enum.ts +12 -0
  80. package/config/src/proxy/dignite/travely/tours/tourist-type.enum.ts +8 -0
  81. package/config/src/proxy/microsoft/asp-net-core/index.ts +2 -0
  82. package/config/src/proxy/microsoft/asp-net-core/mvc/index.ts +1 -0
  83. package/config/src/proxy/microsoft/asp-net-core/mvc/models.ts +12 -0
  84. package/config/src/proxy/microsoft/extensions/index.ts +2 -0
  85. package/config/src/proxy/microsoft/extensions/primitives/index.ts +1 -0
  86. package/config/src/proxy/microsoft/extensions/primitives/models.ts +9 -0
  87. package/config/src/proxy/microsoft/index.ts +4 -0
  88. package/config/src/proxy/microsoft/net/http/headers/index.ts +1 -0
  89. package/config/src/proxy/microsoft/net/http/headers/models.ts +7 -0
  90. package/config/src/proxy/microsoft/net/http/index.ts +2 -0
  91. package/config/src/proxy/microsoft/net/index.ts +2 -0
  92. package/config/{public-api.d.ts → src/public-api.ts} +3 -3
  93. package/config/src/services/validators.service.ts +80 -0
  94. package/ng-package.json +10 -0
  95. package/package.json +7 -22
  96. package/src/lib/cms-routing.module.ts +102 -0
  97. package/src/lib/cms.module.ts +109 -0
  98. package/src/lib/components/admin/entries/create-or-edit-entries.component.html +137 -0
  99. package/src/lib/components/admin/entries/create-or-edit-entries.component.scss +1 -0
  100. package/src/lib/components/admin/entries/create-or-edit-entries.component.spec.ts +21 -0
  101. package/src/lib/components/admin/entries/create-or-edit-entries.component.ts +318 -0
  102. package/src/lib/components/admin/entries/create-or-update-entry-input-base.ts +33 -0
  103. package/src/lib/components/admin/entries/create.component.html +13 -0
  104. package/src/lib/components/admin/entries/create.component.scss +1 -0
  105. package/src/lib/components/admin/entries/create.component.spec.ts +21 -0
  106. package/src/lib/components/admin/entries/create.component.ts +110 -0
  107. package/src/lib/components/admin/entries/edit.component.html +9 -0
  108. package/src/lib/components/admin/entries/edit.component.scss +1 -0
  109. package/src/lib/components/admin/entries/edit.component.spec.ts +21 -0
  110. package/src/lib/components/admin/entries/edit.component.ts +111 -0
  111. package/src/lib/components/admin/entries/entries.component.html +112 -0
  112. package/src/lib/components/admin/entries/entries.component.scss +1 -0
  113. package/src/lib/components/admin/entries/entries.component.spec.ts +21 -0
  114. package/src/lib/components/admin/entries/entries.component.ts +216 -0
  115. package/src/lib/components/admin/entries/index.ts +4 -0
  116. package/src/lib/components/admin/fields/create-field.component.html +12 -0
  117. package/src/lib/components/admin/fields/create-field.component.scss +1 -0
  118. package/src/lib/components/admin/fields/create-field.component.spec.ts +21 -0
  119. package/src/lib/components/admin/fields/create-field.component.ts +82 -0
  120. package/src/lib/components/admin/fields/create-or-edit-field.component.html +40 -0
  121. package/src/lib/components/admin/fields/create-or-edit-field.component.scss +0 -0
  122. package/src/lib/components/admin/fields/create-or-edit-field.component.spec.ts +21 -0
  123. package/src/lib/components/admin/fields/create-or-edit-field.component.ts +121 -0
  124. package/src/lib/components/admin/fields/create-or-update-field-input-base.ts +33 -0
  125. package/src/lib/components/admin/fields/edit-field.component.html +16 -0
  126. package/src/lib/components/admin/fields/edit-field.component.scss +0 -0
  127. package/src/lib/components/admin/fields/edit-field.component.spec.ts +21 -0
  128. package/src/lib/components/admin/fields/edit-field.component.ts +101 -0
  129. package/src/lib/components/admin/fields/field-group.component.html +69 -0
  130. package/src/lib/components/admin/fields/field-group.component.scss +0 -0
  131. package/src/lib/components/admin/fields/field-group.component.spec.ts +21 -0
  132. package/src/lib/components/admin/fields/field-group.component.ts +151 -0
  133. package/src/lib/components/admin/fields/fields.component.html +74 -0
  134. package/src/lib/components/admin/fields/fields.component.scss +1 -0
  135. package/src/lib/components/admin/fields/fields.component.spec.ts +21 -0
  136. package/src/lib/components/admin/fields/fields.component.ts +109 -0
  137. package/src/lib/components/admin/fields/index.ts +6 -0
  138. package/src/lib/components/admin/index.ts +3 -0
  139. package/src/lib/components/admin/sections/create-or-update-sections-input-base.ts +32 -0
  140. package/src/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.ts +79 -0
  141. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.html +187 -0
  142. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.scss +1 -0
  143. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.spec.ts +21 -0
  144. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.ts +424 -0
  145. package/src/lib/components/admin/sections/entry-types/index.ts +2 -0
  146. package/src/lib/components/admin/sections/index.ts +3 -0
  147. package/src/lib/components/admin/sections/sections.component.html +188 -0
  148. package/src/lib/components/admin/sections/sections.component.scss +1 -0
  149. package/src/lib/components/admin/sections/sections.component.spec.ts +21 -0
  150. package/src/lib/components/admin/sections/sections.component.ts +302 -0
  151. package/src/lib/components/dynamic-form/entry/entry-config.component.html +36 -0
  152. package/src/lib/components/dynamic-form/entry/entry-config.component.scss +27 -0
  153. package/src/lib/components/dynamic-form/entry/entry-config.component.spec.ts +21 -0
  154. package/src/lib/components/dynamic-form/entry/entry-config.component.ts +114 -0
  155. package/src/lib/components/dynamic-form/entry/entry-config.ts +24 -0
  156. package/src/lib/components/dynamic-form/entry/entry-control.component.html +26 -0
  157. package/src/lib/components/dynamic-form/entry/entry-control.component.scss +1 -0
  158. package/src/lib/components/dynamic-form/entry/entry-control.component.spec.ts +21 -0
  159. package/src/lib/components/dynamic-form/entry/entry-control.component.ts +111 -0
  160. package/src/lib/components/dynamic-form/entry/index.ts +3 -0
  161. package/src/lib/components/dynamic-form/form-control-group.ts +27 -0
  162. package/src/lib/components/dynamic-form/index.ts +4 -0
  163. package/src/lib/components/dynamic-form/matrix/index.ts +3 -0
  164. package/src/lib/components/dynamic-form/matrix/matrix-config.component.html +148 -0
  165. package/src/lib/components/dynamic-form/matrix/matrix-config.component.scss +0 -0
  166. package/src/lib/components/dynamic-form/matrix/matrix-config.component.spec.ts +21 -0
  167. package/src/lib/components/dynamic-form/matrix/matrix-config.component.ts +239 -0
  168. package/src/lib/components/dynamic-form/matrix/matrix-config.ts +63 -0
  169. package/src/lib/components/dynamic-form/matrix/matrix-control.component.html +42 -0
  170. package/src/lib/components/dynamic-form/matrix/matrix-control.component.scss +0 -0
  171. package/src/lib/components/dynamic-form/matrix/matrix-control.component.spec.ts +21 -0
  172. package/src/lib/components/dynamic-form/matrix/matrix-control.component.ts +106 -0
  173. package/src/lib/components/dynamic-form/table/index.ts +3 -0
  174. package/src/lib/components/dynamic-form/table/table-config.component.html +85 -0
  175. package/src/lib/components/dynamic-form/table/table-config.component.scss +10 -0
  176. package/src/lib/components/dynamic-form/table/table-config.component.spec.ts +21 -0
  177. package/src/lib/components/dynamic-form/table/table-config.component.ts +170 -0
  178. package/src/lib/components/dynamic-form/table/table-config.ts +45 -0
  179. package/src/lib/components/dynamic-form/table/table-control.component.html +54 -0
  180. package/src/lib/components/dynamic-form/table/table-control.component.scss +1 -0
  181. package/src/lib/components/dynamic-form/table/table-control.component.spec.ts +21 -0
  182. package/src/lib/components/dynamic-form/table/table-control.component.ts +114 -0
  183. package/src/lib/components/index.ts +2 -0
  184. package/src/lib/constants/index.ts +1 -0
  185. package/src/lib/constants/styles.ts +20 -0
  186. package/src/lib/enums/ecms-component.ts +11 -0
  187. package/src/lib/enums/index.ts +1 -0
  188. package/src/lib/proxy/README.md +17 -0
  189. package/src/lib/proxy/admin/domains/domain-admin.service.ts +38 -0
  190. package/src/lib/proxy/admin/domains/index.ts +2 -0
  191. package/src/lib/proxy/admin/domains/models.ts +9 -0
  192. package/src/lib/proxy/admin/dynamic-forms/form-admin.service.ts +21 -0
  193. package/src/lib/proxy/admin/dynamic-forms/index.ts +2 -0
  194. package/src/lib/proxy/admin/dynamic-forms/models.ts +5 -0
  195. package/src/lib/proxy/admin/entries/entry-admin.service.ts +109 -0
  196. package/src/lib/proxy/admin/entries/index.ts +2 -0
  197. package/src/lib/proxy/admin/entries/models.ts +68 -0
  198. package/src/lib/proxy/admin/fields/field-admin.service.ts +64 -0
  199. package/src/lib/proxy/admin/fields/field-group-admin.service.ts +56 -0
  200. package/src/lib/proxy/admin/fields/index.ts +3 -0
  201. package/{lib/proxy/admin/fields/models.d.ts → src/lib/proxy/admin/fields/models.ts} +42 -34
  202. package/src/lib/proxy/admin/index.ts +7 -0
  203. package/src/lib/proxy/admin/sections/entry-type-admin.service.ts +55 -0
  204. package/src/lib/proxy/admin/sections/index.ts +3 -0
  205. package/src/lib/proxy/admin/sections/models.ts +81 -0
  206. package/src/lib/proxy/admin/sections/section-admin.service.ts +74 -0
  207. package/src/lib/proxy/admin/settings/site-settings-admin.service.ts +37 -0
  208. package/src/lib/proxy/dignite/abp/data/index.ts +1 -0
  209. package/src/lib/proxy/dignite/abp/data/models.ts +4 -0
  210. package/src/lib/proxy/dignite/abp/index.ts +2 -0
  211. package/src/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.ts +65 -0
  212. package/src/lib/proxy/dignite/file-explorer/directories/index.ts +2 -0
  213. package/src/lib/proxy/dignite/file-explorer/directories/models.ts +35 -0
  214. package/src/lib/proxy/dignite/file-explorer/files/file-descriptor.service.ts +86 -0
  215. package/src/lib/proxy/dignite/file-explorer/files/index.ts +2 -0
  216. package/src/lib/proxy/dignite/file-explorer/files/models.ts +58 -0
  217. package/src/lib/proxy/dignite/file-explorer/index.ts +3 -0
  218. package/src/lib/proxy/dignite/index.ts +3 -0
  219. package/src/lib/proxy/entries/entry-status.enum.ts +8 -0
  220. package/src/lib/proxy/entries/index.ts +1 -0
  221. package/src/lib/proxy/fields/index.ts +1 -0
  222. package/src/lib/proxy/fields/models.ts +9 -0
  223. package/src/lib/proxy/generate-proxy.json +11425 -0
  224. package/src/lib/proxy/index.ts +9 -0
  225. package/src/lib/proxy/microsoft/asp-net-core/index.ts +2 -0
  226. package/src/lib/proxy/microsoft/asp-net-core/mvc/index.ts +1 -0
  227. package/src/lib/proxy/microsoft/asp-net-core/mvc/models.ts +12 -0
  228. package/src/lib/proxy/microsoft/extensions/index.ts +2 -0
  229. package/src/lib/proxy/microsoft/extensions/primitives/index.ts +1 -0
  230. package/src/lib/proxy/microsoft/extensions/primitives/models.ts +9 -0
  231. package/src/lib/proxy/microsoft/index.ts +4 -0
  232. package/src/lib/proxy/microsoft/net/http/headers/index.ts +1 -0
  233. package/src/lib/proxy/microsoft/net/http/headers/models.ts +7 -0
  234. package/src/lib/proxy/microsoft/net/http/index.ts +2 -0
  235. package/src/lib/proxy/microsoft/net/index.ts +2 -0
  236. package/src/lib/proxy/sections/index.ts +2 -0
  237. package/src/lib/proxy/sections/models.ts +14 -0
  238. package/src/lib/proxy/sections/section-type.enum.ts +9 -0
  239. package/src/lib/proxy/settings/index.ts +1 -0
  240. package/src/lib/proxy/settings/models.ts +6 -0
  241. package/src/lib/proxy/volo/abp/content/index.ts +1 -0
  242. package/src/lib/proxy/volo/abp/content/models.ts +6 -0
  243. package/src/lib/proxy/volo/abp/index.ts +2 -0
  244. package/src/lib/proxy/volo/cms-kit/index.ts +2 -0
  245. package/src/lib/proxy/volo/cms-kit/users/index.ts +1 -0
  246. package/{lib/proxy/volo/cms-kit/users/models.d.ts → src/lib/proxy/volo/cms-kit/users/models.ts} +8 -7
  247. package/src/lib/proxy/volo/index.ts +3 -0
  248. package/src/lib/resolvers/extensions-props-action-token.resolver.ts +178 -0
  249. package/src/lib/resolvers/page-default-toolbar-actions.ts +170 -0
  250. package/src/lib/resolvers/table-default-entity-actions.ts +24 -0
  251. package/src/lib/resolvers/table-default-entity-props.ts +36 -0
  252. package/src/lib/services/appent-content.ts +13 -0
  253. package/src/lib/services/cms-api.service.ts +71 -0
  254. package/src/lib/services/cms.service.ts +18 -0
  255. package/src/lib/services/field-abstracts.service.ts +40 -0
  256. package/src/lib/services/index.ts +4 -0
  257. package/src/lib/services/simple-reuse-strategy.ts +74 -0
  258. package/src/lib/services/update-list.service.ts +15 -0
  259. package/src/lib/services/validators.service.ts +82 -0
  260. package/{public-api.d.ts → src/public-api.ts} +6 -2
  261. package/src/test.ts +26 -0
  262. package/tsconfig.lib.json +16 -0
  263. package/tsconfig.lib.prod.json +10 -0
  264. package/tsconfig.spec.json +17 -0
  265. package/config/cms-config.module.d.ts +0 -8
  266. package/config/components/domains/domains.component.d.ts +0 -29
  267. package/config/components/site-language/site-language.component.d.ts +0 -29
  268. package/config/enums/route-names.d.ts +0 -8
  269. package/config/index.d.ts +0 -5
  270. package/config/providers/route.provider.d.ts +0 -9
  271. package/config/proxy/admin/domains/domain-admin.service.d.ts +0 -13
  272. package/config/proxy/dignite/cms/admin/sites/models.d.ts +0 -4
  273. package/config/proxy/dignite/cms/admin/sites/site-admin.service.d.ts +0 -13
  274. package/config/proxy/dignite/cms/sites/models.d.ts +0 -4
  275. package/config/services/validators.service.d.ts +0 -16
  276. package/esm2022/config/cms-config.module.mjs +0 -18
  277. package/esm2022/config/components/domains/domains.component.mjs +0 -102
  278. package/esm2022/config/components/site-language/site-language.component.mjs +0 -108
  279. package/esm2022/config/dignite-ng-expand.cms-config.mjs +0 -5
  280. package/esm2022/config/enums/index.mjs +0 -2
  281. package/esm2022/config/enums/route-names.mjs +0 -10
  282. package/esm2022/config/providers/index.mjs +0 -2
  283. package/esm2022/config/providers/route.provider.mjs +0 -74
  284. package/esm2022/config/proxy/admin/domains/domain-admin.service.mjs +0 -32
  285. package/esm2022/config/proxy/admin/domains/index.mjs +0 -3
  286. package/esm2022/config/proxy/admin/domains/models.mjs +0 -2
  287. package/esm2022/config/proxy/dignite/cms/admin/sites/index.mjs +0 -3
  288. package/esm2022/config/proxy/dignite/cms/admin/sites/models.mjs +0 -2
  289. package/esm2022/config/proxy/dignite/cms/admin/sites/site-admin.service.mjs +0 -27
  290. package/esm2022/config/proxy/dignite/cms/sites/models.mjs +0 -2
  291. package/esm2022/config/public-api.mjs +0 -4
  292. package/esm2022/config/services/validators.service.mjs +0 -83
  293. package/esm2022/dignite-ng-expand.cms.mjs +0 -5
  294. package/esm2022/lib/cms-routing.module.mjs +0 -94
  295. package/esm2022/lib/cms.module.mjs +0 -130
  296. package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +0 -303
  297. package/esm2022/lib/components/admin/entries/create-or-update-entry-input-base.mjs +0 -32
  298. package/esm2022/lib/components/admin/entries/create.component.mjs +0 -108
  299. package/esm2022/lib/components/admin/entries/edit.component.mjs +0 -109
  300. package/esm2022/lib/components/admin/entries/entries.component.mjs +0 -198
  301. package/esm2022/lib/components/admin/entries/index.mjs +0 -5
  302. package/esm2022/lib/components/admin/fields/create-field.component.mjs +0 -80
  303. package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +0 -112
  304. package/esm2022/lib/components/admin/fields/create-or-update-field-input-base.mjs +0 -25
  305. package/esm2022/lib/components/admin/fields/edit-field.component.mjs +0 -103
  306. package/esm2022/lib/components/admin/fields/field-group.component.mjs +0 -131
  307. package/esm2022/lib/components/admin/fields/fields.component.mjs +0 -109
  308. package/esm2022/lib/components/admin/fields/index.mjs +0 -7
  309. package/esm2022/lib/components/admin/index.mjs +0 -4
  310. package/esm2022/lib/components/admin/sections/create-or-update-sections-input-base.mjs +0 -27
  311. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.mjs +0 -71
  312. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +0 -389
  313. package/esm2022/lib/components/admin/sections/entry-types/index.mjs +0 -3
  314. package/esm2022/lib/components/admin/sections/index.mjs +0 -4
  315. package/esm2022/lib/components/admin/sections/sections.component.mjs +0 -292
  316. package/esm2022/lib/components/dynamic-form/entry/entry-config.component.mjs +0 -112
  317. package/esm2022/lib/components/dynamic-form/entry/entry-config.mjs +0 -18
  318. package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +0 -105
  319. package/esm2022/lib/components/dynamic-form/entry/index.mjs +0 -4
  320. package/esm2022/lib/components/dynamic-form/form-control-group.mjs +0 -28
  321. package/esm2022/lib/components/dynamic-form/index.mjs +0 -5
  322. package/esm2022/lib/components/dynamic-form/matrix/index.mjs +0 -4
  323. package/esm2022/lib/components/dynamic-form/matrix/matrix-config.component.mjs +0 -214
  324. package/esm2022/lib/components/dynamic-form/matrix/matrix-config.mjs +0 -50
  325. package/esm2022/lib/components/dynamic-form/matrix/matrix-control.component.mjs +0 -98
  326. package/esm2022/lib/components/dynamic-form/table/index.mjs +0 -4
  327. package/esm2022/lib/components/dynamic-form/table/table-config.component.mjs +0 -151
  328. package/esm2022/lib/components/dynamic-form/table/table-config.mjs +0 -38
  329. package/esm2022/lib/components/dynamic-form/table/table-control.component.mjs +0 -105
  330. package/esm2022/lib/components/index.mjs +0 -3
  331. package/esm2022/lib/constants/styles.mjs +0 -21
  332. package/esm2022/lib/enums/ecms-component.mjs +0 -13
  333. package/esm2022/lib/enums/index.mjs +0 -2
  334. package/esm2022/lib/proxy/admin/dynamic-forms/form-admin.service.mjs +0 -22
  335. package/esm2022/lib/proxy/admin/dynamic-forms/index.mjs +0 -3
  336. package/esm2022/lib/proxy/admin/dynamic-forms/models.mjs +0 -2
  337. package/esm2022/lib/proxy/admin/entries/entry-admin.service.mjs +0 -70
  338. package/esm2022/lib/proxy/admin/entries/index.mjs +0 -3
  339. package/esm2022/lib/proxy/admin/entries/models.mjs +0 -2
  340. package/esm2022/lib/proxy/admin/fields/field-admin.service.mjs +0 -45
  341. package/esm2022/lib/proxy/admin/fields/field-group-admin.service.mjs +0 -41
  342. package/esm2022/lib/proxy/admin/fields/index.mjs +0 -4
  343. package/esm2022/lib/proxy/admin/fields/models.mjs +0 -2
  344. package/esm2022/lib/proxy/admin/sections/entry-type-admin.service.mjs +0 -41
  345. package/esm2022/lib/proxy/admin/sections/index.mjs +0 -4
  346. package/esm2022/lib/proxy/admin/sections/models.mjs +0 -2
  347. package/esm2022/lib/proxy/admin/sections/section-admin.service.mjs +0 -51
  348. package/esm2022/lib/proxy/admin/settings/index.mjs +0 -2
  349. package/esm2022/lib/proxy/admin/settings/site-settings-admin.service.mjs +0 -31
  350. package/esm2022/lib/proxy/dignite/abp/data/models.mjs +0 -2
  351. package/esm2022/lib/proxy/entries/entry-status.enum.mjs +0 -8
  352. package/esm2022/lib/proxy/entries/index.mjs +0 -2
  353. package/esm2022/lib/proxy/fields/models.mjs +0 -2
  354. package/esm2022/lib/proxy/sections/index.mjs +0 -3
  355. package/esm2022/lib/proxy/sections/models.mjs +0 -2
  356. package/esm2022/lib/proxy/sections/section-type.enum.mjs +0 -9
  357. package/esm2022/lib/proxy/settings/models.mjs +0 -2
  358. package/esm2022/lib/proxy/volo/cms-kit/users/models.mjs +0 -2
  359. package/esm2022/lib/resolvers/extensions-props-action-token.resolver.mjs +0 -132
  360. package/esm2022/lib/resolvers/page-default-toolbar-actions.mjs +0 -160
  361. package/esm2022/lib/services/appent-content.mjs +0 -15
  362. package/esm2022/lib/services/cms-api.service.mjs +0 -78
  363. package/esm2022/lib/services/cms.service.mjs +0 -21
  364. package/esm2022/lib/services/field-abstracts.service.mjs +0 -42
  365. package/esm2022/lib/services/index.mjs +0 -5
  366. package/esm2022/lib/services/simple-reuse-strategy.mjs +0 -64
  367. package/esm2022/lib/services/update-list.service.mjs +0 -19
  368. package/esm2022/lib/services/validators.service.mjs +0 -85
  369. package/esm2022/public-api.mjs +0 -6
  370. package/fesm2022/dignite-ng-expand.cms-config.mjs +0 -428
  371. package/fesm2022/dignite-ng-expand.cms-config.mjs.map +0 -1
  372. package/fesm2022/dignite-ng-expand.cms.mjs +0 -3913
  373. package/fesm2022/dignite-ng-expand.cms.mjs.map +0 -1
  374. package/index.d.ts +0 -5
  375. package/lib/cms-routing.module.d.ts +0 -7
  376. package/lib/cms.module.d.ts +0 -34
  377. package/lib/components/admin/entries/create-or-edit-entries.component.d.ts +0 -96
  378. package/lib/components/admin/entries/create-or-update-entry-input-base.d.ts +0 -23
  379. package/lib/components/admin/entries/create.component.d.ts +0 -47
  380. package/lib/components/admin/entries/edit.component.d.ts +0 -47
  381. package/lib/components/admin/entries/entries.component.d.ts +0 -66
  382. package/lib/components/admin/entries/index.d.ts +0 -4
  383. package/lib/components/admin/fields/create-field.component.d.ts +0 -37
  384. package/lib/components/admin/fields/create-or-edit-field.component.d.ts +0 -38
  385. package/lib/components/admin/fields/create-or-update-field-input-base.d.ts +0 -16
  386. package/lib/components/admin/fields/edit-field.component.d.ts +0 -46
  387. package/lib/components/admin/fields/field-group.component.d.ts +0 -58
  388. package/lib/components/admin/fields/fields.component.d.ts +0 -35
  389. package/lib/components/admin/fields/index.d.ts +0 -6
  390. package/lib/components/admin/index.d.ts +0 -3
  391. package/lib/components/admin/sections/create-or-update-sections-input-base.d.ts +0 -17
  392. package/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.d.ts +0 -38
  393. package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +0 -138
  394. package/lib/components/admin/sections/entry-types/index.d.ts +0 -2
  395. package/lib/components/admin/sections/index.d.ts +0 -3
  396. package/lib/components/admin/sections/sections.component.d.ts +0 -64
  397. package/lib/components/dynamic-form/entry/entry-config.component.d.ts +0 -39
  398. package/lib/components/dynamic-form/entry/entry-config.d.ts +0 -9
  399. package/lib/components/dynamic-form/entry/entry-control.component.d.ts +0 -35
  400. package/lib/components/dynamic-form/entry/index.d.ts +0 -3
  401. package/lib/components/dynamic-form/form-control-group.d.ts +0 -4
  402. package/lib/components/dynamic-form/index.d.ts +0 -4
  403. package/lib/components/dynamic-form/matrix/index.d.ts +0 -3
  404. package/lib/components/dynamic-form/matrix/matrix-config.component.d.ts +0 -73
  405. package/lib/components/dynamic-form/matrix/matrix-config.d.ts +0 -24
  406. package/lib/components/dynamic-form/matrix/matrix-control.component.d.ts +0 -39
  407. package/lib/components/dynamic-form/table/index.d.ts +0 -3
  408. package/lib/components/dynamic-form/table/table-config.component.d.ts +0 -58
  409. package/lib/components/dynamic-form/table/table-config.d.ts +0 -18
  410. package/lib/components/dynamic-form/table/table-control.component.d.ts +0 -39
  411. package/lib/components/index.d.ts +0 -2
  412. package/lib/constants/styles.d.ts +0 -2
  413. package/lib/enums/ecms-component.d.ts +0 -11
  414. package/lib/enums/index.d.ts +0 -1
  415. package/lib/proxy/admin/dynamic-forms/form-admin.service.d.ts +0 -12
  416. package/lib/proxy/admin/dynamic-forms/models.d.ts +0 -4
  417. package/lib/proxy/admin/entries/entry-admin.service.d.ts +0 -22
  418. package/lib/proxy/admin/entries/models.d.ts +0 -60
  419. package/lib/proxy/admin/fields/field-admin.service.d.ts +0 -17
  420. package/lib/proxy/admin/fields/field-group-admin.service.d.ts +0 -16
  421. package/lib/proxy/admin/sections/entry-type-admin.service.d.ts +0 -15
  422. package/lib/proxy/admin/sections/section-admin.service.d.ts +0 -18
  423. package/lib/proxy/admin/settings/site-settings-admin.service.d.ts +0 -13
  424. package/lib/proxy/dignite/abp/data/models.d.ts +0 -3
  425. package/lib/proxy/entries/entry-status.enum.d.ts +0 -5
  426. package/lib/proxy/fields/models.d.ts +0 -8
  427. package/lib/proxy/sections/models.d.ts +0 -12
  428. package/lib/proxy/sections/section-type.enum.d.ts +0 -6
  429. package/lib/proxy/settings/models.d.ts +0 -5
  430. package/lib/resolvers/extensions-props-action-token.resolver.d.ts +0 -71
  431. package/lib/resolvers/page-default-toolbar-actions.d.ts +0 -18
  432. package/lib/services/appent-content.d.ts +0 -1
  433. package/lib/services/cms-api.service.d.ts +0 -20
  434. package/lib/services/cms.service.d.ts +0 -10
  435. package/lib/services/field-abstracts.service.d.ts +0 -20
  436. package/lib/services/index.d.ts +0 -4
  437. package/lib/services/simple-reuse-strategy.d.ts +0 -13
  438. package/lib/services/update-list.service.d.ts +0 -9
  439. package/lib/services/validators.service.d.ts +0 -17
  440. /package/config/{proxy/admin/domains/index.d.ts → src/proxy/admin/domains/index.ts} +0 -0
  441. /package/{lib/proxy/admin/dynamic-forms/index.d.ts → config/src/proxy/dignite/cms/admin/dynamic-forms/index.ts} +0 -0
  442. /package/{lib/proxy/admin/entries/index.d.ts → config/src/proxy/dignite/cms/admin/entries/index.ts} +0 -0
  443. /package/{lib/proxy/admin/fields/index.d.ts → config/src/proxy/dignite/cms/admin/fields/index.ts} +0 -0
  444. /package/{lib/proxy/admin/sections/index.d.ts → config/src/proxy/dignite/cms/admin/sections/index.ts} +0 -0
  445. /package/config/{proxy/dignite/cms/admin/sites/index.d.ts → src/proxy/dignite/cms/admin/sites/index.ts} +0 -0
  446. /package/{lib/proxy/entries/index.d.ts → config/src/proxy/dignite/cms/entries/index.ts} +0 -0
  447. /package/{lib/proxy/sections/index.d.ts → config/src/proxy/dignite/cms/sections/index.ts} +0 -0
  448. /package/{lib/proxy/admin/settings/index.d.ts → src/lib/proxy/admin/settings/index.ts} +0 -0
@@ -1,130 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CoreModule, LazyModuleFactory } from '@abp/ng.core';
3
- import { ThemeSharedModule } from '@abp/ng.theme.shared';
4
- import { CmsRoutingModule } from './cms-routing.module';
5
- import { CreateComponent, CreateFieldComponent, CreateOrEditComponent, CreateOrEditEntriesComponent, CreateOrEditFieldComponent, EditComponent, EditFieldComponent, EntriesComponent, FieldGroupComponent, FieldsComponent, SectionsComponent, MatrixConfigComponent, MatrixControlComponent, TableConfigComponent, TableControlComponent, EntryConfigComponent, EntryControlComponent, FieldControlGroup } from './components';
6
- import { NgbDropdownModule, NgbNavModule, NgbAccordionModule, } from '@ng-bootstrap/ng-bootstrap';
7
- import { FormsModule } from '@angular/forms';
8
- import { PageModule } from '@abp/ng.components/page';
9
- import { NzSelectModule } from 'ng-zorro-antd/select';
10
- import { DynamicFormModule } from '@dignite-ng/expand.dynamic-form';
11
- import { fielFieldControlGroup } from '@dignite-ng/expand.file-explorer';
12
- import { ckEditorFieldControlGroup } from '@dignite-ng/expand.ck-editor';
13
- import { Toolbar_Action_Contributors, Entity_Action_Contributors, Entity_Props_Contributors } from './resolvers/extensions-props-action-token.resolver';
14
- import * as i0 from "@angular/core";
15
- import * as i1 from "@dignite-ng/expand.dynamic-form";
16
- export class CmsModule {
17
- static forChild(options = {}) {
18
- return {
19
- ngModule: CmsModule,
20
- providers: [
21
- {
22
- provide: Toolbar_Action_Contributors,
23
- useValue: options.toolbarActionContributors,
24
- },
25
- {
26
- provide: Entity_Action_Contributors,
27
- useValue: options.entityActionContributors,
28
- },
29
- {
30
- provide: Entity_Props_Contributors,
31
- useValue: options.entityPropContributors,
32
- },
33
- ],
34
- };
35
- }
36
- static forLazy(options = {}) {
37
- return new LazyModuleFactory(CmsModule.forChild(options));
38
- }
39
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CmsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
40
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: CmsModule, declarations: [EntriesComponent,
41
- FieldsComponent,
42
- SectionsComponent,
43
- FieldGroupComponent,
44
- CreateFieldComponent,
45
- EditFieldComponent,
46
- CreateOrEditFieldComponent,
47
- CreateOrEditComponent,
48
- CreateComponent,
49
- EditComponent,
50
- CreateOrEditEntriesComponent,
51
- TableConfigComponent,
52
- TableControlComponent,
53
- MatrixConfigComponent,
54
- MatrixControlComponent,
55
- EntryConfigComponent,
56
- EntryControlComponent], imports: [CoreModule,
57
- ThemeSharedModule,
58
- FormsModule,
59
- CmsRoutingModule,
60
- NgbNavModule,
61
- NgbAccordionModule,
62
- NgbDropdownModule,
63
- PageModule,
64
- NzSelectModule, i1.DynamicFormModule], exports: [TableConfigComponent,
65
- TableControlComponent,
66
- MatrixConfigComponent,
67
- MatrixControlComponent,
68
- EntryConfigComponent,
69
- EntryControlComponent] }); }
70
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CmsModule, imports: [CoreModule,
71
- ThemeSharedModule,
72
- FormsModule,
73
- CmsRoutingModule,
74
- NgbNavModule,
75
- NgbAccordionModule,
76
- NgbDropdownModule,
77
- PageModule,
78
- NzSelectModule,
79
- DynamicFormModule.forRoot({
80
- cmsFieldControlGroup: [...FieldControlGroup, ...fielFieldControlGroup, ...ckEditorFieldControlGroup]
81
- })] }); }
82
- }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CmsModule, decorators: [{
84
- type: NgModule,
85
- args: [{
86
- declarations: [
87
- EntriesComponent,
88
- FieldsComponent,
89
- SectionsComponent,
90
- FieldGroupComponent,
91
- CreateFieldComponent,
92
- EditFieldComponent,
93
- CreateOrEditFieldComponent,
94
- CreateOrEditComponent,
95
- CreateComponent,
96
- EditComponent,
97
- CreateOrEditEntriesComponent,
98
- TableConfigComponent,
99
- TableControlComponent,
100
- MatrixConfigComponent,
101
- MatrixControlComponent,
102
- EntryConfigComponent,
103
- EntryControlComponent,
104
- ],
105
- imports: [
106
- CoreModule,
107
- ThemeSharedModule,
108
- FormsModule,
109
- CmsRoutingModule,
110
- NgbNavModule,
111
- NgbAccordionModule,
112
- NgbDropdownModule,
113
- PageModule,
114
- NzSelectModule,
115
- DynamicFormModule.forRoot({
116
- cmsFieldControlGroup: [...FieldControlGroup, ...fielFieldControlGroup, ...ckEditorFieldControlGroup]
117
- }),
118
- ],
119
- exports: [
120
- TableConfigComponent,
121
- TableControlComponent,
122
- MatrixConfigComponent,
123
- MatrixControlComponent,
124
- EntryConfigComponent,
125
- EntryControlComponent,
126
- ],
127
- providers: [],
128
- }]
129
- }] });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY21zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvbGliL2Ntcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBZ0QsTUFBTSxlQUFlLENBQUM7QUFDdkYsT0FBTyxFQUFFLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsNEJBQTRCLEVBQzVCLDBCQUEwQixFQUMxQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsc0JBQXNCLEVBQ3RCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDckIsb0JBQW9CLEVBQ3BCLHFCQUFxQixFQUNyQixpQkFBaUIsRUFDbEIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osa0JBQWtCLEdBQ25CLE1BQU0sNEJBQTRCLENBQUM7QUFDcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDekUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sOEJB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QixxQkFBcUI7cUJBQ3RCO29CQUNELFNBQVMsRUFBRSxFQUNWO2lCQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUsIE5nTW9kdWxlRmFjdG9yeSwgTW9kdWxlV2l0aFByb3ZpZGVycywgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvcmVNb2R1bGUsIExhenlNb2R1bGVGYWN0b3J5IH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgVGhlbWVTaGFyZWRNb2R1bGUgfSBmcm9tICdAYWJwL25nLnRoZW1lLnNoYXJlZCc7XHJcbmltcG9ydCB7IENtc1JvdXRpbmdNb2R1bGUgfSBmcm9tICcuL2Ntcy1yb3V0aW5nLm1vZHVsZSc7XHJcbmltcG9ydCB7XHJcbiAgQ3JlYXRlQ29tcG9uZW50LFxyXG4gIENyZWF0ZUZpZWxkQ29tcG9uZW50LFxyXG4gIENyZWF0ZU9yRWRpdENvbXBvbmVudCxcclxuICBDcmVhdGVPckVkaXRFbnRyaWVzQ29tcG9uZW50LFxyXG4gIENyZWF0ZU9yRWRpdEZpZWxkQ29tcG9uZW50LFxyXG4gIEVkaXRDb21wb25lbnQsXHJcbiAgRWRpdEZpZWxkQ29tcG9uZW50LFxyXG4gIEVudHJpZXNDb21wb25lbnQsXHJcbiAgRmllbGRHcm91cENvbXBvbmVudCxcclxuICBGaWVsZHNDb21wb25lbnQsXHJcbiAgU2VjdGlvbnNDb21wb25lbnQsXHJcbiAgTWF0cml4Q29uZmlnQ29tcG9uZW50LFxyXG4gIE1hdHJpeENvbnRyb2xDb21wb25lbnQsXHJcbiAgVGFibGVDb25maWdDb21wb25lbnQsXHJcbiAgVGFibGVDb250cm9sQ29tcG9uZW50LFxyXG4gIEVudHJ5Q29uZmlnQ29tcG9uZW50LFxyXG4gIEVudHJ5Q29udHJvbENvbXBvbmVudCxcclxuICBGaWVsZENvbnRyb2xHcm91cFxyXG59IGZyb20gJy4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7XHJcbiAgTmdiRHJvcGRvd25Nb2R1bGUsXHJcbiAgTmdiTmF2TW9kdWxlLFxyXG4gIE5nYkFjY29yZGlvbk1vZHVsZSxcclxufSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBQYWdlTW9kdWxlIH0gZnJvbSAnQGFicC9uZy5jb21wb25lbnRzL3BhZ2UnO1xyXG5pbXBvcnQgeyBOelNlbGVjdE1vZHVsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvc2VsZWN0JztcclxuaW1wb3J0IHsgRHluYW1pY0Zvcm1Nb2R1bGUgfSBmcm9tICdAZGlnbml0ZS1uZy9leHBhbmQuZHluYW1pYy1mb3JtJztcclxuaW1wb3J0IHsgZmllbEZpZWxkQ29udHJvbEdyb3VwIH0gZnJvbSAnQGRpZ25pdGUtbmcvZXhwYW5kLmZpbGUtZXhwbG9yZXInO1xyXG5pbXBvcnQgeyBja0VkaXRvckZpZWxkQ29udHJvbEdyb3VwIH0gZnJvbSAnQGRpZ25pdGUtbmcvZXhwYW5kLmNrLWVkaXRvcic7XHJcbmltcG9ydCB7IFRvb2xiYXJfQWN0aW9uX0NvbnRyaWJ1dG9ycywgRW50aXR5X0FjdGlvbl9Db250cmlidXRvcnMsIEVudGl0eV9Qcm9wc19Db250cmlidXRvcnMgfSBmcm9tICcuL3Jlc29sdmVycy9leHRlbnNpb25zLXByb3BzLWFjdGlvbi10b2tlbi5yZXNvbHZlcic7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgRW50cmllc0NvbXBvbmVudCxcclxuICAgIEZpZWxkc0NvbXBvbmVudCxcclxuICAgIFNlY3Rpb25zQ29tcG9uZW50LFxyXG4gICAgRmllbGRHcm91cENvbXBvbmVudCxcclxuICAgIENyZWF0ZUZpZWxkQ29tcG9uZW50LFxyXG4gICAgRWRpdEZpZWxkQ29tcG9uZW50LFxyXG4gICAgQ3JlYXRlT3JFZGl0RmllbGRDb21wb25lbnQsXHJcbiAgICBDcmVhdGVPckVkaXRDb21wb25lbnQsXHJcbiAgICBDcmVhdGVDb21wb25lbnQsXHJcbiAgICBFZGl0Q29tcG9uZW50LFxyXG4gICAgQ3JlYXRlT3JFZGl0RW50cmllc0NvbXBvbmVudCxcclxuICAgIFRhYmxlQ29uZmlnQ29tcG9uZW50LFxyXG4gICAgVGFibGVDb250cm9sQ29tcG9uZW50LFxyXG4gICAgTWF0cml4Q29uZmlnQ29tcG9uZW50LFxyXG4gICAgTWF0cml4Q29udHJvbENvbXBvbmVudCxcclxuICAgIEVudHJ5Q29uZmlnQ29tcG9uZW50LFxyXG4gICAgRW50cnlDb250cm9sQ29tcG9uZW50LFxyXG4gICAgXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb3JlTW9kdWxlLFxyXG4gICAgVGhlbWVTaGFyZWRNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIENtc1JvdXRpbmdNb2R1bGUsXHJcbiAgICBOZ2JOYXZNb2R1bGUsXHJcbiAgICBOZ2JBY2NvcmRpb25Nb2R1bGUsXHJcbiAgICBOZ2JEcm9wZG93bk1vZHVsZSxcclxuICAgIFBhZ2VNb2R1bGUsXHJcbiAgICBOelNlbGVjdE1vZHVsZSxcclxuICAgIER5bmFtaWNGb3JtTW9kdWxlLmZvclJvb3Qoe1xyXG4gICAgICBjbXNGaWVsZENvbnRyb2xHcm91cDogWy4uLkZpZWxkQ29udHJvbEdyb3VwLCAuLi5maWVsRmllbGRDb250cm9sR3JvdXAsIC4uLmNrRWRpdG9yRmllbGRDb250cm9sR3JvdXBdXHJcbiAgICB9KSxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFRhYmxlQ29uZmlnQ29tcG9uZW50LFxyXG4gICAgVGFibGVDb250cm9sQ29tcG9uZW50LFxyXG4gICAgTWF0cml4Q29uZmlnQ29tcG9uZW50LFxyXG4gICAgTWF0cml4Q29udHJvbENvbXBvbmVudCxcclxuICAgIEVudHJ5Q29uZmlnQ29tcG9uZW50LFxyXG4gICAgRW50cnlDb250cm9sQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgXSxcclxuXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDbXNNb2R1bGUge1xyXG5cclxuICBzdGF0aWMgZm9yQ2hpbGQob3B0aW9uczogYW55ID0ge30pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPENtc01vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IENtc01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogVG9vbGJhcl9BY3Rpb25fQ29udHJpYnV0b3JzLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMudG9vbGJhckFjdGlvbkNvbnRyaWJ1dG9ycyxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEVudGl0eV9BY3Rpb25fQ29udHJpYnV0b3JzLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnMuZW50aXR5QWN0aW9uQ29udHJpYnV0b3JzLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogRW50aXR5X1Byb3BzX0NvbnRyaWJ1dG9ycyxcclxuICAgICAgICAgIHVzZVZhbHVlOiBvcHRpb25zLmVudGl0eVByb3BDb250cmlidXRvcnMsXHJcbiAgICAgICAgfSxcclxuICAgICAgXSxcclxuICAgIH07XHJcbiAgfVxyXG4gIHN0YXRpYyBmb3JMYXp5KG9wdGlvbnM6IGFueSA9IHt9KTogTmdNb2R1bGVGYWN0b3J5PENtc01vZHVsZT4ge1xyXG4gICAgcmV0dXJuIG5ldyBMYXp5TW9kdWxlRmFjdG9yeShDbXNNb2R1bGUuZm9yQ2hpbGQob3B0aW9ucykpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,303 +0,0 @@
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
- export class CreateOrEditEntriesComponent {
17
- constructor(toaster, _location, configState, _SectionAdminService, _EntryAdminService, datePipe, _LocalizationService, router, _CmsApiService) {
18
- this.toaster = toaster;
19
- this._location = _location;
20
- this.configState = configState;
21
- this._SectionAdminService = _SectionAdminService;
22
- this._EntryAdminService = _EntryAdminService;
23
- this.datePipe = datePipe;
24
- this._LocalizationService = _LocalizationService;
25
- this.router = router;
26
- this._CmsApiService = _CmsApiService;
27
- /**语言 */
28
- this.cultureName = '';
29
- /**条目类型id */
30
- this.entryTypeId = '';
31
- /**新建版本的版本id,同条目id */
32
- this.RevisionEntryId = '';
33
- /**选择的条目项 */
34
- this.entryTypesItem = '';
35
- /**版块id */
36
- this.sectionId = '';
37
- /**版块详情 */
38
- this.SectionSelect = '';
39
- /**语言列表 */
40
- this.languagesList = [];
41
- /**条目类型列表-用于选择上级条目 */
42
- this.entryTypesList = [];
43
- /**版本列表 */
44
- this.AllVersionsList = [];
45
- /**是否是编辑 */
46
- this.isEdit = false;
47
- /**来自父组件的传值 */
48
- this.FromParentQueryParams = '';
49
- /**指定id的条目信息 */
50
- this.entrySelect = '';
51
- this.time = 0;
52
- this.config = inject(ConfigStateService);
53
- }
54
- set ParentQueryParams(v) {
55
- if (v) {
56
- this.FromParentQueryParams = v;
57
- }
58
- }
59
- set entity(v) {
60
- if (v) {
61
- this._entity = v;
62
- }
63
- }
64
- set parentEntrySelect(v) {
65
- if (v) {
66
- let V_extraProperties = this._CmsApiService.deepClone(this.convertExtraProperties(v.extraProperties));
67
- v.extraProperties = V_extraProperties;
68
- this.entrySelect = v;
69
- }
70
- }
71
- /**将对象中的ExtraProperties赋值到extraProperties */
72
- convertExtraProperties(obj) {
73
- for (let key in obj) {
74
- if (Array.isArray(obj[key])) {
75
- obj[key].forEach(item => {
76
- if (item.hasOwnProperty('ExtraProperties')) {
77
- item['extraProperties'] = item['ExtraProperties'];
78
- }
79
- });
80
- }
81
- }
82
- return obj;
83
- }
84
- /**别名表单实体 */
85
- get sluginput() {
86
- return this._entity.get('slug');
87
- }
88
- /**语言表单实体 */
89
- get cultureinput() {
90
- return this._entity.get('culture');
91
- }
92
- /**语言表单实体影子 */
93
- get culture_shadowInput() {
94
- return this._entity.get('culture_shadow');
95
- }
96
- /**extraProperties配置表单实体 */
97
- get extraProperties() {
98
- return this._entity.get('extraProperties');
99
- }
100
- async ngAfterContentInit() {
101
- //Called after ngOnInit when the component's or directive's content has been initialized.
102
- //Add 'implements AfterContentInit' to the class.
103
- let queryParams = this.FromParentQueryParams;
104
- if (this._entity && this.FromParentQueryParams) {
105
- this._entity.setControl('slug', new FormControl('', {
106
- validators: Validators.required,
107
- asyncValidators: this.repetitionAsyncValidator(),
108
- updateOn: 'blur'
109
- }));
110
- this._entity.setControl('culture_shadow', new FormControl('', {
111
- validators: [Validators.required],
112
- asyncValidators: this.cultureAsyncValidator_test(),
113
- }));
114
- this._entity.get('culture').disable();
115
- if (queryParams.RevisionEntryId && this.entrySelect) {
116
- this.RevisionEntryId = queryParams.RevisionEntryId;
117
- this.setEntryconfig(this.entrySelect);
118
- }
119
- else {
120
- this.setEntryconfig(queryParams);
121
- }
122
- if (this.sectionId)
123
- await this.getSectionSelect();
124
- if (this.RevisionEntryId)
125
- await this.getAllVersionsList();
126
- }
127
- }
128
- /**定义自定义异步验证 */
129
- cultureAsyncValidator_test() {
130
- return (ctrl) => {
131
- return new Promise(resolve => {
132
- let subculture = this._entity?.get('culture').value;
133
- if (subculture == this.entrySelect?.culture || this.SectionSelect.type !== 0) {
134
- resolve(null);
135
- return;
136
- }
137
- this._EntryAdminService.cultureExistWithSingleSection({
138
- culture: subculture,
139
- sectionId: this.sectionId,
140
- entryTypeId: this.entryTypeId
141
- }).subscribe(res => {
142
- if (res) {
143
- resolve({ repetition: this._LocalizationService.instant(`Cms::EntriesAlreadyExistEntryType`, this.entryTypesItem.displayName, this.languagesList.find(el => el.cultureName == subculture).displayName) });
144
- }
145
- else {
146
- resolve(null);
147
- }
148
- });
149
- });
150
- };
151
- }
152
- /**
153
- * 设置条目详情
154
- * @param {object} source - 数据源对象
155
- */
156
- setEntryconfig(source) {
157
- this.entryTypeId = source.entryTypeId;
158
- this.cultureName = source.culture || source.cultureName;
159
- this.sectionId = source.sectionId;
160
- }
161
- /**定义自定义异步验证 */
162
- repetitionAsyncValidator() {
163
- return (ctrl) => {
164
- return new Promise(resolve => {
165
- let subslug = this._entity?.get('slug').value;
166
- if (subslug == this.entrySelect?.slug) {
167
- resolve(null);
168
- return;
169
- }
170
- this._EntryAdminService.slugExists({
171
- culture: this.cultureName,
172
- sectionId: this.sectionId,
173
- slug: subslug
174
- }).subscribe(res => {
175
- if (res) {
176
- resolve({ repetition: this._LocalizationService.instant(`Cms::EntrySlug{0}AlreadyExist`, ctrl.value) });
177
- }
178
- else {
179
- resolve(null);
180
- }
181
- });
182
- });
183
- };
184
- }
185
- /**获取版块详情 */
186
- getSectionSelect() {
187
- return new Promise((resolve, rejects) => {
188
- this._SectionAdminService.get(this.sectionId).subscribe(async (res) => {
189
- let languages = this.configState.getDeep('localization.languages');
190
- this.languagesList = languages;
191
- let entryTypesItem = res.entryTypes.find(el => el.id == this.entryTypeId);
192
- this.SectionSelect = res;
193
- await this.getTypeEntryList();
194
- this.entryTypesItem = entryTypesItem;
195
- this.entryTypesList = res.entryTypes.filter(el => el.id == this.entryTypeId);
196
- this._entity.patchValue({
197
- ...this.entrySelect,
198
- initialVersionId: this.entrySelect?.initialVersionId || this.RevisionEntryId || '',
199
- culture: this.cultureName,
200
- culture_shadow: this.cultureName,
201
- entryTypeId: this.entryTypeId,
202
- publishTime: this.datePipe.transform(new Date(), 'yyyy-MM-dd HH:mm:ss'),
203
- });
204
- resolve(true);
205
- });
206
- });
207
- }
208
- /**获取条目类型下所有条目列表 */
209
- getTypeEntryList() {
210
- return new Promise((resolve, rejects) => {
211
- this._EntryAdminService.getList({
212
- sectionId: this.sectionId,
213
- maxResultCount: 1000,
214
- culture: this.cultureName
215
- }).subscribe((res) => {
216
- let entryTypesList = res.items.filter(el => el.id != this.entrySelect.id);
217
- let parentList = entryTypesList.filter(el => !el.parentId);
218
- parentList.forEach(el => {
219
- let layer = 0;
220
- el.layer = new Array(layer);
221
- el.children = this.groupByParentId(entryTypesList, el.id, (layer + 1));
222
- });
223
- this.entryTypesList = parentList;
224
- resolve(res);
225
- });
226
- });
227
- }
228
- /**对数组按照父子关系进行分组 */
229
- groupByParentId(arr, id = '', layer) {
230
- let result = [];
231
- result = arr.filter(el => el.parentId == id);
232
- result.forEach(el => {
233
- el.layer = new Array(layer);
234
- el.children = this.groupByParentId(arr, el.id, (layer + 1));
235
- });
236
- return result;
237
- }
238
- /**获取条目版本列表 */
239
- getAllVersionsList() {
240
- return new Promise((resolve, rejects) => {
241
- this._EntryAdminService.getAllVersions(this.RevisionEntryId).subscribe(res => {
242
- this.AllVersionsList = res.items;
243
- resolve(res);
244
- });
245
- });
246
- }
247
- /**标题转化别名 */
248
- setTitleToSlugBlur(event) {
249
- let val = event.target.value;
250
- let slug = this._entity.get('slug');
251
- let pinyinstr = '';
252
- if (slug.value)
253
- return;
254
- pinyinstr = this._CmsApiService.chineseToPinyin(val);
255
- this._entity.patchValue({
256
- slug: pinyinstr || val
257
- });
258
- }
259
- /**使用Unicode编码范围判断是否是中文字符 */
260
- isChinese(str) {
261
- return /^[\u4e00-\u9fa5]+$/.test(str);
262
- }
263
- /**激活 */
264
- ActivatedVersion(VersionId) {
265
- this._EntryAdminService.activate(VersionId).subscribe((res) => {
266
- this.AllVersionsList.forEach(el => {
267
- el.isActivatedVersion = el.id === VersionId;
268
- });
269
- return;
270
- });
271
- }
272
- /**编辑版本 */
273
- toEditUrl(id) {
274
- this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {
275
- this.router.navigate([`/cms/admin/entries/${id}/edit`]);
276
- });
277
- }
278
- /**删除版本 */
279
- delectVersion(vid) {
280
- this._EntryAdminService.delete(vid).subscribe(res => {
281
- this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));
282
- this.getAllVersionsList();
283
- });
284
- }
285
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", 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 }); }
286
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", 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\" *ngIf=\"SectionSelect.type===1\">\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.title}}</option>\n <ng-container *ngFor=\"let el of item.children\">\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\n $implicit: {\n value: el,\n }\n }\"></ng-container>\n <ng-template #childTemplate let-data>\n <option [value]=\"data.value.id\">\n <ng-container *ngFor=\"let item of data.value.layer\">--</ng-container>\n {{data.value.title}}</option>\n <ng-container *ngFor=\"let el of data.value.children\">\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\n $implicit: {\n value: el,\n }\n }\"></ng-container>\n </ng-container>\n\n </ng-template>\n </ng-container>\n\n </ng-container>\n </select>\n\n\n\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\n 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: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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", "info", "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: ["tabindex", "disabled"] }, { kind: "directive", type: i10.NgbDropdownButtonItem, selector: "button[ngbDropdownItem]" }, { 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" }] }); }
287
- }
288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateOrEditEntriesComponent, decorators: [{
289
- type: Component,
290
- 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\" *ngIf=\"SectionSelect.type===1\">\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.title}}</option>\n <ng-container *ngFor=\"let el of item.children\">\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\n $implicit: {\n value: el,\n }\n }\"></ng-container>\n <ng-template #childTemplate let-data>\n <option [value]=\"data.value.id\">\n <ng-container *ngFor=\"let item of data.value.layer\">--</ng-container>\n {{data.value.title}}</option>\n <ng-container *ngFor=\"let el of data.value.children\">\n <ng-container *ngTemplateOutlet=\"childTemplate; context: {\n $implicit: {\n value: el,\n }\n }\"></ng-container>\n </ng-container>\n\n </ng-template>\n </ng-container>\n\n </ng-container>\n </select>\n\n\n\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\n 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"] }]
291
- }], ctorParameters: () => [{ 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: [{
292
- type: Input
293
- }], ParentQueryParams: [{
294
- type: Input
295
- }], entity: [{
296
- type: Input
297
- }], parentEntrySelect: [{
298
- type: Input
299
- }], FormDynamicontrolRef: [{
300
- type: ViewChildren,
301
- args: ['FormDynamicontrolRef', { read: ViewContainerRef }]
302
- }] } });
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQtZW50cmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvY3JlYXRlLW9yLWVkaXQtZW50cmllcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL2VudHJpZXMvY3JlYXRlLW9yLWVkaXQtZW50cmllcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQXVCLE1BQU0sY0FBYyxDQUFDO0FBRXZFLE9BQU8sRUFBb0IsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsWUFBWSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RILE9BQU8sRUFBbUIsV0FBVyxFQUErQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQWF2RyxNQUFNLE9BQU8sNEJBQTRCO0lBR3ZDLFlBQ1UsT0FBdUIsRUFDeEIsU0FBbUIsRUFDbEIsV0FBK0IsRUFDL0Isb0JBQXlDLEVBQ3pDLGtCQUFxQyxFQUNyQyxRQUFrQixFQUNsQixvQkFBeUMsRUFDekMsTUFBYyxFQUNkLGNBQTZCO1FBUjdCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQVU7UUFDbEIsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFtQjtRQUNyQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBcUI7UUFDekMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FB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LENBQUM7UUFDMUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsVUFBVTtJQUNWLGFBQWEsQ0FBQyxHQUFHO1FBQ2YsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDbEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLENBQUM7WUFDdEYsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUE7UUFDM0IsQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDOzhHQTNTVSw0QkFBNEI7a0dBQTVCLDRCQUE0Qiw4UkErSE8sZ0JBQWdCLDZCQy9JaEUsdXFTQXlJTTs7MkZEekhPLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSw0QkFBNEI7dVRBeUM3QixNQUFNO3NCQUFkLEtBQUs7Z0JBS0ssaUJBQWlCO3NCQUQzQixLQUFLO2dCQVVLLE1BQU07c0JBRGhCLEtBQUs7Z0JBU0ssaUJBQWlCO3NCQUQzQixLQUFLO2dCQXFFNEQsb0JBQW9CO3NCQUFyRixZQUFZO3VCQUFDLHNCQUFzQixFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uZmlnU3RhdGVTZXJ2aWNlLCBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBpbmplY3QsIElucHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEVudHJ5QWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vZW50cmllcyc7XG5pbXBvcnQgeyBTZWN0aW9uQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vcHJveHkvYWRtaW4vc2VjdGlvbnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGF0ZVBpcGUsIExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENtc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Ntcy1jcmVhdGUtb3ItZWRpdC1lbnRyaWVzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1vci1lZGl0LWVudHJpZXMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcmVhdGUtb3ItZWRpdC1lbnRyaWVzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JFZGl0RW50cmllc0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcbiAgICBwdWJsaWMgX2xvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwcml2YXRlIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBfU2VjdGlvbkFkbWluU2VydmljZTogU2VjdGlvbkFkbWluU2VydmljZSxcbiAgICBwcml2YXRlIF9FbnRyeUFkbWluU2VydmljZTogRW50cnlBZG1pblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXG4gICAgcHJpdmF0ZSBfTG9jYWxpemF0aW9uU2VydmljZTogTG9jYWxpemF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgX0Ntc0FwaVNlcnZpY2U6IENtc0FwaVNlcnZpY2UsXG4gICkgeyB9XG5cblxuICAvKiror63oqIAgKi9cbiAgY3VsdHVyZU5hbWU6IHN0cmluZyA9ICcnXG4gIC8qKuadoeebruexu+Wei2lkICovXG4gIGVudHJ5VHlwZUlkOiBzdHJpbmcgPSAnJ1xuXG4gIC8qKuaWsOW7uueJiOacrOeahOeJiOacrGlk77yM5ZCM5p2h55uuaWQgKi9cbiAgUmV2aXNpb25FbnRyeUlkOiBhbnkgPSAnJ1xuICAvKirpgInmi6nnmoTmnaHnm67pobkgKi9cbiAgZW50cnlUeXBlc0l0ZW06IGFueSA9ICcnXG4gIC8qKueJiOWdl2lkICovXG4gIHNlY3Rpb25JZDogc3RyaW5nID0gJydcbiAgLyoq54mI5Z2X6K+m5oOFICovXG4gIFNlY3Rpb25TZWxlY3Q6IGFueSA9ICcnXG4gIC8qKuivreiogOWIl+ihqCAqL1xuICBsYW5ndWFnZXNMaXN0OiBhbnlbXSA9IFtdXG4gIC8qKuadoeebruexu+Wei+WIl+ihqC3nlKjkuo7pgInmi6nkuIrnuqfmnaHnm64gKi9cbiAgZW50cnlUeXBlc0xpc3Q6IGFueVtdID0gW11cbiAgLyoq54mI5pys5YiX6KGoICovXG4gIEFsbFZlcnNpb25zTGlzdDogYW55W10gPSBbXVxuXG4gIC8qKuaYr+WQpuaYr+e8lui+kSAqL1xuICBASW5wdXQoKSBpc0VkaXQgPSBmYWxzZVxuXG4gIC8qKuadpeiHqueItue7hOS7tueahOS8oOWAvCAqL1xuICBGcm9tUGFyZW50UXVlcnlQYXJhbXM6IGFueSA9ICcnXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgUGFyZW50UXVlcnlQYXJhbXModjogYW55KSB7XG4gICAgaWYgKHYpIHtcbiAgICAgIHRoaXMuRnJvbVBhcmVudFF1ZXJ5UGFyYW1zID0gdjtcbiAgICB9XG4gIH1cblxuICAvKirooajljZXlrp7kvZMgKi9cbiAgX2VudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZW50aXR5KHY6IGFueSkge1xuICAgIGlmICh2KSB7XG4gICAgICB0aGlzLl9lbnRpdHkgPSB2O1xuICAgIH1cbiAgfVxuICAvKirmjIflrpppZOeahOadoeebruS/oeaBryAqL1xuICBlbnRyeVNlbGVjdDogYW55ID0gJydcbiAgQElucHV0KClcbiAgcHVibGljIHNldCBwYXJlbnRFbnRyeVNlbGVjdCh2OiBhbnkpIHtcbiAgICBpZiAodikge1xuICAgICAgbGV0IFZfZXh0cmFQcm9wZXJ0aWVzID0gdGhpcy5fQ21zQXBpU2VydmljZS5kZWVwQ2xvbmUodGhpcy5jb252ZXJ0RXh0cmFQcm9wZXJ0aWVzKHYuZXh0cmFQcm9wZXJ0aWVzKSlcbiAgICAgIHYuZXh0cmFQcm9wZXJ0aWVzID0gVl9leHRyYVByb3BlcnRpZXNcbiAgICAgIHRoaXMuZW50cnlTZWxlY3QgPSB2O1xuICAgIH1cbiAgfVxuICAvKirlsIblr7nosaHkuK3nmoRFeHRyYVByb3BlcnRpZXPotYvlgLzliLBleHRyYVByb3BlcnRpZXMgKi9cbiAgY29udmVydEV4dHJhUHJvcGVydGllcyhvYmopIHtcbiAgICBmb3IgKGxldCBrZXkgaW4gb2JqKSB7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmpba2V5XSkpIHtcbiAgICAgICAgb2JqW2tleV0uZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgICBpZiAoaXRlbS5oYXNPd25Qcm9wZXJ0eSgnRXh0cmFQcm9wZXJ0aWVzJykpIHtcbiAgICAgICAgICAgIGl0ZW1bJ2V4dHJhUHJvcGVydGllcyddID0gaXRlbVsnRXh0cmFQcm9wZXJ0aWVzJ107XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfVxuXG4gIC8qKuWIq+WQjeihqOWNleWunuS9kyAqL1xuICBnZXQgc2x1Z2lucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHkuZ2V0KCdzbHVnJylcbiAgfVxuICAvKiror63oqIDooajljZXlrp7kvZMgKi9cbiAgZ2V0IGN1bHR1cmVpbnB1dCgpIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5LmdldCgnY3VsdHVyZScpXG4gIH1cbiAgLyoq6K+t6KiA6KGo5Y2V5a6e5L2T5b2x5a2QICovXG4gIGdldCBjdWx0dXJlX3NoYWRvd0lucHV0KCkge1xuICAgIHJldHVybiB0aGlzLl9lbnRpdHkuZ2V0KCdjdWx0dXJlX3NoYWRvdycpXG4gIH1cblxuICAvKipleHRyYVByb3BlcnRpZXPphY3nva7ooajljZXlrp7kvZMgKi9cbiAgZ2V0IGV4dHJhUHJvcGVydGllcygpIHtcbiAgICByZXR1cm4gdGhpcy5fZW50aXR5LmdldCgnZXh0cmFQcm9wZXJ0aWVzJykgYXMgRm9ybUdyb3VwXG4gIH1cbiAgYXN5bmMgbmdBZnRlckNvbnRlbnRJbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vQ2FsbGVkIGFmdGVyIG5nT25Jbml0IHdoZW4gdGhlIGNvbXBvbmVudCdzIG9yIGRpcmVjdGl2ZSdzIGNvbnRlbnQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQuXG4gICAgLy9BZGQgJ2ltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCcgdG8gdGhlIGNsYXNzLlxuICAgIGxldCBxdWVyeVBhcmFtcyA9IHRoaXMuRnJvbVBhcmVudFF1ZXJ5UGFyYW1zXG4gICAgaWYgKHRoaXMuX2VudGl0eSAmJiB0aGlzLkZyb21QYXJlbnRRdWVyeVBhcmFtcykge1xuICAgICAgdGhpcy5fZW50aXR5LnNldENvbnRyb2woJ3NsdWcnLCBuZXcgRm9ybUNvbnRyb2woJycsIHtcbiAgICAgICAgdmFsaWRhdG9yczogVmFsaWRhdG9ycy5yZXF1aXJlZCxcbiAgICAgICAgYXN5bmNWYWxpZGF0b3JzOiB0aGlzLnJlcGV0aXRpb25Bc3luY1ZhbGlkYXRvcigpLFxuICAgICAgICB1cGRhdGVPbjogJ2JsdXInXG4gICAgICB9KSlcbiAgICAgIHRoaXMuX2VudGl0eS5zZXRDb250cm9sKCdjdWx0dXJlX3NoYWRvdycsIG5ldyBGb3JtQ29udHJvbCgnJywge1xuICAgICAgICB2YWxpZGF0b3JzOiBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgIGFzeW5jVmFsaWRhdG9yczogdGhpcy5jdWx0dXJlQXN5bmNWYWxpZGF0b3JfdGVzdCgpLFxuICAgICAgfSkpXG4gICAgICB0aGlzLl9lbnRpdHkuZ2V0KCdjdWx0dXJlJykuZGlzYWJsZSgpO1xuICAgICAgaWYgKHF1ZXJ5UGFyYW1zLlJldmlzaW9uRW50cnlJZCAmJiB0aGlzLmVudHJ5U2VsZWN0KSB7XG4gICAgICAgIHRoaXMuUmV2aXNpb25FbnRyeUlkID0gcXVlcnlQYXJhbXMuUmV2aXNpb25FbnRyeUlkXG4gICAgICAgIHRoaXMuc2V0RW50cnljb25maWcodGhpcy5lbnRyeVNlbGVjdCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNldEVudHJ5Y29uZmlnKHF1ZXJ5UGFyYW1zKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnNlY3Rpb25JZCkgYXdhaXQgdGhpcy5nZXRTZWN0aW9uU2VsZWN0KCk7XG4gICAgICBpZiAodGhpcy5SZXZpc2lvbkVudHJ5SWQpIGF3YWl0IHRoaXMuZ2V0QWxsVmVyc2lvbnNMaXN0KClcblxuICAgIH1cblxuXG4gIH1cblxuICAvKirooajljZXmjqfku7bmqKHmnb8t5Yqo5oCB6KGo5Y2V6YWN572u57uE5Lu2ICovXG4gIEBWaWV3Q2hpbGRyZW4oJ0Zvcm1EeW5hbWljb250cm9sUmVmJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pIEZvcm1EeW5hbWljb250cm9sUmVmOiBRdWVyeUxpc3Q8Vmlld0NvbnRhaW5lclJlZj47XG5cblxuXG5cblxuICAvKirlrprkuYnoh6rlrprkuYnlvILmraXpqozor4EgKi9cbiAgY3VsdHVyZUFzeW5jVmFsaWRhdG9yX3Rlc3QoKSB7XG4gICAgcmV0dXJuIChjdHJsOiBBYnN0cmFjdENvbnRyb2wpOiBQcm9taXNlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiB8IE9ic2VydmFibGU8VmFsaWRhdGlvbkVycm9ycyB8IG51bGw+ID0+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcbiAgICAgICAgbGV0IHN1YmN1bHR1cmUgPSB0aGlzLl9lbnRpdHk/LmdldCgnY3VsdHVyZScpLnZhbHVlXG4gICAgICAgIGlmIChzdWJjdWx0dXJlID09IHRoaXMuZW50cnlTZWxlY3Q/LmN1bHR1cmUgfHwgdGhpcy5TZWN0aW9uU2VsZWN0LnR5cGUgIT09IDApIHtcbiAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX0VudHJ5QWRtaW5TZXJ2aWNlLmN1bHR1cmVFeGlzdFdpdGhTaW5nbGVTZWN0aW9uKHtcbiAgICAgICAgICBjdWx0dXJlOiBzdWJjdWx0dXJlLFxuICAgICAgICAgIHNlY3Rpb25JZDogdGhpcy5zZWN0aW9uSWQsXG4gICAgICAgICAgZW50cnlUeXBlSWQ6IHRoaXMuZW50cnlUeXBlSWRcbiAgICAgICAgfSkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgcmVzb2x2ZSh7IHJlcGV0aXRpb246IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zOjpFbnRyaWVzQWxyZWFkeUV4aXN0RW50cnlUeXBlYCwgdGhpcy5lbnRyeVR5cGVzSXRlbS5kaXNwbGF5TmFtZSwgdGhpcy5sYW5ndWFnZXNMaXN0LmZpbmQoZWwgPT4gZWwuY3VsdHVyZU5hbWUgPT0gc3ViY3VsdHVyZSkuZGlzcGxheU5hbWUpIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cblxuXG4gIC8qKiAgXG4gKiDorr7nva7mnaHnm67or6bmg4UgIFxuICogQHBhcmFtIHtvYmplY3R9IHNvdXJjZSAtIOaVsOaNrua6kOWvueixoSAgXG4gKi9cbiAgc2V0RW50cnljb25maWcoc291cmNlOiBhbnkpIHtcbiAgICB0aGlzLmVudHJ5VHlwZUlkID0gc291cmNlLmVudHJ5VHlwZUlkO1xuICAgIHRoaXMuY3VsdHVyZU5hbWUgPSBzb3VyY2UuY3VsdHVyZSB8fCBzb3VyY2UuY3VsdHVyZU5hbWU7XG4gICAgdGhpcy5zZWN0aW9uSWQgPSBzb3VyY2Uuc2VjdGlvbklkO1xuICB9XG4gIHRpbWU6IG51bWJlciA9IDBcblxuICAvKirlrprkuYnoh6rlrprkuYnlvILmraXpqozor4EgKi9cbiAgcmVwZXRpdGlvbkFzeW5jVmFsaWRhdG9yKCkge1xuICAgIHJldHVybiAoY3RybDogQWJzdHJhY3RDb250cm9sKTogUHJvbWlzZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gfCBPYnNlcnZhYmxlPFZhbGlkYXRpb25FcnJvcnMgfCBudWxsPiA9PiB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICAgIGxldCBzdWJzbHVnID0gdGhpcy5fZW50aXR5Py5nZXQoJ3NsdWcnKS52YWx1ZVxuICAgICAgICBpZiAoc3Vic2x1ZyA9PSB0aGlzLmVudHJ5U2VsZWN0Py5zbHVnKSB7XG4gICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9FbnRyeUFkbWluU2VydmljZS5zbHVnRXhpc3RzKHtcbiAgICAgICAgICBjdWx0dXJlOiB0aGlzLmN1bHR1cmVOYW1lLFxuICAgICAgICAgIHNlY3Rpb25JZDogdGhpcy5zZWN0aW9uSWQsXG4gICAgICAgICAgc2x1Zzogc3Vic2x1Z1xuICAgICAgICB9KS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICBpZiAocmVzKSB7XG4gICAgICAgICAgICByZXNvbHZlKHsgcmVwZXRpdGlvbjogdGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBDbXM6OkVudHJ5U2x1Z3swfUFscmVhZHlFeGlzdGAsIGN0cmwudmFsdWUpIH0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNvbHZlKG51bGwpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH0pO1xuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChDb25maWdTdGF0ZVNlcnZpY2UpXG5cbiAgLyoq6I635Y+W54mI5Z2X6K+m5oOFICovXG4gIGdldFNlY3Rpb25TZWxlY3QoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9TZWN0aW9uQWRtaW5TZXJ2aWNlLmdldCh0aGlzLnNlY3Rpb25JZCkuc3Vic2NyaWJlKGFzeW5jIChyZXMpID0+IHtcbiAgICAgICAgbGV0IGxhbmd1YWdlcyA9IHRoaXMuY29uZmlnU3RhdGUuZ2V0RGVlcCgnbG9jYWxpemF0aW9uLmxhbmd1YWdlcycpXG4gICAgICAgIHRoaXMubGFuZ3VhZ2VzTGlzdCA9IGxhbmd1YWdlc1xuICAgICAgICBsZXQgZW50cnlUeXBlc0l0ZW0gPSByZXMuZW50cnlUeXBlcy5maW5kKGVsID0+IGVsLmlkID09IHRoaXMuZW50cnlUeXBlSWQpXG4gICAgICAgIHRoaXMuU2VjdGlvblNlbGVjdCA9IHJlc1xuICAgICAgICBhd2FpdCB0aGlzLmdldFR5cGVFbnRyeUxpc3QoKVxuICAgICAgICB0aGlzLmVudHJ5VHlwZXNJdGVtID0gZW50cnlUeXBlc0l0ZW1cbiAgICAgICAgdGhpcy5lbnRyeVR5cGVzTGlzdCA9IHJlcy5lbnRyeVR5cGVzLmZpbHRlcihlbCA9PiBlbC5pZCA9PSB0aGlzLmVudHJ5VHlwZUlkKVxuICAgICAgICB0aGlzLl9lbnRpdHkucGF0Y2hWYWx1ZSh7XG4gICAgICAgICAgLi4udGhpcy5lbnRyeVNlbGVjdCxcbiAgICAgICAgICBpbml0aWFsVmVyc2lvbklkOiB0aGlzLmVudHJ5U2VsZWN0Py5pbml0aWFsVmVyc2lvbklkIHx8IHRoaXMuUmV2aXNpb25FbnRyeUlkIHx8ICcnLFxuICAgICAgICAgIGN1bHR1cmU6IHRoaXMuY3VsdHVyZU5hbWUsXG4gICAgICAgICAgY3VsdHVyZV9zaGFkb3c6IHRoaXMuY3VsdHVyZU5hbWUsXG4gICAgICAgICAgZW50cnlUeXBlSWQ6IHRoaXMuZW50cnlUeXBlSWQsXG4gICAgICAgICAgcHVibGlzaFRpbWU6IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKG5ldyBEYXRlKCksICd5eXl5LU1NLWRkIEhIOm1tOnNzJyksXG4gICAgICAgIH0pXG4gICAgICAgIHJlc29sdmUodHJ1ZSlcbiAgICAgIH0pXG4gICAgfSlcbiAgfVxuICAvKirojrflj5bmnaHnm67nsbvlnovkuIvmiYDmnInmnaHnm67liJfooaggKi9cbiAgZ2V0VHlwZUVudHJ5TGlzdCgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdHMpID0+IHtcbiAgICAgIHRoaXMuX0VudHJ5QWRtaW5TZXJ2aWNlLmdldExpc3Qoe1xuICAgICAgICBzZWN0aW9uSWQ6IHRoaXMuc2VjdGlvbklkLFxuICAgICAgICBtYXhSZXN1bHRDb3VudDogMTAwMCxcbiAgICAgICAgY3VsdHVyZTogdGhpcy5jdWx0dXJlTmFtZVxuICAgICAgfSkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICBsZXQgZW50cnlUeXBlc0xpc3QgPSByZXMuaXRlbXMuZmlsdGVyKGVsID0+IGVsLmlkICE9IHRoaXMuZW50cnlTZWxlY3QuaWQpXG4gICAgICAgIGxldCBwYXJlbnRMaXN0ID0gZW50cnlUeXBlc0xpc3QuZmlsdGVyKGVsID0+ICFlbC5wYXJlbnRJZClcbiAgICAgICAgcGFyZW50TGlzdC5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICBsZXQgbGF5ZXI6IG51bWJlciA9IDBcbiAgICAgICAgICBlbC5sYXllciA9IG5ldyBBcnJheShsYXllcilcbiAgICAgICAgICBlbC5jaGlsZHJlbiA9IHRoaXMuZ3JvdXBCeVBhcmVudElkKGVudHJ5VHlwZXNMaXN0LCBlbC5pZCwgKGxheWVyICsgMSkpXG4gICAgICAgIH0pXG4gICAgICAgIHRoaXMuZW50cnlUeXBlc0xpc3QgPSBwYXJlbnRMaXN0XG4gICAgICAgIHJlc29sdmUocmVzKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoq5a+55pWw57uE5oyJ54Wn54i25a2Q5YWz57O76L+b6KGM5YiG57uEICovXG4gIGdyb3VwQnlQYXJlbnRJZChhcnIsIGlkID0gJycsIGxheWVyKSB7XG4gICAgbGV0IHJlc3VsdCA9IFtdO1xuICAgIHJlc3VsdCA9IGFyci5maWx0ZXIoZWwgPT4gZWwucGFyZW50SWQgPT0gaWQpXG4gICAgcmVzdWx0LmZvckVhY2goZWwgPT4ge1xuICAgICAgZWwubGF5ZXIgPSBuZXcgQXJyYXkobGF5ZXIpXG4gICAgICBlbC5jaGlsZHJlbiA9IHRoaXMuZ3JvdXBCeVBhcmVudElkKGFyciwgZWwuaWQsIChsYXllciArIDEpKVxuICAgIH0pXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cblxuXG4gIC8qKuiOt+WPluadoeebrueJiOacrOWIl+ihqCAqL1xuICBnZXRBbGxWZXJzaW9uc0xpc3QoKSB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3RzKSA9PiB7XG4gICAgICB0aGlzLl9FbnRyeUFkbWluU2VydmljZS5nZXRBbGxWZXJzaW9ucyh0aGlzLlJldmlzaW9uRW50cnlJZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMuQWxsVmVyc2lvbnNMaXN0ID0gcmVzLml0ZW1zXG4gICAgICAgIHJlc29sdmUocmVzKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cbiAgLyoq5qCH6aKY6L2s5YyW5Yir5ZCNICovXG4gIHNldFRpdGxlVG9TbHVnQmx1cihldmVudCkge1xuICAgIGxldCB2YWwgPSBldmVudC50YXJnZXQudmFsdWVcbiAgICBsZXQgc2x1ZyA9IHRoaXMuX2VudGl0eS5nZXQoJ3NsdWcnKVxuICAgIGxldCBwaW55aW5zdHIgPSAnJ1xuICAgIGlmIChzbHVnLnZhbHVlKSByZXR1cm5cbiAgICBwaW55aW5zdHIgPSB0aGlzLl9DbXNBcGlTZXJ2aWNlLmNoaW5lc2VUb1Bpbnlpbih2YWwpXG4gICAgdGhpcy5fZW50aXR5LnBhdGNoVmFsdWUoe1xuICAgICAgc2x1ZzogcGlueWluc3RyIHx8IHZhbFxuICAgIH0pXG4gIH1cbiAgLyoq5L2/55SoVW5pY29kZee8lueggeiMg+WbtOWIpOaWreaYr+WQpuaYr+S4reaWh+Wtl+espiAqL1xuICBpc0NoaW5lc2Uoc3RyKSB7XG4gICAgcmV0dXJuIC9eW1xcdTRlMDAtXFx1OWZhNV0rJC8udGVzdChzdHIpO1xuICB9XG5cbiAgLyoq5r+A5rS7ICovXG4gIEFjdGl2YXRlZFZlcnNpb24oVmVyc2lvbklkKSB7XG4gICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2UuYWN0aXZhdGUoVmVyc2lvbklkKS5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgdGhpcy5BbGxWZXJzaW9uc0xpc3QuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgIGVsLmlzQWN0aXZhdGVkVmVyc2lvbiA9IGVsLmlkID09PSBWZXJzaW9uSWRcbiAgICAgIH0pXG4gICAgICByZXR1cm5cbiAgICB9KVxuICB9XG4gIC8qKue8lui+keeJiOacrCAqL1xuICB0b0VkaXRVcmwoaWQpIHtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcnLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL2Ntcy9hZG1pbi9lbnRyaWVzLyR7aWR9L2VkaXRgXSk7XG4gICAgfSk7XG4gIH1cbiAgLyoq5Yig6Zmk54mI5pysICovXG4gIGRlbGVjdFZlcnNpb24odmlkKSB7XG4gICAgdGhpcy5fRW50cnlBZG1pblNlcnZpY2UuZGVsZXRlKHZpZCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICB0aGlzLnRvYXN0ZXIuc3VjY2Vzcyh0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYEFicFVpOjpTdWNjZXNzZnVsbHlEZWxldGVkYCkpO1xuICAgICAgdGhpcy5nZXRBbGxWZXJzaW9uc0xpc3QoKVxuICAgIH0pXG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cImNyZWF0ZS1vci1lZGl0LWVudHJ5LXBhZ2VcIiBbZm9ybUdyb3VwXT1cIl9lbnRpdHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyIFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTggXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQgIHAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInRpdGxlXCI+e3snQ21zOjpUaXRsZScgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIChibHVyKT1cInNldFRpdGxlVG9TbHVnQmx1cigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPCEtLSA8dGVtcGxhdGUgI0Zvcm1EeW5hbWljUmVmPjwvdGVtcGxhdGU+IC0tPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGVudHJ5VHlwZXNJdGVtPy5maWVsZFRhYnM7bGV0IGkgPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbCBvZiBpdGVtLmZpZWxkcztsZXQgaTEgPWluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVsJiZfZW50aXR5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZi1keW5hbWljIFtlbnRpdHldPVwiX2VudGl0eVwiIFtmaWVsZHNdPVwiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3NlbGVjdGVkXT1cImVudHJ5U2VsZWN0ID8gZW50cnlTZWxlY3QuZXh0cmFQcm9wZXJ0aWVzW2VsLmZpZWxkLm5hbWVdIDogJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BhcmVudEZpbGVkTmFtZV09XCInZXh0cmFQcm9wZXJ0aWVzJ1wiIFtjdWx0dXJlXT1cImN1bHR1cmVpbnB1dC52YWx1ZVwiPjwvZGYtZHluYW1pYz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC00IFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG1iLTAgcC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCIgZm9yPVwic2x1Z1wiPnt7J0Ntczo6U2x1ZycgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cInNsdWdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlciBpbnZhbGlkLWZlZWRiYWNrXCIgKm5nSWY9XCJzbHVnaW5wdXQuZXJyb3JzPy5yZXBldGl0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzbHVnaW5wdXQuZXJyb3JzPy5yZXBldGl0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJjdWx0dXJlXCI+e3snQWJwVWk6Okxhbmd1YWdlcycgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwiZm9ybS1zZWxlY3RcIiBmb3JtQ29udHJvbE5hbWU9XCJjdWx0dXJlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsYW5ndWFnZXNMaXN0O2xldCBpID1pbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJpdGVtLmN1bHR1cmVOYW1lXCI+e3tpdGVtLmRpc3BsYXlOYW1lfX08L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwiY3VsdHVyZV9zaGFkb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwicG9zaXRpb246IGFic29sdXRlO3otaW5kZXg6IC0xO29wYWNpdHk6IDA7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXIgaW52YWxpZC1mZWVkYmFja1wiICpuZ0lmPVwiY3VsdHVyZV9zaGFkb3dJbnB1dC5lcnJvcnM/LnJlcGV0aXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2N1bHR1cmVfc2hhZG93SW5wdXQuZXJyb3JzPy5yZXBldGl0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIiAqbmdJZj1cIlNlY3Rpb25TZWxlY3QudHlwZT09PTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwYXJlbnRJZFwiPnt7J0Ntczo6UGFyZW50RW50cnknIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cImZvcm0tc2VsZWN0XCIgZm9ybUNvbnRyb2xOYW1lPVwicGFyZW50SWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBlbnRyeVR5cGVzTGlzdDtsZXQgaSA9aW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiPnt7aXRlbS50aXRsZX19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGVsIG9mIGl0ZW0uY2hpbGRyZW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjaGlsZFRlbXBsYXRlOyBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGVsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2hpbGRUZW1wbGF0ZSBsZXQtZGF0YT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIFt2YWx1ZV09XCJkYXRhLnZhbHVlLmlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YS52YWx1ZS5sYXllclwiPi0tPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGF0YS52YWx1ZS50aXRsZX19PC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZWwgb2YgZGF0YS52YWx1ZS5jaGlsZHJlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2hpbGRUZW1wbGF0ZTsgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxpY2l0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZWwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxuXG5cblxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIiBmb3I9XCJwdWJsaXNoVGltZVwiPnt7J0Ntczo6UHVibGlzaFRpbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgc3RlcD1cIjFcIiBmb3JtQ29udHJvbE5hbWU9XCJwdWJsaXNoVGltZVwiPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIiAqbmdJZj1cImlzRWRpdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInB1Ymxpc2hUaW1lXCI+e3snQ21zOjpWZXJzaW9uJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIEFsbFZlcnNpb25zTGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW0gZmxleC1iZXR3ZWVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7aXRlbS5pbml0aWFsVmVyc2lvbklkPyhpdGVtLmNyZWF0aW9uVGltZXwgZGF0ZTogJ1lZWVkvTU0vZGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBISDptbTpzJyk6KCdDbXM6OkluaXRpYWxWZXJzaW9uJyB8IGFicExvY2FsaXphdGlvbil9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgdGV4dC1iZy1zdWNjZXNzIG1zLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaXNBY3RpdmF0ZWRWZXJzaW9uXCI+e3snQ21zOjpJc0FjdGl2ZScgfCBhYnBMb2NhbGl6YXRpb259fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIHRleHQtYmctcHJpbWFyeSBtcy0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLmlkID09PSBSZXZpc2lvbkVudHJ5SWRcIj57eydDbXM6OkVkaXRpbmcnIHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJwTG9jYWxpemF0aW9ufX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93biBjbGFzcz1cImQtaW5saW5lLWJsb2NrXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1saW5rLXByaW1hcnkgcC0yIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImxpbmUtaGVpZ2h0OiAwO1wiIGlkPVwiZHJvcGRvd25CYXNpYzFcIiBuZ2JEcm9wZG93blRvZ2dsZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiRHJvcGRvd25NZW51IGFyaWEtbGFiZWxsZWRieT1cImRyb3Bkb3duQmFzaWMxXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIG5nYkRyb3Bkb3duSXRlbSB0eXBlPVwiYnV0dG9uXCIgKm5nSWY9XCIhaXRlbS5pc0FjdGl2YXRlZFZlcnNpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJBY3RpdmF0ZWRWZXJzaW9uKGl0ZW0uaWQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hlY2sgbWUtMVwiPjwvaT57eydDbXM6OklzQWN0aXZlJyB8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JEcm9wZG93bkl0ZW0gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm91dGVyTGluaz1cIi9jbXMvYWRtaW4vZW50cmllcy9jcmVhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJ7UmV2aXNpb25FbnRyeUlkOml0ZW0uaWR9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1cyBtZS0xXCI+PC9pPnt7J0Ntczo6TmV3VmVyc2lvbicgfFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIHR5cGU9XCJidXR0b25cIiAoY2xpY2suc3RvcCk9XCJ0b0VkaXRVcmwoaXRlbS5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pZCAhPT0gUmV2aXNpb25FbnRyeUlkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZWRpdCBtZS0xXCI+PC9pPnt7J0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiRHJvcGRvd25JdGVtIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljay5zdG9wKT1cImRlbGVjdFZlcnNpb24oaXRlbS5pZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pbml0aWFsVmVyc2lvbklkJiYhaXRlbS5pc0FjdGl2YXRlZFZlcnNpb24mJml0ZW0uaWQgIT09IFJldmlzaW9uRW50cnlJZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXRyYXNoIG1lLTFcIj48L2k+e3snQWJwVWk6OkRlbGV0ZScgfFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGZvcj1cInZlcnNpb25Ob3Rlc1wiPnt7J0Ntczo6UmV2aXNpb25Ob3RlcycgfCBhYnBMb2NhbGl6YXRpb259fTwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJ2ZXJzaW9uTm90ZXNcIiByb3dzPVwiM1wiPjwvdGV4dGFyZWE+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+Il19
@@ -1,32 +0,0 @@
1
- import { FormGroup, Validators } from "@angular/forms";
2
- export class CreateOrUpdateEntryInputBase {
3
- constructor(data) {
4
- /**语言 */
5
- this.culture = ['', [Validators.required]];
6
- /**条目id */
7
- this.entryTypeId = [''];
8
- /**标题 */
9
- this.title = ['', [Validators.required]];
10
- /**别名 */
11
- this.slug = ['', [Validators.required]];
12
- /**是否是草稿 */
13
- this.draft = ['', []];
14
- /**发布时间 */
15
- this.publishTime = ['', [Validators.required]];
16
- /**上级目录 */
17
- this.parentId = [null];
18
- /**修订说明 */
19
- this.versionNotes = [null];
20
- /**版本 */
21
- this.initialVersionId = [null];
22
- this.extraProperties = new FormGroup({});
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLXVwZGF0ZS1lbnRyeS1pbnB1dC1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9lbnRyaWVzL2NyZWF0ZS1vci11cGRhdGUtZW50cnktaW5wdXQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZELE1BQU0sT0FBTyw0QkFBNEI7SUFvQnJDLFlBQVksSUFBbUM7UUFuQi9DLFFBQVE7UUFDUixZQUFPLEdBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUMxQyxVQUFVO1FBQ1YsZ0JBQVcsR0FBUSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3ZCLFFBQVE7UUFDUixVQUFLLEdBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQTtRQUN4QyxRQUFRO1FBQ1IsU0FBSSxHQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUE7UUFDdkMsV0FBVztRQUNYLFVBQUssR0FBUSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUNyQixVQUFVO1FBQ1YsZ0JBQVcsR0FBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFBO1FBQzlDLFVBQVU7UUFDVixhQUFRLEdBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNuQixVQUFVO1FBQ1YsaUJBQVksR0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3ZCLFFBQVE7UUFDUixxQkFBZ0IsR0FBUSxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQzlCLG9CQUFlLEdBQTBCLElBQUksU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBRXRELElBQUksSUFBSSxFQUFFLENBQUM7WUFDUCxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO2dCQUNyQixJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDMUIsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JVcGRhdGVFbnRyeUlucHV0QmFzZSB7XHJcbiAgICAvKiror63oqIAgKi9cclxuICAgIGN1bHR1cmU6IGFueSA9IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXVxyXG4gICAgLyoq5p2h55uuaWQgKi9cclxuICAgIGVudHJ5VHlwZUlkOiBhbnkgPSBbJyddXHJcbiAgICAvKirmoIfpopggKi9cclxuICAgIHRpdGxlOiBhbnkgPSBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV1cclxuICAgIC8qKuWIq+WQjSAqL1xyXG4gICAgc2x1ZzogYW55ID0gWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dXHJcbiAgICAvKirmmK/lkKbmmK/ojYnnqL8gKi9cclxuICAgIGRyYWZ0OiBhbnkgPSBbJycsIFtdXVxyXG4gICAgLyoq5Y+R5biD5pe26Ze0ICovXHJcbiAgICBwdWJsaXNoVGltZTogYW55ID0gWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dXHJcbiAgICAvKirkuIrnuqfnm67lvZUgKi9cclxuICAgIHBhcmVudElkOmFueT1bbnVsbF1cclxuICAgIC8qKuS/ruiuouivtOaYjiAqL1xyXG4gICAgdmVyc2lvbk5vdGVzOmFueT1bbnVsbF1cclxuICAgIC8qKueJiOacrCAqL1xyXG4gICAgaW5pdGlhbFZlcnNpb25JZDogYW55ID0gW251bGxdXHJcbiAgICBleHRyYVByb3BlcnRpZXM6IEZvcm1Hcm91cCB8IHVuZGVmaW5lZCA9IG5ldyBGb3JtR3JvdXAoe30pXHJcbiAgICBjb25zdHJ1Y3RvcihkYXRhPzogQ3JlYXRlT3JVcGRhdGVFbnRyeUlucHV0QmFzZSkge1xyXG4gICAgICAgIGlmIChkYXRhKSB7XHJcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGRhdGEpIHtcclxuICAgICAgICAgICAgICAgIGlmIChkYXRhLmhhc093blByb3BlcnR5KGtleSkpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzW2tleV0gPSBkYXRhW2tleV07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuXHJcbiJdfQ==