@dignite-ng/expand.cms 0.0.52 → 0.0.54

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/config/cms-config.module.d.ts +8 -0
  2. package/config/components/domains/domains.component.d.ts +29 -0
  3. package/config/components/site-language/site-language.component.d.ts +29 -0
  4. package/config/{src/enums/index.ts → enums/index.d.ts} +1 -1
  5. package/config/enums/route-names.d.ts +8 -0
  6. package/config/index.d.ts +5 -0
  7. package/config/{src/providers/index.ts → providers/index.d.ts} +1 -1
  8. package/config/providers/route.provider.d.ts +9 -0
  9. package/config/proxy/admin/domains/domain-admin.service.d.ts +13 -0
  10. package/config/{src/proxy/dignite/cms/admin/domains/models.ts → proxy/admin/domains/models.d.ts} +7 -9
  11. package/config/proxy/dignite/cms/admin/sites/models.d.ts +4 -0
  12. package/config/proxy/dignite/cms/admin/sites/site-admin.service.d.ts +13 -0
  13. package/config/proxy/dignite/cms/sites/models.d.ts +4 -0
  14. package/config/{src/public-api.ts → public-api.d.ts} +3 -3
  15. package/config/services/validators.service.d.ts +16 -0
  16. package/esm2022/config/cms-config.module.mjs +18 -0
  17. package/esm2022/config/components/domains/domains.component.mjs +102 -0
  18. package/esm2022/config/components/site-language/site-language.component.mjs +105 -0
  19. package/esm2022/config/dignite-ng-expand.cms-config.mjs +5 -0
  20. package/esm2022/config/enums/index.mjs +2 -0
  21. package/esm2022/config/enums/route-names.mjs +10 -0
  22. package/esm2022/config/providers/index.mjs +2 -0
  23. package/esm2022/config/providers/route.provider.mjs +74 -0
  24. package/esm2022/config/proxy/admin/domains/domain-admin.service.mjs +32 -0
  25. package/esm2022/config/proxy/admin/domains/index.mjs +3 -0
  26. package/esm2022/config/proxy/admin/domains/models.mjs +2 -0
  27. package/esm2022/config/proxy/dignite/cms/admin/sites/index.mjs +3 -0
  28. package/esm2022/config/proxy/dignite/cms/admin/sites/models.mjs +2 -0
  29. package/esm2022/config/proxy/dignite/cms/admin/sites/site-admin.service.mjs +27 -0
  30. package/esm2022/config/proxy/dignite/cms/sites/models.mjs +2 -0
  31. package/esm2022/config/public-api.mjs +4 -0
  32. package/esm2022/config/services/validators.service.mjs +83 -0
  33. package/esm2022/dignite-ng-expand.cms.mjs +5 -0
  34. package/esm2022/lib/cms-routing.module.mjs +94 -0
  35. package/esm2022/lib/cms.module.mjs +133 -0
  36. package/esm2022/lib/components/admin/entries/create-or-edit-entries.component.mjs +303 -0
  37. package/esm2022/lib/components/admin/entries/create-or-update-entry-input-base.mjs +32 -0
  38. package/esm2022/lib/components/admin/entries/create.component.mjs +110 -0
  39. package/esm2022/lib/components/admin/entries/edit.component.mjs +110 -0
  40. package/esm2022/lib/components/admin/entries/entries.component.mjs +199 -0
  41. package/esm2022/lib/components/admin/entries/index.mjs +5 -0
  42. package/esm2022/lib/components/admin/fields/create-field.component.mjs +80 -0
  43. package/esm2022/lib/components/admin/fields/create-or-edit-field.component.mjs +114 -0
  44. package/esm2022/lib/components/admin/fields/create-or-update-field-input-base.mjs +25 -0
  45. package/esm2022/lib/components/admin/fields/edit-field.component.mjs +103 -0
  46. package/esm2022/lib/components/admin/fields/field-group.component.mjs +131 -0
  47. package/esm2022/lib/components/admin/fields/fields.component.mjs +108 -0
  48. package/esm2022/lib/components/admin/fields/index.mjs +7 -0
  49. package/esm2022/lib/components/admin/index.mjs +4 -0
  50. package/esm2022/lib/components/admin/sections/create-or-update-sections-input-base.mjs +27 -0
  51. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.mjs +71 -0
  52. package/esm2022/lib/components/admin/sections/entry-types/create-or-edit.component.mjs +389 -0
  53. package/esm2022/lib/components/admin/sections/entry-types/index.mjs +3 -0
  54. package/esm2022/lib/components/admin/sections/index.mjs +4 -0
  55. package/esm2022/lib/components/admin/sections/sections.component.mjs +292 -0
  56. package/esm2022/lib/components/dynamic-form/entry/entry-config.component.mjs +112 -0
  57. package/esm2022/lib/components/dynamic-form/entry/entry-config.mjs +18 -0
  58. package/esm2022/lib/components/dynamic-form/entry/entry-control.component.mjs +105 -0
  59. package/esm2022/lib/components/dynamic-form/entry/index.mjs +4 -0
  60. package/esm2022/lib/components/dynamic-form/form-control-group.mjs +28 -0
  61. package/esm2022/lib/components/dynamic-form/index.mjs +5 -0
  62. package/esm2022/lib/components/dynamic-form/matrix/index.mjs +4 -0
  63. package/esm2022/lib/components/dynamic-form/matrix/matrix-config.component.mjs +214 -0
  64. package/esm2022/lib/components/dynamic-form/matrix/matrix-config.mjs +50 -0
  65. package/esm2022/lib/components/dynamic-form/matrix/matrix-control.component.mjs +98 -0
  66. package/esm2022/lib/components/dynamic-form/table/index.mjs +4 -0
  67. package/esm2022/lib/components/dynamic-form/table/table-config.component.mjs +151 -0
  68. package/esm2022/lib/components/dynamic-form/table/table-config.mjs +38 -0
  69. package/esm2022/lib/components/dynamic-form/table/table-control.component.mjs +105 -0
  70. package/esm2022/lib/components/index.mjs +3 -0
  71. package/esm2022/lib/constants/styles.mjs +21 -0
  72. package/esm2022/lib/enums/ecms-component.mjs +13 -0
  73. package/esm2022/lib/enums/index.mjs +2 -0
  74. package/esm2022/lib/proxy/admin/dynamic-forms/form-admin.service.mjs +22 -0
  75. package/esm2022/lib/proxy/admin/dynamic-forms/index.mjs +3 -0
  76. package/esm2022/lib/proxy/admin/dynamic-forms/models.mjs +2 -0
  77. package/esm2022/lib/proxy/admin/entries/entry-admin.service.mjs +70 -0
  78. package/esm2022/lib/proxy/admin/entries/index.mjs +3 -0
  79. package/esm2022/lib/proxy/admin/entries/models.mjs +2 -0
  80. package/esm2022/lib/proxy/admin/fields/field-admin.service.mjs +45 -0
  81. package/esm2022/lib/proxy/admin/fields/field-group-admin.service.mjs +41 -0
  82. package/esm2022/lib/proxy/admin/fields/index.mjs +4 -0
  83. package/esm2022/lib/proxy/admin/fields/models.mjs +2 -0
  84. package/esm2022/lib/proxy/admin/sections/entry-type-admin.service.mjs +41 -0
  85. package/esm2022/lib/proxy/admin/sections/index.mjs +4 -0
  86. package/esm2022/lib/proxy/admin/sections/models.mjs +2 -0
  87. package/esm2022/lib/proxy/admin/sections/section-admin.service.mjs +51 -0
  88. package/esm2022/lib/proxy/admin/settings/index.mjs +2 -0
  89. package/esm2022/lib/proxy/admin/settings/site-settings-admin.service.mjs +31 -0
  90. package/esm2022/lib/proxy/dignite/abp/data/models.mjs +2 -0
  91. package/esm2022/lib/proxy/entries/entry-status.enum.mjs +8 -0
  92. package/esm2022/lib/proxy/entries/index.mjs +2 -0
  93. package/esm2022/lib/proxy/fields/models.mjs +2 -0
  94. package/esm2022/lib/proxy/sections/index.mjs +3 -0
  95. package/esm2022/lib/proxy/sections/models.mjs +2 -0
  96. package/esm2022/lib/proxy/sections/section-type.enum.mjs +9 -0
  97. package/esm2022/lib/proxy/settings/models.mjs +2 -0
  98. package/esm2022/lib/proxy/volo/cms-kit/users/models.mjs +2 -0
  99. package/esm2022/lib/resolvers/extensions-props-action-token.resolver.mjs +136 -0
  100. package/esm2022/lib/resolvers/page-default-toolbar-actions.mjs +160 -0
  101. package/esm2022/lib/resolvers/table-default-entity-actions.mjs +49 -0
  102. package/esm2022/lib/resolvers/table-default-entity-props.mjs +54 -0
  103. package/esm2022/lib/services/appent-content.mjs +15 -0
  104. package/esm2022/lib/services/cms-api.service.mjs +70 -0
  105. package/esm2022/lib/services/cms.service.mjs +21 -0
  106. package/esm2022/lib/services/field-abstracts.service.mjs +42 -0
  107. package/esm2022/lib/services/index.mjs +4 -0
  108. package/esm2022/lib/services/validators.service.mjs +83 -0
  109. package/esm2022/public-api.mjs +6 -0
  110. package/fesm2022/dignite-ng-expand.cms-config.mjs +426 -0
  111. package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -0
  112. package/fesm2022/dignite-ng-expand.cms.mjs +3932 -0
  113. package/fesm2022/dignite-ng-expand.cms.mjs.map +1 -0
  114. package/index.d.ts +5 -0
  115. package/lib/cms-routing.module.d.ts +7 -0
  116. package/lib/cms.module.d.ts +35 -0
  117. package/lib/components/admin/entries/create-or-edit-entries.component.d.ts +96 -0
  118. package/lib/components/admin/entries/create-or-update-entry-input-base.d.ts +23 -0
  119. package/lib/components/admin/entries/create.component.d.ts +47 -0
  120. package/lib/components/admin/entries/edit.component.d.ts +47 -0
  121. package/lib/components/admin/entries/entries.component.d.ts +66 -0
  122. package/lib/components/admin/entries/index.d.ts +4 -0
  123. package/lib/components/admin/fields/create-field.component.d.ts +37 -0
  124. package/lib/components/admin/fields/create-or-edit-field.component.d.ts +38 -0
  125. package/lib/components/admin/fields/create-or-update-field-input-base.d.ts +16 -0
  126. package/lib/components/admin/fields/edit-field.component.d.ts +46 -0
  127. package/lib/components/admin/fields/field-group.component.d.ts +58 -0
  128. package/lib/components/admin/fields/fields.component.d.ts +35 -0
  129. package/lib/components/admin/fields/index.d.ts +6 -0
  130. package/lib/components/admin/index.d.ts +3 -0
  131. package/lib/components/admin/sections/create-or-update-sections-input-base.d.ts +17 -0
  132. package/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.d.ts +38 -0
  133. package/lib/components/admin/sections/entry-types/create-or-edit.component.d.ts +138 -0
  134. package/lib/components/admin/sections/entry-types/index.d.ts +2 -0
  135. package/lib/components/admin/sections/index.d.ts +3 -0
  136. package/lib/components/admin/sections/sections.component.d.ts +64 -0
  137. package/lib/components/dynamic-form/entry/entry-config.component.d.ts +39 -0
  138. package/lib/components/dynamic-form/entry/entry-config.d.ts +9 -0
  139. package/lib/components/dynamic-form/entry/entry-control.component.d.ts +35 -0
  140. package/lib/components/dynamic-form/entry/index.d.ts +3 -0
  141. package/lib/components/dynamic-form/form-control-group.d.ts +4 -0
  142. package/lib/components/dynamic-form/index.d.ts +4 -0
  143. package/lib/components/dynamic-form/matrix/index.d.ts +3 -0
  144. package/lib/components/dynamic-form/matrix/matrix-config.component.d.ts +73 -0
  145. package/lib/components/dynamic-form/matrix/matrix-config.d.ts +24 -0
  146. package/lib/components/dynamic-form/matrix/matrix-control.component.d.ts +39 -0
  147. package/lib/components/dynamic-form/table/index.d.ts +3 -0
  148. package/lib/components/dynamic-form/table/table-config.component.d.ts +58 -0
  149. package/lib/components/dynamic-form/table/table-config.d.ts +18 -0
  150. package/lib/components/dynamic-form/table/table-control.component.d.ts +39 -0
  151. package/lib/components/index.d.ts +2 -0
  152. package/lib/constants/styles.d.ts +2 -0
  153. package/lib/enums/ecms-component.d.ts +11 -0
  154. package/lib/enums/index.d.ts +1 -0
  155. package/lib/proxy/admin/dynamic-forms/form-admin.service.d.ts +12 -0
  156. package/lib/proxy/admin/dynamic-forms/models.d.ts +4 -0
  157. package/lib/proxy/admin/entries/entry-admin.service.d.ts +22 -0
  158. package/lib/proxy/admin/entries/models.d.ts +60 -0
  159. package/lib/proxy/admin/fields/field-admin.service.d.ts +17 -0
  160. package/lib/proxy/admin/fields/field-group-admin.service.d.ts +16 -0
  161. package/{src/lib/proxy/admin/fields/models.ts → lib/proxy/admin/fields/models.d.ts} +34 -42
  162. package/lib/proxy/admin/sections/entry-type-admin.service.d.ts +15 -0
  163. package/{src/lib/proxy/admin/sections/models.ts → lib/proxy/admin/sections/models.d.ts} +67 -81
  164. package/lib/proxy/admin/sections/section-admin.service.d.ts +18 -0
  165. package/lib/proxy/admin/settings/site-settings-admin.service.d.ts +13 -0
  166. package/lib/proxy/dignite/abp/data/models.d.ts +3 -0
  167. package/lib/proxy/entries/entry-status.enum.d.ts +5 -0
  168. package/lib/proxy/fields/models.d.ts +8 -0
  169. package/lib/proxy/sections/models.d.ts +12 -0
  170. package/lib/proxy/sections/section-type.enum.d.ts +6 -0
  171. package/lib/proxy/settings/models.d.ts +5 -0
  172. package/{src/lib/proxy/volo/cms-kit/users/models.ts → lib/proxy/volo/cms-kit/users/models.d.ts} +7 -8
  173. package/lib/resolvers/extensions-props-action-token.resolver.d.ts +75 -0
  174. package/lib/resolvers/page-default-toolbar-actions.d.ts +18 -0
  175. package/lib/resolvers/table-default-entity-actions.d.ts +5 -0
  176. package/lib/resolvers/table-default-entity-props.d.ts +5 -0
  177. package/lib/services/appent-content.d.ts +1 -0
  178. package/lib/services/cms-api.service.d.ts +16 -0
  179. package/lib/services/cms.service.d.ts +10 -0
  180. package/lib/services/field-abstracts.service.d.ts +20 -0
  181. package/lib/services/index.d.ts +3 -0
  182. package/lib/services/validators.service.d.ts +15 -0
  183. package/package.json +22 -7
  184. package/{src/public-api.ts → public-api.d.ts} +2 -6
  185. package/config/ng-package.json +0 -6
  186. package/config/src/cms-config.module.ts +0 -12
  187. package/config/src/components/domains/domains.component.html +0 -17
  188. package/config/src/components/domains/domains.component.scss +0 -0
  189. package/config/src/components/domains/domains.component.spec.ts +0 -21
  190. package/config/src/components/domains/domains.component.ts +0 -109
  191. package/config/src/components/site-language/site-language.component.html +0 -31
  192. package/config/src/components/site-language/site-language.component.scss +0 -0
  193. package/config/src/components/site-language/site-language.component.spec.ts +0 -21
  194. package/config/src/components/site-language/site-language.component.ts +0 -117
  195. package/config/src/enums/route-names.ts +0 -8
  196. package/config/src/providers/route.provider.ts +0 -82
  197. package/config/src/proxy/admin/domains/domain-admin.service.ts +0 -38
  198. package/config/src/proxy/admin/domains/models.ts +0 -9
  199. package/config/src/proxy/dignite/abp/data/index.ts +0 -1
  200. package/config/src/proxy/dignite/abp/data/models.ts +0 -4
  201. package/config/src/proxy/dignite/abp/index.ts +0 -2
  202. package/config/src/proxy/dignite/cms/admin/domains/domain-admin.service.ts +0 -47
  203. package/config/src/proxy/dignite/cms/admin/domains/index.ts +0 -2
  204. package/config/src/proxy/dignite/cms/admin/dynamic-forms/form-admin.service.ts +0 -21
  205. package/config/src/proxy/dignite/cms/admin/dynamic-forms/models.ts +0 -5
  206. package/config/src/proxy/dignite/cms/admin/entries/entry-admin.service.ts +0 -109
  207. package/config/src/proxy/dignite/cms/admin/entries/models.ts +0 -68
  208. package/config/src/proxy/dignite/cms/admin/fields/field-admin.service.ts +0 -64
  209. package/config/src/proxy/dignite/cms/admin/fields/field-group-admin.service.ts +0 -56
  210. package/config/src/proxy/dignite/cms/admin/fields/models.ts +0 -42
  211. package/config/src/proxy/dignite/cms/admin/index.ts +0 -7
  212. package/config/src/proxy/dignite/cms/admin/sections/entry-type-admin.service.ts +0 -55
  213. package/config/src/proxy/dignite/cms/admin/sections/models.ts +0 -81
  214. package/config/src/proxy/dignite/cms/admin/sections/section-admin.service.ts +0 -74
  215. package/config/src/proxy/dignite/cms/admin/sites/models.ts +0 -5
  216. package/config/src/proxy/dignite/cms/admin/sites/site-admin.service.ts +0 -30
  217. package/config/src/proxy/dignite/cms/entries/entry-status.enum.ts +0 -8
  218. package/config/src/proxy/dignite/cms/fields/index.ts +0 -1
  219. package/config/src/proxy/dignite/cms/fields/models.ts +0 -9
  220. package/config/src/proxy/dignite/cms/index.ts +0 -6
  221. package/config/src/proxy/dignite/cms/sections/models.ts +0 -14
  222. package/config/src/proxy/dignite/cms/sections/section-type.enum.ts +0 -9
  223. package/config/src/proxy/dignite/cms/sites/index.ts +0 -1
  224. package/config/src/proxy/dignite/cms/sites/models.ts +0 -5
  225. package/config/src/proxy/dignite/cms-kit/admin/brand/brand-admin.service.ts +0 -21
  226. package/config/src/proxy/dignite/cms-kit/admin/brand/index.ts +0 -2
  227. package/config/src/proxy/dignite/cms-kit/admin/brand/models.ts +0 -7
  228. package/config/src/proxy/dignite/cms-kit/admin/index.ts +0 -2
  229. package/config/src/proxy/dignite/cms-kit/brand/brand.service.ts +0 -20
  230. package/config/src/proxy/dignite/cms-kit/brand/index.ts +0 -2
  231. package/config/src/proxy/dignite/cms-kit/brand/models.ts +0 -7
  232. package/config/src/proxy/dignite/cms-kit/index.ts +0 -3
  233. package/config/src/proxy/dignite/file-explorer/directories/file-descriptor.service.ts +0 -65
  234. package/config/src/proxy/dignite/file-explorer/directories/index.ts +0 -2
  235. package/config/src/proxy/dignite/file-explorer/directories/models.ts +0 -35
  236. package/config/src/proxy/dignite/file-explorer/files/file-descriptor.service.ts +0 -101
  237. package/config/src/proxy/dignite/file-explorer/files/index.ts +0 -2
  238. package/config/src/proxy/dignite/file-explorer/files/models.ts +0 -61
  239. package/config/src/proxy/dignite/file-explorer/index.ts +0 -3
  240. package/config/src/proxy/dignite/index.ts +0 -6
  241. package/config/src/proxy/dignite/travely/areas/index.ts +0 -1
  242. package/config/src/proxy/dignite/travely/areas/models.ts +0 -5
  243. package/config/src/proxy/dignite/travely/common/index.ts +0 -1
  244. package/config/src/proxy/dignite/travely/common/models.ts +0 -5
  245. package/config/src/proxy/dignite/travely/entity-snapshots/index.ts +0 -1
  246. package/config/src/proxy/dignite/travely/entity-snapshots/models.ts +0 -7
  247. package/config/src/proxy/dignite/travely/guides/index.ts +0 -1
  248. package/config/src/proxy/dignite/travely/guides/models.ts +0 -26
  249. package/config/src/proxy/dignite/travely/index.ts +0 -9
  250. package/config/src/proxy/dignite/travely/merchants/index.ts +0 -1
  251. package/config/src/proxy/dignite/travely/merchants/models.ts +0 -9
  252. package/config/src/proxy/dignite/travely/orders/index.ts +0 -1
  253. package/config/src/proxy/dignite/travely/orders/models.ts +0 -52
  254. package/config/src/proxy/dignite/travely/payment/index.ts +0 -1
  255. package/config/src/proxy/dignite/travely/payment/models.ts +0 -9
  256. package/config/src/proxy/dignite/travely/tours/booking-time-type.enum.ts +0 -9
  257. package/config/src/proxy/dignite/travely/tours/index.ts +0 -5
  258. package/config/src/proxy/dignite/travely/tours/models.ts +0 -77
  259. package/config/src/proxy/dignite/travely/tours/period-type.enum.ts +0 -9
  260. package/config/src/proxy/dignite/travely/tours/tour-recommendation-rank.enum.ts +0 -12
  261. package/config/src/proxy/dignite/travely/tours/tourist-type.enum.ts +0 -8
  262. package/config/src/proxy/microsoft/asp-net-core/index.ts +0 -2
  263. package/config/src/proxy/microsoft/asp-net-core/mvc/index.ts +0 -1
  264. package/config/src/proxy/microsoft/asp-net-core/mvc/models.ts +0 -12
  265. package/config/src/proxy/microsoft/extensions/index.ts +0 -2
  266. package/config/src/proxy/microsoft/extensions/primitives/index.ts +0 -1
  267. package/config/src/proxy/microsoft/extensions/primitives/models.ts +0 -9
  268. package/config/src/proxy/microsoft/index.ts +0 -4
  269. package/config/src/proxy/microsoft/net/http/headers/index.ts +0 -1
  270. package/config/src/proxy/microsoft/net/http/headers/models.ts +0 -7
  271. package/config/src/proxy/microsoft/net/http/index.ts +0 -2
  272. package/config/src/proxy/microsoft/net/index.ts +0 -2
  273. package/config/src/services/validators.service.ts +0 -80
  274. package/ng-package.json +0 -10
  275. package/src/lib/cms-routing.module.ts +0 -102
  276. package/src/lib/cms.module.ts +0 -109
  277. package/src/lib/components/admin/entries/create-or-edit-entries.component.html +0 -137
  278. package/src/lib/components/admin/entries/create-or-edit-entries.component.scss +0 -1
  279. package/src/lib/components/admin/entries/create-or-edit-entries.component.spec.ts +0 -21
  280. package/src/lib/components/admin/entries/create-or-edit-entries.component.ts +0 -318
  281. package/src/lib/components/admin/entries/create-or-update-entry-input-base.ts +0 -33
  282. package/src/lib/components/admin/entries/create.component.html +0 -13
  283. package/src/lib/components/admin/entries/create.component.scss +0 -1
  284. package/src/lib/components/admin/entries/create.component.spec.ts +0 -21
  285. package/src/lib/components/admin/entries/create.component.ts +0 -110
  286. package/src/lib/components/admin/entries/edit.component.html +0 -9
  287. package/src/lib/components/admin/entries/edit.component.scss +0 -1
  288. package/src/lib/components/admin/entries/edit.component.spec.ts +0 -21
  289. package/src/lib/components/admin/entries/edit.component.ts +0 -111
  290. package/src/lib/components/admin/entries/entries.component.html +0 -112
  291. package/src/lib/components/admin/entries/entries.component.scss +0 -1
  292. package/src/lib/components/admin/entries/entries.component.spec.ts +0 -21
  293. package/src/lib/components/admin/entries/entries.component.ts +0 -216
  294. package/src/lib/components/admin/entries/index.ts +0 -4
  295. package/src/lib/components/admin/fields/create-field.component.html +0 -12
  296. package/src/lib/components/admin/fields/create-field.component.scss +0 -1
  297. package/src/lib/components/admin/fields/create-field.component.spec.ts +0 -21
  298. package/src/lib/components/admin/fields/create-field.component.ts +0 -82
  299. package/src/lib/components/admin/fields/create-or-edit-field.component.html +0 -40
  300. package/src/lib/components/admin/fields/create-or-edit-field.component.scss +0 -0
  301. package/src/lib/components/admin/fields/create-or-edit-field.component.spec.ts +0 -21
  302. package/src/lib/components/admin/fields/create-or-edit-field.component.ts +0 -121
  303. package/src/lib/components/admin/fields/create-or-update-field-input-base.ts +0 -33
  304. package/src/lib/components/admin/fields/edit-field.component.html +0 -16
  305. package/src/lib/components/admin/fields/edit-field.component.scss +0 -0
  306. package/src/lib/components/admin/fields/edit-field.component.spec.ts +0 -21
  307. package/src/lib/components/admin/fields/edit-field.component.ts +0 -101
  308. package/src/lib/components/admin/fields/field-group.component.html +0 -69
  309. package/src/lib/components/admin/fields/field-group.component.scss +0 -0
  310. package/src/lib/components/admin/fields/field-group.component.spec.ts +0 -21
  311. package/src/lib/components/admin/fields/field-group.component.ts +0 -151
  312. package/src/lib/components/admin/fields/fields.component.html +0 -74
  313. package/src/lib/components/admin/fields/fields.component.scss +0 -1
  314. package/src/lib/components/admin/fields/fields.component.spec.ts +0 -21
  315. package/src/lib/components/admin/fields/fields.component.ts +0 -109
  316. package/src/lib/components/admin/fields/index.ts +0 -6
  317. package/src/lib/components/admin/index.ts +0 -3
  318. package/src/lib/components/admin/sections/create-or-update-sections-input-base.ts +0 -32
  319. package/src/lib/components/admin/sections/entry-types/create-or-edit.-entry-type-input-base.ts +0 -79
  320. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.html +0 -187
  321. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.scss +0 -1
  322. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.spec.ts +0 -21
  323. package/src/lib/components/admin/sections/entry-types/create-or-edit.component.ts +0 -424
  324. package/src/lib/components/admin/sections/entry-types/index.ts +0 -2
  325. package/src/lib/components/admin/sections/index.ts +0 -3
  326. package/src/lib/components/admin/sections/sections.component.html +0 -188
  327. package/src/lib/components/admin/sections/sections.component.scss +0 -1
  328. package/src/lib/components/admin/sections/sections.component.spec.ts +0 -21
  329. package/src/lib/components/admin/sections/sections.component.ts +0 -302
  330. package/src/lib/components/dynamic-form/entry/entry-config.component.html +0 -36
  331. package/src/lib/components/dynamic-form/entry/entry-config.component.scss +0 -27
  332. package/src/lib/components/dynamic-form/entry/entry-config.component.spec.ts +0 -21
  333. package/src/lib/components/dynamic-form/entry/entry-config.component.ts +0 -114
  334. package/src/lib/components/dynamic-form/entry/entry-config.ts +0 -24
  335. package/src/lib/components/dynamic-form/entry/entry-control.component.html +0 -26
  336. package/src/lib/components/dynamic-form/entry/entry-control.component.scss +0 -1
  337. package/src/lib/components/dynamic-form/entry/entry-control.component.spec.ts +0 -21
  338. package/src/lib/components/dynamic-form/entry/entry-control.component.ts +0 -111
  339. package/src/lib/components/dynamic-form/entry/index.ts +0 -3
  340. package/src/lib/components/dynamic-form/form-control-group.ts +0 -27
  341. package/src/lib/components/dynamic-form/index.ts +0 -4
  342. package/src/lib/components/dynamic-form/matrix/index.ts +0 -3
  343. package/src/lib/components/dynamic-form/matrix/matrix-config.component.html +0 -148
  344. package/src/lib/components/dynamic-form/matrix/matrix-config.component.scss +0 -0
  345. package/src/lib/components/dynamic-form/matrix/matrix-config.component.spec.ts +0 -21
  346. package/src/lib/components/dynamic-form/matrix/matrix-config.component.ts +0 -239
  347. package/src/lib/components/dynamic-form/matrix/matrix-config.ts +0 -63
  348. package/src/lib/components/dynamic-form/matrix/matrix-control.component.html +0 -42
  349. package/src/lib/components/dynamic-form/matrix/matrix-control.component.scss +0 -0
  350. package/src/lib/components/dynamic-form/matrix/matrix-control.component.spec.ts +0 -21
  351. package/src/lib/components/dynamic-form/matrix/matrix-control.component.ts +0 -106
  352. package/src/lib/components/dynamic-form/table/index.ts +0 -3
  353. package/src/lib/components/dynamic-form/table/table-config.component.html +0 -85
  354. package/src/lib/components/dynamic-form/table/table-config.component.scss +0 -10
  355. package/src/lib/components/dynamic-form/table/table-config.component.spec.ts +0 -21
  356. package/src/lib/components/dynamic-form/table/table-config.component.ts +0 -170
  357. package/src/lib/components/dynamic-form/table/table-config.ts +0 -45
  358. package/src/lib/components/dynamic-form/table/table-control.component.html +0 -54
  359. package/src/lib/components/dynamic-form/table/table-control.component.scss +0 -1
  360. package/src/lib/components/dynamic-form/table/table-control.component.spec.ts +0 -21
  361. package/src/lib/components/dynamic-form/table/table-control.component.ts +0 -114
  362. package/src/lib/components/index.ts +0 -2
  363. package/src/lib/constants/index.ts +0 -1
  364. package/src/lib/constants/styles.ts +0 -20
  365. package/src/lib/enums/ecms-component.ts +0 -11
  366. package/src/lib/enums/index.ts +0 -1
  367. package/src/lib/proxy/README.md +0 -17
  368. package/src/lib/proxy/admin/domains/domain-admin.service.ts +0 -38
  369. package/src/lib/proxy/admin/domains/index.ts +0 -2
  370. package/src/lib/proxy/admin/domains/models.ts +0 -9
  371. package/src/lib/proxy/admin/dynamic-forms/form-admin.service.ts +0 -21
  372. package/src/lib/proxy/admin/dynamic-forms/index.ts +0 -2
  373. package/src/lib/proxy/admin/dynamic-forms/models.ts +0 -5
  374. package/src/lib/proxy/admin/entries/entry-admin.service.ts +0 -109
  375. package/src/lib/proxy/admin/entries/index.ts +0 -2
  376. package/src/lib/proxy/admin/entries/models.ts +0 -68
  377. package/src/lib/proxy/admin/fields/field-admin.service.ts +0 -64
  378. package/src/lib/proxy/admin/fields/field-group-admin.service.ts +0 -56
  379. package/src/lib/proxy/admin/fields/index.ts +0 -3
  380. package/src/lib/proxy/admin/index.ts +0 -7
  381. package/src/lib/proxy/admin/sections/entry-type-admin.service.ts +0 -55
  382. package/src/lib/proxy/admin/sections/index.ts +0 -3
  383. package/src/lib/proxy/admin/sections/section-admin.service.ts +0 -74
  384. package/src/lib/proxy/admin/settings/site-settings-admin.service.ts +0 -37
  385. package/src/lib/proxy/dignite/abp/data/index.ts +0 -1
  386. package/src/lib/proxy/dignite/abp/data/models.ts +0 -4
  387. package/src/lib/proxy/dignite/abp/index.ts +0 -2
  388. package/src/lib/proxy/dignite/file-explorer/directories/file-descriptor.service.ts +0 -65
  389. package/src/lib/proxy/dignite/file-explorer/directories/index.ts +0 -2
  390. package/src/lib/proxy/dignite/file-explorer/directories/models.ts +0 -35
  391. package/src/lib/proxy/dignite/file-explorer/files/file-descriptor.service.ts +0 -86
  392. package/src/lib/proxy/dignite/file-explorer/files/index.ts +0 -2
  393. package/src/lib/proxy/dignite/file-explorer/files/models.ts +0 -58
  394. package/src/lib/proxy/dignite/file-explorer/index.ts +0 -3
  395. package/src/lib/proxy/dignite/index.ts +0 -3
  396. package/src/lib/proxy/entries/entry-status.enum.ts +0 -8
  397. package/src/lib/proxy/entries/index.ts +0 -1
  398. package/src/lib/proxy/fields/index.ts +0 -1
  399. package/src/lib/proxy/fields/models.ts +0 -9
  400. package/src/lib/proxy/generate-proxy.json +0 -11425
  401. package/src/lib/proxy/index.ts +0 -9
  402. package/src/lib/proxy/microsoft/asp-net-core/index.ts +0 -2
  403. package/src/lib/proxy/microsoft/asp-net-core/mvc/index.ts +0 -1
  404. package/src/lib/proxy/microsoft/asp-net-core/mvc/models.ts +0 -12
  405. package/src/lib/proxy/microsoft/extensions/index.ts +0 -2
  406. package/src/lib/proxy/microsoft/extensions/primitives/index.ts +0 -1
  407. package/src/lib/proxy/microsoft/extensions/primitives/models.ts +0 -9
  408. package/src/lib/proxy/microsoft/index.ts +0 -4
  409. package/src/lib/proxy/microsoft/net/http/headers/index.ts +0 -1
  410. package/src/lib/proxy/microsoft/net/http/headers/models.ts +0 -7
  411. package/src/lib/proxy/microsoft/net/http/index.ts +0 -2
  412. package/src/lib/proxy/microsoft/net/index.ts +0 -2
  413. package/src/lib/proxy/sections/index.ts +0 -2
  414. package/src/lib/proxy/sections/models.ts +0 -14
  415. package/src/lib/proxy/sections/section-type.enum.ts +0 -9
  416. package/src/lib/proxy/settings/index.ts +0 -1
  417. package/src/lib/proxy/settings/models.ts +0 -6
  418. package/src/lib/proxy/volo/abp/content/index.ts +0 -1
  419. package/src/lib/proxy/volo/abp/content/models.ts +0 -6
  420. package/src/lib/proxy/volo/abp/index.ts +0 -2
  421. package/src/lib/proxy/volo/cms-kit/index.ts +0 -2
  422. package/src/lib/proxy/volo/cms-kit/users/index.ts +0 -1
  423. package/src/lib/proxy/volo/index.ts +0 -3
  424. package/src/lib/resolvers/extensions-props-action-token.resolver.ts +0 -178
  425. package/src/lib/resolvers/page-default-toolbar-actions.ts +0 -170
  426. package/src/lib/resolvers/table-default-entity-actions.ts +0 -24
  427. package/src/lib/resolvers/table-default-entity-props.ts +0 -36
  428. package/src/lib/services/appent-content.ts +0 -13
  429. package/src/lib/services/cms-api.service.ts +0 -71
  430. package/src/lib/services/cms.service.ts +0 -18
  431. package/src/lib/services/field-abstracts.service.ts +0 -40
  432. package/src/lib/services/index.ts +0 -4
  433. package/src/lib/services/simple-reuse-strategy.ts +0 -74
  434. package/src/lib/services/update-list.service.ts +0 -15
  435. package/src/lib/services/validators.service.ts +0 -82
  436. package/src/test.ts +0 -26
  437. package/tsconfig.lib.json +0 -16
  438. package/tsconfig.lib.prod.json +0 -10
  439. package/tsconfig.spec.json +0 -17
  440. /package/config/{src/proxy/admin/domains/index.ts → proxy/admin/domains/index.d.ts} +0 -0
  441. /package/config/{src/proxy/dignite/cms/admin/sites/index.ts → proxy/dignite/cms/admin/sites/index.d.ts} +0 -0
  442. /package/{config/src/proxy/dignite/cms/admin/dynamic-forms/index.ts → lib/proxy/admin/dynamic-forms/index.d.ts} +0 -0
  443. /package/{config/src/proxy/dignite/cms/admin/entries/index.ts → lib/proxy/admin/entries/index.d.ts} +0 -0
  444. /package/{config/src/proxy/dignite/cms/admin/fields/index.ts → lib/proxy/admin/fields/index.d.ts} +0 -0
  445. /package/{config/src/proxy/dignite/cms/admin/sections/index.ts → lib/proxy/admin/sections/index.d.ts} +0 -0
  446. /package/{src/lib/proxy/admin/settings/index.ts → lib/proxy/admin/settings/index.d.ts} +0 -0
  447. /package/{config/src/proxy/dignite/cms/entries/index.ts → lib/proxy/entries/index.d.ts} +0 -0
  448. /package/{config/src/proxy/dignite/cms/sections/index.ts → lib/proxy/sections/index.d.ts} +0 -0
