@dignite-ng/expand.cms 0.0.18 → 0.0.20

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 (369) hide show
  1. package/config/ng-package.json +7 -0
  2. package/config/src/cms-config.module.ts +12 -0
  3. package/config/{enums/index.d.ts → src/enums/index.ts} +1 -1
  4. package/config/src/enums/route-names.ts +8 -0
  5. package/config/{providers/index.d.ts → src/providers/index.ts} +1 -1
  6. package/config/src/providers/route.provider.ts +66 -0
  7. package/config/{public-api.d.ts → src/public-api.ts} +3 -3
  8. package/karma.conf.js +44 -0
  9. package/ng-package.json +7 -0
  10. package/package.json +19 -38
  11. package/src/lib/cms-routing.module.ts +111 -0
  12. package/src/lib/cms.module.ts +119 -0
  13. package/src/lib/components/admin/entries/create-or-edit-entries.component.html +115 -0
  14. package/src/lib/components/admin/entries/create-or-edit-entries.component.scss +25 -0
  15. package/src/lib/components/admin/entries/create-or-edit-entries.component.spec.ts +21 -0
  16. package/src/lib/components/admin/entries/create-or-edit-entries.component.ts +287 -0
  17. package/src/lib/components/admin/entries/create-or-update-entry-input-base.ts +36 -0
  18. package/src/lib/components/admin/entries/create.component.html +13 -0
  19. package/src/lib/components/admin/entries/create.component.scss +21 -0
  20. package/src/lib/components/admin/entries/create.component.spec.ts +21 -0
  21. package/src/lib/components/admin/entries/create.component.ts +103 -0
  22. package/src/lib/components/admin/entries/edit.component.html +9 -0
  23. package/src/lib/components/admin/entries/edit.component.scss +26 -0
  24. package/src/lib/components/admin/entries/edit.component.spec.ts +21 -0
  25. package/src/lib/components/admin/entries/edit.component.ts +103 -0
  26. package/src/lib/components/admin/entries/entries.component.html +106 -0
  27. package/src/lib/components/admin/entries/entries.component.scss +80 -0
  28. package/src/lib/components/admin/entries/entries.component.spec.ts +21 -0
  29. package/src/lib/components/admin/entries/entries.component.ts +216 -0
  30. package/src/lib/components/admin/entries/index.ts +4 -0
  31. package/src/lib/components/admin/fields/create-field.component.html +12 -0
  32. package/src/lib/components/admin/fields/create-field.component.scss +10 -0
  33. package/src/lib/components/admin/fields/create-field.component.spec.ts +21 -0
  34. package/src/lib/components/admin/fields/create-field.component.ts +68 -0
  35. package/src/lib/components/admin/fields/create-or-edit-field.component.html +39 -0
  36. package/src/lib/components/admin/fields/create-or-edit-field.component.scss +0 -0
  37. package/src/lib/components/admin/fields/create-or-edit-field.component.spec.ts +21 -0
  38. package/src/lib/components/admin/fields/create-or-edit-field.component.ts +119 -0
  39. package/src/lib/components/admin/fields/create-or-update-field-input-base.ts +33 -0
  40. package/src/lib/components/admin/fields/edit-field.component.html +13 -0
  41. package/src/lib/components/admin/fields/edit-field.component.scss +0 -0
  42. package/src/lib/components/admin/fields/edit-field.component.spec.ts +21 -0
  43. package/src/lib/components/admin/fields/edit-field.component.ts +100 -0
  44. package/src/lib/components/admin/fields/field-group.component.html +69 -0
  45. package/src/lib/components/admin/fields/field-group.component.scss +0 -0
  46. package/src/lib/components/admin/fields/field-group.component.spec.ts +21 -0
  47. package/src/lib/components/admin/fields/field-group.component.ts +132 -0
  48. package/src/lib/components/admin/fields/fields.component.html +73 -0
  49. package/src/lib/components/admin/fields/fields.component.scss +11 -0
  50. package/src/lib/components/admin/fields/fields.component.spec.ts +21 -0
  51. package/src/lib/components/admin/fields/fields.component.ts +111 -0
  52. package/src/lib/components/admin/fields/index.ts +6 -0
  53. package/src/lib/components/admin/index.ts +4 -0
  54. package/src/lib/components/admin/sections/create-or-update-sections-input-base.ts +36 -0
  55. package/src/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.ts +79 -0
  56. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.html +191 -0
  57. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.scss +24 -0
  58. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.spec.ts +21 -0
  59. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.ts +412 -0
  60. package/src/lib/components/admin/sections/entry-types/index.ts +2 -0
  61. package/src/lib/components/admin/sections/index.ts +3 -0
  62. package/src/lib/components/admin/sections/sections.component.html +191 -0
  63. package/src/lib/components/admin/sections/sections.component.scss +26 -0
  64. package/src/lib/components/admin/sections/sections.component.spec.ts +21 -0
  65. package/src/lib/components/admin/sections/sections.component.ts +334 -0
  66. package/src/lib/components/admin/sites/create-or-update-sites-input-base.ts +31 -0
  67. package/src/lib/components/admin/sites/index.ts +2 -0
  68. package/src/lib/components/admin/sites/sites.component.html +154 -0
  69. package/src/lib/components/admin/sites/sites.component.scss +19 -0
  70. package/src/lib/components/admin/sites/sites.component.spec.ts +21 -0
  71. package/src/lib/components/admin/sites/sites.component.ts +293 -0
  72. package/src/lib/components/dynamic-form/entry/entry-config.component.html +36 -0
  73. package/src/lib/components/dynamic-form/entry/entry-config.component.scss +0 -0
  74. package/src/lib/components/dynamic-form/entry/entry-config.component.spec.ts +21 -0
  75. package/src/lib/components/dynamic-form/entry/entry-config.component.ts +115 -0
  76. package/src/lib/components/dynamic-form/entry/entry-config.ts +24 -0
  77. package/src/lib/components/dynamic-form/entry/entry-control.component.html +26 -0
  78. package/src/lib/components/dynamic-form/entry/entry-control.component.scss +20 -0
  79. package/src/lib/components/dynamic-form/entry/entry-control.component.spec.ts +21 -0
  80. package/src/lib/components/dynamic-form/entry/entry-control.component.ts +110 -0
  81. package/src/lib/components/dynamic-form/entry/index.ts +3 -0
  82. package/src/lib/components/dynamic-form/form-control-group.ts +31 -0
  83. package/src/lib/components/dynamic-form/index.ts +4 -0
  84. package/src/lib/components/dynamic-form/matrix/index.ts +3 -0
  85. package/src/lib/components/dynamic-form/matrix/matrix-config.component.html +147 -0
  86. package/src/lib/components/dynamic-form/matrix/matrix-config.component.scss +0 -0
  87. package/src/lib/components/dynamic-form/matrix/matrix-config.component.spec.ts +21 -0
  88. package/src/lib/components/dynamic-form/matrix/matrix-config.component.ts +238 -0
  89. package/src/lib/components/dynamic-form/matrix/matrix-config.ts +63 -0
  90. package/src/lib/components/dynamic-form/matrix/matrix-control.component.html +42 -0
  91. package/src/lib/components/dynamic-form/matrix/matrix-control.component.scss +0 -0
  92. package/src/lib/components/dynamic-form/matrix/matrix-control.component.spec.ts +21 -0
  93. package/src/lib/components/dynamic-form/matrix/matrix-control.component.ts +104 -0
  94. package/src/lib/components/dynamic-form/table/index.ts +3 -0
  95. package/src/lib/components/dynamic-form/table/table-config.component.html +85 -0
  96. package/src/lib/components/dynamic-form/table/table-config.component.scss +10 -0
  97. package/src/lib/components/dynamic-form/table/table-config.component.spec.ts +21 -0
  98. package/src/lib/components/dynamic-form/table/table-config.component.ts +170 -0
  99. package/src/lib/components/dynamic-form/table/table-config.ts +45 -0
  100. package/src/lib/components/dynamic-form/table/table-control.component.html +55 -0
  101. package/src/lib/components/dynamic-form/table/table-control.component.scss +10 -0
  102. package/src/lib/components/dynamic-form/table/table-control.component.spec.ts +21 -0
  103. package/src/lib/components/dynamic-form/table/table-control.component.ts +107 -0
  104. package/src/lib/components/index.ts +2 -0
  105. package/src/lib/constants/index.ts +1 -0
  106. package/src/lib/constants/styles.ts +31 -0
  107. package/src/lib/enums/ecms-component.ts +11 -0
  108. package/src/lib/enums/index.ts +1 -0
  109. package/src/lib/proxy/README.md +17 -0
  110. package/src/lib/proxy/admin/dynamic-forms/form-admin.service.ts +21 -0
  111. package/src/lib/proxy/admin/dynamic-forms/models.ts +5 -0
  112. package/src/lib/proxy/admin/entries/entry-admin.service.ts +100 -0
  113. package/src/lib/proxy/admin/entries/models.ts +73 -0
  114. package/src/lib/proxy/admin/fields/field-admin.service.ts +64 -0
  115. package/src/lib/proxy/admin/fields/field-group-admin.service.ts +56 -0
  116. package/{lib/proxy/admin/fields/models.d.ts → src/lib/proxy/admin/fields/models.ts} +42 -34
  117. package/src/lib/proxy/admin/sections/entry-type-admin.service.ts +55 -0
  118. package/{lib/proxy/admin/sections/models.d.ts → src/lib/proxy/admin/sections/models.ts} +88 -74
  119. package/src/lib/proxy/admin/sections/section-admin.service.ts +74 -0
  120. package/{lib/proxy/admin/sites/models.d.ts → src/lib/proxy/admin/sites/models.ts} +36 -30
  121. package/src/lib/proxy/admin/sites/site-admin.service.ts +72 -0
  122. package/src/lib/proxy/dignite/abp/data/models.ts +4 -0
  123. package/src/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.ts +65 -0
  124. package/{lib/proxy/dignite/file-explorer/directories/models.d.ts → src/lib/proxy/dignite/file-explorer/directories/models.ts} +35 -29
  125. package/src/lib/proxy/dignite/file-explorer/files/file-descriptor.service.ts +86 -0
  126. package/src/lib/proxy/dignite/file-explorer/files/models.ts +57 -0
  127. package/src/lib/proxy/entries/entry-status.enum.ts +8 -0
  128. package/src/lib/proxy/fields/models.ts +9 -0
  129. package/src/lib/proxy/generate-proxy.json +11821 -0
  130. package/{lib/proxy/microsoft/asp-net-core/mvc/models.d.ts → src/lib/proxy/microsoft/asp-net-core/mvc/models.ts} +12 -10
  131. package/src/lib/proxy/microsoft/extensions/primitives/models.ts +9 -0
  132. package/{lib/proxy/microsoft/net/http/headers/models.d.ts → src/lib/proxy/microsoft/net/http/headers/models.ts} +7 -6
  133. package/src/lib/proxy/sections/models.ts +14 -0
  134. package/src/lib/proxy/sections/section-type.enum.ts +9 -0
  135. package/src/lib/proxy/sites/models.ts +5 -0
  136. package/src/lib/proxy/volo/abp/content/models.ts +6 -0
  137. package/{lib/proxy/volo/cms-kit/users/models.d.ts → src/lib/proxy/volo/cms-kit/users/models.ts} +8 -7
  138. package/src/lib/services/appent-content.ts +13 -0
  139. package/src/lib/services/cms-api.service.ts +71 -0
  140. package/src/lib/services/cms.service.ts +18 -0
  141. package/src/lib/services/field-abstracts.service.ts +41 -0
  142. package/src/lib/services/index.ts +4 -0
  143. package/src/lib/services/simple-reuse-strategy.ts +49 -0
  144. package/src/lib/services/update-list.service.ts +15 -0
  145. package/src/lib/toolbar/index.ts +2 -0
  146. package/src/lib/toolbar/toolbar-btn-default-action.ts +171 -0
  147. package/src/lib/toolbar/toolbar-config.ts +95 -0
  148. package/{public-api.d.ts → src/public-api.ts} +12 -8
  149. package/src/test.ts +26 -0
  150. package/tsconfig.lib.json +20 -0
  151. package/tsconfig.lib.prod.json +10 -0
  152. package/tsconfig.spec.json +17 -0
  153. package/config/cms-config.module.d.ts +0 -8
  154. package/config/enums/route-names.d.ts +0 -8
  155. package/config/index.d.ts +0 -5
  156. package/config/providers/route.provider.d.ts +0 -8
  157. package/esm2022/config/cms-config.module.mjs +0 -19
  158. package/esm2022/config/dignite-ng-expand.cms-config.mjs +0 -5
  159. package/esm2022/config/enums/index.mjs +0 -2
  160. package/esm2022/config/enums/route-names.mjs +0 -2
  161. package/esm2022/config/providers/index.mjs +0 -2
  162. package/esm2022/config/providers/route.provider.mjs +0 -64
  163. package/esm2022/config/public-api.mjs +0 -4
  164. package/esm2022/dignite-ng-expand.cms.mjs +0 -5
  165. package/esm2022/lib/cms-routing.module.mjs +0 -100
  166. package/esm2022/lib/cms.module.mjs +0 -164
  167. package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +0 -279
  168. package/esm2022/lib/components/admin/entries/create-or-update-entry-input-base.mjs +0 -32
  169. package/esm2022/lib/components/admin/entries/create.component.mjs +0 -107
  170. package/esm2022/lib/components/admin/entries/edit.component.mjs +0 -110
  171. package/esm2022/lib/components/admin/entries/entries.component.mjs +0 -212
  172. package/esm2022/lib/components/admin/entries/index.mjs +0 -5
  173. package/esm2022/lib/components/admin/fields/create-field.component.mjs +0 -82
  174. package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +0 -112
  175. package/esm2022/lib/components/admin/fields/create-or-update-field-input-base.mjs +0 -25
  176. package/esm2022/lib/components/admin/fields/edit-field.component.mjs +0 -110
  177. package/esm2022/lib/components/admin/fields/field-group.component.mjs +0 -124
  178. package/esm2022/lib/components/admin/fields/fields.component.mjs +0 -119
  179. package/esm2022/lib/components/admin/fields/index.mjs +0 -7
  180. package/esm2022/lib/components/admin/index.mjs +0 -5
  181. package/esm2022/lib/components/admin/sections/create-or-update-sections-input-base.mjs +0 -27
  182. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.mjs +0 -71
  183. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +0 -418
  184. package/esm2022/lib/components/admin/sections/entry-types/index.mjs +0 -3
  185. package/esm2022/lib/components/admin/sections/index.mjs +0 -4
  186. package/esm2022/lib/components/admin/sections/sections.component.mjs +0 -334
  187. package/esm2022/lib/components/admin/sites/create-or-update-sites-input-base.mjs +0 -23
  188. package/esm2022/lib/components/admin/sites/index.mjs +0 -3
  189. package/esm2022/lib/components/admin/sites/sites.component.mjs +0 -285
  190. package/esm2022/lib/components/dynamic-form/entry/entry-config.component.mjs +0 -125
  191. package/esm2022/lib/components/dynamic-form/entry/entry-config.mjs +0 -18
  192. package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +0 -115
  193. package/esm2022/lib/components/dynamic-form/entry/index.mjs +0 -4
  194. package/esm2022/lib/components/dynamic-form/form-control-group.mjs +0 -31
  195. package/esm2022/lib/components/dynamic-form/index.mjs +0 -5
  196. package/esm2022/lib/components/index.mjs +0 -3
  197. package/esm2022/lib/constants/index.mjs +0 -2
  198. package/esm2022/lib/constants/styles.mjs +0 -32
  199. package/esm2022/lib/enums/ecms-component.mjs +0 -13
  200. package/esm2022/lib/enums/index.mjs +0 -2
  201. package/esm2022/lib/proxy/admin/dynamic-forms/form-admin.service.mjs +0 -24
  202. package/esm2022/lib/proxy/admin/dynamic-forms/index.mjs +0 -3
  203. package/esm2022/lib/proxy/admin/dynamic-forms/models.mjs +0 -2
  204. package/esm2022/lib/proxy/admin/entries/entry-admin.service.mjs +0 -67
  205. package/esm2022/lib/proxy/admin/entries/index.mjs +0 -3
  206. package/esm2022/lib/proxy/admin/entries/models.mjs +0 -2
  207. package/esm2022/lib/proxy/admin/fields/field-admin.service.mjs +0 -47
  208. package/esm2022/lib/proxy/admin/fields/field-group-admin.service.mjs +0 -43
  209. package/esm2022/lib/proxy/admin/fields/index.mjs +0 -4
  210. package/esm2022/lib/proxy/admin/fields/models.mjs +0 -2
  211. package/esm2022/lib/proxy/admin/index.mjs +0 -7
  212. package/esm2022/lib/proxy/admin/sections/entry-type-admin.service.mjs +0 -43
  213. package/esm2022/lib/proxy/admin/sections/index.mjs +0 -4
  214. package/esm2022/lib/proxy/admin/sections/models.mjs +0 -2
  215. package/esm2022/lib/proxy/admin/sections/section-admin.service.mjs +0 -53
  216. package/esm2022/lib/proxy/admin/sites/index.mjs +0 -3
  217. package/esm2022/lib/proxy/admin/sites/models.mjs +0 -2
  218. package/esm2022/lib/proxy/admin/sites/site-admin.service.mjs +0 -51
  219. package/esm2022/lib/proxy/dignite/abp/data/index.mjs +0 -2
  220. package/esm2022/lib/proxy/dignite/abp/data/models.mjs +0 -2
  221. package/esm2022/lib/proxy/dignite/abp/index.mjs +0 -3
  222. package/esm2022/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.mjs +0 -48
  223. package/esm2022/lib/proxy/dignite/file-explorer/directories/index.mjs +0 -3
  224. package/esm2022/lib/proxy/dignite/file-explorer/directories/models.mjs +0 -2
  225. package/esm2022/lib/proxy/dignite/file-explorer/files/file-descriptor.service.mjs +0 -60
  226. package/esm2022/lib/proxy/dignite/file-explorer/files/index.mjs +0 -3
  227. package/esm2022/lib/proxy/dignite/file-explorer/files/models.mjs +0 -2
  228. package/esm2022/lib/proxy/dignite/file-explorer/index.mjs +0 -4
  229. package/esm2022/lib/proxy/dignite/index.mjs +0 -4
  230. package/esm2022/lib/proxy/entries/entry-status.enum.mjs +0 -8
  231. package/esm2022/lib/proxy/entries/index.mjs +0 -2
  232. package/esm2022/lib/proxy/fields/index.mjs +0 -2
  233. package/esm2022/lib/proxy/fields/models.mjs +0 -2
  234. package/esm2022/lib/proxy/index.mjs +0 -10
  235. package/esm2022/lib/proxy/microsoft/asp-net-core/index.mjs +0 -3
  236. package/esm2022/lib/proxy/microsoft/asp-net-core/mvc/index.mjs +0 -2
  237. package/esm2022/lib/proxy/microsoft/asp-net-core/mvc/models.mjs +0 -2
  238. package/esm2022/lib/proxy/microsoft/extensions/index.mjs +0 -3
  239. package/esm2022/lib/proxy/microsoft/extensions/primitives/index.mjs +0 -2
  240. package/esm2022/lib/proxy/microsoft/extensions/primitives/models.mjs +0 -2
  241. package/esm2022/lib/proxy/microsoft/index.mjs +0 -5
  242. package/esm2022/lib/proxy/microsoft/net/http/headers/index.mjs +0 -2
  243. package/esm2022/lib/proxy/microsoft/net/http/headers/models.mjs +0 -2
  244. package/esm2022/lib/proxy/microsoft/net/http/index.mjs +0 -3
  245. package/esm2022/lib/proxy/microsoft/net/index.mjs +0 -3
  246. package/esm2022/lib/proxy/sections/index.mjs +0 -3
  247. package/esm2022/lib/proxy/sections/models.mjs +0 -2
  248. package/esm2022/lib/proxy/sections/section-type.enum.mjs +0 -9
  249. package/esm2022/lib/proxy/sites/index.mjs +0 -2
  250. package/esm2022/lib/proxy/sites/models.mjs +0 -2
  251. package/esm2022/lib/proxy/volo/abp/content/index.mjs +0 -2
  252. package/esm2022/lib/proxy/volo/abp/content/models.mjs +0 -2
  253. package/esm2022/lib/proxy/volo/abp/index.mjs +0 -3
  254. package/esm2022/lib/proxy/volo/cms-kit/index.mjs +0 -3
  255. package/esm2022/lib/proxy/volo/cms-kit/users/index.mjs +0 -2
  256. package/esm2022/lib/proxy/volo/cms-kit/users/models.mjs +0 -2
  257. package/esm2022/lib/proxy/volo/index.mjs +0 -4
  258. package/esm2022/lib/services/appent-content.mjs +0 -15
  259. package/esm2022/lib/services/cms-api.service.mjs +0 -80
  260. package/esm2022/lib/services/cms.service.mjs +0 -23
  261. package/esm2022/lib/services/field-abstracts.service.mjs +0 -45
  262. package/esm2022/lib/services/index.mjs +0 -4
  263. package/esm2022/lib/services/simple-reuse-strategy.mjs +0 -43
  264. package/esm2022/lib/services/update-list.service.mjs +0 -19
  265. package/esm2022/lib/toolbar/index.mjs +0 -3
  266. package/esm2022/lib/toolbar/toolbar-btn-default-action.mjs +0 -160
  267. package/esm2022/lib/toolbar/toolbar-config.mjs +0 -81
  268. package/esm2022/public-api.mjs +0 -12
  269. package/fesm2022/dignite-ng-expand.cms-config.mjs +0 -87
  270. package/fesm2022/dignite-ng-expand.cms-config.mjs.map +0 -1
  271. package/fesm2022/dignite-ng-expand.cms.mjs +0 -3839
  272. package/fesm2022/dignite-ng-expand.cms.mjs.map +0 -1
  273. package/index.d.ts +0 -5
  274. package/lib/cms-routing.module.d.ts +0 -7
  275. package/lib/cms.module.d.ts +0 -36
  276. package/lib/components/admin/entries/create-or-edit-entries.component.d.ts +0 -89
  277. package/lib/components/admin/entries/create-or-update-entry-input-base.d.ts +0 -23
  278. package/lib/components/admin/entries/create.component.d.ts +0 -40
  279. package/lib/components/admin/entries/edit.component.d.ts +0 -42
  280. package/lib/components/admin/entries/entries.component.d.ts +0 -66
  281. package/lib/components/admin/entries/index.d.ts +0 -4
  282. package/lib/components/admin/fields/create-field.component.d.ts +0 -31
  283. package/lib/components/admin/fields/create-or-edit-field.component.d.ts +0 -33
  284. package/lib/components/admin/fields/create-or-update-field-input-base.d.ts +0 -16
  285. package/lib/components/admin/fields/edit-field.component.d.ts +0 -40
  286. package/lib/components/admin/fields/field-group.component.d.ts +0 -51
  287. package/lib/components/admin/fields/fields.component.d.ts +0 -37
  288. package/lib/components/admin/fields/index.d.ts +0 -6
  289. package/lib/components/admin/index.d.ts +0 -4
  290. package/lib/components/admin/sections/create-or-update-sections-input-base.d.ts +0 -17
  291. package/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.d.ts +0 -38
  292. package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +0 -132
  293. package/lib/components/admin/sections/entry-types/index.d.ts +0 -2
  294. package/lib/components/admin/sections/index.d.ts +0 -3
  295. package/lib/components/admin/sections/sections.component.d.ts +0 -95
  296. package/lib/components/admin/sites/create-or-update-sites-input-base.d.ts +0 -12
  297. package/lib/components/admin/sites/index.d.ts +0 -2
  298. package/lib/components/admin/sites/sites.component.d.ts +0 -72
  299. package/lib/components/dynamic-form/entry/entry-config.component.d.ts +0 -42
  300. package/lib/components/dynamic-form/entry/entry-config.d.ts +0 -9
  301. package/lib/components/dynamic-form/entry/entry-control.component.d.ts +0 -35
  302. package/lib/components/dynamic-form/entry/index.d.ts +0 -3
  303. package/lib/components/dynamic-form/form-control-group.d.ts +0 -4
  304. package/lib/components/dynamic-form/index.d.ts +0 -2
  305. package/lib/components/index.d.ts +0 -2
  306. package/lib/constants/index.d.ts +0 -1
  307. package/lib/constants/styles.d.ts +0 -2
  308. package/lib/enums/ecms-component.d.ts +0 -11
  309. package/lib/enums/index.d.ts +0 -1
  310. package/lib/proxy/admin/dynamic-forms/form-admin.service.d.ts +0 -12
  311. package/lib/proxy/admin/dynamic-forms/models.d.ts +0 -4
  312. package/lib/proxy/admin/entries/entry-admin.service.d.ts +0 -21
  313. package/lib/proxy/admin/entries/models.d.ts +0 -65
  314. package/lib/proxy/admin/fields/field-admin.service.d.ts +0 -17
  315. package/lib/proxy/admin/fields/field-group-admin.service.d.ts +0 -16
  316. package/lib/proxy/admin/sections/entry-type-admin.service.d.ts +0 -15
  317. package/lib/proxy/admin/sections/section-admin.service.d.ts +0 -18
  318. package/lib/proxy/admin/sites/site-admin.service.d.ts +0 -18
  319. package/lib/proxy/dignite/abp/data/models.d.ts +0 -3
  320. package/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.d.ts +0 -17
  321. package/lib/proxy/dignite/file-explorer/files/file-descriptor.service.d.ts +0 -20
  322. package/lib/proxy/dignite/file-explorer/files/models.d.ts +0 -50
  323. package/lib/proxy/entries/entry-status.enum.d.ts +0 -5
  324. package/lib/proxy/fields/models.d.ts +0 -8
  325. package/lib/proxy/microsoft/extensions/primitives/models.d.ts +0 -8
  326. package/lib/proxy/sections/models.d.ts +0 -12
  327. package/lib/proxy/sections/section-type.enum.d.ts +0 -6
  328. package/lib/proxy/sites/models.d.ts +0 -4
  329. package/lib/proxy/volo/abp/content/models.d.ts +0 -5
  330. package/lib/services/appent-content.d.ts +0 -1
  331. package/lib/services/cms-api.service.d.ts +0 -20
  332. package/lib/services/cms.service.d.ts +0 -10
  333. package/lib/services/field-abstracts.service.d.ts +0 -20
  334. package/lib/services/index.d.ts +0 -3
  335. package/lib/services/simple-reuse-strategy.d.ts +0 -11
  336. package/lib/services/update-list.service.d.ts +0 -9
  337. package/lib/toolbar/index.d.ts +0 -2
  338. package/lib/toolbar/toolbar-btn-default-action.d.ts +0 -19
  339. package/lib/toolbar/toolbar-config.d.ts +0 -57
  340. /package/{lib/proxy/admin/dynamic-forms/index.d.ts → src/lib/proxy/admin/dynamic-forms/index.ts} +0 -0
  341. /package/{lib/proxy/admin/entries/index.d.ts → src/lib/proxy/admin/entries/index.ts} +0 -0
  342. /package/{lib/proxy/admin/fields/index.d.ts → src/lib/proxy/admin/fields/index.ts} +0 -0
  343. /package/{lib/proxy/admin/index.d.ts → src/lib/proxy/admin/index.ts} +0 -0
  344. /package/{lib/proxy/admin/sections/index.d.ts → src/lib/proxy/admin/sections/index.ts} +0 -0
  345. /package/{lib/proxy/admin/sites/index.d.ts → src/lib/proxy/admin/sites/index.ts} +0 -0
  346. /package/{lib/proxy/dignite/abp/data/index.d.ts → src/lib/proxy/dignite/abp/data/index.ts} +0 -0
  347. /package/{lib/proxy/dignite/abp/index.d.ts → src/lib/proxy/dignite/abp/index.ts} +0 -0
  348. /package/{lib/proxy/dignite/file-explorer/directories/index.d.ts → src/lib/proxy/dignite/file-explorer/directories/index.ts} +0 -0
  349. /package/{lib/proxy/dignite/file-explorer/files/index.d.ts → src/lib/proxy/dignite/file-explorer/files/index.ts} +0 -0
  350. /package/{lib/proxy/dignite/file-explorer/index.d.ts → src/lib/proxy/dignite/file-explorer/index.ts} +0 -0
  351. /package/{lib/proxy/dignite/index.d.ts → src/lib/proxy/dignite/index.ts} +0 -0
  352. /package/{lib/proxy/entries/index.d.ts → src/lib/proxy/entries/index.ts} +0 -0
  353. /package/{lib/proxy/fields/index.d.ts → src/lib/proxy/fields/index.ts} +0 -0
  354. /package/{lib/proxy/index.d.ts → src/lib/proxy/index.ts} +0 -0
  355. /package/{lib/proxy/microsoft/asp-net-core/index.d.ts → src/lib/proxy/microsoft/asp-net-core/index.ts} +0 -0
  356. /package/{lib/proxy/microsoft/asp-net-core/mvc/index.d.ts → src/lib/proxy/microsoft/asp-net-core/mvc/index.ts} +0 -0
  357. /package/{lib/proxy/microsoft/extensions/index.d.ts → src/lib/proxy/microsoft/extensions/index.ts} +0 -0
  358. /package/{lib/proxy/microsoft/extensions/primitives/index.d.ts → src/lib/proxy/microsoft/extensions/primitives/index.ts} +0 -0
  359. /package/{lib/proxy/microsoft/index.d.ts → src/lib/proxy/microsoft/index.ts} +0 -0
  360. /package/{lib/proxy/microsoft/net/http/headers/index.d.ts → src/lib/proxy/microsoft/net/http/headers/index.ts} +0 -0
  361. /package/{lib/proxy/microsoft/net/http/index.d.ts → src/lib/proxy/microsoft/net/http/index.ts} +0 -0
  362. /package/{lib/proxy/microsoft/net/index.d.ts → src/lib/proxy/microsoft/net/index.ts} +0 -0
  363. /package/{lib/proxy/sections/index.d.ts → src/lib/proxy/sections/index.ts} +0 -0
  364. /package/{lib/proxy/sites/index.d.ts → src/lib/proxy/sites/index.ts} +0 -0
  365. /package/{lib/proxy/volo/abp/content/index.d.ts → src/lib/proxy/volo/abp/content/index.ts} +0 -0
  366. /package/{lib/proxy/volo/abp/index.d.ts → src/lib/proxy/volo/abp/index.ts} +0 -0
  367. /package/{lib/proxy/volo/cms-kit/index.d.ts → src/lib/proxy/volo/cms-kit/index.ts} +0 -0
  368. /package/{lib/proxy/volo/cms-kit/users/index.d.ts → src/lib/proxy/volo/cms-kit/users/index.ts} +0 -0
  369. /package/{lib/proxy/volo/index.d.ts → src/lib/proxy/volo/index.ts} +0 -0
