@dignite-ng/expand.cms 0.0.52 → 0.0.53

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 +108 -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 +130 -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 +109 -0
  39. package/esm2022/lib/components/admin/entries/edit.component.mjs +110 -0
  40. package/esm2022/lib/components/admin/entries/entries.component.mjs +198 -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 +112 -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 +109 -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 +132 -0
  100. package/esm2022/lib/resolvers/page-default-toolbar-actions.mjs +160 -0
  101. package/esm2022/lib/services/appent-content.mjs +15 -0
  102. package/esm2022/lib/services/cms-api.service.mjs +78 -0
  103. package/esm2022/lib/services/cms.service.mjs +21 -0
  104. package/esm2022/lib/services/field-abstracts.service.mjs +42 -0
  105. package/esm2022/lib/services/index.mjs +5 -0
  106. package/esm2022/lib/services/simple-reuse-strategy.mjs +64 -0
  107. package/esm2022/lib/services/update-list.service.mjs +19 -0
  108. package/esm2022/lib/services/validators.service.mjs +85 -0
  109. package/esm2022/public-api.mjs +6 -0
  110. package/fesm2022/dignite-ng-expand.cms-config.mjs +428 -0
  111. package/fesm2022/dignite-ng-expand.cms-config.mjs.map +1 -0
  112. package/fesm2022/dignite-ng-expand.cms.mjs +3915 -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 +34 -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 +71 -0
  174. package/lib/resolvers/page-default-toolbar-actions.d.ts +18 -0
  175. package/lib/services/appent-content.d.ts +1 -0
  176. package/lib/services/cms-api.service.d.ts +20 -0
  177. package/lib/services/cms.service.d.ts +10 -0
  178. package/lib/services/field-abstracts.service.d.ts +20 -0
  179. package/lib/services/index.d.ts +4 -0
  180. package/lib/services/simple-reuse-strategy.d.ts +13 -0
  181. package/lib/services/update-list.service.d.ts +9 -0
  182. package/lib/services/validators.service.d.ts +17 -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,85 @@