@@ -0,0 +1,389 @@
1
+ import { EXTENSIONS_IDENTIFIER } from "@abp/ng.components/extensible";
2
+ import { Component, inject, ViewChild } from "@angular/core";
3
+ import { FormBuilder } from "@angular/forms";
4
+ import { CreateOrEditEntryTypeInputBase, fieldTabsBase, fieldsBase } from "./create-or-edit.-entry-type-input-base";
5
+ import { ECmsComponent } from "../../../../enums";
6
+ import { ValidatorsService } from "../../../../services/validators.service";
7
+ import { UpdateListService } from "@dignite-ng/expand.core";
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "@abp/ng.theme.shared";
10
+ import * as i2 from "@angular/common";
11
+ import * as i3 from "@angular/router";
12
+ import * as i4 from "../../../../proxy/admin/fields";
13
+ import * as i5 from "../../../../proxy/admin/sections";
14
+ import * as i6 from "@abp/ng.core";
15
+ import * as i7 from "../../../../services";
16
+ import * as i8 from "@angular/forms";
17
+ import * as i9 from "@ngx-validate/core";
18
+ import * as i10 from "@ng-bootstrap/ng-bootstrap";
19
+ import * as i11 from "@abp/ng.components/page";
20
+ export class CreateOrEditComponent {
21
+ constructor(toaster, _location, route, _FieldGroupAdminService, _FieldAdminService, _EntryTypeAdminService, _LocalizationService, _CmsApiService) {
22
+ this.toaster = toaster;
23
+ this._location = _location;
24
+ this.route = route;
25
+ this._FieldGroupAdminService = _FieldGroupAdminService;
26
+ this._FieldAdminService = _FieldAdminService;
27
+ this._EntryTypeAdminService = _EntryTypeAdminService;
28
+ this._LocalizationService = _LocalizationService;
29
+ this._CmsApiService = _CmsApiService;
30
+ this.fb = inject(FormBuilder);
31
+ this._UpdateListService = inject(UpdateListService);
32
+ /**表单实体 */
33
+ this.newEntity = this.fb.group(new CreateOrEditEntryTypeInputBase());
34
+ /**版块id */
35
+ this.sectionId = '';
36
+ /**条目类型id */
37
+ this.entryTypesId = '';
38
+ /**
39
+ * 拖拽 功能*/
40
+ /**数据源 */
41
+ /**数据源-字段分组数据-包含字段数据 fields */
42
+ this.fieldGroupList = [];
43
+ /**数据源-所有字段列表 */
44
+ this.fieldList = [];
45
+ /**目标源 结果*/
46
+ this.resultSource = [];
47
+ /**来自数据源的集合,用于从目标源拖回数据源时的判断,与取值 */
48
+ this.formRightGroup = [];
49
+ this._ValidatorsService = inject(ValidatorsService);
50
+ /**表单验证状态
51
+ * {
52
+ * title:true,
53
+ * }
54
+ */
55
+ this.formValidation = '';
56
+ /**模态框状态 */
57
+ this.visibleTabsOpen = false;
58
+ /**是否是忙碌状态 */
59
+ this.modalBusy = false;
60
+ /**正在选中的nav */
61
+ this.navActive = 0;
62
+ /**编辑字段模态框状态 */
63
+ this.visibleEditFieldOpen = false;
64
+ }
65
+ get fieldTabs() {
66
+ return this.newEntity.get('fieldTabs');
67
+ }
68
+ /**触发提交按钮 */
69
+ submitclickBtn() {
70
+ this.submitclick.nativeElement.click();
71
+ }
72
+ ngOnInit() {
73
+ let sectionId = this.route.snapshot.params.sectionsId;
74
+ this.entryTypesId = this.route.snapshot.params.entryTypesId || '';
75
+ if (sectionId) {
76
+ this.sectionId = sectionId;
77
+ this.addControlToFieldTabs();
78
+ this.getFieldGroup();
79
+ }
80
+ }
81
+ /**给fieldTabs添加新控件 */
82
+ addControlToFieldTabs(nameValue = '') {
83
+ const newFormGroup = this.fb.group(new fieldTabsBase({
84
+ name: this.fieldTabs.length === 0
85
+ ? this._LocalizationService.instant(`Cms::FieldTab`)
86
+ : nameValue,
87
+ }));
88
+ this.fieldTabs.push(newFormGroup);
89
+ this.resultSource.push(newFormGroup.value);
90
+ this.navActive = this.resultSource.length - 1;
91
+ }
92
+ /**获取字段分组 */
93
+ getFieldGroup() {
94
+ this._FieldGroupAdminService.getList({}).subscribe(async (res) => {
95
+ let fieldList = await this.getFieldList();
96
+ let fieldGroupList = res.items;
97
+ fieldGroupList.unshift({
98
+ id: null,
99
+ name: 'UngroupedFields',
100
+ });
101
+ fieldGroupList.forEach((el, index) => {
102
+ el.fields = fieldList.filter(els => els.groupId === el.id);
103
+ });
104
+ this.fieldGroupList = fieldGroupList;
105
+ this.fieldList = this.deepClone(fieldList);
106
+ let entryTypesId = this.entryTypesId;
107
+ if (entryTypesId) {
108
+ this.entryTypesId = entryTypesId;
109
+ this.getEntryTypes();
110
+ }
111
+ });
112
+ }
113
+ /**获取条目类型详情 */
114
+ getEntryTypes() {
115
+ let fieldList = this.deepClone(this.fieldList);
116
+ this._EntryTypeAdminService.get(this.entryTypesId).subscribe(res => {
117
+ res.fieldTabs.forEach(el => {
118
+ el.fields.forEach((eld) => {
119
+ eld.id = eld.fieldId;
120
+ eld.groupId = fieldList.find(elfd => elfd.id == eld.fieldId).groupId;
121
+ this.formRightGroup.push(eld);
122
+ let fieldindex = fieldList.findIndex(elfl => elfl.id == eld.fieldId);
123
+ fieldList.splice(fieldindex, 1);
124
+ });
125
+ });
126
+ this.fieldGroupList.forEach((el, index) => {
127
+ el.fields = fieldList.filter(els => els.groupId === el.id);
128
+ });
129
+ this.newEntity.patchValue(res);
130
+ this.entryTypesSelect = res;
131
+ this.resultSource = res.fieldTabs;
132
+ });
133
+ }
134
+ /**
135
+ * 深拷贝--方法
136
+ * $api.deepClone() */
137
+ deepClone(obj) {
138
+ if (typeof obj !== 'object' || obj === null)
139
+ return obj;
140
+ const result = Array.isArray(obj) ? [] : {};
141
+ for (let key in obj) {
142
+ if (obj.hasOwnProperty(key)) {
143
+ if (typeof obj[key] === 'object' && obj[key] !== null) {
144
+ if (obj[key] instanceof Date) {
145
+ result[key] = new Date(obj[key].getTime());
146
+ }
147
+ else if (obj[key] instanceof RegExp) {
148
+ result[key] = new RegExp(obj[key]);
149
+ }
150
+ else {
151
+ result[key] = this.deepClone(obj[key]);
152
+ }
153
+ }
154
+ else {
155
+ result[key] = obj[key];
156
+ }
157
+ }
158
+ }
159
+ return result;
160
+ }
161
+ /**
162
+ *
163
+ * @param nameValue 获取所有字段
164
+ */
165
+ getFieldList() {
166
+ return new Promise((resolve, rejects) => {
167
+ this._FieldAdminService
168
+ .getList({
169
+ maxResultCount: 1000,
170
+ })
171
+ .subscribe((res) => {
172
+ res.items.forEach(el => {
173
+ el.required = false;
174
+ el.showOnList = false;
175
+ });
176
+ resolve(res.items);
177
+ });
178
+ });
179
+ }
180
+ /**从数据源开始拖拽 */
181
+ fromDataSourceDragStart(element, fieldIndex, groupIndex) {
182
+ this.fromDataSourceDragEl = element;
183
+ this.DataSourceFieldIndex = fieldIndex;
184
+ this.DataSourceGroupIndex = groupIndex;
185
+ this.fromResultSourceDragEl = undefined;
186
+ }
187
+ /**从目标源开始拖拽 */
188
+ fromResultSourceDragStart(element) {
189
+ this.fromResultSourceDragEl = element;
190
+ this.fromDataSourceDragEl = undefined;
191
+ this.DataSourceFieldIndex = undefined;
192
+ this.DataSourceGroupIndex = undefined;
193
+ }
194
+ /**拖拽到数据源时触发 */
195
+ dragToDataSourceDropped() {
196
+ //从数据源拖拽到数据源-排序
197
+ if (this.fromDataSourceDragEl) {
198
+ }
199
+ let _fromResultSourceDragEl = this.fromResultSourceDragEl;
200
+ let formRightGroup = this.deepClone(this.formRightGroup);
201
+ let fieldList = this.deepClone(this.fieldList);
202
+ if (_fromResultSourceDragEl) {
203
+ //移动
204
+ //从目标源拖拽到数据源
205
+ // 拖拽目标源的下标
206
+ let dragResultSourceIndex = this.resultSource[this.navActive].fields.findIndex(el => el.id == _fromResultSourceDragEl.id);
207
+ //删除目标源中的数据
208
+ this.resultSource[this.navActive].fields.splice(dragResultSourceIndex, 1);
209
+ formRightGroup.splice(formRightGroup.findIndex(el => el.id == _fromResultSourceDragEl.id), 1);
210
+ this.fieldGroupList.forEach(el => {
211
+ if (el.id == _fromResultSourceDragEl.groupId) {
212
+ const elFieldsAll = fieldList.filter(els => els.groupId === el.id);
213
+ el.fields = elFieldsAll.filter(item => !formRightGroup.some(itemB => item.id === itemB.id));
214
+ }
215
+ });
216
+ this.formRightGroup = formRightGroup;
217
+ }
218
+ this.setfieldTabsFrom();
219
+ }
220
+ /**拖拽到目标源时触发
221
+ *
222
+ */
223
+ dragToResultSourceDropped(fieldTabstem, fieldTabsIndex) {
224
+ const _fromDataSourceDragEl = this.fromDataSourceDragEl;
225
+ //从数据源拖拽到目标源
226
+ if (_fromDataSourceDragEl) {
227
+ this.fieldGroupList[this.DataSourceGroupIndex].fields.splice(this.DataSourceFieldIndex, 1);
228
+ this.resultSource[fieldTabsIndex].fields.push(_fromDataSourceDragEl);
229
+ this.formRightGroup.push(_fromDataSourceDragEl);
230
+ }
231
+ this.setfieldTabsFrom();
232
+ }
233
+ /** 从目标源拖拽到目标源*/
234
+ dragToResultSourceItemDropped(fieldsIndex) {
235
+ const _fromResultSourceDragEl = this.fromResultSourceDragEl;
236
+ if (_fromResultSourceDragEl) {
237
+ // 拖拽目标源的下标
238
+ let dragResultSourceIndex = this.resultSource[this.navActive].fields.findIndex(el => el.id == _fromResultSourceDragEl.id);
239
+ //删除目标源中的数据
240
+ this.resultSource[this.navActive].fields.splice(dragResultSourceIndex, 1);
241
+ this.resultSource[this.navActive].fields.splice(fieldsIndex, 0, _fromResultSourceDragEl);
242
+ }
243
+ this.setfieldTabsFrom();
244
+ }
245
+ /**设置formA表单 */
246
+ setfieldTabsFrom() {
247
+ let setArray = [];
248
+ this.resultSource.forEach(el => {
249
+ let fieldsArray = [];
250
+ el.fields.forEach(item => {
251
+ fieldsArray.push({
252
+ fieldId: item.id || item.fieldId,
253
+ displayName: item.displayName,
254
+ required: item?.required,
255
+ showOnList: item?.showOnList,
256
+ });
257
+ });
258
+ setArray.push({
259
+ name: el.name,
260
+ fields: fieldsArray,
261
+ });
262
+ });
263
+ this.newEntity.patchValue({
264
+ fieldTabs: setArray,
265
+ });
266
+ }
267
+ /**保存表单 */
268
+ save() {
269
+ let input = this.newEntity.value;
270
+ this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);
271
+ if (this._ValidatorsService.isCheckForm(this.formValidation, 'Cms'))
272
+ return;
273
+ if (this.entryTypesSelect) {
274
+ this._EntryTypeAdminService.update(this.entryTypesSelect.id, input).subscribe(res => {
275
+ this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));
276
+ this._location.back();
277
+ this._UpdateListService.updateList();
278
+ });
279
+ return;
280
+ }
281
+ input.sectionId = this.sectionId;
282
+ this._EntryTypeAdminService.create(input).subscribe(res => {
283
+ this.toaster.success(this._LocalizationService.instant(`AbpUi::SuccessfullyDeleted`));
284
+ this._location.back();
285
+ this._UpdateListService.updateList();
286
+ });
287
+ }
288
+ /**模态框状态改变回调 */
289
+ VisibleTabsChange(event) {
290
+ if (!event) {
291
+ this.editFieldTabsSelect = '';
292
+ return;
293
+ }
294
+ }
295
+ /**新建增加FieldTabs */
296
+ addFieldTabs() {
297
+ this.editFieldTabsFrom = this.fb.group(new fieldTabsBase());
298
+ this.visibleTabsOpen = true;
299
+ }
300
+ /**编辑FieldTabs */
301
+ editFieldTabs(item, i) {
302
+ this.editFieldTabsFrom = this.fb.group(new fieldTabsBase({
303
+ name: item.name,
304
+ }));
305
+ this.editFieldTabsSelect = item;
306
+ this.visibleTabsOpen = true;
307
+ this.newEditFieldTabsIndex = i;
308
+ }
309
+ /**保存编辑tabs表单 */
310
+ editFieldTabsSave() {
311
+ //编辑
312
+ if (this.editFieldTabsSelect) {
313
+ this.resultSource[this.newEditFieldTabsIndex].name = this.editFieldTabsFrom.value.name;
314
+ this.navActive = this.newEditFieldTabsIndex;
315
+ }
316
+ else {
317
+ //新建
318
+ this.addControlToFieldTabs(this.editFieldTabsFrom.value.name);
319
+ }
320
+ this.visibleTabsOpen = false;
321
+ this.setfieldTabsFrom();
322
+ }
323
+ /**删除某个tabs表单 */
324
+ deleteFieldTabs(index) {
325
+ this.fieldTabs.removeAt(index);
326
+ this.resultSource.splice(index, 1);
327
+ }
328
+ /**编辑字段模态框状态状态改变回调 */
329
+ VisibleEditFieldChange(event) {
330
+ if (!event) {
331
+ this.EditFieldIndex = undefined;
332
+ return;
333
+ }
334
+ }
335
+ /**打开编辑字段模态框 */
336
+ EditFieldModalOpen(items, elIndex) {
337
+ this.visibleEditFieldOpen = true;
338
+ this.EditFieldIndex = elIndex;
339
+ this.editFieldFrom = this.fb.group(new fieldsBase(this.fieldTabs.value[this.navActive].fields[elIndex]));
340
+ }
341
+ /**保存编辑字段 */
342
+ editFieldSave() {
343
+ let input = this.editFieldFrom.value;
344
+ this.resultSource[this.navActive].fields[this.EditFieldIndex].displayName = input.displayName;
345
+ this.resultSource[this.navActive].fields[this.EditFieldIndex].required = input.required;
346
+ this.resultSource[this.navActive].fields[this.EditFieldIndex].showOnList = input.showOnList;
347
+ this.visibleEditFieldOpen = false;
348
+ this.setfieldTabsFrom();
349
+ }
350
+ /**name表单控件 */
351
+ get nameInput() {
352
+ return this.newEntity.get('name');
353
+ }
354
+ /**字段标签input失去标点生成字段名字 */
355
+ disPlayNameInputBlur(event) {
356
+ let value = event.target.value;
357
+ let pinyin = this._CmsApiService.chineseToPinyin(value);
358
+ let nameInput = this.nameInput;
359
+ if (nameInput.value)
360
+ return;
361
+ nameInput.patchValue(pinyin);
362
+ }
363
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", 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 }], target: i0.ɵɵFactoryTarget.Component }); }
364
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: CreateOrEditComponent, selector: "cms-create-or-edit", providers: [
365
+ {
366
+ provide: EXTENSIONS_IDENTIFIER,
367
+ useValue: ECmsComponent.SectionsCreateOrEdit,
368
+ },
369
+ ], 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\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"save()\">\n <abp-page [title]=\"entryTypesId ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)\"\n [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 <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 *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 *ngFor=\"let el of item.fields; let iel = index\">\n <li draggable=\"true\" (dragstart)=\"fromResultSourceDragStart(el)\"\n (drop)=\"dragToResultSourceItemDropped(iel)\"\n class=\"list-group-item d-flex align-items-center justify-content-between py-1\"\n 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 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\" (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\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToDataSourceDropped()\" 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\" (keydown.enter)=\"$event.preventDefault()\" (submit)=\"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\" (keydown.enter)=\"$event.preventDefault()\" (submit)=\"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}}\n </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.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.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: "directive", type: i10.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i10.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i10.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "directive", type: i10.NgbDropdownItem, selector: "[ngbDropdownItem]", inputs: ["tabindex", "disabled"] }, { kind: "component", type: i11.PageComponent, selector: "abp-page", inputs: ["title", "toolbar", "breadcrumb"] }, { kind: "pipe", type: i6.LocalizationPipe, name: "abpLocalization" }] }); }
370
+ }
371
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CreateOrEditComponent, decorators: [{
372
+ type: Component,
373
+ args: [{ selector: 'cms-create-or-edit', providers: [
374
+ {
375
+ provide: EXTENSIONS_IDENTIFIER,
376
+ useValue: ECmsComponent.SectionsCreateOrEdit,
377
+ },
378
+ ], template: "<form class=\"row g-3 needs-validation\" [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"save()\">\n <abp-page [title]=\"entryTypesId ? ('AbpUi::Edit' | abpLocalization):('Cms::New' | abpLocalization)\"\n [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 <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 *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 *ngFor=\"let el of item.fields; let iel = index\">\n <li draggable=\"true\" (dragstart)=\"fromResultSourceDragStart(el)\"\n (drop)=\"dragToResultSourceItemDropped(iel)\"\n class=\"list-group-item d-flex align-items-center justify-content-between py-1\"\n 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 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\" (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\" ondragover=\"event.preventDefault();\"\n (drop)=\"dragToDataSourceDropped()\" 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\" (keydown.enter)=\"$event.preventDefault()\" (submit)=\"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\" (keydown.enter)=\"$event.preventDefault()\" (submit)=\"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}}\n </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"] }]
379
+ }], ctorParameters: () => [{ type: i1.ToasterService }, { type: i2.Location }, { type: i3.ActivatedRoute }, { type: i4.FieldGroupAdminService }, { type: i4.FieldAdminService }, { type: i5.EntryTypeAdminService }, { type: i6.LocalizationService }, { type: i7.CmsApiService }], propDecorators: { submitclick: [{
380
+ type: ViewChild,
381
+ args: ['submitclick', { static: true }]
382
+ }], editFieldTabsModalSubmitBtn: [{
383
+ type: ViewChild,
384
+ args: ['editFieldTabsModalSubmitBtn', { static: false }]
385
+ }], editFieldModalSubmitBtn: [{
386
+ type: ViewChild,
387
+ args: ['editFieldModalSubmitBtn', { static: false }]
388
+ }] } });
389
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLW9yLWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvY29tcG9uZW50cy9hZG1pbi9zZWN0aW9ucy9lbnRyeS10eXBlcy9jcmVhdGUtb3ItZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NlY3Rpb25zL2VudHJ5LXR5cGVzL2NyZWF0ZS1vci1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBR3RFLE9BQU8sRUFBRSxTQUFTLEVBQWMsTUFBTSxFQUFVLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRixPQUFPLEVBQUUsV0FBVyxFQUF3QixNQUFNLGdCQUFnQixDQUFDO0FBS25FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFFcEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7Ozs7Ozs7O0FBWTVELE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsWUFDVSxPQUF1QixFQUN4QixTQUFtQixFQUNsQixLQUFxQixFQUN0Qix1QkFBK0MsRUFDL0Msa0JBQXFDLEVBQ3JDLHNCQUE2QyxFQUM3QyxvQkFBeUMsRUFDekMsY0FBNkI7UUFQNUIsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDeEIsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNsQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUN0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QztxQkFDRjs4U0E2QjJDLFdBQVc7c0JBQXRELFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkF1UjFDLDJCQUEyQjtzQkFEMUIsU0FBUzt1QkFBQyw2QkFBNkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBcURGLHVCQUF1QjtzQkFBL0UsU0FBUzt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFWFRFTlNJT05TX0lERU5USUZJRVIgfSBmcm9tIFwiQGFicC9uZy5jb21wb25lbnRzL2V4dGVuc2libGVcIjtcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tIFwiQGFicC9uZy5jb3JlXCI7XG5pbXBvcnQgeyBUb2FzdGVyU2VydmljZSB9IGZyb20gXCJAYWJwL25nLnRoZW1lLnNoYXJlZFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBpbmplY3QsIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIEZvcm1BcnJheSB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tIFwiQGFuZ3VsYXIvcm91dGVyXCI7XG5pbXBvcnQgeyBGaWVsZEdyb3VwQWRtaW5TZXJ2aWNlLCBGaWVsZEFkbWluU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9wcm94eS9hZG1pbi9maWVsZHNcIjtcbmltcG9ydCB7IEVudHJ5VHlwZUFkbWluU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9wcm94eS9hZG1pbi9zZWN0aW9uc1wiO1xuaW1wb3J0IHsgQ21zQXBpU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlc1wiO1xuaW1wb3J0IHsgQ3JlYXRlT3JFZGl0RW50cnlUeXBlSW5wdXRCYXNlLCBmaWVsZFRhYnNCYXNlLCBmaWVsZHNCYXNlIH0gZnJvbSBcIi4vY3JlYXRlLW9yLWVkaXQuLWVudHJ5LXR5cGUtaW5wdXQtYmFzZVwiO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRUNtc0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi8uLi8uLi9lbnVtc1wiO1xuaW1wb3J0IHsgVmFsaWRhdG9yc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vc2VydmljZXMvdmFsaWRhdG9ycy5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBVcGRhdGVMaXN0U2VydmljZSB9IGZyb20gXCJAZGlnbml0ZS1uZy9leHBhbmQuY29yZVwiO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY21zLWNyZWF0ZS1vci1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS1vci1lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY3JlYXRlLW9yLWVkaXQuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogRVhURU5TSU9OU19JREVOVElGSUVSLFxuICAgICAgdXNlVmFsdWU6IEVDbXNDb21wb25lbnQuU2VjdGlvbnNDcmVhdGVPckVkaXQsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ3JlYXRlT3JFZGl0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSB0b2FzdGVyOiBUb2FzdGVyU2VydmljZSxcbiAgICBwdWJsaWMgX2xvY2F0aW9uOiBMb2NhdGlvbixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwdWJsaWMgX0ZpZWxkR3JvdXBBZG1pblNlcnZpY2U6IEZpZWxkR3JvdXBBZG1pblNlcnZpY2UsXG4gICAgcHVibGljIF9GaWVsZEFkbWluU2VydmljZTogRmllbGRBZG1pblNlcnZpY2UsXG4gICAgcHVibGljIF9FbnRyeVR5cGVBZG1pblNlcnZpY2U6IEVudHJ5VHlwZUFkbWluU2VydmljZSxcbiAgICBwdWJsaWMgX0xvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UsXG4gICAgcHVibGljIF9DbXNBcGlTZXJ2aWNlOiBDbXNBcGlTZXJ2aWNlXG4gICkge31cbiAgcHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XG4gIHByaXZhdGUgX1VwZGF0ZUxpc3RTZXJ2aWNlID0gaW5qZWN0KFVwZGF0ZUxpc3RTZXJ2aWNlKTtcbiAgLyoq6KGo5Y2V5a6e5L2TICovXG4gIG5ld0VudGl0eTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkID0gdGhpcy5mYi5ncm91cChuZXcgQ3JlYXRlT3JFZGl0RW50cnlUeXBlSW5wdXRCYXNlKCkpO1xuICAvKirniYjlnZdpZCAqL1xuICBzZWN0aW9uSWQ6IHN0cmluZyA9ICcnO1xuICAvKirmnaHnm67nsbvlnotpZCAqL1xuICBlbnRyeVR5cGVzSWQ6IHN0cmluZyA9ICcnO1xuICAvKirmnaHnm67nsbvlnovor6bmg4UgKi9cbiAgZW50cnlUeXBlc1NlbGVjdDogYW55O1xuXG4gIGdldCBmaWVsZFRhYnMoKSB7XG4gICAgcmV0dXJuIHRoaXMubmV3RW50aXR5LmdldCgnZmllbGRUYWJzJykgYXMgRm9ybUFycmF5O1xuICB9XG5cbiAgLyoq6I635Y+W5o+Q5Lqk5oyJ6ZKu5pu/6Lqr77yM55So5LqO55yf5a6e6Kem5Y+R6KGo5Y2V5o+Q5LqkICovXG4gIEBWaWV3Q2hpbGQoJ3N1Ym1pdGNsaWNrJywgeyBzdGF0aWM6IHRydWUgfSkgc3VibWl0Y2xpY2s6IEVsZW1lbnRSZWY7XG5cbiAgLyoq6Kem5Y+R5o+Q5Lqk5oyJ6ZKuICovXG4gIHN1Ym1pdGNsaWNrQnRuKCkge1xuICAgIHRoaXMuc3VibWl0Y2xpY2submF0aXZlRWxlbWVudC5jbGljaygpO1xuICB9XG4gIG5nT25Jbml0KCkge1xuICAgIGxldCBzZWN0aW9uSWQgPSB0aGlzLnJvdXRlLnNuYXBzaG90LnBhcmFtcy5zZWN0aW9uc0lkO1xuICAgIHRoaXMuZW50cnlUeXBlc0lkID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbXMuZW50cnlUeXBlc0lkIHx8ICcnO1xuICAgIGlmIChzZWN0aW9uSWQpIHtcbiAgICAgIHRoaXMuc2VjdGlvbklkID0gc2VjdGlvbklkO1xuICAgICAgdGhpcy5hZGRDb250cm9sVG9GaWVsZFRhYnMoKTtcbiAgICAgIHRoaXMuZ2V0RmllbGRHcm91cCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKue7mWZpZWxkVGFic+a3u+WKoOaWsOaOp+S7tiAqL1xuICBhZGRDb250cm9sVG9GaWVsZFRhYnMobmFtZVZhbHVlID0gJycpIHtcbiAgICBjb25zdCBuZXdGb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKFxuICAgICAgbmV3IGZpZWxkVGFic0Jhc2Uoe1xuICAgICAgICBuYW1lOlxuICAgICAgICAgIHRoaXMuZmllbGRUYWJzLmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgPyB0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYENtczo6RmllbGRUYWJgKVxuICAgICAgICAgICAgOiBuYW1lVmFsdWUsXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5maWVsZFRhYnMucHVzaChuZXdGb3JtR3JvdXApO1xuICAgIHRoaXMucmVzdWx0U291cmNlLnB1c2gobmV3Rm9ybUdyb3VwLnZhbHVlKTtcbiAgICB0aGlzLm5hdkFjdGl2ZSA9IHRoaXMucmVzdWx0U291cmNlLmxlbmd0aCAtIDE7XG4gIH1cblxuICAvKirojrflj5blrZfmrrXliIbnu4QgKi9cbiAgZ2V0RmllbGRHcm91cCgpIHtcbiAgICB0aGlzLl9GaWVsZEdyb3VwQWRtaW5TZXJ2aWNlLmdldExpc3Qoe30pLnN1YnNjcmliZShhc3luYyByZXMgPT4ge1xuICAgICAgbGV0IGZpZWxkTGlzdDogYW55ID0gYXdhaXQgdGhpcy5nZXRGaWVsZExpc3QoKTtcbiAgICAgIGxldCBmaWVsZEdyb3VwTGlzdCA9IHJlcy5pdGVtcztcbiAgICAgIGZpZWxkR3JvdXBMaXN0LnVuc2hpZnQoe1xuICAgICAgICBpZDogbnVsbCxcbiAgICAgICAgbmFtZTogJ1VuZ3JvdXBlZEZpZWxkcycsXG4gICAgICB9KTtcbiAgICAgIGZpZWxkR3JvdXBMaXN0LmZvckVhY2goKGVsOiBhbnksIGluZGV4KSA9PiB7XG4gICAgICAgIGVsLmZpZWxkcyA9IGZpZWxkTGlzdC5maWx0ZXIoZWxzID0+IGVscy5ncm91cElkID09PSBlbC5pZCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMuZmllbGRHcm91cExpc3QgPSBmaWVsZEdyb3VwTGlzdDtcbiAgICAgIHRoaXMuZmllbGRMaXN0ID0gdGhpcy5kZWVwQ2xvbmUoZmllbGRMaXN0KTtcbiAgICAgIGxldCBlbnRyeVR5cGVzSWQgPSB0aGlzLmVudHJ5VHlwZXNJZDtcbiAgICAgIGlmIChlbnRyeVR5cGVzSWQpIHtcbiAgICAgICAgdGhpcy5lbnRyeVR5cGVzSWQgPSBlbnRyeVR5cGVzSWQ7XG4gICAgICAgIHRoaXMuZ2V0RW50cnlUeXBlcygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIC8qKuiOt+WPluadoeebruexu+Wei+ivpuaDhSAqL1xuICBnZXRFbnRyeVR5cGVzKCkge1xuICAgIGxldCBmaWVsZExpc3Q6IGFueSA9IHRoaXMuZGVlcENsb25lKHRoaXMuZmllbGRMaXN0KTtcbiAgICB0aGlzLl9FbnRyeVR5cGVBZG1pblNlcnZpY2UuZ2V0KHRoaXMuZW50cnlUeXBlc0lkKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgIHJlcy5maWVsZFRhYnMuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgIGVsLmZpZWxkcy5mb3JFYWNoKChlbGQ6IGFueSkgPT4ge1xuICAgICAgICAgIGVsZC5pZCA9IGVsZC5maWVsZElkO1xuICAgICAgICAgIGVsZC5ncm91cElkID0gZmllbGRMaXN0LmZpbmQoZWxmZCA9PiBlbGZkLmlkID09IGVsZC5maWVsZElkKS5ncm91cElkO1xuICAgICAgICAgIHRoaXMuZm9ybVJpZ2h0R3JvdXAucHVzaChlbGQpO1xuICAgICAgICAgIGxldCBmaWVsZGluZGV4ID0gZmllbGRMaXN0LmZpbmRJbmRleChlbGZsID0+IGVsZmwuaWQgPT0gZWxkLmZpZWxkSWQpO1xuICAgICAgICAgIGZpZWxkTGlzdC5zcGxpY2UoZmllbGRpbmRleCwgMSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmZpZWxkR3JvdXBMaXN0LmZvckVhY2goKGVsOiBhbnksIGluZGV4KSA9PiB7XG4gICAgICAgIGVsLmZpZWxkcyA9IGZpZWxkTGlzdC5maWx0ZXIoZWxzID0+IGVscy5ncm91cElkID09PSBlbC5pZCk7XG4gICAgICB9KTtcbiAgICAgIHRoaXMubmV3RW50aXR5LnBhdGNoVmFsdWUocmVzKTtcbiAgICAgIHRoaXMuZW50cnlUeXBlc1NlbGVjdCA9IHJlcztcbiAgICAgIHRoaXMucmVzdWx0U291cmNlID0gcmVzLmZpZWxkVGFicztcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICog5rex5ou36LSdLS3mlrnms5VcbiAgICogJGFwaS5kZWVwQ2xvbmUoKSAgKi9cbiAgZGVlcENsb25lKG9iajogYW55KSB7XG4gICAgaWYgKHR5cGVvZiBvYmogIT09ICdvYmplY3QnIHx8IG9iaiA9PT0gbnVsbCkgcmV0dXJuIG9iajtcbiAgICBjb25zdCByZXN1bHQgPSBBcnJheS5pc0FycmF5KG9iaikgPyBbXSA6IHt9O1xuICAgIGZvciAobGV0IGtleSBpbiBvYmopIHtcbiAgICAgIGlmIChvYmouaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBpZiAodHlwZW9mIG9ialtrZXldID09PSAnb2JqZWN0JyAmJiBvYmpba2V5XSAhPT0gbnVsbCkge1xuICAgICAgICAgIGlmIChvYmpba2V5XSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgICAgICAgIHJlc3VsdFtrZXldID0gbmV3IERhdGUob2JqW2tleV0uZ2V0VGltZSgpKTtcbiAgICAgICAgICB9IGVsc2UgaWYgKG9ialtrZXldIGluc3RhbmNlb2YgUmVnRXhwKSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IG5ldyBSZWdFeHAob2JqW2tleV0pO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXN1bHRba2V5XSA9IHRoaXMuZGVlcENsb25lKG9ialtrZXldKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSBvYmpba2V5XTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gbmFtZVZhbHVlIOiOt+WPluaJgOacieWtl+autVxuICAgKi9cbiAgZ2V0RmllbGRMaXN0KCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0cykgPT4ge1xuICAgICAgdGhpcy5fRmllbGRBZG1pblNlcnZpY2VcbiAgICAgICAgLmdldExpc3Qoe1xuICAgICAgICAgIG1heFJlc3VsdENvdW50OiAxMDAwLFxuICAgICAgICB9KVxuICAgICAgICAuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xuICAgICAgICAgIHJlcy5pdGVtcy5mb3JFYWNoKGVsID0+IHtcbiAgICAgICAgICAgIGVsLnJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgICAgICBlbC5zaG93T25MaXN0ID0gZmFsc2U7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgcmVzb2x2ZShyZXMuaXRlbXMpO1xuICAgICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmi5bmi70g5Yqf6IO9Ki9cbiAgLyoq5pWw5o2u5rqQICovXG4gIC8qKuaVsOaNrua6kC3lrZfmrrXliIbnu4TmlbDmja4t5YyF5ZCr5a2X5q615pWw5o2uIGZpZWxkcyAqL1xuICBmaWVsZEdyb3VwTGlzdDogYW55W10gPSBbXTtcbiAgLyoq5pWw5o2u5rqQLeaJgOacieWtl+auteWIl+ihqCAqL1xuICBmaWVsZExpc3Q6IGFueVtdID0gW107XG4gIC8qKuaVsOaNrua6kOaLluaLveeahOWIhue7hOS4i+aghyAqL1xuICBEYXRhU291cmNlR3JvdXBJbmRleDogbnVtYmVyO1xuICAvKirmlbDmja7mupDmi5bmi73nmoTlrZfmrrXkuIvmoIcgKi9cbiAgRGF0YVNvdXJjZUZpZWxkSW5kZXg6IG51bWJlcjtcbiAgLyoq55uu5qCH5rqQIOe7k+aenCovXG4gIHJlc3VsdFNvdXJjZTogYW55W10gPSBbXTtcblxuICAvKirku47mlbDmja7mupDmi5bmi73nmoTlhYPntKAgKi9cbiAgZnJvbURhdGFTb3VyY2VEcmFnRWw6IGFueTtcbiAgLyoq5LuO55uu5qCH5rqQ5ouW5ou955qE5YWD57SgICovXG4gIGZyb21SZXN1bHRTb3VyY2VEcmFnRWw6IGFueTtcblxuICAvKirmnaXoh6rmlbDmja7mupDnmoTpm4blkIjvvIznlKjkuo7ku47nm67moIfmupDmi5blm57mlbDmja7mupDml7bnmoTliKTmlq3vvIzkuI7lj5blgLwgKi9cbiAgZm9ybVJpZ2h0R3JvdXA6IGFueVtdID0gW107XG4gIC8qKuS7juaVsOaNrua6kOW8gOWni+aLluaLvSAqL1xuICBmcm9tRGF0YVNvdXJjZURyYWdTdGFydChlbGVtZW50LCBmaWVsZEluZGV4LCBncm91cEluZGV4KSB7XG4gICAgdGhpcy5mcm9tRGF0YVNvdXJjZURyYWdFbCA9IGVsZW1lbnQ7XG4gICAgdGhpcy5EYXRhU291cmNlRmllbGRJbmRleCA9IGZpZWxkSW5kZXg7XG4gICAgdGhpcy5EYXRhU291cmNlR3JvdXBJbmRleCA9IGdyb3VwSW5kZXg7XG4gICAgdGhpcy5mcm9tUmVzdWx0U291cmNlRHJhZ0VsID0gdW5kZWZpbmVkO1xuICB9XG4gIC8qKuS7juebruagh+a6kOW8gOWni+aLluaLvSAqL1xuICBmcm9tUmVzdWx0U291cmNlRHJhZ1N0YXJ0KGVsZW1lbnQpIHtcbiAgICB0aGlzLmZyb21SZXN1bHRTb3VyY2VEcmFnRWwgPSBlbGVtZW50O1xuICAgIHRoaXMuZnJvbURhdGFTb3VyY2VEcmFnRWwgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5EYXRhU291cmNlRmllbGRJbmRleCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLkRhdGFTb3VyY2VHcm91cEluZGV4ID0gdW5kZWZpbmVkO1xuICB9XG4gIC8qKuaLluaLveWIsOaVsOaNrua6kOaXtuinpuWPkSAqL1xuICBkcmFnVG9EYXRhU291cmNlRHJvcHBlZCgpIHtcbiAgICAvL+S7juaVsOaNrua6kOaLluaLveWIsOaVsOaNrua6kC3mjpLluo9cbiAgICBpZiAodGhpcy5mcm9tRGF0YVNvdXJjZURyYWdFbCkge1xuICAgIH1cbiAgICBsZXQgX2Zyb21SZXN1bHRTb3VyY2VEcmFnRWwgPSB0aGlzLmZyb21SZXN1bHRTb3VyY2VEcmFnRWw7XG4gICAgbGV0IGZvcm1SaWdodEdyb3VwID0gdGhpcy5kZWVwQ2xvbmUodGhpcy5mb3JtUmlnaHRHcm91cCk7XG4gICAgbGV0IGZpZWxkTGlzdCA9IHRoaXMuZGVlcENsb25lKHRoaXMuZmllbGRMaXN0KTtcblxuICAgIGlmIChfZnJvbVJlc3VsdFNvdXJjZURyYWdFbCkge1xuICAgICAgLy/np7vliqhcbiAgICAgIC8v5LuO55uu5qCH5rqQ5ouW5ou95Yiw5pWw5o2u5rqQXG4gICAgICAvLyDmi5bmi73nm67moIfmupDnmoTkuIvmoIdcbiAgICAgIGxldCBkcmFnUmVzdWx0U291cmNlSW5kZXggPSB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzLmZpbmRJbmRleChcbiAgICAgICAgZWwgPT4gZWwuaWQgPT0gX2Zyb21SZXN1bHRTb3VyY2VEcmFnRWwuaWRcbiAgICAgICk7XG4gICAgICAvL+WIoOmZpOebruagh+a6kOS4reeahOaVsOaNrlxuICAgICAgdGhpcy5yZXN1bHRTb3VyY2VbdGhpcy5uYXZBY3RpdmVdLmZpZWxkcy5zcGxpY2UoZHJhZ1Jlc3VsdFNvdXJjZUluZGV4LCAxKTtcbiAgICAgIGZvcm1SaWdodEdyb3VwLnNwbGljZShcbiAgICAgICAgZm9ybVJpZ2h0R3JvdXAuZmluZEluZGV4KGVsID0+IGVsLmlkID09IF9mcm9tUmVzdWx0U291cmNlRHJhZ0VsLmlkKSxcbiAgICAgICAgMVxuICAgICAgKTtcbiAgICAgIHRoaXMuZmllbGRHcm91cExpc3QuZm9yRWFjaChlbCA9PiB7XG4gICAgICAgIGlmIChlbC5pZCA9PSBfZnJvbVJlc3VsdFNvdXJjZURyYWdFbC5ncm91cElkKSB7XG4gICAgICAgICAgY29uc3QgZWxGaWVsZHNBbGwgPSBmaWVsZExpc3QuZmlsdGVyKGVscyA9PiBlbHMuZ3JvdXBJZCA9PT0gZWwuaWQpO1xuICAgICAgICAgIGVsLmZpZWxkcyA9IGVsRmllbGRzQWxsLmZpbHRlcihcbiAgICAgICAgICAgIGl0ZW0gPT4gIWZvcm1SaWdodEdyb3VwLnNvbWUoaXRlbUIgPT4gaXRlbS5pZCA9PT0gaXRlbUIuaWQpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmZvcm1SaWdodEdyb3VwID0gZm9ybVJpZ2h0R3JvdXA7XG4gICAgfVxuXG4gICAgdGhpcy5zZXRmaWVsZFRhYnNGcm9tKCk7XG4gIH1cbiAgLyoq5ouW5ou95Yiw55uu5qCH5rqQ5pe26Kem5Y+RXG4gICAqXG4gICAqL1xuICBkcmFnVG9SZXN1bHRTb3VyY2VEcm9wcGVkKGZpZWxkVGFic3RlbTogYW55LCBmaWVsZFRhYnNJbmRleCkge1xuICAgIGNvbnN0IF9mcm9tRGF0YVNvdXJjZURyYWdFbCA9IHRoaXMuZnJvbURhdGFTb3VyY2VEcmFnRWw7XG4gICAgLy/ku47mlbDmja7mupDmi5bmi73liLDnm67moIfmupBcbiAgICBpZiAoX2Zyb21EYXRhU291cmNlRHJhZ0VsKSB7XG4gICAgICB0aGlzLmZpZWxkR3JvdXBMaXN0W3RoaXMuRGF0YVNvdXJjZUdyb3VwSW5kZXhdLmZpZWxkcy5zcGxpY2UodGhpcy5EYXRhU291cmNlRmllbGRJbmRleCwgMSk7XG4gICAgICB0aGlzLnJlc3VsdFNvdXJjZVtmaWVsZFRhYnNJbmRleF0uZmllbGRzLnB1c2goX2Zyb21EYXRhU291cmNlRHJhZ0VsKTtcbiAgICAgIHRoaXMuZm9ybVJpZ2h0R3JvdXAucHVzaChfZnJvbURhdGFTb3VyY2VEcmFnRWwpO1xuICAgIH1cblxuICAgIHRoaXMuc2V0ZmllbGRUYWJzRnJvbSgpO1xuICB9XG4gIC8qKiDku47nm67moIfmupDmi5bmi73liLDnm67moIfmupAqL1xuICBkcmFnVG9SZXN1bHRTb3VyY2VJdGVtRHJvcHBlZChmaWVsZHNJbmRleCkge1xuICAgIGNvbnN0IF9mcm9tUmVzdWx0U291cmNlRHJhZ0VsID0gdGhpcy5mcm9tUmVzdWx0U291cmNlRHJhZ0VsO1xuICAgIGlmIChfZnJvbVJlc3VsdFNvdXJjZURyYWdFbCkge1xuICAgICAgLy8g5ouW5ou955uu5qCH5rqQ55qE5LiL5qCHXG4gICAgICBsZXQgZHJhZ1Jlc3VsdFNvdXJjZUluZGV4ID0gdGhpcy5yZXN1bHRTb3VyY2VbdGhpcy5uYXZBY3RpdmVdLmZpZWxkcy5maW5kSW5kZXgoXG4gICAgICAgIGVsID0+IGVsLmlkID09IF9mcm9tUmVzdWx0U291cmNlRHJhZ0VsLmlkXG4gICAgICApO1xuICAgICAgLy/liKDpmaTnm67moIfmupDkuK3nmoTmlbDmja5cbiAgICAgIHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHMuc3BsaWNlKGRyYWdSZXN1bHRTb3VyY2VJbmRleCwgMSk7XG4gICAgICB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzLnNwbGljZShmaWVsZHNJbmRleCwgMCwgX2Zyb21SZXN1bHRTb3VyY2VEcmFnRWwpO1xuICAgIH1cbiAgICB0aGlzLnNldGZpZWxkVGFic0Zyb20oKTtcbiAgfVxuICAvKirorr7nva5mb3JtQeihqOWNlSAqL1xuICBzZXRmaWVsZFRhYnNGcm9tKCkge1xuICAgIGxldCBzZXRBcnJheSA9IFtdO1xuICAgIHRoaXMucmVzdWx0U291cmNlLmZvckVhY2goZWwgPT4ge1xuICAgICAgbGV0IGZpZWxkc0FycmF5ID0gW107XG4gICAgICBlbC5maWVsZHMuZm9yRWFjaChpdGVtID0+IHtcbiAgICAgICAgZmllbGRzQXJyYXkucHVzaCh7XG4gICAgICAgICAgZmllbGRJZDogaXRlbS5pZCB8fCBpdGVtLmZpZWxkSWQsXG4gICAgICAgICAgZGlzcGxheU5hbWU6IGl0ZW0uZGlzcGxheU5hbWUsXG4gICAgICAgICAgcmVxdWlyZWQ6IGl0ZW0/LnJlcXVpcmVkLFxuICAgICAgICAgIHNob3dPbkxpc3Q6IGl0ZW0/LnNob3dPbkxpc3QsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgICBzZXRBcnJheS5wdXNoKHtcbiAgICAgICAgbmFtZTogZWwubmFtZSxcbiAgICAgICAgZmllbGRzOiBmaWVsZHNBcnJheSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHRoaXMubmV3RW50aXR5LnBhdGNoVmFsdWUoe1xuICAgICAgZmllbGRUYWJzOiBzZXRBcnJheSxcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIF9WYWxpZGF0b3JzU2VydmljZSA9IGluamVjdChWYWxpZGF0b3JzU2VydmljZSk7XG4gIC8qKuihqOWNlemqjOivgeeKtuaAgVxuICAgKiB7XG4gICAqICB0aXRsZTp0cnVlLFxuICAgKiB9XG4gICAqL1xuICBmb3JtVmFsaWRhdGlvbjogYW55ID0gJyc7XG5cbiAgLyoq5L+d5a2Y6KGo5Y2VICovXG4gIHNhdmUoKSB7XG4gICAgbGV0IGlucHV0ID0gdGhpcy5uZXdFbnRpdHkudmFsdWU7XG5cbiAgICB0aGlzLmZvcm1WYWxpZGF0aW9uID0gdGhpcy5fVmFsaWRhdG9yc1NlcnZpY2UuZ2V0Rm9ybVZhbGlkYXRpb25TdGF0dXModGhpcy5uZXdFbnRpdHkpO1xuICAgIGlmICh0aGlzLl9WYWxpZGF0b3JzU2VydmljZS5pc0NoZWNrRm9ybSh0aGlzLmZvcm1WYWxpZGF0aW9uLCdDbXMnKSkgcmV0dXJuO1xuICAgIFxuICAgIGlmICh0aGlzLmVudHJ5VHlwZXNTZWxlY3QpIHtcbiAgICAgIHRoaXMuX0VudHJ5VHlwZUFkbWluU2VydmljZS51cGRhdGUodGhpcy5lbnRyeVR5cGVzU2VsZWN0LmlkLCBpbnB1dCkuc3Vic2NyaWJlKHJlcyA9PiB7XG4gICAgICAgIHRoaXMudG9hc3Rlci5zdWNjZXNzKHRoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVWk6OlN1Y2Nlc3NmdWxseURlbGV0ZWRgKSk7XG4gICAgICAgIHRoaXMuX2xvY2F0aW9uLmJhY2soKTtcbiAgICAgICAgdGhpcy5fVXBkYXRlTGlzdFNlcnZpY2UudXBkYXRlTGlzdCgpO1xuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlucHV0LnNlY3Rpb25JZCA9IHRoaXMuc2VjdGlvbklkO1xuICAgIHRoaXMuX0VudHJ5VHlwZUFkbWluU2VydmljZS5jcmVhdGUoaW5wdXQpLnN1YnNjcmliZShyZXMgPT4ge1xuICAgICAgdGhpcy50b2FzdGVyLnN1Y2Nlc3ModGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBBYnBVaTo6U3VjY2Vzc2Z1bGx5RGVsZXRlZGApKTtcbiAgICAgIHRoaXMuX2xvY2F0aW9uLmJhY2soKTtcbiAgICAgIHRoaXMuX1VwZGF0ZUxpc3RTZXJ2aWNlLnVwZGF0ZUxpc3QoKTtcbiAgICB9KTtcbiAgfVxuICAvKirnvJbovpFUYWJz6KGo5Y2VICovXG4gIGVkaXRGaWVsZFRhYnNGcm9tOiBGb3JtR3JvdXAgfCB1bmRlZmluZWQ7XG4gIC8qKuaooeaAgeahhueKtuaAgSAqL1xuICB2aXNpYmxlVGFic09wZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgLyoq5piv5ZCm5piv5b+Z56KM54q25oCBICovXG4gIG1vZGFsQnVzeTogYm9vbGVhbiA9IGZhbHNlO1xuICAvKirmraPlnKjnvJbovpHnmoR0YWJzICovXG4gIGVkaXRGaWVsZFRhYnNTZWxlY3Q6IGFueTtcbiAgLyoq5q2j5Zyo6YCJ5Lit55qEbmF2ICovXG4gIG5hdkFjdGl2ZTogYW55ID0gMDtcblxuICAvKirooajljZXmjqfku7bmqKHmnb8t5Yqo5oCB6LWL5YC86KGo5Y2V5o6n5Lu2ICovXG4gIEBWaWV3Q2hpbGQoJ2VkaXRGaWVsZFRhYnNNb2RhbFN1Ym1pdEJ0bicsIHsgc3RhdGljOiBmYWxzZSB9KVxuICBlZGl0RmllbGRUYWJzTW9kYWxTdWJtaXRCdG46IEVsZW1lbnRSZWY7XG5cbiAgLyoq5qih5oCB5qGG54q25oCB5pS55Y+Y5Zue6LCDICovXG4gIFZpc2libGVUYWJzQ2hhbmdlKGV2ZW50KSB7XG4gICAgaWYgKCFldmVudCkge1xuICAgICAgdGhpcy5lZGl0RmllbGRUYWJzU2VsZWN0ID0gJyc7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG4gIC8qKuaWsOW7uuWinuWKoEZpZWxkVGFicyAqL1xuICBhZGRGaWVsZFRhYnMoKSB7XG4gICAgdGhpcy5lZGl0RmllbGRUYWJzRnJvbSA9IHRoaXMuZmIuZ3JvdXAobmV3IGZpZWxkVGFic0Jhc2UoKSk7XG4gICAgdGhpcy52aXNpYmxlVGFic09wZW4gPSB0cnVlO1xuICB9XG4gIC8qKuato+WcqOe8lui+keeahHRhYuS4i+aghyAqL1xuICBuZXdFZGl0RmllbGRUYWJzSW5kZXg6IG51bWJlcjtcbiAgLyoq57yW6L6RRmllbGRUYWJzICovXG4gIGVkaXRGaWVsZFRhYnMoaXRlbSwgaSkge1xuICAgIHRoaXMuZWRpdEZpZWxkVGFic0Zyb20gPSB0aGlzLmZiLmdyb3VwKFxuICAgICAgbmV3IGZpZWxkVGFic0Jhc2Uoe1xuICAgICAgICBuYW1lOiBpdGVtLm5hbWUsXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5lZGl0RmllbGRUYWJzU2VsZWN0ID0gaXRlbTtcbiAgICB0aGlzLnZpc2libGVUYWJzT3BlbiA9IHRydWU7XG4gICAgdGhpcy5uZXdFZGl0RmllbGRUYWJzSW5kZXggPSBpO1xuICB9XG5cbiAgLyoq5L+d5a2Y57yW6L6RdGFic+ihqOWNlSAqL1xuICBlZGl0RmllbGRUYWJzU2F2ZSgpIHtcbiAgICAvL+e8lui+kVxuICAgIGlmICh0aGlzLmVkaXRGaWVsZFRhYnNTZWxlY3QpIHtcbiAgICAgIHRoaXMucmVzdWx0U291cmNlW3RoaXMubmV3RWRpdEZpZWxkVGFic0luZGV4XS5uYW1lID0gdGhpcy5lZGl0RmllbGRUYWJzRnJvbS52YWx1ZS5uYW1lO1xuICAgICAgdGhpcy5uYXZBY3RpdmUgPSB0aGlzLm5ld0VkaXRGaWVsZFRhYnNJbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgLy/mlrDlu7pcbiAgICAgIHRoaXMuYWRkQ29udHJvbFRvRmllbGRUYWJzKHRoaXMuZWRpdEZpZWxkVGFic0Zyb20udmFsdWUubmFtZSk7XG4gICAgfVxuICAgIHRoaXMudmlzaWJsZVRhYnNPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5zZXRmaWVsZFRhYnNGcm9tKCk7XG4gIH1cbiAgLyoq5Yig6Zmk5p+Q5LiqdGFic+ihqOWNlSAqL1xuICBkZWxldGVGaWVsZFRhYnMoaW5kZXgpIHtcbiAgICB0aGlzLmZpZWxkVGFicy5yZW1vdmVBdChpbmRleCk7XG4gICAgdGhpcy5yZXN1bHRTb3VyY2Uuc3BsaWNlKGluZGV4LCAxKTtcbiAgfVxuXG4gIC8qKue8lui+keWtl+auteaooeaAgeahhueKtuaAgSAqL1xuICB2aXNpYmxlRWRpdEZpZWxkT3BlbjogYm9vbGVhbiA9IGZhbHNlO1xuICAvKirnvJbovpHlrZfmrrXmqKHmgIHmoYbooajljZUgKi9cbiAgZWRpdEZpZWxkRnJvbTogRm9ybUdyb3VwIHwgdW5kZWZpbmVkO1xuICAvKirooajljZXmjqfku7bmqKHmnb8t5Yqo5oCB6LWL5YC86KGo5Y2V5o6n5Lu2Lee8lui+keWtl+autSAqL1xuICBAVmlld0NoaWxkKCdlZGl0RmllbGRNb2RhbFN1Ym1pdEJ0bicsIHsgc3RhdGljOiBmYWxzZSB9KSBlZGl0RmllbGRNb2RhbFN1Ym1pdEJ0bjogRWxlbWVudFJlZjtcbiAgLyoq5q2j5Zyo57yW6L6R55qE5a2X5q615LiL5qCHICovXG4gIEVkaXRGaWVsZEluZGV4OiBudW1iZXI7XG4gIC8qKue8lui+keWtl+auteaooeaAgeahhueKtuaAgeeKtuaAgeaUueWPmOWbnuiwgyAqL1xuICBWaXNpYmxlRWRpdEZpZWxkQ2hhbmdlKGV2ZW50KSB7XG4gICAgaWYgKCFldmVudCkge1xuICAgICAgdGhpcy5FZGl0RmllbGRJbmRleCA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbiAgLyoq5omT5byA57yW6L6R5a2X5q615qih5oCB5qGGICovXG4gIEVkaXRGaWVsZE1vZGFsT3BlbihpdGVtcywgZWxJbmRleCkge1xuICAgIHRoaXMudmlzaWJsZUVkaXRGaWVsZE9wZW4gPSB0cnVlO1xuICAgIHRoaXMuRWRpdEZpZWxkSW5kZXggPSBlbEluZGV4O1xuICAgIHRoaXMuZWRpdEZpZWxkRnJvbSA9IHRoaXMuZmIuZ3JvdXAoXG4gICAgICBuZXcgZmllbGRzQmFzZSh0aGlzLmZpZWxkVGFicy52YWx1ZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzW2VsSW5kZXhdKVxuICAgICk7XG4gIH1cbiAgLyoq5L+d5a2Y57yW6L6R5a2X5q61ICovXG4gIGVkaXRGaWVsZFNhdmUoKSB7XG4gICAgbGV0IGlucHV0ID0gdGhpcy5lZGl0RmllbGRGcm9tLnZhbHVlO1xuICAgIHRoaXMucmVzdWx0U291cmNlW3RoaXMubmF2QWN0aXZlXS5maWVsZHNbdGhpcy5FZGl0RmllbGRJbmRleF0uZGlzcGxheU5hbWUgPSBpbnB1dC5kaXNwbGF5TmFtZTtcbiAgICB0aGlzLnJlc3VsdFNvdXJjZVt0aGlzLm5hdkFjdGl2ZV0uZmllbGRzW3RoaXMuRWRpdEZpZWxkSW5kZXhdLnJlcXVpcmVkID0gaW5wdXQucmVxdWlyZWQ7XG4gICAgdGhpcy5yZXN1bHRTb3VyY2VbdGhpcy5uYXZBY3RpdmVdLmZpZWxkc1t0aGlzLkVkaXRGaWVsZEluZGV4XS5zaG93T25MaXN0ID0gaW5wdXQuc2hvd09uTGlzdDtcbiAgICB0aGlzLnZpc2libGVFZGl0RmllbGRPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5zZXRmaWVsZFRhYnNGcm9tKCk7XG4gIH1cblxuICAvKipuYW1l6KGo5Y2V5o6n5Lu2ICovXG4gIGdldCBuYW1lSW5wdXQoKSB7XG4gICAgcmV0dXJuIHRoaXMubmV3RW50aXR5LmdldCgnbmFtZScpO1xuICB9XG4gIC8qKuWtl+auteagh+etvmlucHV05aSx5Y675qCH54K555Sf5oiQ5a2X5q615ZCN5a2XICovXG4gIGRpc1BsYXlOYW1lSW5wdXRCbHVyKGV2ZW50KSB7XG4gICAgbGV0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgIGxldCBwaW55aW4gPSB0aGlzLl9DbXNBcGlTZXJ2aWNlLmNoaW5lc2VUb1Bpbnlpbih2YWx1ZSk7XG4gICAgbGV0IG5hbWVJbnB1dCA9IHRoaXMubmFtZUlucHV0O1xuICAgIGlmIChuYW1lSW5wdXQudmFsdWUpIHJldHVybjtcbiAgICBuYW1lSW5wdXQucGF0Y2hWYWx1ZShwaW55aW4pO1xuICB9XG59XG4iLCI8Zm9ybSBjbGFzcz1cInJvdyBnLTMgbmVlZHMtdmFsaWRhdGlvblwiIFtmb3JtR3JvdXBdPVwibmV3RW50aXR5XCIgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiBbY2xhc3NdPVwieyd3YXMtdmFsaWRhdGVkJzpmb3JtVmFsaWRhdGlvbn1cIiAgKHN1Ym1pdCk9XCJzYXZlKClcIj5cbiAgICA8YWJwLXBhZ2UgW3RpdGxlXT1cImVudHJ5VHlwZXNJZCA/ICgnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uKTooJ0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbilcIlxuICAgICAgICBbdG9vbGJhcl09XCJ0cnVlXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjcmVhdGUtb3ItZWRpdC1lbnRyeS10eXBlLXBhZ2VcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiICNzdWJtaXRjbGljaz48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6RGlzcGxheU5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwiZGlzcGxheU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJkaXNQbGF5TmFtZUlucHV0Qmx1cigkZXZlbnQpXCIgcGxhY2Vob2xkZXI9XCJcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6Ok5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBmb3JtQXJyYXlOYW1lPVwiZmllbGRUYWJzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPnt7J0Ntczo6RmllbGRMYXlvdXQnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS04XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBuZ2JOYXYgI25hdj1cIm5nYk5hdlwiIFsoYWN0aXZlSWQpXT1cIm5hdkFjdGl2ZVwiIGNsYXNzPVwibmF2IG5hdi10YWJzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHJlc3VsdFNvdXJjZTsgbGV0IGkgPSBpbmRleFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBbbmdiTmF2SXRlbV09XCJpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG5nYkRyb3Bkb3duIG5nYk5hdkxpbms+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtMVwiIChjbGljay5zdG9wKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmdiRHJvcGRvd25Ub2dnbGU+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JEcm9wZG93bk1lbnUgc3R5bGU9XCJ6LWluZGV4OiA5OTk7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIG5nYkRyb3Bkb3duSXRlbSB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrLnN0b3ApPVwiZWRpdEZpZWxkVGFicyhpdGVtLGkpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWVkaXRcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0FicFVpOjpFZGl0JyB8IGFicExvY2FsaXphdGlvbn19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgbmdiRHJvcGRvd25JdGVtICpuZ0lmPVwicmVzdWx0U291cmNlLmxlbmd0aCAhPT0gMVwiIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2suc3RvcCk9XCJkZWxldGVGaWVsZFRhYnMoaSlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdHJhc2hcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0FicFVpOjpEZWxldGUnIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZ2JOYXZDb250ZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC0yXCIgb25kcmFnb3Zlcj1cImV2ZW50LnByZXZlbnREZWZhdWx0KCk7XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkcm9wKT1cImRyYWdUb1Jlc3VsdFNvdXJjZURyb3BwZWQoaXRlbSxpKVwiIHN0eWxlPVwiaGVpZ2h0OiAxMDAlO1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJmb3JtLXRleHRcIiAqbmdJZj1cIml0ZW0uZmllbGRzLmxlbmd0aCA9PT0gMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7J0Ntczo6RHJhZ0FuZERyb3BGaWVsZFRpcHMnIHwgYWJwTG9jYWxpemF0aW9ufX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bCBjbGFzcz1cImxpc3QtZ3JvdXBcIiBzdHlsZT1cImhlaWdodDogMTAwJTtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbCBvZiBpdGVtLmZpZWxkczsgbGV0IGllbCA9IGluZGV4XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkcmFnZ2FibGU9XCJ0cnVlXCIgKGRyYWdzdGFydCk9XCJmcm9tUmVzdWx0U291cmNlRHJhZ1N0YXJ0KGVsKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJvcCk9XCJkcmFnVG9SZXN1bHRTb3VyY2VJdGVtRHJvcHBlZChpZWwpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC1ncm91cC1pdGVtIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gcHktMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cInBvc2l0aW9uOiB1bnNldDtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVsLmRpc3BsYXlOYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwicC0wIGJ0biBidG4tc20gYnRuLWxpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2suc3RvcCk9XCJFZGl0RmllbGRNb2RhbE9wZW4oZWwsaWVsKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiPjxpIGNsYXNzPVwiZmFzIGZhLXdyZW5jaCBwLXNtLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCI+PC9pPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiByb2xlPVwicHJlc2VudGF0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwibmF2LWxpbmtcIiAoY2xpY2suc3RvcCk9XCJhZGRGaWVsZFRhYnMoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcGx1cy1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eydDbXM6Ok5ld1RhYicgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdiTmF2T3V0bGV0XT1cIm5hdlwiIGNsYXNzPVwibXQtMiBib3JkZXJuTmF2cyBwLTBcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBuZ2JBY2NvcmRpb24gI2FjY29yZGlvbj1cIm5nYkFjY29yZGlvblwiIG9uZHJhZ292ZXI9XCJldmVudC5wcmV2ZW50RGVmYXVsdCgpO1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkcm9wKT1cImRyYWdUb0RhdGFTb3VyY2VEcm9wcGVkKClcIiBzdHlsZT1cIm1pbi1oZWlnaHQ6IDgwcHg7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmllbGRHcm91cExpc3Q7IGxldCBpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW25nYkFjY29yZGlvbkl0ZW1dPVwiaXRlbS5uYW1lXCIgKm5nSWY9XCJpdGVtLmZpZWxkcy5sZW5ndGggPiAwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIG5nYkFjY29yZGlvbkhlYWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBuZ2JBY2NvcmRpb25CdXR0b24+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnQ21zOjonK2l0ZW0ubmFtZSkgfCBhYnBMb2NhbGl6YXRpb24gfX08L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQ29sbGFwc2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgbmdiQWNjb3JkaW9uQm9keT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWwgY2xhc3M9XCJsaXN0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlbCBvZiBpdGVtLmZpZWxkczsgbGV0IGlpID0gaW5kZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBkcmFnZ2FibGU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZHJhZ3N0YXJ0KT1cImZyb21EYXRhU291cmNlRHJhZ1N0YXJ0KGVsLGlpLGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVsLmRpc3BsYXlOYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cblxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9hYnAtcGFnZT5cblxuPC9mb3JtPlxuXG48YWJwLW1vZGFsIFsodmlzaWJsZSldPVwidmlzaWJsZVRhYnNPcGVuXCIgW2J1c3ldPVwibW9kYWxCdXN5XCIgKHZpc2libGVDaGFuZ2UpPVwiVmlzaWJsZVRhYnNDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxuICAgICAgICA8aDM+e3sgZWRpdEZpZWxkVGFic1NlbGVjdCA/ICgnQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9uKTooJ0Ntczo6TmV3JyB8IGFicExvY2FsaXphdGlvbil9fTwvaDM+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2FicEJvZHk+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjbG9hZGVyUmVmPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyXCI+PGkgY2xhc3M9XCJmYSBmYS1wdWxzZSBmYS1zcGlubmVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPjwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZWRpdEZpZWxkVGFic0Zyb207IGVsc2UgbG9hZGVyUmVmXCI+XG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cInNpdGVzLW1vZGFsLWZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXRGaWVsZFRhYnNGcm9tXCIgKGtleWRvd24uZW50ZXIpPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIiAoc3VibWl0KT1cImVkaXRGaWVsZFRhYnNTYXZlKClcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAjZWRpdEZpZWxkVGFic01vZGFsU3VibWl0QnRuIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6Ok5hbWUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIiBwbGFjZWhvbGRlcj1cIlwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT57eydBYnBVaTo6Q2xvc2UnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBbZGlzYWJsZWRdPVwiIWVkaXRGaWVsZFRhYnNGcm9tLnZhbGlkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJlZGl0RmllbGRUYWJzTW9kYWxTdWJtaXRCdG4ubmF0aXZlRWxlbWVudC5jbGljaygpXCI+e3snQWJwVWk6OlNhdmUnIHwgYWJwTG9jYWxpemF0aW9ufX08L2FicC1idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvYWJwLW1vZGFsPlxuXG5cbjxhYnAtbW9kYWwgWyh2aXNpYmxlKV09XCJ2aXNpYmxlRWRpdEZpZWxkT3BlblwiIFtidXN5XT1cIm1vZGFsQnVzeVwiICh2aXNpYmxlQ2hhbmdlKT1cIlZpc2libGVFZGl0RmllbGRDaGFuZ2UoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjYWJwSGVhZGVyPlxuICAgICAgICA8aDM+e3snQWJwVWk6OkVkaXQnIHwgYWJwTG9jYWxpemF0aW9ufX08L2gzPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBCb2R5PlxuICAgICAgICA8bmctdGVtcGxhdGUgI2xvYWRlclJlZj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiPjxpIGNsYXNzPVwiZmEgZmEtcHVsc2UgZmEtc3Bpbm5lclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT48L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVkaXRGaWVsZEZyb207IGVsc2UgbG9hZGVyUmVmXCI+XG4gICAgICAgICAgICA8Zm9ybSBjbGFzcz1cInNpdGVzLW1vZGFsLWZvcm1cIiBbZm9ybUdyb3VwXT1cImVkaXRGaWVsZEZyb21cIiAoa2V5ZG93bi5lbnRlcik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiIChzdWJtaXQpPVwiZWRpdEZpZWxkU2F2ZSgpXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgI2VkaXRGaWVsZE1vZGFsU3VibWl0QnRuIHN0eWxlPVwiZGlzcGxheTogbm9uZVwiPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWxcIj57eydDbXM6OkRpc3BsYXlOYW1lJyB8IGFicExvY2FsaXphdGlvbn19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBmb3JtQ29udHJvbE5hbWU9XCJkaXNwbGF5TmFtZVwiIHBsYWNlaG9sZGVyPVwiXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLWNoZWNrLWlubGluZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiIHZhbHVlPVwidHJ1ZVwiIGZvcm1Db250cm9sTmFtZT1cInJlcXVpcmVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJlcXVpcmVkXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJyZXF1aXJlZFwiPiB7eydDbXM6OlJlcXVpcmVkJyB8IGFicExvY2FsaXphdGlvbn19IDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tY2hlY2staW5saW5lXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgdmFsdWU9XCJ0cnVlXCIgZm9ybUNvbnRyb2xOYW1lPVwic2hvd09uTGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzaG93T25MaXN0XCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIiBmb3I9XCJzaG93T25MaXN0XCI+IHt7J0Ntczo6U2hvd09uTGlzdCcgfCBhYnBMb2NhbGl6YXRpb259fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlICNhYnBGb290ZXI+XG4gICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zZWNvbmRhcnlcIiBhYnBDbG9zZT57eydBYnBVaTo6Q2xvc2UnIHwgYWJwTG9jYWxpemF0aW9ufX08L2J1dHRvbj5cbiAgICAgICAgPGFicC1idXR0b24gaWNvbkNsYXNzPVwiZmEgZmEtY2hlY2tcIiBbZGlzYWJsZWRdPVwiIWVkaXRGaWVsZEZyb20udmFsaWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRGaWVsZE1vZGFsU3VibWl0QnRuLm5hdGl2ZUVsZW1lbnQuY2xpY2soKVwiPnt7J0FicFVpOjpTYXZlJyB8IGFicExvY2FsaXphdGlvbn19PC9hYnAtYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L2FicC1tb2RhbD4iXX0=
@@ -0,0 +1,3 @@
1
+ export * from './create-or-edit.-entry-type-input-base';
2
+ export * from './create-or-edit.component';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbXMvc3JjL2xpYi9jb21wb25lbnRzL2FkbWluL3NlY3Rpb25zL2VudHJ5LXR5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMseUNBQXlDLENBQUE7QUFDdkQsY0FBYyw0QkFBNEIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY3JlYXRlLW9yLWVkaXQuLWVudHJ5LXR5cGUtaW5wdXQtYmFzZSdcclxuZXhwb3J0ICogZnJvbSAnLi9jcmVhdGUtb3ItZWRpdC5jb21wb25lbnQnIl19
@@ -0,0 +1,4 @@
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=