@@ -1,418 +0,0 @@
1
- import { Component, ViewChild, inject } from '@angular/core';
2
- import { FormBuilder } from '@angular/forms';
3
- import { CreateOrEditEntryTypeInputBase, fieldTabsBase, fieldsBase } from './create-or-edit.-entry-type-input-base';
4
- import { EXTENSIONS_IDENTIFIER } from '@abp/ng.theme.shared/extensions';
5
- import { ECmsComponent } from '../../../../enums';
6
- import { UpdateListService } from '../../../../services/update-list.service';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "@abp/ng.theme.shared";
9
- import * as i2 from "@angular/common";
10
- import * as i3 from "@angular/router";
11
- import * as i4 from "../../../../proxy/admin/fields";
12
- import * as i5 from "../../../../proxy/admin/sections";
13
- import * as i6 from "@abp/ng.core";
14
- import * as i7 from "../../../../services/cms-api.service";
15
- import * as i8 from "@angular/forms";
16
- import * as i9 from "@ngx-validate/core";
17
- import * as i10 from "@ng-bootstrap/ng-bootstrap";
18
- import * as i11 from "@abp/ng.components/page";
19
- class CreateOrEditComponent {
20
- toaster;
21
- _location;
22
- route;
23
- _FieldGroupAdminService;
24
- _FieldAdminService;
25
- _EntryTypeAdminService;
26
- _LocalizationService;
27
- _CmsApiService;
28
- router;
29
- constructor(
30
- // private fb: FormBuilder,
31
- toaster, _location, route, _FieldGroupAdminService, _FieldAdminService, _EntryTypeAdminService, _LocalizationService, _CmsApiService, router) {
32
- this.toaster = toaster;
33
- this._location = _location;
34
- this.route = route;
35
- this._FieldGroupAdminService = _FieldGroupAdminService;
36
- this._FieldAdminService = _FieldAdminService;
37
- this._EntryTypeAdminService = _EntryTypeAdminService;
38
- this._LocalizationService = _LocalizationService;
39
- this._CmsApiService = _CmsApiService;
40
- this.router = router;
41
- }
42
- fb = inject(FormBuilder);
43
- _UpdateListService = inject(UpdateListService);
44
- /**表单实体 */
45
- newEntity = this.fb.group(new CreateOrEditEntryTypeInputBase());
46
- /**版块id */
47
- sectionId = '';
48
- /**条目类型id */
49
- entryTypesId = '';
50
- /**条目类型详情 */
51
- entryTypesSelect;
52
- get fieldTabs() {
53
- return this.newEntity.get('fieldTabs');
54
- }
55
- /**获取提交按钮替身,用于真实触发表单提交 */
56
- submitclick;
57
- /**触发提交按钮 */
58
- submitclickBtn() {
59
- this.submitclick.nativeElement.click();
60
- }
61
- ngOnInit() {
62
- let sectionId = this.route.snapshot.params.sectionsId;
63
- this.entryTypesId = this.route.snapshot.params.entryTypesId || '';
64
- if (sectionId) {
65
- this.sectionId = sectionId;
66
- this.addControlToFieldTabs();
67
- this.getFieldGroup();
68
- }
69
- }
70
- /**给fieldTabs添加新控件 */
71
- addControlToFieldTabs(nameValue = '') {
72
- const newFormGroup = this.fb.group(new fieldTabsBase({
73
- name: this.fieldTabs.length === 0 ? this._LocalizationService.instant(`Cms::FieldTab`) : nameValue,
74
- }));
75
- this.fieldTabs.push(newFormGroup);
76
- this.resultSource.push(newFormGroup.value);
77
- this.navActive = this.resultSource.length - 1;
78
- }
79
- /**获取字段分组 */
80
- getFieldGroup() {
81
- this._FieldGroupAdminService.getList({}).subscribe(async (res) => {
82
- let fieldList = await this.getFieldList();
83
- let fieldGroupList = res.items;
84
- fieldGroupList.unshift({
85
- id: null,
86
- name: 'UngroupedFields'
87
- });
88
- fieldGroupList.forEach((el, index) => {
89
- el.fields = fieldList.filter(els => els.groupId === el.id);
90
- });
91
- this.fieldGroupList = fieldGroupList;
92
- this.fieldList = this.deepClone(fieldList);
93
- let entryTypesId = this.entryTypesId;
94
- if (entryTypesId) {
95
- this.entryTypesId = entryTypesId;
96
- this.getEntryTypes();
97
- }
98
- });
99
- }
100
- /**获取条目类型详情 */
101
- getEntryTypes() {
102
- let fieldList = this.deepClone(this.fieldList);
103
- this._EntryTypeAdminService.get(this.entryTypesId).subscribe(res => {
104
- res.fieldTabs.forEach(el => {
105
- el.fields.forEach((eld) => {
106
- eld.id = eld.fieldId;
107
- eld.groupId = fieldList.find(elfd => elfd.id == eld.fieldId).groupId;
108
- this.formRightGroup.push(eld);
109
- let fieldindex = fieldList.findIndex(elfl => elfl.id == eld.fieldId);
110
- fieldList.splice(fieldindex, 1);
111
- });
112
- });
113
- this.fieldGroupList.forEach((el, index) => {
114
- el.fields = fieldList.filter(els => els.groupId === el.id);
115
- });
116
- this.newEntity.patchValue(res);
117
- this.entryTypesSelect = res;
118
- this.resultSource = res.fieldTabs;
119
- });
120
- }
121
- /**
122
- * 深拷贝--方法
123
- * $api.deepClone() */
124
- deepClone(obj) {
125
- if (typeof obj !== 'object' || obj === null)
126
- return obj;
127
- const result = Array.isArray(obj) ? [] : {};
128
- for (let key in obj) {
129
- if (obj.hasOwnProperty(key)) {
130
- if (typeof obj[key] === 'object' && obj[key] !== null) {
131
- if (obj[key] instanceof Date) {
132
- result[key] = new Date(obj[key].getTime());
133
- }
134
- else if (obj[key] instanceof RegExp) {
135
- result[key] = new RegExp(obj[key]);
136
- }
137
- else {
138
- result[key] = this.deepClone(obj[key]);
139
- }
140
- }
141
- else {
142
- result[key] = obj[key];
143
- }
144
- }
145
- }
146
- return result;
147
- }
148
- /**
149
- *
150
- * @param nameValue 获取所有字段
151
- */
152
- getFieldList() {
153
- return new Promise((resolve, rejects) => {
154
- this._FieldAdminService.getList({
155
- maxResultCount: 1000
156
- }).subscribe((res) => {
157
- res.items.forEach(el => {
158
- el.required = false;
159
- el.showOnList = false;
160
- });
161
- resolve(res.items);
162
- });
163
- });
164
- }
165
- /**
166
- * 拖拽 功能*/
167
- /**数据源 */
168
- /**数据源-字段分组数据-包含字段数据 fields */
169
- fieldGroupList = [];
170
- /**数据源-所有字段列表 */
171
- fieldList = [];
172
- /**数据源拖拽的分组下标 */
173
- DataSourceGroupIndex;
174
- /**数据源拖拽的字段下标 */
175
- DataSourceFieldIndex;
176
- /**目标源 结果*/
177
- resultSource = [];
178
- /**从数据源拖拽的元素 */
179
- fromDataSourceDragEl;
180
- /**从目标源拖拽的元素 */
181
- fromResultSourceDragEl;
182
- /**来自数据源的集合,用于从目标源拖回数据源时的判断,与取值 */
183
- formRightGroup = [];
184
- /**从数据源开始拖拽 */
185
- fromDataSourceDragStart(element, fieldIndex, groupIndex) {
186
- this.fromDataSourceDragEl = element;
187
- this.DataSourceFieldIndex = fieldIndex;
188
- this.DataSourceGroupIndex = groupIndex;
189
- this.fromResultSourceDragEl = undefined;
190
- }
191
- /**从目标源开始拖拽 */
192
- fromResultSourceDragStart(element) {
193
- this.fromResultSourceDragEl = element;
194
- this.fromDataSourceDragEl = undefined;
195
- this.DataSourceFieldIndex = undefined;
196
- this.DataSourceGroupIndex = undefined;
197
- }
198
- /**拖拽到数据源时触发 */
199
- dragToDataSourceDropped() {
200
- //从数据源拖拽到数据源-排序
201
- if (this.fromDataSourceDragEl) {
202
- }
203
- let _fromResultSourceDragEl = this.fromResultSourceDragEl;
204
- let formRightGroup = this.deepClone(this.formRightGroup);
205
- let fieldList = this.deepClone(this.fieldList);
206
- if (_fromResultSourceDragEl) { //移动
207
- //从目标源拖拽到数据源
208
- // 拖拽目标源的下标
209
- let dragResultSourceIndex = this.resultSource[this.navActive].fields.findIndex(el => el.id == _fromResultSourceDragEl.id);
210
- //删除目标源中的数据
211
- this.resultSource[this.navActive].fields.splice(dragResultSourceIndex, 1);
212
- formRightGroup.splice(formRightGroup.findIndex(el => el.id == _fromResultSourceDragEl.id), 1);
213
- this.fieldGroupList.forEach(el => {
214
- if (el.id == _fromResultSourceDragEl.groupId) {
215
- const elFieldsAll = fieldList.filter(els => els.groupId === el.id);
216
- el.fields = elFieldsAll.filter(item => !formRightGroup.some(itemB => item.id === itemB.id));
217
- }
218
- });
219
- this.formRightGroup = formRightGroup;
220
- }
221
- this.setfieldTabsFrom();
222
- }
223
- /**拖拽到目标源时触发
224
- *
225
- */
226
- dragToResultSourceDropped(fieldTabstem, fieldTabsIndex) {
227
- const _fromDataSourceDragEl = this.fromDataSourceDragEl;
228
- //从数据源拖拽到目标源
229
- if (_fromDataSourceDragEl) {
230
- this.fieldGroupList[this.DataSourceGroupIndex].fields.splice(this.DataSourceFieldIndex, 1);
231
- this.resultSource[fieldTabsIndex].fields.push(_fromDataSourceDragEl);
232
- this.formRightGroup.push(_fromDataSourceDragEl);
233
- }
234
- this.setfieldTabsFrom();
235
- }
236
- /** 从目标源拖拽到目标源*/
237
- dragToResultSourceItemDropped(fieldsIndex) {
238
- const _fromResultSourceDragEl = this.fromResultSourceDragEl;
239
- if (_fromResultSourceDragEl) {
240
- // 拖拽目标源的下标
241
- let dragResultSourceIndex = this.resultSource[this.navActive].fields.findIndex(el => el.id == _fromResultSourceDragEl.id);
242
- //删除目标源中的数据
243
- this.resultSource[this.navActive].fields.splice(dragResultSourceIndex, 1);
244
- this.resultSource[this.navActive].fields.splice(fieldsIndex, 0, _fromResultSourceDragEl);
245
- }
246
- this.setfieldTabsFrom();
247
- }
248
- /**设置formA表单 */
249
- setfieldTabsFrom() {
250
- let setArray = [];
251
- this.resultSource.forEach(el => {
252
- let fieldsArray = [];
253
- el.fields.forEach(item => {
254
- fieldsArray.push({
255
- "fieldId": item.id || item.fieldId,
256
- "displayName": item.displayName,
257
- "required": item?.required,
258
- "showOnList": item?.showOnList
259
- });
260
- });
261
- setArray.push({
262
- name: el.name,
263
- fields: fieldsArray
264
- });
265
- });
266
- this.newEntity.patchValue({
267
- fieldTabs: setArray
268
- });
269
- }
270
- /**保存表单 */
271
- save() {
272
- let input = this.newEntity.value;
273
- if (this.entryTypesSelect) {
274
- this._EntryTypeAdminService.update(this.entryTypesSelect.id, input).subscribe(res => {
275
- this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));
276
- // this._location.back()
277
- this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {
278
- this.router.navigate([`/cms/admin/sections`]);
279
- this._UpdateListService.updateList();
280
- });
281
- });
282
- return;
283
- }
284
- input.sectionId = this.sectionId;
285
- this._EntryTypeAdminService.create(input).subscribe(res => {
286
- this.toaster.success(this._LocalizationService.instant(`CmsKit::SavedSuccessfully`));
287
- // this._location.back()
288
- this.router.navigateByUrl('', { skipLocationChange: true }).then(() => {
289
- this.router.navigate([`/cms/admin/sections`]);
290
- this._UpdateListService.updateList();
291
- });
292
- });
293
- }
294
- /**编辑Tabs表单 */
295
- editFieldTabsFrom;
296
- /**模态框状态 */
297
- visibleTabsOpen = false;
298
- /**是否是忙碌状态 */
299
- modalBusy = false;
300
- /**正在编辑的tabs */
301
- editFieldTabsSelect;
302
- /**正在选中的nav */
303
- navActive = 0;
304
- /**表单控件模板-动态赋值表单控件 */
305
- editFieldTabsModalSubmitBtn;
306
- /**模态框状态改变回调 */
307
- VisibleTabsChange(event) {
308
- if (!event) {
309
- this.editFieldTabsSelect = '';
310
- return;
311
- }
312
- }
313
- /**新建增加FieldTabs */
314
- addFieldTabs() {
315
- this.editFieldTabsFrom = this.fb.group(new fieldTabsBase());
316
- this.visibleTabsOpen = true;
317
- }
318
- /**正在编辑的tab下标 */
319
- newEditFieldTabsIndex;
320
- /**编辑FieldTabs */
321
- editFieldTabs(item, i) {
322
- this.editFieldTabsFrom = this.fb.group(new fieldTabsBase({
323
- name: item.name
324
- }));
325
- this.editFieldTabsSelect = item;
326
- this.visibleTabsOpen = true;
327
- this.newEditFieldTabsIndex = i;
328
- }
329
- /**保存编辑tabs表单 */
330
- editFieldTabsSave() {
331
- //编辑
332
- if (this.editFieldTabsSelect) {
333
- this.resultSource[this.newEditFieldTabsIndex].name = this.editFieldTabsFrom.value.name;
334
- this.navActive = this.newEditFieldTabsIndex;
335
- }
336
- else {
337
- //新建
338
- this.addControlToFieldTabs(this.editFieldTabsFrom.value.name);
339
- }
340
- this.visibleTabsOpen = false;
341
- this.setfieldTabsFrom();
342
- }
343
- /**删除某个tabs表单 */
344
- deleteFieldTabs(index) {
345
- this.fieldTabs.removeAt(index);
346
- this.resultSource.splice(index, 1);
347
- }
348
- /**编辑字段模态框状态 */
349
- visibleEditFieldOpen = false;
350
- /**编辑字段模态框表单 */
351
- editFieldFrom;
352
- /**表单控件模板-动态赋值表单控件-编辑字段 */
353
- editFieldModalSubmitBtn;
354
- /**正在编辑的字段下标 */
355
- EditFieldIndex;
356
- /**编辑字段模态框状态状态改变回调 */
357
- VisibleEditFieldChange(event) {
358
- if (!event) {
359
- this.EditFieldIndex = undefined;
360
- return;
361
- }
362
- }
363
- /**打开编辑字段模态框 */
364
- EditFieldModalOpen(items, elIndex) {
365
- this.visibleEditFieldOpen = true;
366
- this.EditFieldIndex = elIndex;
367
- this.editFieldFrom = this.fb.group(new fieldsBase(this.fieldTabs.value[this.navActive].fields[elIndex]));
368
- }
369
- /**保存编辑字段 */
370
- editFieldSave() {
371
- let input = this.editFieldFrom.value;
372
- this.resultSource[this.navActive].fields[this.EditFieldIndex].displayName = input.displayName;
373
- this.resultSource[this.navActive].fields[this.EditFieldIndex].required = input.required;
374
- this.resultSource[this.navActive].fields[this.EditFieldIndex].showOnList = input.showOnList;
375
- this.visibleEditFieldOpen = false;
376
- this.setfieldTabsFrom();
377
- }
378
- /**name表单控件 */
379
- get nameInput() {
380
- return this.newEntity.get('name');
381
- }
382
- /**字段标签input失去标点生成字段名字 */
383
- disPlayNameInputBlur(event) {
384
- let value = event.target.value;
385
- let pinyin = this._CmsApiService.chineseToPinyin(value);
386
- let nameInput = this.nameInput;
387
- if (nameInput.value)
388
- return;
389
- nameInput.patchValue(pinyin);
390
- }
391
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateOrEditComponent, deps: [{ token: i1.ToasterService }, { token: i2.Location }, { token: i3.ActivatedRoute }, { token: i4.FieldGroupAdminService }, { token: i4.FieldAdminService }, { token: i5.EntryTypeAdminService }, { token: i6.LocalizationService }, { token: i7.CmsApiService }, { token: i3.Router }], target: i0.ɵɵFactoryTarget.Component });
392
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CreateOrEditComponent, selector: "cms-create-or-edit", providers: [
393
- {
394
- provide: EXTENSIONS_IDENTIFIER,
395
- useValue: ECmsComponent.SectionsCreateOrEdit,
396
- },
397
- ], viewQueries: [{ propertyName: "submitclick", first: true, predicate: ["submitclick"], descendants: true, static: true }, { propertyName: "editFieldTabsModalSubmitBtn", first: true, predicate: ["editFieldTabsModalSubmitBtn"], descendants: true }, { propertyName: "editFieldModalSubmitBtn", first: true, predicate: ["editFieldModalSubmitBtn"], descendants: true }], ngImport: i0, template: "<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save()\">\n <abp-page [title]=\"entryTypesId ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)\" [toolbar]=\"true\">\n <div class=\"create-or-edit-entry-type-page\">\n <div class=\"card\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card-body\">\n <div class=\"\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n <div formArrayName=\"fieldTabs\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::FieldLayout' | abpLocalization}}</label>\n <div class=\"container\">\n <!-- -->\n <div class=\"row\">\n <div class=\"col-sm-8\">\n <ul ngbNav #nav=\"ngbNav\" [(activeId)]=\"navActive\" class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let item of resultSource; let i = index\">\n <li [ngbNavItem]=\"i\">\n <button type=\"button\" ngbDropdown ngbNavLink>\n {{ item.name }}\n <span class=\"ms-1\" (click.stop)=\"$event.stopPropagation()\"\n ngbDropdownToggle></span>\n <div ngbDropdownMenu style=\"z-index: 999;\">\n <li ngbDropdownItem type=\"button\"\n (click.stop)=\"editFieldTabs(item,i)\">\n <i class=\"fas fa-edit\"></i>\n {{'AbpUi::Edit' | abpLocalization}}\n </li>\n <li ngbDropdownItem\n *ngIf=\"resultSource.length !== 1\" type=\"button\"\n (click.stop)=\"deleteFieldTabs(i)\">\n <i class=\"fas fa-trash\"></i>\n {{'AbpUi::Delete' | abpLocalization}}\n </li>\n </div>\n </button>\n <ng-template ngbNavContent>\n <div class=\"p-2\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToResultSourceDropped(item,i)\" style=\"height: 100%;\">\n <p class=\"form-text\" *ngIf=\"item.fields.length === 0\">\n {{'Cms::DragAndDropFieldTips' | abpLocalization}}\n </p>\n <ul class=\"list-group\" style=\"height: 100%;\">\n <ng-container\n *ngFor=\"let el of item.fields; let iel = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromResultSourceDragStart(el)\"\n (drop)=\"dragToResultSourceItemDropped(iel)\"\n class=\"list-group-item d-flex align-items-center justify-content-between py-1\" style=\"position: unset;\">\n {{ el.displayName }}\n <button class=\"p-0 btn btn-sm btn-light\"\n (click.stop)=\"EditFieldModalOpen(el,iel)\"\n type=\"button\"><i\n class=\"fas fa-wrench p-sm-1\"\n role=\"button\"></i></button>\n </li>\n </ng-container>\n </ul>\n \n </div>\n </ng-template>\n </li>\n </ng-container>\n <li class=\"nav-item\" role=\"presentation\">\n <button type=\"button\" class=\"nav-link\"\n (click.stop)=\"addFieldTabs()\">\n <i class=\"fas fa-plus-circle\"></i>\n {{'Cms::NewTab' | abpLocalization}}\n </button>\n </li>\n </ul>\n <div [ngbNavOutlet]=\"nav\" class=\"mt-2 bordernNavs p-0\"></div>\n </div>\n <div class=\"col-sm-4\">\n <div ngbAccordion #accordion=\"ngbAccordion\"\n ondragover=\"event.preventDefault();\" (drop)=\"dragToDataSourceDropped()\"\n style=\"min-height: 80px;\">\n <ng-container *ngFor=\"let item of fieldGroupList; let i = index\">\n <div [ngbAccordionItem]=\"item.name\" *ngIf=\"item.fields.length > 0\">\n <h2 ngbAccordionHeader>\n <button ngbAccordionButton>{{\n ('Cms::'+item.name) | abpLocalization }}</button>\n </h2>\n <div ngbAccordionCollapse>\n <div ngbAccordionBody>\n <ng-template>\n <ul class=\"list-group\">\n <ng-container\n *ngFor=\"let el of item.fields; let ii = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromDataSourceDragStart(el,ii,i)\"\n class=\"list-group-item\">\n {{ el.displayName }}\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </div>\n </div>\n\n\n </div>\n </abp-page>\n\n</form>\n\n<abp-modal [(visible)]=\"visibleTabsOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleTabsChange($event)\">\n <ng-template #abpHeader>\n <h3>{{ editFieldTabsSelect ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldTabsFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldTabsFrom\" (ngSubmit)=\"editFieldTabsSave()\">\n <button type=\"submit\" #editFieldTabsModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"!editFieldTabsFrom.valid\"\n (click)=\"editFieldTabsModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n\n<abp-modal [(visible)]=\"visibleEditFieldOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleEditFieldChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldFrom\" (ngSubmit)=\"editFieldSave()\">\n <button type=\"submit\" #editFieldModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" placeholder=\"\" />\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"required\"\n id=\"required\" />\n <label class=\"form-check-label\" for=\"required\"> {{'Cms::Required' | abpLocalization}} </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"showOnList\"\n id=\"showOnList\" />\n <label class=\"form-check-label\" for=\"showOnList\"> {{'Cms::ShowOnList' | abpLocalization}} </label>\n </div>\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"!editFieldFrom.valid\"\n (click)=\"editFieldModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: ["::ng-deep .create-or-edit-entry-type-page .dignite_page{height:calc(100vh - 125px);overflow:auto}::ng-deep .create-or-edit-entry-type-page .form-control,::ng-deep .create-or-edit-entry-type-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-type-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-type-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit;height:calc(100% - 60px)}::ng-deep .create-or-edit-entry-type-page .tab-pane{height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i8.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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: i8.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i6.FormSubmitDirective, selector: "form[ngSubmit][formGroup]", inputs: ["debounce", "notValidateOnSubmit", "markAsDirtyWhenSubmit"], outputs: ["ngSubmit"] }, { kind: "directive", type: i6.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: "component", type: i1.ButtonComponent, selector: "abp-button", inputs: ["buttonId", "buttonClass", "buttonType", "formName", "iconClass", "loading", "disabled", "attributes"], outputs: ["click", "focus", "blur", "abpClick", "abpFocus", "abpBlur"] }, { kind: "component", type: i1.ModalComponent, selector: "abp-modal", inputs: ["visible", "busy", "options", "suppressUnsavedChangesWarning"], outputs: ["visibleChange", "init", "appear", "disappear"] }, { kind: "directive", type: i1.ModalCloseDirective, selector: "[abpClose]" }, { kind: "directive", type: i10.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i10.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i10.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i10.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["disabled"] }, { kind: "directive", type: i10.NgbNavContent, selector: "ng-template[ngbNavContent]" }, { kind: "directive", type: i10.NgbNav, selector: "[ngbNav]", inputs: ["activeId", "animation", "destroyOnHide", "orientation", "roles", "keyboard"], outputs: ["activeIdChange", "shown", "hidden", "navChange"], exportAs: ["ngbNav"] }, { kind: "directive", type: i10.NgbNavItem, selector: "[ngbNavItem]", inputs: ["destroyOnHide", "disabled", "domId", "ngbNavItem"], outputs: ["shown", "hidden"], exportAs: ["ngbNavItem"] }, { kind: "directive", type: i10.NgbNavItemRole, selector: "[ngbNavItem]:not(ng-container)" }, { kind: "directive", type: i10.NgbNavLinkButton, selector: "button[ngbNavLink]" }, { kind: "directive", type: i10.NgbNavLinkBase, selector: "[ngbNavLink]" }, { kind: "component", type: i10.NgbNavOutlet, selector: "[ngbNavOutlet]", inputs: ["paneRole", "ngbNavOutlet"] }, { kind: "directive", type: i10.NgbAccordionButton, selector: "button[ngbAccordionButton]" }, { kind: "directive", type: i10.NgbAccordionDirective, selector: "[ngbAccordion]", inputs: ["animation", "closeOthers", "destroyOnHide"], outputs: ["show", "shown", "hide", "hidden"], exportAs: ["ngbAccordion"] }, { kind: "directive", type: i10.NgbAccordionItem, selector: "[ngbAccordionItem]", inputs: ["ngbAccordionItem", "destroyOnHide", "disabled", "collapsed"], outputs: ["show", "shown", "hide", "hidden"], exportAs: ["ngbAccordionItem"] }, { kind: "directive", type: i10.NgbAccordionHeader, selector: "[ngbAccordionHeader]" }, { kind: "directive", type: i10.NgbAccordionBody, selector: "[ngbAccordionBody]" }, { kind: "directive", type: i10.NgbAccordionCollapse, selector: "[ngbAccordionCollapse]", exportAs: ["ngbAccordionCollapse"] }, { kind: "component", type: i11.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "pipe", type: i6.LocalizationPipe, name: "abpLocalization" }] });
398
- }
399
- export { CreateOrEditComponent };
400
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CreateOrEditComponent, decorators: [{
401
- type: Component,
402
- args: [{ selector: 'cms-create-or-edit', providers: [
403
- {
404
- provide: EXTENSIONS_IDENTIFIER,
405
- useValue: ECmsComponent.SectionsCreateOrEdit,
406
- },
407
- ], template: "<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (ngSubmit)=\"save()\">\n <abp-page [title]=\"entryTypesId ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)\" [toolbar]=\"true\">\n <div class=\"create-or-edit-entry-type-page\">\n <div class=\"card\">\n <button type=\"submit\" style=\"display: none;\" #submitclick></button>\n <div class=\"card-body\">\n <div class=\"\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\"\n (blur)=\"disPlayNameInputBlur($event)\" placeholder=\"\" />\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n <div formArrayName=\"fieldTabs\">\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::FieldLayout' | abpLocalization}}</label>\n <div class=\"container\">\n <!-- -->\n <div class=\"row\">\n <div class=\"col-sm-8\">\n <ul ngbNav #nav=\"ngbNav\" [(activeId)]=\"navActive\" class=\"nav nav-tabs\">\n <ng-container *ngFor=\"let item of resultSource; let i = index\">\n <li [ngbNavItem]=\"i\">\n <button type=\"button\" ngbDropdown ngbNavLink>\n {{ item.name }}\n <span class=\"ms-1\" (click.stop)=\"$event.stopPropagation()\"\n ngbDropdownToggle></span>\n <div ngbDropdownMenu style=\"z-index: 999;\">\n <li ngbDropdownItem type=\"button\"\n (click.stop)=\"editFieldTabs(item,i)\">\n <i class=\"fas fa-edit\"></i>\n {{'AbpUi::Edit' | abpLocalization}}\n </li>\n <li ngbDropdownItem\n *ngIf=\"resultSource.length !== 1\" type=\"button\"\n (click.stop)=\"deleteFieldTabs(i)\">\n <i class=\"fas fa-trash\"></i>\n {{'AbpUi::Delete' | abpLocalization}}\n </li>\n </div>\n </button>\n <ng-template ngbNavContent>\n <div class=\"p-2\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToResultSourceDropped(item,i)\" style=\"height: 100%;\">\n <p class=\"form-text\" *ngIf=\"item.fields.length === 0\">\n {{'Cms::DragAndDropFieldTips' | abpLocalization}}\n </p>\n <ul class=\"list-group\" style=\"height: 100%;\">\n <ng-container\n *ngFor=\"let el of item.fields; let iel = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromResultSourceDragStart(el)\"\n (drop)=\"dragToResultSourceItemDropped(iel)\"\n class=\"list-group-item d-flex align-items-center justify-content-between py-1\" style=\"position: unset;\">\n {{ el.displayName }}\n <button class=\"p-0 btn btn-sm btn-light\"\n (click.stop)=\"EditFieldModalOpen(el,iel)\"\n type=\"button\"><i\n class=\"fas fa-wrench p-sm-1\"\n role=\"button\"></i></button>\n </li>\n </ng-container>\n </ul>\n \n </div>\n </ng-template>\n </li>\n </ng-container>\n <li class=\"nav-item\" role=\"presentation\">\n <button type=\"button\" class=\"nav-link\"\n (click.stop)=\"addFieldTabs()\">\n <i class=\"fas fa-plus-circle\"></i>\n {{'Cms::NewTab' | abpLocalization}}\n </button>\n </li>\n </ul>\n <div [ngbNavOutlet]=\"nav\" class=\"mt-2 bordernNavs p-0\"></div>\n </div>\n <div class=\"col-sm-4\">\n <div ngbAccordion #accordion=\"ngbAccordion\"\n ondragover=\"event.preventDefault();\" (drop)=\"dragToDataSourceDropped()\"\n style=\"min-height: 80px;\">\n <ng-container *ngFor=\"let item of fieldGroupList; let i = index\">\n <div [ngbAccordionItem]=\"item.name\" *ngIf=\"item.fields.length > 0\">\n <h2 ngbAccordionHeader>\n <button ngbAccordionButton>{{\n ('Cms::'+item.name) | abpLocalization }}</button>\n </h2>\n <div ngbAccordionCollapse>\n <div ngbAccordionBody>\n <ng-template>\n <ul class=\"list-group\">\n <ng-container\n *ngFor=\"let el of item.fields; let ii = index\">\n <li draggable=\"true\"\n (dragstart)=\"fromDataSourceDragStart(el,ii,i)\"\n class=\"list-group-item\">\n {{ el.displayName }}\n </li>\n </ng-container>\n </ul>\n </ng-template>\n </div>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n\n </div>\n </div>\n\n\n </div>\n </abp-page>\n\n</form>\n\n<abp-modal [(visible)]=\"visibleTabsOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleTabsChange($event)\">\n <ng-template #abpHeader>\n <h3>{{ editFieldTabsSelect ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldTabsFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldTabsFrom\" (ngSubmit)=\"editFieldTabsSave()\">\n <button type=\"submit\" #editFieldTabsModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::Name' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"name\" placeholder=\"\" />\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"!editFieldTabsFrom.valid\"\n (click)=\"editFieldTabsModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>\n\n\n<abp-modal [(visible)]=\"visibleEditFieldOpen\" [busy]=\"modalBusy\" (visibleChange)=\"VisibleEditFieldChange($event)\">\n <ng-template #abpHeader>\n <h3>{{'AbpUi::Edit' | abpLocalization}}</h3>\n </ng-template>\n <ng-template #abpBody>\n <ng-template #loaderRef>\n <div class=\"text-center\"><i class=\"fa fa-pulse fa-spinner\" aria-hidden=\"true\"></i></div>\n </ng-template>\n <ng-container *ngIf=\"editFieldFrom; else loaderRef\">\n <form class=\"sites-modal-form\" [formGroup]=\"editFieldFrom\" (ngSubmit)=\"editFieldSave()\">\n <button type=\"submit\" #editFieldModalSubmitBtn style=\"display: none\"></button>\n <div class=\"mb-2\">\n <label class=\"form-label\">{{'Cms::DisplayName' | abpLocalization}}</label>\n <input type=\"text\" class=\"form-control\" formControlName=\"displayName\" placeholder=\"\" />\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"required\"\n id=\"required\" />\n <label class=\"form-check-label\" for=\"required\"> {{'Cms::Required' | abpLocalization}} </label>\n </div>\n </div>\n <div class=\"mb-2\">\n <div class=\"form-check form-check-inline\">\n <input class=\"form-check-input\" type=\"checkbox\" value=\"true\" formControlName=\"showOnList\"\n id=\"showOnList\" />\n <label class=\"form-check-label\" for=\"showOnList\"> {{'Cms::ShowOnList' | abpLocalization}} </label>\n </div>\n </div>\n </form>\n </ng-container>\n </ng-template>\n <ng-template #abpFooter>\n <button type=\"button\" class=\"btn btn-secondary\" abpClose>{{'AbpUi::Close' | abpLocalization}}</button>\n <abp-button iconClass=\"fa fa-check\" [disabled]=\"!editFieldFrom.valid\"\n (click)=\"editFieldModalSubmitBtn.nativeElement.click()\">{{'AbpUi::Save' | abpLocalization}}</abp-button>\n </ng-template>\n</abp-modal>", styles: ["::ng-deep .create-or-edit-entry-type-page .dignite_page{height:calc(100vh - 125px);overflow:auto}::ng-deep .create-or-edit-entry-type-page .form-control,::ng-deep .create-or-edit-entry-type-page .form-select{padding:.475rem 1.25rem}::ng-deep .create-or-edit-entry-type-page .cursor-move{cursor:move}::ng-deep .create-or-edit-entry-type-page .bordernNavs{border:var(--bs-border-width) solid var(--lpx-border-color);padding-left:inherit;padding-right:inherit;height:calc(100% - 60px)}::ng-deep .create-or-edit-entry-type-page .tab-pane{height:100%}\n"] }]
408
- }], ctorParameters: function () { return [{ type: i1.ToasterService }, { type: i2.Location }, { type: i3.ActivatedRoute }, { type: i4.FieldGroupAdminService }, { type: i4.FieldAdminService }, { type: i5.EntryTypeAdminService }, { type: i6.LocalizationService }, { type: i7.CmsApiService }, { type: i3.Router }]; }, propDecorators: { submitclick: [{
409
- type: ViewChild,
410
- args: ['submitclick', { static: true }]
411
- }], editFieldTabsModalSubmitBtn: [{
412
- type: ViewChild,
413
- args: ['editFieldTabsModalSubmitBtn', { static: false }]
414
- }], editFieldModalSubmitBtn: [{
415
- type: ViewChild,
416
- args: ['editFieldModalSubmitBtn', { static: false }]
417
- }] } });
418
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9zZWN0aW9ucy9lbnRyeS10eXBlcy9jcmVhdGUtb3ItZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NlY3Rpb25zL2VudHJ5LXR5cGVzL2NyZWF0ZS1vci1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQXNCLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakYsT0FBTyxFQUFhLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBRW5FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFLcEgsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRWxELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBRTdFLE1BV2EscUJBQXFCO0lBSXRCO0lBQ0Q7SUFDQztJQUNEO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQztJQVZWO0lBQ0UsMkJBQTJCO0lBQ25CLE9BQXVCLEVBQ3hCLFNBQW1CLEVBQ2xCLEtBQXFCLEVBQ3RCLHVCQUErQyxFQUMvQyxrQkFBcUMsRUFDckMsc0JBQTZDLEVBQzdDLG9CQUF5QyxFQUN6QyxjQUE2QixFQUM1QixNQUFjO1FBUmQsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNsQixVQUFLLEdB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LFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUM5QixDQUFDO3dHQWhZVSxxQkFBcUI7NEZBQXJCLHFCQUFxQiw2Q0FQckI7WUFDVDtnQkFDRSxPQUFPLEVBQUUscUJBQXFCO2dCQUM5QixRQUFRLEVBQUUsYUFBYSxDQUFDLG9CQUFvQjthQUM3QztTQUNGLHNZQ3ZCSCx5amJBOExZOztTRHJLQyxxQkFBcUI7NEZBQXJCLHFCQUFxQjtrQkFYakMsU0FBUzsrQkFDRSxvQkFBb0IsYUFHbkI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLHFCQUFxQjs0QkFDOUIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxvQkFBb0I7eUJBQzdDO3FCQUNGO3FWQWdDMkMsV0FBVztzQkFBdEQsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQXVRbUIsMkJBQTJCO3NCQUF2RixTQUFTO3VCQUFDLDZCQUE2QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFvREYsdUJBQXVCO3NCQUEvRSxTQUFTO3VCQUFDLHlCQUF5QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXQsIFZpZXdDaGlsZCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDcmVhdGVPckVkaXRFbnRyeVR5cGVJbnB1dEJhc2UsIGZpZWxkVGFic0Jhc2UsIGZpZWxkc0Jhc2UgfSBmcm9tICcuL2NyZWF0ZS1vci1lZGl0Li1lbnRyeS10eXBlLWlucHV0LWJhc2UnO1xuaW1wb3J0IHsgRmllbGRHcm91cEFkbWluU2VydmljZSwgRmllbGRBZG1pblNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9wcm94eS9hZG1pbi9maWVsZHMnO1xuaW1wb3J0IHsgRW50cnlUeXBlQWRtaW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vcHJveHkvYWRtaW4vc2VjdGlvbnMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcbmltcG9ydCB7IEVYVEVOU0lPTlNfSURFTlRJRklFUiB9IGZyb20gJ0BhYnAvbmcudGhlbWUuc2hhcmVkL2V4dGVuc2lvbnMnO1xuaW1wb3J0IHsgRUNtc0NvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uLy4uL2VudW1zJztcbmltcG9ydCB7IENtc0FwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy9jbXMtYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgVXBkYXRlTGlzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcy91cGRhdGUtbGlzdC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWNyZWF0ZS1vci1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1vci1lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLW9yLWVkaXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19JREVOVElGSUVSLFxuICAgICAgdXNlVmFsdWU6IEVDbXNDb21wb25lbnQuU2VjdGlvbnNDcmVhdGVPckVkaXQsXG4gICAgfSxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBDcmVhdGVPckVkaXRDb21wb25lbnQgIGltcGxlbWVudHMgT25Jbml0e1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8vIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgdG9hc3RlcjogVG9hc3RlclNlcnZpY2UsXG4gICAgcHVibGljIF9sb2NhdGlvbjogTG9jYXRpb24sXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHVibGljIF9GaWVsZEdyb3VwQWRtaW5TZXJ2aWNlOiBGaWVsZEdyb3VwQWRtaW5TZXJ2aWNlLFxuICAgIHB1YmxpYyBfRmllbGRBZG1pblNlcnZpY2U6IEZpZWxkQWRtaW5TZXJ2aWNlLFxuICAgIHB1YmxpYyBfRW50cnlUeXBlQWRtaW5TZXJ2aWNlOiBFbnRyeVR5cGVBZG1pblNlcnZpY2UsXG4gICAgcHVibGljIF9Mb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgIHB1YmxpYyBfQ21zQXBpU2VydmljZTogQ21zQXBpU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICApIHsgfVxuICBwcml2YXRlIGZiPWluamVjdChGb3JtQnVpbGRlcilcbiAgcHJpdmF0ZSBfVXBkYXRlTGlzdFNlcnZpY2U9aW5qZWN0KFVwZGF0ZUxpc3RTZXJ2aWNlKVxuICAvKirooajljZXlrp7kvZMgKi9cbiAgbmV3RW50aXR5OiBGb3JtR3JvdXAgfCB1bmRlZmluZWQgPSB0aGlzLmZiLmdyb3VwKG5ldyBDcmVhdGVPckVkaXRFbnRyeVR5cGVJbnB1dEJhc2UoKSlcbiAgLyoq54mI5Z2XaWQgKi9cbiAgc2VjdGlvbklkOiBzdHJpbmcgPSAnJ1xuICAvKirmnaHnm67nsbvlnotpZCAqL1xuICBlbnRyeVR5cGVzSWQ6IHN0cmluZyA9ICcnXG4gIC8qKuadoeebruexu+Wei+ivpuaDhSAqL1xuICBlbnRyeVR5cGVzU2VsZWN0OiBhbnlcblxuICBnZXQgZmllbGRUYWJzKCkge1xuICAgIHJldHVybiB0aGlzLm5ld0VudGl0eS5nZXQoJ2ZpZWxkVGFicycpIGFzIEZvcm1BcnJheTtcbiAgfVxuXG4gIC8qKuiOt+WPluaPkOS6pOaMiemSruabv+i6q++8jOeUqOS6juecn+WunuinpuWPkeihqOWNleaPkOS6pCAqL1xuICBAVmlld0NoaWxkKCdzdWJtaXRjbGljaycsIHsgc3RhdGljOiB0cnVlIH0pIHN1Ym1pdGNsaWNrOiBFbGVtZW50UmVmO1xuXG4gIC8qKuinpuWPkeaPkOS6pOaMiemSriAqL1xuICBzdWJtaXRjbGlja0J0bigpe1xuICAgIHRoaXMuc3VibWl0Y2xpY2submF0aXZlRWxlbWVudC5jbGljaygpXG4gIH1cbiAgbmdPbkluaXQoKSB7XG4gICAgbGV0IHNlY3Rpb25JZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLnNlY3Rpb25zSWRcbiAgICB0aGlzLmVudHJ5VHlwZXNJZCA9IHRoaXMucm91dGUuc25hcHNob3QucGFyYW1zLmVudHJ5VHlwZXNJZCB8fCAnJ1xuICAgIGlmIChzZWN0aW9uSWQpIHtcbiAgICAgIHRoaXMuc2VjdGlvbklkID0gc2VjdGlvbklkXG4gICAgICB0aGlzLmFkZENvbnRyb2xUb0ZpZWxkVGFicygpXG4gICAgICB0aGlzLmdldEZpZWxkR3JvdXAoKVxuICAgIH1cbiAgfVxuXG4gIC8qKue7mWZpZWxkVGFic+a3u+WKoOaWsOaOp+S7tiAqL1xuICBhZGRDb250cm9sVG9GaWVsZFRhYnMobmFtZVZhbHVlID0gJycpIHtcbiAgICBjb25zdCBuZXdGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKG5ldyBmaWVsZFRhYnNCYXNlKHtcbiAgICAgIG5hbWU6IHRoaXMuZmllbGRUYWJzLmxlbmd0aCA9PT0gMCA/IHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zOjpGaWVsZFRhYmApIDogbmFtZVZhbHVlLFxuICAgIH0pKTtcbiAgICB0aGlzLmZpZWxkVGFicy5wdXNoKG5ld0Zvcm1Hcm91cClcbiAgICB0aGlzLnJlc3VsdFNvdXJjZS5wdXNoKG5ld0Zvcm1Hcm91cC52YWx1ZSlcbiAgICB0aGlzLm5hdkFjdGl2ZSA9IHRoaXMucmVzdWx0U291cmNlLmxlbmd0aCAtIDFcbiAgfVxuXG5cbiAgLyoq6I635Y+W5a2X5q615YiG57uEICovXG4gIGdldEZpZWxkR3JvdXAoKSB7XG4gICAgdGhpcy5fRmllbGRHcm91cEFkbWluU2VydmljZS5nZXRMaXN0KHt9KS5zdWJzY3JpYmUoYXN5bmMgKHJlcykgPT4ge1xuICAgICAgbGV0IGZpZWxkTGlzdDogYW55ID0gYXdhaXQgdGhpcy5nZXRGaWVsZExpc3QoKVxuICAgICAgbGV0IGZpZWxkR3JvdXBMaXN0ID0gcmVzLml0ZW1zXG4gICAgICBmaWVsZEdyb3VwTGlzdC51bnNoaWZ0KHtcbiAgICAgICAgaWQ6IG51bGwsXG4gICAgICAgIG5hbWU6ICdVbmdyb3VwZWRGaWVsZHMnXG4gICAgICB9KVxuICAgICAgZmllbGRHcm91cExpc3QuZm9yRWFjaCgoZWw6IGFueSwgaW5kZXgpID0+IHtcbiAgICAgICAgZWwuZmllbGRzID0gZmllbGRMaXN0LmZpbHRlcihlbHMgPT4gZWxzLmdyb3VwSWQgPT09IGVsLmlkKVxuICAgICAgfSk7XG4gICAgICB0aGlzLmZpZWxkR3JvdXBMaXN0ID0gZmllbGRHcm91cExpc3RcbiAgICAgIHRoaXMuZmllbGRMaXN0ID0gdGhpcy5kZWVwQ2xvbmUoZmllbGRMaXN0KVxuICAgICAgbGV0IGVudHJ5VHlwZXNJZCA9IHRoaXMuZW50cnlUeXBlc0lkXG4gICAgICBpZiAoZW50cnlUeXBlc0lkKSB7XG4gICAgICAgIHRoaXMuZW50cnlUeXBlc0lkID0gZW50cnlUeXBlc0lkXG4gICAgICAgIHRoaXMuZ2V0RW50cnlUeXBlcygpXG4gICAgICB9XG4gICAgfSlcbiAgfVxuICAvKirojrflj5bmnaHnm67nsbvlnovor6bmg4UgKi9cbiAgZ2V0RW50cnlUeXBlcygpIHtcbiAgICBsZXQgZmllbGRMaXN0OiBhbnkgPSB0aGlzLmRlZXBDbG9uZSh0aGlzLmZpZWxkTGlzdClcbiAgICB0aGlzLl9FbnRyeVR5cGVBZG1pblNlcnZpY2UuZ2V0KHRoaXMuZW50cnlUeXBlc0lkKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHJlcy5maWVsZFRhYnMuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgIGVsLmZpZWxkcy5mb3JFYWNoKChlbGQ6IGFueSkgPT4ge1xuICAgICAgICAgIGVsZC5pZCA9IGVsZC5maWVsZElkXG4gICAgICAgICAgZWxkLmdyb3VwSWQgPSBmaWVsZExpc3QuZmluZChlbGZkPT5lbGZkLmlkPT1lbGQuZmllbGRJZCkuZ3JvdXBJZFxuICAgICAgICAgIHRoaXMuZm9ybVJpZ2h0R3JvdXAucHVzaChlbGQpXG4gICAgICAgICAgbGV0IGZpZWxkaW5kZXggPSBmaWVsZExpc3QuZmluZEluZGV4KGVsZmwgPT4gZWxmbC5pZCA9PSBlbGQuZmllbGRJZClcbiAgICAgICAgICBmaWVsZExpc3Quc3BsaWNlKGZpZWxkaW5kZXgsIDEpXG4gICAgICAgIH0pXG4gICAgICB9KVxuICAgICAgdGhpcy5maWVsZEdyb3VwTGlzdC5mb3JFYWNoKChlbDogYW55LCBpbmRleCkgPT4ge1xuICAgICAgICBlbC5maWVsZHMgPSBmaWVsZExpc3QuZmlsdGVyKGVscyA9PiBlbHMuZ3JvdXBJZCA9PT0gZWwuaWQpXG4gICAgICB9KTtcbiAgICAgIHRoaXMubmV3RW50aXR5LnBhdGNoVmFsdWUocmVzKVxuICAgICAgdGhpcy5lbnRyeVR5cGVzU2VsZWN0ID0gcmVzXG4gICAgICB0aGlzLnJlc3VsdFNvdXJjZSA9IHJlcy5maWVsZFRhYnNcbiAgICB9KVxuICB9XG4gIC8qKlxuICAgKiDmt7Hmi7fotJ0tLeaWueazlVxuICAgKiAkYXBpLmRlZXBDbG9uZSgpICAqL1xuICBkZWVwQ2xvbmUob2JqOiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIG9iaiAhPT0gJ29iamVjdCcgfHwgb2JqID09PSBudWxsKSByZXR1cm4gb2JqO1xuICAgIGNvbnN0IHJlc3VsdCA9IEFycmF5LmlzQXJyYXkob2JqKSA/IFtdIDoge307XG4gICAgZm9yIChsZXQga2V5IGluIG9iaikge1xuICAgICAgaWYgKG9iai5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGlmICh0eXBlb2Ygb2JqW2tleV0gPT09ICdvYmplY3QnICYmIG9ialtrZXldICE9PSBudWxsKSB7XG4gICAgICAgICAgaWYgKG9ialtrZXldIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBuZXcgRGF0ZShvYmpba2V5XS5nZXRUaW1lKCkpO1xuICAgICAgICAgIH0gZWxzZSBpZiAob2JqW2tleV0gaW5zdGFuY2VvZiBSZWdFeHApIHtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gbmV3IFJlZ0V4cChvYmpba2V5XSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gdGhpcy5kZWVwQ2xvbmUob2JqW2tleV0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IG9ialtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgLyoqXG4gICAqIFxuICAgKiBAcGFyYW0gbmFtZVZhbHVlIOiOt+WPluaJgOacieWtl+autVxuICAgKi9cbiAgZ2V0RmllbGRMaXN0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fRmllbGRBZG1pblNlcnZpY2UuZ2V0TGlzdCh7XG4gICAgICAgIG1heFJlc3VsdENvdW50OiAxMDAwXG4gICAgICB9KS5zdWJzY3JpYmUoKHJlczogYW55KSA9PiB7XG4gICAgICAgIHJlcy5pdGVtcy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICBlbC5yZXF1aXJlZCA9IGZhbHNlXG4gICAgICAgICAgZWwuc2hvd09uTGlzdCA9IGZhbHNlXG4gICAgICAgIH0pXG4gICAgICAgIHJlc29sdmUocmVzLml0ZW1zKVxuICAgICAgfSlcbiAgICB9KVxuICB9XG5cblxuICAvKipcbiAgICog5ouW5ou9IOWKn+iDvSovXG4gIC8qKuaVsOaNrua6kCAqL1xuICAvKirmlbDmja7mupAt5a2X5q615YiG57uE5pWw5o2uLeWMheWQq+Wtl+auteaVsOaNriBmaWVsZHMgKi9cbiAgZmllbGRHcm91cExpc3Q6IGFueVtdID0gW11cbiAgLyoq5pWw5o2u5rqQLeaJgOacieWtl+auteWIl+ihqCAqL1xuICBmaWVsZExpc3Q6IGFueVtdID0gW11cbiAgLyoq5pWw5o2u5rqQ5ouW5ou955qE5YiG57uE5LiL5qCHICovXG4gIERhdGFTb3VyY2VHcm91cEluZGV4OiBudW1iZXJcbiAgLyoq5pWw5o2u5rqQ5ouW5ou955qE5a2X5q615LiL5qCHICovXG4gIERhdGFTb3VyY2VGaWVsZEluZGV4OiBudW1iZXJcbiAgLyoq55uu5qCH5rqQIOe7k+aenCovXG4gIHJlc3VsdFNvdXJjZTogYW55W10gPSBbXVxuXG4gIC8qKuS7juaVsOaNrua6kOaLluaLveeahOWFg+e0oCAqL1xuICBmcm9tRGF0YVNvdXJjZURyYWdFbDogYW55XG4gIC8qKuS7juebruagh+a6kOaLluaLveeahOWFg+e0oCAqL1xuICBmcm9tUmVzdWx0U291cmNlRHJhZ0VsOiBhbnlcblxuICAvKirmnaXoh6rmlbDmja7mupDnmoTpm4blkIjvvIznlKjkuo7ku47nm67moIfmupDmi5blm57mlbDmja7mupDml7bnmoTliKTmlq3vvIzkuI7lj5blgLwgKi9cbiAgZm9ybVJpZ2h0R3JvdXA6IGFueVtdID0gW11cbiAgLyoq5LuO5pWw5o2u5rqQ5byA5aeL5ouW5ou9ICovXG4gIGZyb21EYXRhU291cmNlRHJhZ1N0YXJ0KGVsZW1lbnQsIGZpZWxkSW5kZXgsIGdyb3VwSW5kZXgpIHtcbiAgICB0aGlzLmZyb21EYXRhU291cmNlRHJhZ0VsID0gZWxlbWVudFxuICAgIHRoaXMuRGF0YVNvdXJjZUZpZWxkSW5kZXggPSBmaWVsZEluZGV4XG4gICAgdGhpcy5EYXRhU291cmNlR3JvdXBJbmRleCA9IGdyb3VwSW5kZXhcbiAgICB0aGlzLmZyb21SZXN1bHRTb3VyY2VEcmFnRWwgPSB1bmRlZmluZWRcblxuICB9XG4gIC8qKuS7juebruagh+a6kOW8gOWni+aLluaLvSAqL1xuICBmcm9tUmVzdWx0U291cmNlRHJhZ1N0YXJ0KGVsZW1lbnQpIHtcbiAgICB0aGlzLmZyb21SZXN1bHRTb3VyY2VEcmFnRWwgPSBlbGVtZW50XG4gICAgdGhpcy5mcm9tRGF0YVNvdXJjZURyYWdFbCA9IHVuZGVmaW5lZFxuICAgIHRoaXMuRGF0YVNvdXJjZUZpZWxkSW5kZXggPSB1bmRlZmluZWRcbiAgICB0aGlzLkRhdGFTb3VyY2VHcm91cEluZGV4ID0gdW5kZWZpbmVkXG4gIH1cbiAgLyoq5ouW5ou95Yiw5pWw5o2u5rqQ5pe26Kem5Y+RICovXG4gIGRyYWdUb0RhdGFTb3VyY2VEcm9wcGVkKCkge1xuICAgIC8v5LuO5pWw5o2u5rqQ5ouW5ou95Yiw5pWw5o2u5rqQLeaOkuW6j1xuICAgIGlmICh0aGlzLmZyb21EYXRhU291cmNlRHJhZ0VsKSB7XG4gICAgfVxuICAgIGxldCBfZnJvbVJlc3VsdFNvdXJjZURyYWdFbCA9IHRoaXMuZnJvbVJlc3VsdFNvdXJjZURyYWdFbFxuICAgIGxldCBmb3JtUmlnaHRHcm91cCA9IHRoaXMuZGVlcENsb25lKHRoaXMuZm9ybVJpZ2h0R3JvdXApXG4gICAgbGV0IGZpZWxkTGlzdCA9IHRoaXMuZGVlcENsb25lKHRoaXMuZmllbGRMaXN0KVxuXG4gICAgaWYgKF9mcm9tUmVzdWx0U291cmNlRHJhZ0VsKSB7Ly/np7vliqhcbiAgICAgIC8v5LuO55uu5qCH5rqQ5ouW5ou95Yiw5pWw5o2u5rqQXG4gICAgICAvLyDmi5bmi73nm67moIfmupDnmoTkuIvmoIdcbiAgICAgIGxldCBkcmFnUmVzdWx0U291cmNlSW5kZXggPSB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzLmZpbmRJbmRleChlbCA9PiBlbC5pZCA9PSBfZnJvbVJlc3VsdFNvdXJjZURyYWdFbC5pZClcbiAgICAgIC8v5Yig6Zmk55uu5qCH5rqQ5Lit55qE5pWw5o2uXG4gICAgICB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzLnNwbGljZShkcmFnUmVzdWx0U291cmNlSW5kZXgsIDEpXG4gICAgICBmb3JtUmlnaHRHcm91cC5zcGxpY2UoZm9ybVJpZ2h0R3JvdXAuZmluZEluZGV4KGVsID0+IGVsLmlkID09IF9mcm9tUmVzdWx0U291cmNlRHJhZ0VsLmlkKSwgMSlcbiAgICAgIHRoaXMuZmllbGRHcm91cExpc3QuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgIGlmIChlbC5pZCA9PSBfZnJvbVJlc3VsdFNvdXJjZURyYWdFbC5ncm91cElkKSB7XG4gICAgICAgICAgY29uc3QgZWxGaWVsZHNBbGwgPSBmaWVsZExpc3QuZmlsdGVyKGVscyA9PiBlbHMuZ3JvdXBJZCA9PT0gZWwuaWQpXG4gICAgICAgICAgZWwuZmllbGRzID0gZWxGaWVsZHNBbGwuZmlsdGVyKGl0ZW0gPT4gIWZvcm1SaWdodEdyb3VwLnNvbWUoaXRlbUIgPT4gaXRlbS5pZCA9PT0gaXRlbUIuaWQpKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHRoaXMuZm9ybVJpZ2h0R3JvdXAgPSBmb3JtUmlnaHRHcm91cFxuICAgIH1cblxuICAgIHRoaXMuc2V0ZmllbGRUYWJzRnJvbSgpXG4gIH1cbiAgLyoq5ouW5ou95Yiw55uu5qCH5rqQ5pe26Kem5Y+RXG4gICAqIFxuICAgKi9cbiAgZHJhZ1RvUmVzdWx0U291cmNlRHJvcHBlZChmaWVsZFRhYnN0ZW06IGFueSwgZmllbGRUYWJzSW5kZXgpIHtcbiAgICBjb25zdCBfZnJvbURhdGFTb3VyY2VEcmFnRWwgPSB0aGlzLmZyb21EYXRhU291cmNlRHJhZ0VsXG4gICAgLy/ku47mlbDmja7mupDmi5bmi73liLDnm67moIfmupBcbiAgICBpZiAoX2Zyb21EYXRhU291cmNlRHJhZ0VsKSB7XG4gICAgICB0aGlzLmZpZWxkR3JvdXBMaXN0W3RoaXMuRGF0YVNvdXJjZUdyb3VwSW5kZXhdLmZpZWxkcy5zcGxpY2UodGhpcy5EYXRhU291cmNlRmllbGRJbmRleCwgMSlcbiAgICAgIHRoaXMucmVzdWx0U291cmNlW2ZpZWxkVGFic0luZGV4XS5maWVsZHMucHVzaChfZnJvbURhdGFTb3VyY2VEcmFnRWwpXG4gICAgICB0aGlzLmZvcm1SaWdodEdyb3VwLnB1c2goX2Zyb21EYXRhU291cmNlRHJhZ0VsKVxuICAgIH1cblxuICAgIHRoaXMuc2V0ZmllbGRUYWJzRnJvbSgpXG4gIH1cbiAgLyoqIOS7juebruagh+a6kOaLluaLveWIsOebruagh+a6kCovXG4gIGRyYWdUb1Jlc3VsdFNvdXJjZUl0ZW1Ecm9wcGVkKGZpZWxkc0luZGV4KSB7XG4gICAgY29uc3QgX2Zyb21SZXN1bHRTb3VyY2VEcmFnRWwgPSB0aGlzLmZyb21SZXN1bHRTb3VyY2VEcmFnRWxcbiAgICBpZiAoX2Zyb21SZXN1bHRTb3VyY2VEcmFnRWwpIHtcbiAgICAgIC8vIOaLluaLveebruagh+a6kOeahOS4i+agh1xuICAgICAgbGV0IGRyYWdSZXN1bHRTb3VyY2VJbmRleCA9IHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHMuZmluZEluZGV4KGVsID0+IGVsLmlkID09IF9mcm9tUmVzdWx0U291cmNlRHJhZ0VsLmlkKVxuICAgICAgLy/liKDpmaTnm67moIfmupDkuK3nmoTmlbDmja5cbiAgICAgIHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHMuc3BsaWNlKGRyYWdSZXN1bHRTb3VyY2VJbmRleCwgMSlcbiAgICAgIHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHMuc3BsaWNlKGZpZWxkc0luZGV4LCAwLCBfZnJvbVJlc3VsdFNvdXJjZURyYWdFbClcbiAgICB9XG4gICAgdGhpcy5zZXRmaWVsZFRhYnNGcm9tKClcbiAgfVxuICAvKirorr7nva5mb3JtQeihqOWNlSAqL1xuICBzZXRmaWVsZFRhYnNGcm9tKCkge1xuICAgIGxldCBzZXRBcnJheSA9IFtdXG4gICAgdGhpcy5yZXN1bHRTb3VyY2UuZm9yRWFjaChlbCA9PiB7XG4gICAgICBsZXQgZmllbGRzQXJyYXkgPSBbXVxuICAgICAgZWwuZmllbGRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgIGZpZWxkc0FycmF5LnB1c2goe1xuICAgICAgICAgIFwiZmllbGRJZFwiOiBpdGVtLmlkIHx8IGl0ZW0uZmllbGRJZCxcbiAgICAgICAgICBcImRpc3BsYXlOYW1lXCI6IGl0ZW0uZGlzcGxheU5hbWUsXG4gICAgICAgICAgXCJyZXF1aXJlZFwiOiBpdGVtPy5yZXF1aXJlZCxcbiAgICAgICAgICBcInNob3dPbkxpc3RcIjogaXRlbT8uc2hvd09uTGlzdFxuICAgICAgICB9KVxuICAgICAgfSlcbiAgICAgIHNldEFycmF5LnB1c2goe1xuICAgICAgICBuYW1lOiBlbC5uYW1lLFxuICAgICAgICBmaWVsZHM6IGZpZWxkc0FycmF5XG4gICAgICB9KVxuICAgIH0pXG4gICAgdGhpcy5uZXdFbnRpdHkucGF0Y2hWYWx1ZSh7XG4gICAgICBmaWVsZFRhYnM6IHNldEFycmF5XG4gICAgfSlcbiAgfVxuXG4gIFxuICAvKirkv53lrZjooajljZUgKi9cbiAgc2F2ZSgpIHtcbiAgICBsZXQgaW5wdXQgPSB0aGlzLm5ld0VudGl0eS52YWx1ZVxuICAgIGlmICh0aGlzLmVudHJ5VHlwZXNTZWxlY3QpIHtcbiAgICAgIHRoaXMuX0VudHJ5VHlwZUFkbWluU2VydmljZS51cGRhdGUodGhpcy5lbnRyeVR5cGVzU2VsZWN0LmlkLCBpbnB1dCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zS2l0OjpTYXZlZFN1Y2Nlc3NmdWxseWApKTtcbiAgICAgICAgLy8gdGhpcy5fbG9jYXRpb24uYmFjaygpXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJycsIHsgc2tpcExvY2F0aW9uQ2hhbmdlOiB0cnVlIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL2Ntcy9hZG1pbi9zZWN0aW9uc2BdKTtcbiAgICAgICAgICB0aGlzLl9VcGRhdGVMaXN0U2VydmljZS51cGRhdGVMaXN0KCk7XG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpbnB1dC5zZWN0aW9uSWQgPSB0aGlzLnNlY3Rpb25JZFxuICAgIHRoaXMuX0VudHJ5VHlwZUFkbWluU2VydmljZS5jcmVhdGUoaW5wdXQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBDbXNLaXQ6OlNhdmVkU3VjY2Vzc2Z1bGx5YCkpO1xuICAgICAgLy8gdGhpcy5fbG9jYXRpb24uYmFjaygpXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcnLCB7IHNraXBMb2NhdGlvbkNoYW5nZTogdHJ1ZSB9KS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY21zL2FkbWluL3NlY3Rpb25zYF0pO1xuICAgICAgICB0aGlzLl9VcGRhdGVMaXN0U2VydmljZS51cGRhdGVMaXN0KCk7XG4gICAgICB9KTtcbiAgICB9KVxuXG5cblxuICB9XG4gIC8qKue8lui+kVRhYnPooajljZUgKi9cbiAgZWRpdEZpZWxkVGFic0Zyb206IEZvcm1Hcm91cCB8IHVuZGVmaW5lZDtcbiAgLyoq5qih5oCB5qGG54q25oCBICovXG4gIHZpc2libGVUYWJzT3BlbjogYm9vbGVhbiA9IGZhbHNlXG4gIC8qKuaYr+WQpuaYr+W/meeijOeKtuaAgSAqL1xuICBtb2RhbEJ1c3k6IGJvb2xlYW4gPSBmYWxzZVxuICAvKirmraPlnKjnvJbovpHnmoR0YWJzICovXG4gIGVkaXRGaWVsZFRhYnNTZWxlY3Q6IGFueVxuICAvKirmraPlnKjpgInkuK3nmoRuYXYgKi9cbiAgbmF2QWN0aXZlOiBhbnkgPSAwXG5cbiAgLyoq6KGo5Y2V5o6n5Lu25qih5p2/LeWKqOaAgei1i+WAvOihqOWNleaOp+S7tiAqL1xuICBAVmlld0NoaWxkKCdlZGl0RmllbGRUYWJzTW9kYWxTdWJtaXRCdG4nLCB7IHN0YXRpYzogZmFsc2UgfSkgZWRpdEZpZWxkVGFic01vZGFsU3VibWl0QnRuOiBFbGVtZW50UmVmO1xuXG4gIC8qKuaooeaAgeahhueKtuaAgeaUueWPmOWbnuiwgyAqL1xuICBWaXNpYmxlVGFic0NoYW5nZShldmVudCkge1xuICAgIGlmICghZXZlbnQpIHtcbiAgICAgIHRoaXMuZWRpdEZpZWxkVGFic1NlbGVjdCA9ICcnXG4gICAgICByZXR1cm5cbiAgICB9XG4gIH1cbiAgLyoq5paw5bu65aKe5YqgRmllbGRUYWJzICovXG4gIGFkZEZpZWxkVGFicygpIHtcbiAgICB0aGlzLmVkaXRGaWVsZFRhYnNGcm9tID0gdGhpcy5mYi5ncm91cChuZXcgZmllbGRUYWJzQmFzZSgpKTtcbiAgICB0aGlzLnZpc2libGVUYWJzT3BlbiA9IHRydWVcblxuICB9XG4gIC8qKuato+WcqOe8lui+keeahHRhYuS4i+aghyAqL1xuICBuZXdFZGl0RmllbGRUYWJzSW5kZXg6IG51bWJlclxuICAvKirnvJbovpFGaWVsZFRhYnMgKi9cbiAgZWRpdEZpZWxkVGFicyhpdGVtLCBpKSB7XG4gICAgdGhpcy5lZGl0RmllbGRUYWJzRnJvbSA9IHRoaXMuZmIuZ3JvdXAobmV3IGZpZWxkVGFic0Jhc2Uoe1xuICAgICAgbmFtZTogaXRlbS5uYW1lXG4gICAgfSkpO1xuICAgIHRoaXMuZWRpdEZpZWxkVGFic1NlbGVjdCA9IGl0ZW1cbiAgICB0aGlzLnZpc2libGVUYWJzT3BlbiA9IHRydWVcbiAgICB0aGlzLm5ld0VkaXRGaWVsZFRhYnNJbmRleCA9IGlcbiAgfVxuXG4gIC8qKuS/neWtmOe8lui+kXRhYnPooajljZUgKi9cbiAgZWRpdEZpZWxkVGFic1NhdmUoKSB7XG4gICAgLy/nvJbovpFcbiAgICBpZiAodGhpcy5lZGl0RmllbGRUYWJzU2VsZWN0KSB7XG4gICAgICB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5ld0VkaXRGaWVsZFRhYnNJbmRleF0ubmFtZSA9IHRoaXMuZWRpdEZpZWxkVGFic0Zyb20udmFsdWUubmFtZVxuICAgICAgdGhpcy5uYXZBY3RpdmUgPSB0aGlzLm5ld0VkaXRGaWVsZFRhYnNJbmRleFxuICAgIH0gZWxzZSB7XG4gICAgICAvL+aWsOW7ulxuICAgICAgdGhpcy5hZGRDb250cm9sVG9GaWVsZFRhYnModGhpcy5lZGl0RmllbGRUYWJzRnJvbS52YWx1ZS5uYW1lKVxuICAgIH1cbiAgICB0aGlzLnZpc2libGVUYWJzT3BlbiA9IGZhbHNlXG4gICAgdGhpcy5zZXRmaWVsZFRhYnNGcm9tKClcbiAgfVxuICAvKirliKDpmaTmn5DkuKp0YWJz6KGo5Y2VICovXG4gIGRlbGV0ZUZpZWxkVGFicyhpbmRleCkge1xuICAgIHRoaXMuZmllbGRUYWJzLnJlbW92ZUF0KGluZGV4KVxuICAgIHRoaXMucmVzdWx0U291cmNlLnNwbGljZShpbmRleCwxKVxuICB9XG5cblxuICAvKirnvJbovpHlrZfmrrXmqKHmgIHmoYbnirbmgIEgKi9cbiAgdmlzaWJsZUVkaXRGaWVsZE9wZW46IGJvb2xlYW4gPSBmYWxzZVxuICAvKirnvJbovpHlrZfmrrXmqKHmgIHmoYbooajljZUgKi9cbiAgZWRpdEZpZWxkRnJvbTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuICAvKirooajljZXmjqfku7bmqKHmnb8t5Yqo5oCB6LWL5YC86KGo5Y2V5o6n5Lu2Lee8lui+keWtl+autSAqL1xuICBAVmlld0NoaWxkKCdlZGl0RmllbGRNb2RhbFN1Ym1pdEJ0bicsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0RmllbGRNb2RhbFN1Ym1pdEJ0bjogRWxlbWVudFJlZjtcbiAgLyoq5q2j5Zyo57yW6L6R55qE5a2X5q615LiL5qCHICovXG4gIEVkaXRGaWVsZEluZGV4OiBudW1iZXI7XG4gIC8qKue8lui+keWtl+auteaooeaAgeahhueKtuaAgeeKtuaAgeaUueWPmOWbnuiwgyAqL1xuICBWaXNpYmxlRWRpdEZpZWxkQ2hhbmdlKGV2ZW50KSB7XG4gICAgaWYgKCFldmVudCkge1xuICAgICAgdGhpcy5FZGl0RmllbGRJbmRleCA9IHVuZGVmaW5lZFxuICAgICAgcmV0dXJuXG4gICAgfVxuICB9XG4gIC8qKuaJk+W8gOe8lui+keWtl+auteaooeaAgeahhiAqL1xuICBFZGl0RmllbGRNb2RhbE9wZW4oaXRlbXMsIGVsSW5kZXgpIHtcbiAgICB0aGlzLnZpc2libGVFZGl0RmllbGRPcGVuID0gdHJ1ZVxuICAgIHRoaXMuRWRpdEZpZWxkSW5kZXggPSBlbEluZGV4XG4gICAgdGhpcy5lZGl0RmllbGRGcm9tID0gdGhpcy5mYi5ncm91cChuZXcgZmllbGRzQmFzZSh0aGlzLmZpZWxkVGFicy52YWx1ZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzW2VsSW5kZXhdKSlcbiAgfVxuICAvKirkv53lrZjnvJbovpHlrZfmrrUgKi9cbiAgZWRpdEZpZWxkU2F2ZSgpIHtcbiAgICBsZXQgaW5wdXQgPSB0aGlzLmVkaXRGaWVsZEZyb20udmFsdWVcbiAgICB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzW3RoaXMuRWRpdEZpZWxkSW5kZXhdLmRpc3BsYXlOYW1lID0gaW5wdXQuZGlzcGxheU5hbWVcbiAgICB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzW3RoaXMuRWRpdEZpZWxkSW5kZXhdLnJlcXVpcmVkID0gaW5wdXQucmVxdWlyZWRcbiAgICB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzW3RoaXMuRWRpdEZpZWxkSW5kZXhdLnNob3dPbkxpc3QgPSBpbnB1dC5zaG93T25MaXN0XG4gICAgdGhpcy52aXNpYmxlRWRpdEZpZWxkT3BlbiA9IGZhbHNlXG4gICAgdGhpcy5zZXRmaWVsZFRhYnNGcm9tKClcbiAgfVxuXG5cblxuICAgIC8qKm5hbWXooajljZXmjqfku7YgKi9cbiAgICBnZXQgbmFtZUlucHV0KCkge1xuICAgICAgcmV0dXJuIHRoaXMubmV3RW50aXR5LmdldCgnbmFtZScpXG4gICAgfVxuICAvKirlrZfmrrXmoIfnrb5pbnB1dOWkseWOu+agh+eCueeUn+aIkOWtl+auteWQjeWtlyAqL1xuICBkaXNQbGF5TmFtZUlucHV0Qmx1cihldmVudCkge1xuICAgIGxldCB2YWx1ZSA9IGV2ZW50LnRhcmdldC52YWx1ZVxuICAgIGxldCBwaW55aW4gPSB0aGlzLl9DbXNBcGlTZXJ2aWNlLmNoaW5lc2VUb1Bpbnlpbih2YWx1ZSlcbiAgICBsZXQgbmFtZUlucHV0ID0gdGhpcy5uYW1lSW5wdXRcbiAgICBpZiAobmFtZUlucHV0LnZhbHVlKSByZXR1cm5cbiAgICBuYW1lSW5wdXQucGF0Y2hWYWx1ZShwaW55aW4pXG4gIH1cblxufVxuIiwiPGZvcm0gY2xhc3M9XCJyb3cgZy0zIG5lZWRzLXZhbGlkYXRpb25cIiBbZm9ybUdyb3VwXT1cIm5ld0VudGl0eVwiIChuZ1N1Ym1pdCk9XCJzYXZlKClcIj5cbiAgICA8YWJwLXBhZ2UgW3RpdGxlXT1cImVudHJ5VHlwZXNJZCA/ICgnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uKTooJ0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbilcIiBbdG9vbGJhcl09XCJ0cnVlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcmVhdGUtb3ItZWRpdC1lbnRyeS10eXBlLXBhZ2VcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiICNzdWJtaXRjbGljaz48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6RGlzcGxheU5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGlzcGxheU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJkaXNQbGF5TmFtZUlucHV0Qmx1cigkZXZlbnQpXCIgcGxhY2Vob2xkZXI9XCJcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6Ok5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmb3JtQXJyYXlOYW1lPVwiZmllbGRUYWJzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6RmllbGRMYXlvdXQnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tICAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLThcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIG5nYk5hdiAjbmF2PVwibmdiTmF2XCIgWyhhY3RpdmVJZCldPVwibmF2QWN0aXZlXCIgY2xhc3M9XCJuYXYgbmF2LXRhYnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcmVzdWx0U291cmNlOyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ2JOYXZJdGVtXT1cImlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbmdiRHJvcGRvd24gbmdiTmF2TGluaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0xXCIgKGNsaWNrLnN0b3ApPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZ2JEcm9wZG93blRvZ2dsZT48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkRyb3Bkb3duTWVudSBzdHlsZT1cInotaW5kZXg6IDk5OTtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgbmdiRHJvcGRvd25JdGVtIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2suc3RvcCk9XCJlZGl0RmllbGRUYWJzKGl0ZW0saSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZWRpdFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBuZ2JEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCJyZXN1bHRTb3VyY2UubGVuZ3RoICE9PSAxXCIgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljay5zdG9wKT1cImRlbGV0ZUZpZWxkVGFicyhpKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS10cmFzaFwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snQWJwVWk6OkRlbGV0ZScgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtMlwiIG9uZHJhZ292ZXI9XCJldmVudC5wcmV2ZW50RGVmYXVsdCgpO1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRyb3ApPVwiZHJhZ1RvUmVzdWx0U291cmNlRHJvcHBlZChpdGVtLGkpXCIgc3R5bGU9XCJoZWlnaHQ6IDEwMCU7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb3JtLXRleHRcIiAqbmdJZj1cIml0ZW0uZmllbGRzLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydDbXM6OkRyYWdBbmREcm9wRmllbGRUaXBzJyB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtZ3JvdXBcIiBzdHlsZT1cImhlaWdodDogMTAwJTtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVsIG9mIGl0ZW0uZmllbGRzOyBsZXQgaWVsID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkcmFnZ2FibGU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhZ3N0YXJ0KT1cImZyb21SZXN1bHRTb3VyY2VEcmFnU3RhcnQoZWwpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJvcCk9XCJkcmFnVG9SZXN1bHRTb3VyY2VJdGVtRHJvcHBlZChpZWwpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbSBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIHB5LTFcIiBzdHlsZT1cInBvc2l0aW9uOiB1bnNldDtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBlbC5kaXNwbGF5TmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwLTAgYnRuIGJ0bi1zbSBidG4tbGlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2suc3RvcCk9XCJFZGl0RmllbGRNb2RhbE9wZW4oZWwsaWVsKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIj48aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmYXMgZmEtd3JlbmNoIHAtc20tMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCI+PC9pPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cIm5hdi1pdGVtXCIgcm9sZT1cInByZXNlbnRhdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwibmF2LWxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2suc3RvcCk9XCJhZGRGaWVsZFRhYnMoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzLWNpcmNsZVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3snQ21zOjpOZXdUYWInIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nYk5hdk91dGxldF09XCJuYXZcIiBjbGFzcz1cIm10LTIgYm9yZGVybk5hdnMgcC0wXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uICNhY2NvcmRpb249XCJuZ2JBY2NvcmRpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25kcmFnb3Zlcj1cImV2ZW50LnByZXZlbnREZWZhdWx0KCk7XCIgKGRyb3ApPVwiZHJhZ1RvRGF0YVNvdXJjZURyb3BwZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIm1pbi1oZWlnaHQ6IDgwcHg7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGZpZWxkR3JvdXBMaXN0OyBsZXQgaSA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdiQWNjb3JkaW9uSXRlbV09XCJpdGVtLm5hbWVcIiAqbmdJZj1cIml0ZW0uZmllbGRzLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIG5nYkFjY29yZGlvbkhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gbmdiQWNjb3JkaW9uQnV0dG9uPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdDbXM6OicraXRlbS5uYW1lKSB8IGFicExvY2FsaXphdGlvbiB9fTwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IG5nYkFjY29yZGlvbkNvbGxhcHNlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb25Cb2R5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibGlzdC1ncm91cFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlbCBvZiBpdGVtLmZpZWxkczsgbGV0IGlpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgZHJhZ2dhYmxlPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkcmFnc3RhcnQpPVwiZnJvbURhdGFTb3VyY2VEcmFnU3RhcnQoZWwsaWksaSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBlbC5kaXNwbGF5TmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9hYnAtcGFnZT5cblxuPC9mb3JtPlxuXG48YWJwLW1vZGFsIFsodmlzaWJsZSldPVwidmlzaWJsZVRhYnNPcGVuXCIgW2J1c3ldPVwibW9kYWxCdXN5XCIgKHZpc2libGVDaGFuZ2UpPVwiVmlzaWJsZVRhYnNDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxuICAgICAgICA8aDM+e3sgZWRpdEZpZWxkVGFic1NlbGVjdCA/ICgnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uKTooJ0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbil9fTwvaDM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+PGkgY2xhc3M9XCJmYSBmYS1wdWxzZSBmYS1zcGlubmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdEZpZWxkVGFic0Zyb207IGVsc2UgbG9hZGVyUmVmXCI+XG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cInNpdGVzLW1vZGFsLWZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXRGaWVsZFRhYnNGcm9tXCIgKG5nU3VibWl0KT1cImVkaXRGaWVsZFRhYnNTYXZlKClcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjZWRpdEZpZWxkVGFic01vZGFsU3VibWl0QnRuIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6Ok5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cIlwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT57eydBYnBVaTo6Q2xvc2UnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBbZGlzYWJsZWRdPVwiIWVkaXRGaWVsZFRhYnNGcm9tLnZhbGlkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJlZGl0RmllbGRUYWJzTW9kYWxTdWJtaXRCdG4ubmF0aXZlRWxlbWVudC5jbGljaygpXCI+e3snQWJwVWk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2FicC1idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvYWJwLW1vZGFsPlxuXG5cbjxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJ2aXNpYmxlRWRpdEZpZWxkT3BlblwiIFtidXN5XT1cIm1vZGFsQnVzeVwiICh2aXNpYmxlQ2hhbmdlKT1cIlZpc2libGVFZGl0RmllbGRDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxuICAgICAgICA8aDM+e3snQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9ufX08L2gzPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRlclJlZj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPjxpIGNsYXNzPVwiZmEgZmEtcHVsc2UgZmEtc3Bpbm5lclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXRGaWVsZEZyb207IGVsc2UgbG9hZGVyUmVmXCI+XG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cInNpdGVzLW1vZGFsLWZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXRGaWVsZEZyb21cIiAobmdTdWJtaXQpPVwiZWRpdEZpZWxkU2F2ZSgpXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgI2VkaXRGaWVsZE1vZGFsU3VibWl0QnRuIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNwbGF5TmFtZVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJlcXVpcmVkXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJyZXF1aXJlZFwiPiB7eydDbXM6OlJlcXVpcmVkJyB8IGFicExvY2FsaXphdGlvbn19IDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwic2hvd09uTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzaG93T25MaXN0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJzaG93T25MaXN0XCI+IHt7J0Ntczo6U2hvd09uTGlzdCcgfCBhYnBMb2NhbGl6YXRpb259fSA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEZvb3Rlcj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLXNlY29uZGFyeVwiIGFicENsb3NlPnt7J0FicFVpOjpDbG9zZScgfCBhYnBMb2NhbGl6YXRpb259fTwvYnV0dG9uPlxuICAgICAgICA8YWJwLWJ1dHRvbiBpY29uQ2xhc3M9XCJmYSBmYS1jaGVja1wiIFtkaXNhYmxlZF09XCIhZWRpdEZpZWxkRnJvbS52YWxpZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZWRpdEZpZWxkTW9kYWxTdWJtaXRCdG4ubmF0aXZlRWxlbWVudC5jbGljaygpXCI+e3snQWJwVWk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2FicC1idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvYWJwLW1vZGFsPiJdfQ==
@@ -1,3 +0,0 @@
1
- export * from './create-or-edit.-entry-type-input-base';
2
- export * from './create-or-edit.component';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NlY3Rpb25zL2VudHJ5LXR5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUNBQXlDLENBQUE7QUFDdkQsY0FBYyw0QkFBNEIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLW9yLWVkaXQuLWVudHJ5LXR5cGUtaW5wdXQtYmFzZSdcclxuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtb3ItZWRpdC5jb21wb25lbnQnIl19
@@ -1,4 +0,0 @@
1
- export * from './sections.component';
2
- export * from './entry-types';
3
- export * from './create-or-update-sections-input-base';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NlY3Rpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0JBQXNCLENBQUE7QUFDcEMsY0FBYyxlQUFlLENBQUE7QUFDN0IsY0FBYyx3Q0FBd0MsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VjdGlvbnMuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2VudHJ5LXR5cGVzJ1xyXG5leHBvcnQgKiBmcm9tICcuL2NyZWF0ZS1vci11cGRhdGUtc2VjdGlvbnMtaW5wdXQtYmFzZSciXX0=