1
+ import { LocalizationService } from '@abp/ng.core';
2
+ import { ToasterService } from '@abp/ng.theme.shared';
3
+ import { inject, Injectable } from '@angular/core';
4
+ import { FormGroup, FormArray, FormControl, FormBuilder } from '@angular/forms';
5
+ import * as i0 from "@angular/core";
6
+ export class ValidatorsService {
7
+ constructor() {
8
+ this.fb = inject(FormBuilder);
9
+ this.toaster = inject(ToasterService);
10
+ this._LocalizationService = inject(LocalizationService);
11
+ }
12
+ /**检查表单- */
13
+ /**检查表单- */
14
+ isCheckForm(input, module = 'AbpValidation') {
15
+ let keys = Object.keys(input);
16
+ for (let i = 0; i < keys.length; i++) {
17
+ const element = keys[i];
18
+ if (input[element] == false) {
19
+ let info = `"${this._LocalizationService.instant(`${module}::${element}`)}" `;
20
+ if (element.includes('.') && !element.includes('].')) {
21
+ let arr = element.split('.');
22
+ info = `"${this._LocalizationService.instant(`CmsKit::${arr[0]}`)}.${this._LocalizationService.instant(`CmsKit::${arr[1]}`)}"`;
23
+ }
24
+ if (element.includes('].')) {
25
+ let arr = element.split('].');
26
+ let arrStart = arr[0].split('[');
27
+ info = `"${this._LocalizationService.instant(`CmsKit::${arrStart[0]}`)}[${arrStart[1]}].${this._LocalizationService.instant(`CmsKit::${arr[1]}`)}"`;
28
+ }
29
+ info += `${this._LocalizationService.instant(`AbpValidation::ThisFieldIsNotValid`)}`;
30
+ //使用abp多语言提示
31
+ this.toaster.warn(info);
32
+ return true;
33
+ }
34
+ }
35
+ return false;
36
+ }
37
+ /**获取表单所有字段是否通过验证 */
38
+ getFormValidationStatus(formEntity) {
39
+ let validationStatus = {};
40
+ // 递归遍历表单组和表单控件集合
41
+ const traverseForm = (form, prefix = '') => {
42
+ if (form instanceof FormGroup) {
43
+ Object.keys(form.controls).forEach(key => {
44
+ const control = form.controls[key];
45
+ let displayName = key.charAt(0).toUpperCase() + key.slice(1);
46
+ const fullKey = prefix ? `${prefix}.${displayName}` : displayName;
47
+ if (control instanceof FormControl) {
48
+ validationStatus[fullKey] = control.valid;
49
+ }
50
+ else if (control instanceof FormArray) {
51
+ traverseForm(control, fullKey);
52
+ }
53
+ else if (control instanceof FormGroup) {
54
+ traverseForm(control, fullKey);
55
+ }
56
+ });
57
+ }
58
+ else if (form instanceof FormArray) {
59
+ form.controls.forEach((control, index) => {
60
+ const fullKey = prefix ? `${prefix}[${index}]` : `[${index}]`;
61
+ if (control instanceof FormControl) {
62
+ validationStatus[fullKey] = control.valid;
63
+ }
64
+ else if (control instanceof FormArray) {
65
+ traverseForm(control, fullKey);
66
+ }
67
+ else if (control instanceof FormGroup) {
68
+ traverseForm(control, fullKey);
69
+ }
70
+ });
71
+ }
72
+ };
73
+ traverseForm(formEntity);
74
+ return validationStatus;
75
+ }
76
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ValidatorsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
77
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ValidatorsService, providedIn: 'root' }); }
78
+ }
79
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ValidatorsService, decorators: [{
80
+ type: Injectable,
81
+ args: [{
82
+ providedIn: 'root'
83
+ }]
84
+ }], ctorParameters: () => [] });
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY21zL3NyYy9saWIvc2VydmljZXMvdmFsaWRhdG9ycy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQUtoRixNQUFNLE9BQU8saUJBQWlCO0lBRTVCO1FBRVEsT0FBRSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QixZQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ2pDLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBSjNDLENBQUM7SUFNakIsV0FBVztJQUNULFdBQVc7SUFDWCxXQUFXLENBQUMsS0FBVSxFQUFDLE1BQU0sR0FBQyxlQUFlO1FBQzNDLElBQUksSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNyQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQzVCLElBQUksSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxH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QU0sSUFBSSxJQUFJLFlBQVksU0FBUyxFQUFFLENBQUM7Z0JBQ3JDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFO29CQUN2QyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDO29CQUM5RCxJQUFJLE9BQU8sWUFBWSxXQUFXLEVBQUUsQ0FBQzt3QkFDbkMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztvQkFDNUMsQ0FBQzt5QkFBTSxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUUsQ0FBQzt3QkFDeEMsWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDakMsQ0FBQzt5QkFBTSxJQUFJLE9BQU8sWUFBWSxTQUFTLEVBQUUsQ0FBQzt3QkFDeEMsWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztvQkFDakMsQ0FBQztnQkFDSCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7UUFDSCxDQUFDLENBQUM7UUFFRixZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFekIsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDOzhHQXZFVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixNQUFNOzsyRkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IFRvYXN0ZXJTZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFZhbGlkYXRvcnNTZXJ2aWNlIHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgcHJpdmF0ZSBmYiA9IGluamVjdChGb3JtQnVpbGRlcik7XHJcbiAgcHJpdmF0ZSB0b2FzdGVyID0gaW5qZWN0KFRvYXN0ZXJTZXJ2aWNlKTtcclxuICBwcml2YXRlIF9Mb2NhbGl6YXRpb25TZXJ2aWNlID0gaW5qZWN0KExvY2FsaXphdGlvblNlcnZpY2UpO1xyXG5cclxuICAvKirmo4Dmn6XooajljZUtICovXHJcbiAgICAvKirmo4Dmn6XooajljZUtICovXHJcbiAgICBpc0NoZWNrRm9ybShpbnB1dDogYW55LG1vZHVsZT0nQWJwVmFsaWRhdGlvbicpIHtcclxuICAgICAgbGV0IGtleXMgPSBPYmplY3Qua2V5cyhpbnB1dCk7XHJcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBrZXlzW2ldO1xyXG4gICAgICAgIGlmIChpbnB1dFtlbGVtZW50XSA9PSBmYWxzZSkge1xyXG4gICAgICAgICAgbGV0IGluZm8gPSBgXCIke3RoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgJHttb2R1bGV9Ojoke2VsZW1lbnR9YCl9XCIgYDtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmluY2x1ZGVzKCcuJykgJiYgIWVsZW1lbnQuaW5jbHVkZXMoJ10uJykpIHtcclxuICAgICAgICAgICAgbGV0IGFyciA9IGVsZW1lbnQuc3BsaXQoJy4nKTtcclxuICAgICAgICAgICAgaW5mbz1gXCIke3RoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQ21zS2l0Ojoke2FyclswXX1gKX0uJHt0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYENtc0tpdDo6JHthcnJbMV19YCl9XCJgXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5pbmNsdWRlcygnXS4nKSkge1xyXG4gICAgICAgICAgICBsZXQgYXJyID0gZWxlbWVudC5zcGxpdCgnXS4nKTtcclxuICAgICAgICAgICAgbGV0IGFyclN0YXJ0ID0gYXJyWzBdLnNwbGl0KCdbJyk7XHJcbiAgICAgICAgICAgIGluZm89YFwiJHt0aGlzLl9Mb2NhbGl6YXRpb25TZXJ2aWNlLmluc3RhbnQoYENtc0tpdDo6JHthcnJTdGFydFswXX1gKX1bJHthcnJTdGFydFsxXX1dLiR7dGhpcy5fTG9jYWxpemF0aW9uU2VydmljZS5pbnN0YW50KGBDbXNLaXQ6OiR7YXJyWzFdfWApfVwiYFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaW5mbys9IGAke3RoaXMuX0xvY2FsaXphdGlvblNlcnZpY2UuaW5zdGFudChgQWJwVmFsaWRhdGlvbjo6VGhpc0ZpZWxkSXNOb3RWYWxpZGApfWBcclxuICAgICAgICAgIC8v5L2/55SoYWJw5aSa6K+t6KiA5o+Q56S6XHJcbiAgICAgICAgICB0aGlzLnRvYXN0ZXIud2FybihpbmZvKTtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG5cclxuICAvKirojrflj5booajljZXmiYDmnInlrZfmrrXmmK/lkKbpgJrov4fpqozor4EgKi9cclxuICBnZXRGb3JtVmFsaWRhdGlvblN0YXR1cyhmb3JtRW50aXR5OiBGb3JtR3JvdXAgfCBGb3JtQXJyYXkpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcclxuICAgIGxldCB2YWxpZGF0aW9uU3RhdHVzOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge307XHJcblxyXG4gICAgLy8g6YCS5b2S6YGN5Y6G6KGo5Y2V57uE5ZKM6KGo5Y2V5o6n5Lu26ZuG5ZCIXHJcbiAgICBjb25zdCB0cmF2ZXJzZUZvcm0gPSAoZm9ybTogRm9ybUdyb3VwIHwgRm9ybUFycmF5LCBwcmVmaXggPSAnJykgPT4ge1xyXG4gICAgICBpZiAoZm9ybSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xyXG4gICAgICAgIE9iamVjdC5rZXlzKGZvcm0uY29udHJvbHMpLmZvckVhY2goa2V5ID0+IHtcclxuICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtLmNvbnRyb2xzW2tleV07XHJcbiAgICAgICAgICBsZXQgZGlzcGxheU5hbWUgPSBrZXkuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBrZXkuc2xpY2UoMSk7XHJcbiAgICAgICAgICBjb25zdCBmdWxsS2V5ID0gcHJlZml4ID8gYCR7cHJlZml4fS4ke2Rpc3BsYXlOYW1lfWAgOiBkaXNwbGF5TmFtZTtcclxuICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICAgICAgdmFsaWRhdGlvblN0YXR1c1tmdWxsS2V5XSA9IGNvbnRyb2wudmFsaWQ7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcclxuICAgICAgICAgICAgdHJhdmVyc2VGb3JtKGNvbnRyb2wsIGZ1bGxLZXkpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgICAgIHRyYXZlcnNlRm9ybShjb250cm9sLCBmdWxsS2V5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIGlmIChmb3JtIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XHJcbiAgICAgICAgZm9ybS5jb250cm9scy5mb3JFYWNoKChjb250cm9sLCBpbmRleCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZnVsbEtleSA9IHByZWZpeCA/IGAke3ByZWZpeH1bJHtpbmRleH1dYCA6IGBbJHtpbmRleH1dYDtcclxuICAgICAgICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUNvbnRyb2wpIHtcclxuICAgICAgICAgICAgdmFsaWRhdGlvblN0YXR1c1tmdWxsS2V5XSA9IGNvbnRyb2wudmFsaWQ7XHJcbiAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcclxuICAgICAgICAgICAgdHJhdmVyc2VGb3JtKGNvbnRyb2wsIGZ1bGxLZXkpO1xyXG4gICAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUdyb3VwKSB7XHJcbiAgICAgICAgICAgIHRyYXZlcnNlRm9ybShjb250cm9sLCBmdWxsS2V5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuXHJcbiAgICB0cmF2ZXJzZUZvcm0oZm9ybUVudGl0eSk7XHJcblxyXG4gICAgcmV0dXJuIHZhbGlkYXRpb25TdGF0dXM7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -0,0 +1,6 @@
1
+ /*
2
+ * Public API Surface of cms
3
+ */
4
+ export * from './lib/cms.module';
5
+ export * from './lib/components/dynamic-form';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Ntcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYywrQkFBK0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBjbXNcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbXMubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9keW5hbWljLWZvcm0nO1xyXG4iXX0=
@@ -0,0 +1,428 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Injectable, inject, Component, APP_INITIALIZER, NgModule } from '@angular/core';
3
+ import * as i1 from '@abp/ng.core';
4
+ import { LocalizationService, CoreModule, ConfigStateService, RoutesService } from '@abp/ng.core';
5
+ import { SettingTabsService } from '@abp/ng.setting-management/config';
6
+ import * as i2 from '@angular/forms';
7
+ import { FormBuilder, FormGroup, FormControl, FormArray, FormsModule, Validators } from '@angular/forms';
8
+ import { ToasterService, ThemeSharedModule } from '@abp/ng.theme.shared';
9
+ import * as i1$1 from '@angular/common';
10
+ import * as i4 from '@ngx-validate/core';
11
+
12
+ var eCmsRouteNames;
13
+ (function (eCmsRouteNames) {
14
+ eCmsRouteNames["Cms"] = "Cms::Menu:Cms";
15
+ eCmsRouteNames["Entries"] = "Cms::FormControl:Entry";
16
+ eCmsRouteNames["Settings"] = "Cms::Menu:Settings";
17
+ eCmsRouteNames["Fields"] = "Cms::Fields";
18
+ eCmsRouteNames["Sections"] = "Cms::Sections";
19
+ eCmsRouteNames["SiteLanguage"] = "Cms::DisplayName:Cms.Site.Languages";
20
+ })(eCmsRouteNames || (eCmsRouteNames = {}));
21
+
22
+ class DomainAdminService {
23
+ constructor(restService) {
24
+ this.restService = restService;
25
+ this.apiName = 'CmsAdmin';
26
+ this.getBound = (config) => this.restService.request({
27
+ method: 'GET',
28
+ url: '/api/cms-admin/domains/bound',
29
+ }, { apiName: this.apiName, ...config });
30
+ this.nameExists = (domainName, config) => this.restService.request({
31
+ method: 'GET',
32
+ url: '/api/cms-admin/domains/name-exists',
33
+ params: { domainName },
34
+ }, { apiName: this.apiName, ...config });
35
+ this.update = (input, config) => this.restService.request({
36
+ method: 'POST',
37
+ url: '/api/cms-admin/domains',
38
+ body: input,
39
+ }, { apiName: this.apiName, ...config });
40
+ }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainAdminService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
42
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainAdminService, providedIn: 'root' }); }
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainAdminService, decorators: [{
45
+ type: Injectable,
46
+ args: [{
47
+ providedIn: 'root',
48
+ }]
49
+ }], ctorParameters: () => [{ type: i1.RestService }] });
50
+
51
+ class ValidatorsService {
52
+ constructor() {
53
+ this.fb = inject(FormBuilder);
54
+ this.toaster = inject(ToasterService);
55
+ this._LocalizationService = inject(LocalizationService);
56
+ }
57
+ /**检查表单- */
58
+ isCheckForm(input, module = 'AbpValidation') {
59
+ let keys = Object.keys(input);
60
+ for (let i = 0; i < keys.length; i++) {
61
+ const element = keys[i];
62
+ if (input[element] == false) {
63
+ let info = `"${this._LocalizationService.instant(`${module}::${element}`)}" `;
64
+ if (element.includes('.') && !element.includes('].')) {
65
+ let arr = element.split('.');
66
+ info = `"${this._LocalizationService.instant(`CmsKit::${arr[0]}`)}.${this._LocalizationService.instant(`CmsKit::${arr[1]}`)}"`;
67
+ }
68
+ if (element.includes('].')) {
69
+ let arr = element.split('].');
70
+ let arrStart = arr[0].split('[');
71
+ info = `"${this._LocalizationService.instant(`CmsKit::${arrStart[0]}`)}[${arrStart[1]}].${this._LocalizationService.instant(`CmsKit::${arr[1]}`)}"`;
72
+ }
73
+ info += `${this._LocalizationService.instant(`AbpValidation::ThisFieldIsNotValid`)}`;
74
+ //使用abp多语言提示
75
+ this.toaster.warn(info);
76
+ return true;
77
+ }
78
+ }
79
+ return false;
80
+ }
81
+ /**获取表单所有字段是否通过验证 */
82
+ getFormValidationStatus(formEntity) {
83
+ let validationStatus = {};
84
+ // 递归遍历表单组和表单控件集合
85
+ const traverseForm = (form, prefix = '') => {
86
+ if (form instanceof FormGroup) {
87
+ Object.keys(form.controls).forEach(key => {
88
+ const control = form.controls[key];
89
+ const fullKey = prefix ? `${prefix}.${key}` : key;
90
+ if (control instanceof FormControl) {
91
+ validationStatus[fullKey] = control.valid;
92
+ }
93
+ else if (control instanceof FormArray) {
94
+ traverseForm(control, fullKey);
95
+ }
96
+ else if (control instanceof FormGroup) {
97
+ traverseForm(control, fullKey);
98
+ }
99
+ });
100
+ }
101
+ else if (form instanceof FormArray) {
102
+ form.controls.forEach((control, index) => {
103
+ const fullKey = prefix ? `${prefix}[${index}]` : `[${index}]`;
104
+ if (control instanceof FormControl) {
105
+ validationStatus[fullKey] = control.valid;
106
+ }
107
+ else if (control instanceof FormArray) {
108
+ traverseForm(control, fullKey);
109
+ }
110
+ else if (control instanceof FormGroup) {
111
+ traverseForm(control, fullKey);
112
+ }
113
+ });
114
+ }
115
+ };
116
+ traverseForm(formEntity);
117
+ return validationStatus;
118
+ }
119
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ValidatorsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
120
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ValidatorsService, providedIn: 'root' }); }
121
+ }
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: ValidatorsService, decorators: [{
123
+ type: Injectable,
124
+ args: [{
125
+ providedIn: 'root'
126
+ }]
127
+ }], ctorParameters: () => [] });
128
+
129
+ class DomainsComponent {
130
+ constructor() {
131
+ this.toaster = inject(ToasterService);
132
+ this._DomainAdminService = inject(DomainAdminService);
133
+ this._LocalizationService = inject(LocalizationService);
134
+ /**domain详情 */
135
+ this.domainInfo = '';
136
+ this._ValidatorsService = inject(ValidatorsService);
137
+ /**表单验证状态
138
+ * {
139
+ * title:true,
140
+ * }
141
+ */
142
+ this.formValidation = '';
143
+ }
144
+ get domainNameInput() {
145
+ return this.newEntity.get('domainName');
146
+ }
147
+ async ngOnInit() {
148
+ //Called after the constructor, initializing input properties, and the first call to ngOnChanges.
149
+ //Add 'implements OnInit' to the class.
150
+ this.newEntity = new FormGroup({
151
+ domainName: new FormControl('', {
152
+ asyncValidators: this.repetitionAsyncValidator(),
153
+ updateOn: 'blur'
154
+ })
155
+ });
156
+ await this.getDomainsBound();
157
+ }
158
+ /**用于获取已绑定的域名 */
159
+ getDomainsBound() {
160
+ return new Promise((resolve, rejects) => {
161
+ this._DomainAdminService.getBound().subscribe(res => {
162
+ this.domainNameInput.patchValue(res?.domainName || '');
163
+ this.domainInfo = res;
164
+ resolve(res);
165
+ });
166
+ });
167
+ }
168
+ //检验域名是否已经绑定
169
+ repetitionAsyncValidator() {
170
+ return (ctrl) => {
171
+ return new Promise(resolve => {
172
+ let domainNameInput = this.domainNameInput.value;
173
+ if (!domainNameInput) {
174
+ resolve(null);
175
+ return;
176
+ }
177
+ if (this.domainInfo?.domainName === domainNameInput) {
178
+ resolve(null);
179
+ return;
180
+ }
181
+ var patt = /^(?!-)[A-Za-z0-9-]{1,63}(?<!-)\.[A-Za-z]{2,6}$/;
182
+ if (!patt.test(domainNameInput)) {
183
+ resolve({ repetition: this._LocalizationService.instant(`AbpValidation::ThisFieldMustMatchTheRegularExpression{0}`, patt.toString()) });
184
+ return;
185
+ }
186
+ this._DomainAdminService.nameExists(domainNameInput).subscribe(res => {
187
+ if (res) {
188
+ resolve({ repetition: this._LocalizationService.instant(`Cms::DomainName{0}AlreadyExist`, ctrl.value) });
189
+ }
190
+ else {
191
+ resolve(null);
192
+ }
193
+ });
194
+ });
195
+ };
196
+ }
197
+ /**保存 */
198
+ SaveSubmit() {
199
+ let input = this.newEntity.value;
200
+ this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);
201
+ if (this._ValidatorsService.isCheckForm(this.formValidation, 'Cms'))
202
+ return;
203
+ this._DomainAdminService.update(input).subscribe(async (res) => {
204
+ this.toaster.success(this._LocalizationService.instant(`AbpUi::SavedSuccessfully`));
205
+ await this.getDomainsBound();
206
+ });
207
+ }
208
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
209
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: DomainsComponent, isStandalone: true, selector: "cms-domains", ngImport: i0, template: "<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"SaveSubmit()\">\n \n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <button class=\"btn btn-primary btn-sm\" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{domainNameInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">\u6B64\u5904\u662F\u586B\u5199\u57DF\u540D\u7684\u63CF\u8FF0\uFF0C\u9700\u8981\u4E00\u4E2A\u5B57\u6BB5\u7EDF\u4E00\u914D\u7F6E\u57DF\u540D\u591A\u8BED\u8A00\uFF0C</div>\n </div>\n <hr class=\"my-3\" />\n</form>", styles: [""], dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }, { kind: "ngmodule", type: ThemeSharedModule }, { kind: "directive", type: i4.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "directive", type: i4.ValidationDirective, selector: "[formControl],[formControlName]", exportAs: ["validationDirective"] }, { kind: "ngmodule", type: FormsModule }] }); }
210
+ }
211
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: DomainsComponent, decorators: [{
212
+ type: Component,
213
+ args: [{ selector: 'cms-domains', standalone: true, imports: [
214
+ CoreModule,
215
+ ThemeSharedModule,
216
+ FormsModule,
217
+ ], template: "<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"SaveSubmit()\">\n \n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <button class=\"btn btn-primary btn-sm\" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{domainNameInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">\u6B64\u5904\u662F\u586B\u5199\u57DF\u540D\u7684\u63CF\u8FF0\uFF0C\u9700\u8981\u4E00\u4E2A\u5B57\u6BB5\u7EDF\u4E00\u914D\u7F6E\u57DF\u540D\u591A\u8BED\u8A00\uFF0C</div>\n </div>\n <hr class=\"my-3\" />\n</form>" }]
218
+ }] });
219
+
220
+ class SiteAdminService {
221
+ constructor(restService) {
222
+ this.restService = restService;
223
+ this.apiName = 'CmsAdmin';
224
+ this.get = (config) => this.restService.request({
225
+ method: 'GET',
226
+ url: '/api/cms-admin/sites',
227
+ }, { apiName: this.apiName, ...config });
228
+ this.update = (input, config) => this.restService.request({
229
+ method: 'PUT',
230
+ url: '/api/cms-admin/sites',
231
+ body: input,
232
+ }, { apiName: this.apiName, ...config });
233
+ }
234
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SiteAdminService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable }); }
235
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SiteAdminService, providedIn: 'root' }); }
236
+ }
237
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SiteAdminService, decorators: [{
238
+ type: Injectable,
239
+ args: [{
240
+ providedIn: 'root',
241
+ }]
242
+ }], ctorParameters: () => [{ type: i1.RestService }] });
243
+
244
+ // import { SiteAdminService } from '../../../../proxy/dignite/cms/admin/sites';
245
+ class SiteLanguageComponent {
246
+ constructor() {
247
+ this.fb = inject(FormBuilder);
248
+ this.toaster = inject(ToasterService);
249
+ this._LocalizationService = inject(LocalizationService);
250
+ this.configState = inject(ConfigStateService);
251
+ this._SiteAdminService = inject(SiteAdminService);
252
+ // private SiteLanguagesService = inject(SiteLanguagesService);
253
+ this.eCmsRouteNames = eCmsRouteNames;
254
+ /**系统语言 */
255
+ this.languagesSystem = [];
256
+ }
257
+ async ngOnInit() {
258
+ //Called after the constructor, initializing input properties, and the first call to ngOnChanges.
259
+ //Add 'implements OnInit' to the class.
260
+ //获取所有语言 */
261
+ let languagesSystem = this.configState.getDeep('localization.languages');
262
+ languagesSystem.map(el => {
263
+ el.ischecked = false;
264
+ el.isDefault = false;
265
+ });
266
+ this.languagesSystem = languagesSystem;
267
+ this.newEntity = this.fb.group({
268
+ defaultLanguage: ['', [Validators.required]],
269
+ allLanguages: [[], [Validators.required]],
270
+ });
271
+ await this.getSiteLanguageSettings();
272
+ }
273
+ /**获取配置的默认语言与选中语言 */
274
+ getSiteLanguageSettings() {
275
+ return new Promise((resolve, rejects) => {
276
+ this._SiteAdminService.get().subscribe((res) => {
277
+ this.newEntity.patchValue({
278
+ defaultLanguage: res.defaultLanguage,
279
+ allLanguages: res.allLanguages
280
+ });
281
+ this.languagesSystem.forEach((el) => {
282
+ el.ischecked = res.allLanguages.includes(el.cultureName);
283
+ el.isDefault = el.cultureName === res.defaultLanguage;
284
+ });
285
+ resolve(true);
286
+ });
287
+ });
288
+ }
289
+ /**语言改变 */
290
+ setLanguagesChange(event, item) {
291
+ let checked = event.target.checked;
292
+ item.ischecked = checked;
293
+ this.setFromLangguages();
294
+ }
295
+ /**设置默认语言 */
296
+ setDefault(items) {
297
+ this.languagesSystem.forEach(el => {
298
+ el.isDefault = false;
299
+ });
300
+ items.isDefault = true;
301
+ this.newEntity.patchValue({
302
+ defaultLanguage: items.cultureName
303
+ });
304
+ this.setFromLangguages();
305
+ }
306
+ /**设置表单中的语言 */
307
+ setFromLangguages() {
308
+ let languagesSelect = this.languagesSystem.filter(el => el.ischecked == true).map(el => el.cultureName);
309
+ this.newEntity.patchValue({
310
+ allLanguages: languagesSelect
311
+ });
312
+ if (languagesSelect.length == 0) {
313
+ this.languagesSystem.forEach(el => {
314
+ el.isDefault = false;
315
+ });
316
+ }
317
+ }
318
+ /**保存 */
319
+ SaveSubmit() {
320
+ let input = this.newEntity.value;
321
+ this._SiteAdminService.update({
322
+ ...input
323
+ }).subscribe((res => {
324
+ this.toaster.success(this._LocalizationService.instant(`AbpUi::SavedSuccessfully`));
325
+ this.getSiteLanguageSettings();
326
+ }));
327
+ }
328
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SiteLanguageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
329
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.5", type: SiteLanguageComponent, isStandalone: true, selector: "app-site-language", ngImport: i0, template: "<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" (submit)=\"SaveSubmit()\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <h2>{{eCmsRouteNames.SiteLanguage|abpLocalization}}</h2>\r\n <button class=\"btn btn-primary btn-sm\" type=\"submit\"><i\r\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::\u4FDD\u5B58'|abpLocalization}}</button>\r\n </div>\r\n <hr class=\"my-3\" />\r\n <div class=\"mb-2\">\r\n <label class=\"form-label\" for=\"title\">{{'Travely::Language' | abpLocalization}}</label>\r\n <ul class=\"list-group\">\r\n <ng-container *ngFor=\"let item of languagesSystem;let i=index\">\r\n <li class=\"list-group-item d-flex align-items-center justify-content-between\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" id=\"Languages{{i}}\"\r\n [checked]=\"item.ischecked\" (change)=\"setLanguagesChange($event,item)\" />\r\n <label class=\"form-check-label\" for=\"Languages{{i}}\">\r\n {{item.displayName}}\r\n </label>\r\n </div>\r\n <ng-container *ngIf=\"item.ischecked\">\r\n <div class=\"text-primary fs-5\" type=\"button\" *ngIf=\"item.isDefault\">\r\n {{'Travely::Default'|abpLocalization}}</div>\r\n <div class=\"text-muted fs-5\" type=\"button\" (click.stop)=\"setDefault(item)\"\r\n *ngIf=\"!item.isDefault\">{{'Travely::SetDefault'|abpLocalization}}</div>\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <hr class=\"my-3\" />\r\n</form>", styles: [""], dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1.LocalizationPipe, name: "abpLocalization" }, { kind: "directive", type: i1.StopPropagationDirective, selector: "[click.stop]", outputs: ["click.stop"] }, { kind: "ngmodule", type: ThemeSharedModule }, { kind: "directive", type: i4.ValidationGroupDirective, selector: "[formGroup],[formGroupName]", exportAs: ["validationGroup"] }, { kind: "ngmodule", type: FormsModule }] }); }
330
+ }
331
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: SiteLanguageComponent, decorators: [{
332
+ type: Component,
333
+ args: [{ selector: 'app-site-language', standalone: true, imports: [
334
+ CoreModule,
335
+ ThemeSharedModule,
336
+ FormsModule,
337
+ ], template: "<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" (submit)=\"SaveSubmit()\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <h2>{{eCmsRouteNames.SiteLanguage|abpLocalization}}</h2>\r\n <button class=\"btn btn-primary btn-sm\" type=\"submit\"><i\r\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::\u4FDD\u5B58'|abpLocalization}}</button>\r\n </div>\r\n <hr class=\"my-3\" />\r\n <div class=\"mb-2\">\r\n <label class=\"form-label\" for=\"title\">{{'Travely::Language' | abpLocalization}}</label>\r\n <ul class=\"list-group\">\r\n <ng-container *ngFor=\"let item of languagesSystem;let i=index\">\r\n <li class=\"list-group-item d-flex align-items-center justify-content-between\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" id=\"Languages{{i}}\"\r\n [checked]=\"item.ischecked\" (change)=\"setLanguagesChange($event,item)\" />\r\n <label class=\"form-check-label\" for=\"Languages{{i}}\">\r\n {{item.displayName}}\r\n </label>\r\n </div>\r\n <ng-container *ngIf=\"item.ischecked\">\r\n <div class=\"text-primary fs-5\" type=\"button\" *ngIf=\"item.isDefault\">\r\n {{'Travely::Default'|abpLocalization}}</div>\r\n <div class=\"text-muted fs-5\" type=\"button\" (click.stop)=\"setDefault(item)\"\r\n *ngIf=\"!item.isDefault\">{{'Travely::SetDefault'|abpLocalization}}</div>\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <hr class=\"my-3\" />\r\n</form>" }]
338
+ }] });
339
+
340
+ const CMS_ROUTE_PROVIDERS = [
341
+ {
342
+ provide: APP_INITIALIZER,
343
+ useFactory: configureRoutes,
344
+ deps: [RoutesService, SettingTabsService],
345
+ multi: true,
346
+ },
347
+ ];
348
+ function configureRoutes(routesService, settingTabs) {
349
+ return () => {
350
+ settingTabs.add([
351
+ {
352
+ name: 'Cms::Domain',
353
+ requiredPolicy: 'CmsAdmin.Domain',
354
+ component: DomainsComponent,
355
+ },
356
+ {
357
+ name: eCmsRouteNames.SiteLanguage,
358
+ requiredPolicy: 'TravelyAdmin.SiteSetting',
359
+ component: SiteLanguageComponent,
360
+ },
361
+ ]);
362
+ routesService.add([
363
+ {
364
+ path: '/cms',
365
+ name: eCmsRouteNames.Cms,
366
+ iconClass: 'bi-archive-fill',
367
+ layout: "application" /* eLayoutType.application */,
368
+ requiredPolicy: 'CmsAdmin.Entry || CmsAdmin.Field || CmsAdmin.Site || CmsAdmin.Section',
369
+ },
370
+ {
371
+ path: '/cms/admin/entries',
372
+ name: eCmsRouteNames.Entries,
373
+ parentName: eCmsRouteNames.Cms,
374
+ iconClass: 'bi-file-earmark-text-fill',
375
+ layout: "application" /* eLayoutType.application */,
376
+ requiredPolicy: 'CmsAdmin.Entry',
377
+ },
378
+ {
379
+ path: '',
380
+ name: eCmsRouteNames.Settings,
381
+ parentName: eCmsRouteNames.Cms,
382
+ iconClass: 'fas fa fa-cog',
383
+ layout: "application" /* eLayoutType.application */,
384
+ requiredPolicy: 'CmsAdmin.Field || CmsAdmin.Section',
385
+ },
386
+ {
387
+ path: '/cms/admin/fields',
388
+ name: eCmsRouteNames.Fields,
389
+ parentName: eCmsRouteNames.Settings,
390
+ iconClass: 'bi-file-earmark-text-fill',
391
+ layout: "application" /* eLayoutType.application */,
392
+ order: 1,
393
+ requiredPolicy: 'CmsAdmin.Field',
394
+ },
395
+ {
396
+ path: '/cms/admin/sections',
397
+ name: eCmsRouteNames.Sections,
398
+ parentName: eCmsRouteNames.Settings,
399
+ iconClass: 'bi bi-menu-button-wide-fill',
400
+ layout: "application" /* eLayoutType.application */,
401
+ order: 3,
402
+ requiredPolicy: 'CmsAdmin.Section',
403
+ },
404
+ ]);
405
+ };
406
+ }
407
+
408
+ class CmsConfigModule {
409
+ static forRoot() {
410
+ return {
411
+ ngModule: CmsConfigModule,
412
+ providers: [CMS_ROUTE_PROVIDERS],
413
+ };
414
+ }
415
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CmsConfigModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
416
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.1.5", ngImport: i0, type: CmsConfigModule }); }
417
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CmsConfigModule }); }
418
+ }
419
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.5", ngImport: i0, type: CmsConfigModule, decorators: [{
420
+ type: NgModule
421
+ }] });
422
+
423
+ /**
424
+ * Generated bundle index. Do not edit.
425
+ */
426
+
427
+ export { CMS_ROUTE_PROVIDERS, CmsConfigModule, configureRoutes, eCmsRouteNames };
428
+ //# sourceMappingURL=dignite-ng-expand.cms-config.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dignite-ng-expand.cms-config.mjs","sources":["../../../projects/cms/config/src/enums/route-names.ts","../../../projects/cms/config/src/proxy/admin/domains/domain-admin.service.ts","../../../projects/cms/config/src/services/validators.service.ts","../../../projects/cms/config/src/components/domains/domains.component.ts","../../../projects/cms/config/src/components/domains/domains.component.html","../../../projects/cms/config/src/proxy/dignite/cms/admin/sites/site-admin.service.ts","../../../projects/cms/config/src/components/site-language/site-language.component.ts","../../../projects/cms/config/src/components/site-language/site-language.component.html","../../../projects/cms/config/src/providers/route.provider.ts","../../../projects/cms/config/src/cms-config.module.ts","../../../projects/cms/config/src/dignite-ng-expand.cms-config.ts"],"sourcesContent":["export enum eCmsRouteNames {\r\n Cms = 'Cms::Menu:Cms',\r\n Entries = 'Cms::FormControl:Entry',\r\n Settings = \"Cms::Menu:Settings\",\r\n Fields = \"Cms::Fields\",\r\n Sections = \"Cms::Sections\",\r\n SiteLanguage=\"Cms::DisplayName:Cms.Site.Languages\",\r\n}","import type { DomainDto, UpdateDomainInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class DomainAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n getBound = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, DomainDto>({\r\n method: 'GET',\r\n url: '/api/cms-admin/domains/bound',\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n nameExists = (domainName: string, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, boolean>({\r\n method: 'GET',\r\n url: '/api/cms-admin/domains/name-exists',\r\n params: { domainName },\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (input: UpdateDomainInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, DomainDto>({\r\n method: 'POST',\r\n url: '/api/cms-admin/domains',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { LocalizationService } from '@abp/ng.core';\r\nimport { ToasterService } from '@abp/ng.theme.shared';\r\nimport { inject, Injectable } from '@angular/core';\r\nimport { FormGroup, FormArray, FormControl, FormBuilder } from '@angular/forms';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ValidatorsService {\r\n\r\n constructor() { }\r\n\r\n private fb = inject(FormBuilder);\r\n private toaster = inject(ToasterService);\r\n private _LocalizationService = inject(LocalizationService);\r\n\r\n /**检查表单- */\r\n isCheckForm(input: any,module='AbpValidation') {\r\n let keys = Object.keys(input);\r\n for (let i = 0; i < keys.length; i++) {\r\n const element = keys[i];\r\n if (input[element] == false) {\r\n let info = `\"${this._LocalizationService.instant(`${module}::${element}`)}\" `;\r\n if (element.includes('.') && !element.includes('].')) {\r\n let arr = element.split('.');\r\n info=`\"${this._LocalizationService.instant(`CmsKit::${arr[0]}`)}.${this._LocalizationService.instant(`CmsKit::${arr[1]}`)}\"`\r\n }\r\n if (element.includes('].')) {\r\n let arr = element.split('].');\r\n let arrStart = arr[0].split('[');\r\n info=`\"${this._LocalizationService.instant(`CmsKit::${arrStart[0]}`)}[${arrStart[1]}].${this._LocalizationService.instant(`CmsKit::${arr[1]}`)}\"`\r\n }\r\n info+= `${this._LocalizationService.instant(`AbpValidation::ThisFieldIsNotValid`)}`\r\n //使用abp多语言提示\r\n this.toaster.warn(info);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n\r\n /**获取表单所有字段是否通过验证 */\r\n getFormValidationStatus(formEntity: FormGroup | FormArray): { [key: string]: any } {\r\n let validationStatus: { [key: string]: any } = {};\r\n\r\n // 递归遍历表单组和表单控件集合\r\n const traverseForm = (form: FormGroup | FormArray, prefix = '') => {\r\n if (form instanceof FormGroup) {\r\n Object.keys(form.controls).forEach(key => {\r\n const control = form.controls[key];\r\n const fullKey = prefix ? `${prefix}.${key}` : key;\r\n if (control instanceof FormControl) {\r\n validationStatus[fullKey] = control.valid;\r\n } else if (control instanceof FormArray) {\r\n traverseForm(control, fullKey);\r\n } else if (control instanceof FormGroup) {\r\n traverseForm(control, fullKey);\r\n }\r\n });\r\n } else if (form instanceof FormArray) {\r\n form.controls.forEach((control, index) => {\r\n const fullKey = prefix ? `${prefix}[${index}]` : `[${index}]`;\r\n if (control instanceof FormControl) {\r\n validationStatus[fullKey] = control.valid;\r\n } else if (control instanceof FormArray) {\r\n traverseForm(control, fullKey);\r\n } else if (control instanceof FormGroup) {\r\n traverseForm(control, fullKey);\r\n }\r\n });\r\n }\r\n };\r\n\r\n traverseForm(formEntity);\r\n\r\n return validationStatus;\r\n }\r\n\r\n}\r\n","import { Component, inject, OnInit } from '@angular/core';\nimport { AbstractControl, FormControl, FormGroup, FormsModule, ValidationErrors } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { CoreModule, LocalizationService } from '@abp/ng.core';\nimport { ThemeSharedModule, ToasterService } from '@abp/ng.theme.shared';\nimport { DomainAdminService } from '../../proxy/admin/domains';\nimport { ValidatorsService } from '../../services/validators.service';\n\n@Component({\n selector: 'cms-domains',\n templateUrl: './domains.component.html',\n styleUrls: ['./domains.component.scss'],\n standalone: true,\n imports: [\n CoreModule,\n ThemeSharedModule,\n FormsModule,\n ]\n})\nexport class DomainsComponent implements OnInit{\n\n private toaster = inject(ToasterService)\n private _DomainAdminService = inject(DomainAdminService);\n private _LocalizationService = inject(LocalizationService);\n\n /**表单实体 */\n newEntity: FormGroup | undefined;\n\n /**domain详情 */\n domainInfo:any=''\n get domainNameInput() {\n return this.newEntity.get('domainName')\n }\n\n\n\n async ngOnInit(): Promise<void> {\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\n //Add 'implements OnInit' to the class.\n \n this.newEntity = new FormGroup({\n domainName: new FormControl('', {\n asyncValidators: this.repetitionAsyncValidator(),\n updateOn: 'blur'\n })\n })\n await this.getDomainsBound()\n\n }\n\n /**用于获取已绑定的域名 */\n getDomainsBound(){\n return new Promise((resolve,rejects)=>{\n this._DomainAdminService.getBound().subscribe(res=>{\n this.domainNameInput.patchValue(res?.domainName||'')\n this.domainInfo=res\n resolve(res)\n })\n })\n }\n\n //检验域名是否已经绑定\n repetitionAsyncValidator() {\n return (ctrl: AbstractControl): Promise<ValidationErrors | null> | Observable<ValidationErrors | null> => {\n return new Promise(resolve => {\n let domainNameInput = this.domainNameInput.value\n if (!domainNameInput) {\n resolve(null);\n return\n }\n if (this.domainInfo?.domainName===domainNameInput) {\n resolve(null);\n return\n }\n var patt = /^(?!-)[A-Za-z0-9-]{1,63}(?<!-)\\.[A-Za-z]{2,6}$/;\n if(!patt.test(domainNameInput)){\n resolve({ repetition: this._LocalizationService.instant(`AbpValidation::ThisFieldMustMatchTheRegularExpression{0}`, patt.toString()) });\n return\n }\n this._DomainAdminService.nameExists(domainNameInput).subscribe(res => {\n if (res) {\n resolve({ repetition: this._LocalizationService.instant(`Cms::DomainName{0}AlreadyExist`, ctrl.value) });\n } else {\n resolve(null);\n }\n })\n });\n };\n }\n\n private _ValidatorsService = inject(ValidatorsService);\n /**表单验证状态\n * {\n * title:true,\n * }\n */\n formValidation: any = '';\n\n /**保存 */\n SaveSubmit() {\n let input = this.newEntity.value\n this.formValidation = this._ValidatorsService.getFormValidationStatus(this.newEntity);\n if (this._ValidatorsService.isCheckForm(this.formValidation,'Cms')) return;\n this._DomainAdminService.update(input).subscribe(async(res)=>{\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SavedSuccessfully`));\n await this.getDomainsBound()\n })\n }\n}\n","<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" [class]=\"{'was-validated':formValidation}\" (submit)=\"SaveSubmit()\">\n \n <div class=\"d-flex align-items-center justify-content-between\">\n <h2>{{'Cms::Domain'|abpLocalization}}</h2>\n <button class=\"btn btn-primary btn-sm\" type=\"submit\"><i\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::Save'|abpLocalization}}</button>\n </div>\n <hr class=\"my-3\" />\n <div class=\"mb-2\">\n <input type=\"text\" class=\"form-control\" formControlName=\"domainName\">\n <div class=\"text-danger invalid-feedback\" *ngIf=\"domainNameInput.errors?.repetition\">\n {{domainNameInput.errors?.repetition}}\n </div>\n <div class=\"form-text\">此处是填写域名的描述,需要一个字段统一配置域名多语言,</div>\n </div>\n <hr class=\"my-3\" />\n</form>","import type { UpdateSiteInput } from './models';\r\nimport { RestService, Rest } from '@abp/ng.core';\r\nimport { Injectable } from '@angular/core';\r\nimport type { SiteDto } from '../../sites/models';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SiteAdminService {\r\n apiName = 'CmsAdmin';\r\n \r\n\r\n get = (config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, SiteDto>({\r\n method: 'GET',\r\n url: '/api/cms-admin/sites',\r\n },\r\n { apiName: this.apiName,...config });\r\n \r\n\r\n update = (input: UpdateSiteInput, config?: Partial<Rest.Config>) =>\r\n this.restService.request<any, void>({\r\n method: 'PUT',\r\n url: '/api/cms-admin/sites',\r\n body: input,\r\n },\r\n { apiName: this.apiName,...config });\r\n\r\n constructor(private restService: RestService) {}\r\n}\r\n","import { LocalizationService,CoreModule, ConfigStateService } from '@abp/ng.core';\r\nimport { Component, inject, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup, Validators,FormsModule } from '@angular/forms';\r\n// import { SiteLanguagesService } from '../../../services/site-languages.service';\r\nimport { SiteAdminService } from '../../proxy/dignite/cms/admin/sites';\r\nimport { eCmsRouteNames } from '../../enums';\r\nimport { Observable } from 'rxjs';\r\nimport { ThemeSharedModule, ToasterService } from '@abp/ng.theme.shared';\r\n// import { SiteAdminService } from '../../../../proxy/dignite/cms/admin/sites';\r\n\r\n@Component({\r\n selector: 'app-site-language',\r\n templateUrl: './site-language.component.html',\r\n styleUrls: ['./site-language.component.scss'],\r\n standalone: true,\r\n imports: [\r\n CoreModule,\r\n ThemeSharedModule,\r\n FormsModule,\r\n ]\r\n})\r\nexport class SiteLanguageComponent implements OnInit{\r\n\r\n private fb = inject(FormBuilder)\r\n private toaster = inject(ToasterService)\r\n private _LocalizationService = inject(LocalizationService);\r\n private configState = inject(ConfigStateService)\r\n private _SiteAdminService = inject(SiteAdminService);\r\n // private SiteLanguagesService = inject(SiteLanguagesService);\r\n eCmsRouteNames=eCmsRouteNames;\r\n\r\n\r\n /**表单实体 */\r\n newEntity: FormGroup | undefined;\r\n\r\n /**系统语言 */\r\n languagesSystem: any[] = []\r\n\r\n\r\n\r\n\r\n async ngOnInit(): Promise<void> {\r\n //Called after the constructor, initializing input properties, and the first call to ngOnChanges.\r\n //Add 'implements OnInit' to the class.\r\n //获取所有语言 */\r\n let languagesSystem = this.configState.getDeep('localization.languages')\r\n languagesSystem.map(el => {\r\n el.ischecked = false;\r\n el.isDefault = false;\r\n })\r\n this.languagesSystem = languagesSystem\r\n this.newEntity = this.fb.group({\r\n defaultLanguage: ['', [Validators.required]],\r\n allLanguages: [[], [Validators.required]],\r\n })\r\n await this.getSiteLanguageSettings()\r\n\r\n }\r\n\r\n /**获取配置的默认语言与选中语言 */\r\n getSiteLanguageSettings() {\r\n return new Promise((resolve, rejects) => {\r\n this._SiteAdminService.get().subscribe((res) => {\r\n this.newEntity.patchValue({\r\n defaultLanguage: res.defaultLanguage,\r\n allLanguages: res.allLanguages\r\n })\r\n this.languagesSystem.forEach((el) => {\r\n el.ischecked = res.allLanguages.includes(el.cultureName)\r\n el.isDefault = el.cultureName === res.defaultLanguage\r\n })\r\n resolve(true)\r\n })\r\n })\r\n }\r\n\r\n /**语言改变 */\r\n setLanguagesChange(event, item) {\r\n let checked = event.target.checked\r\n item.ischecked = checked\r\n this.setFromLangguages()\r\n }\r\n\r\n /**设置默认语言 */\r\n setDefault(items) {\r\n this.languagesSystem.forEach(el => {\r\n el.isDefault = false\r\n })\r\n items.isDefault = true\r\n this.newEntity.patchValue({\r\n defaultLanguage: items.cultureName\r\n })\r\n this.setFromLangguages()\r\n }\r\n /**设置表单中的语言 */\r\n setFromLangguages() {\r\n let languagesSelect = this.languagesSystem.filter(el => el.ischecked == true).map(el => el.cultureName)\r\n this.newEntity.patchValue({\r\n allLanguages: languagesSelect\r\n })\r\n if (languagesSelect.length == 0) {\r\n this.languagesSystem.forEach(el => {\r\n el.isDefault = false\r\n })\r\n }\r\n }\r\n /**保存 */\r\n SaveSubmit() {\r\n let input = this.newEntity.value\r\n this._SiteAdminService.update({\r\n ...input\r\n }).subscribe((res => {\r\n this.toaster.success(this._LocalizationService.instant(`AbpUi::SavedSuccessfully`));\r\n this.getSiteLanguageSettings()\r\n }))\r\n }\r\n}\r\n","<form [formGroup]=\"newEntity\" (keydown.enter)=\"$event.preventDefault()\" (submit)=\"SaveSubmit()\">\r\n <div class=\"d-flex align-items-center justify-content-between\">\r\n <h2>{{eCmsRouteNames.SiteLanguage|abpLocalization}}</h2>\r\n <button class=\"btn btn-primary btn-sm\" type=\"submit\"><i\r\n class=\"me-1 fas fa-save\"></i>{{'AbpUi::保存'|abpLocalization}}</button>\r\n </div>\r\n <hr class=\"my-3\" />\r\n <div class=\"mb-2\">\r\n <label class=\"form-label\" for=\"title\">{{'Travely::Language' | abpLocalization}}</label>\r\n <ul class=\"list-group\">\r\n <ng-container *ngFor=\"let item of languagesSystem;let i=index\">\r\n <li class=\"list-group-item d-flex align-items-center justify-content-between\">\r\n <div class=\"form-check\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" id=\"Languages{{i}}\"\r\n [checked]=\"item.ischecked\" (change)=\"setLanguagesChange($event,item)\" />\r\n <label class=\"form-check-label\" for=\"Languages{{i}}\">\r\n {{item.displayName}}\r\n </label>\r\n </div>\r\n <ng-container *ngIf=\"item.ischecked\">\r\n <div class=\"text-primary fs-5\" type=\"button\" *ngIf=\"item.isDefault\">\r\n {{'Travely::Default'|abpLocalization}}</div>\r\n <div class=\"text-muted fs-5\" type=\"button\" (click.stop)=\"setDefault(item)\"\r\n *ngIf=\"!item.isDefault\">{{'Travely::SetDefault'|abpLocalization}}</div>\r\n </ng-container>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n <hr class=\"my-3\" />\r\n</form>","import { eLayoutType, RoutesService } from '@abp/ng.core';\r\nimport { APP_INITIALIZER } from '@angular/core';\r\nimport { eCmsRouteNames } from '../enums/route-names';\r\nimport { SettingTabsService } from '@abp/ng.setting-management/config';\r\nimport { DomainsComponent } from '../components/domains/domains.component';\r\nimport { SiteLanguageComponent } from '../components/site-language/site-language.component';\r\n\r\n\r\n\r\n\r\n\r\nexport const CMS_ROUTE_PROVIDERS = [\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: configureRoutes,\r\n deps: [RoutesService, SettingTabsService],\r\n multi: true,\r\n },\r\n];\r\n\r\n\r\nexport function configureRoutes(routesService: RoutesService, settingTabs: SettingTabsService) {\r\n return () => {\r\n settingTabs.add([\r\n {\r\n name: 'Cms::Domain',\r\n requiredPolicy: 'CmsAdmin.Domain',\r\n component: DomainsComponent,\r\n },\r\n {\r\n name: eCmsRouteNames.SiteLanguage,\r\n requiredPolicy: 'TravelyAdmin.SiteSetting',\r\n component: SiteLanguageComponent, \r\n },\r\n ]);\r\n routesService.add([\r\n {\r\n path: '/cms',\r\n name: eCmsRouteNames.Cms,\r\n iconClass: 'bi-archive-fill',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Entry || CmsAdmin.Field || CmsAdmin.Site || CmsAdmin.Section',\r\n },\r\n {\r\n path: '/cms/admin/entries',\r\n name: eCmsRouteNames.Entries,\r\n parentName: eCmsRouteNames.Cms,\r\n iconClass: 'bi-file-earmark-text-fill',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Entry',\r\n },\r\n {\r\n path: '',\r\n name: eCmsRouteNames.Settings,\r\n parentName: eCmsRouteNames.Cms,\r\n iconClass: 'fas fa fa-cog',\r\n layout: eLayoutType.application,\r\n requiredPolicy: 'CmsAdmin.Field || CmsAdmin.Section',\r\n },\r\n {\r\n path: '/cms/admin/fields',\r\n name: eCmsRouteNames.Fields,\r\n parentName: eCmsRouteNames.Settings,\r\n iconClass: 'bi-file-earmark-text-fill',\r\n layout: eLayoutType.application,\r\n order: 1,\r\n requiredPolicy: 'CmsAdmin.Field',\r\n },\r\n {\r\n path: '/cms/admin/sections',\r\n name: eCmsRouteNames.Sections,\r\n parentName: eCmsRouteNames.Settings,\r\n iconClass: 'bi bi-menu-button-wide-fill',\r\n layout: eLayoutType.application,\r\n order: 3,\r\n requiredPolicy: 'CmsAdmin.Section',\r\n },\r\n \r\n\r\n ]);\r\n };\r\n}\r\n","import { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { CMS_ROUTE_PROVIDERS } from './providers/route.provider';\r\n\r\n@NgModule()\r\nexport class CmsConfigModule {\r\n static forRoot(): ModuleWithProviders<CmsConfigModule> {\r\n return {\r\n ngModule: CmsConfigModule,\r\n providers: [CMS_ROUTE_PROVIDERS],\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3"],"mappings":"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"}