@memberjunction/ng-dashboards 5.34.1 → 5.35.0

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 (346) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.d.ts +51 -0
  2. package/dist/AI/components/agents/agent-configuration.component.d.ts.map +1 -1
  3. package/dist/AI/components/agents/agent-configuration.component.js +399 -292
  4. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  5. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts +8 -2
  6. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.d.ts.map +1 -1
  7. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js +87 -85
  8. package/dist/AI/components/analytics/agent-runs/agent-run-analysis.component.js.map +1 -1
  9. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts +75 -0
  10. package/dist/AI/components/analytics/ai-analytics-resource.component.d.ts.map +1 -1
  11. package/dist/AI/components/analytics/ai-analytics-resource.component.js +400 -89
  12. package/dist/AI/components/analytics/ai-analytics-resource.component.js.map +1 -1
  13. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts +5 -0
  14. package/dist/AI/components/analytics/analytics-filter-bar.component.d.ts.map +1 -1
  15. package/dist/AI/components/analytics/analytics-filter-bar.component.js +184 -135
  16. package/dist/AI/components/analytics/analytics-filter-bar.component.js.map +1 -1
  17. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts +8 -2
  18. package/dist/AI/components/analytics/cost-budget/cost-budget.component.d.ts.map +1 -1
  19. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js +104 -103
  20. package/dist/AI/components/analytics/cost-budget/cost-budget.component.js.map +1 -1
  21. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts +8 -2
  22. package/dist/AI/components/analytics/error-analysis/error-analysis.component.d.ts.map +1 -1
  23. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js +76 -74
  24. package/dist/AI/components/analytics/error-analysis/error-analysis.component.js.map +1 -1
  25. package/dist/AI/components/analytics/executive-summary/executive-summary.component.d.ts.map +1 -1
  26. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js +67 -87
  27. package/dist/AI/components/analytics/executive-summary/executive-summary.component.js.map +1 -1
  28. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts +12 -19
  29. package/dist/AI/components/analytics/model-performance/model-performance.component.d.ts.map +1 -1
  30. package/dist/AI/components/analytics/model-performance/model-performance.component.js +96 -203
  31. package/dist/AI/components/analytics/model-performance/model-performance.component.js.map +1 -1
  32. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.d.ts.map +1 -1
  33. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js +110 -126
  34. package/dist/AI/components/analytics/prompt-runs/prompt-run-analysis.component.js.map +1 -1
  35. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.d.ts.map +1 -1
  36. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js +61 -77
  37. package/dist/AI/components/analytics/usage-patterns/usage-patterns.component.js.map +1 -1
  38. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js +990 -992
  39. package/dist/AI/components/autotagging/autotagging-pipeline-resource.component.js.map +1 -1
  40. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts +6 -3
  41. package/dist/AI/components/duplicates/duplicate-detection-resource.component.d.ts.map +1 -1
  42. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js +493 -490
  43. package/dist/AI/components/duplicates/duplicate-detection-resource.component.js.map +1 -1
  44. package/dist/AI/components/models/model-management.component.d.ts +17 -0
  45. package/dist/AI/components/models/model-management.component.d.ts.map +1 -1
  46. package/dist/AI/components/models/model-management.component.js +370 -425
  47. package/dist/AI/components/models/model-management.component.js.map +1 -1
  48. package/dist/AI/components/prompts/prompt-management.component.d.ts +17 -0
  49. package/dist/AI/components/prompts/prompt-management.component.d.ts.map +1 -1
  50. package/dist/AI/components/prompts/prompt-management.component.js +317 -357
  51. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  52. package/dist/AI/components/requests/agent-requests-resource.component.d.ts +11 -0
  53. package/dist/AI/components/requests/agent-requests-resource.component.d.ts.map +1 -1
  54. package/dist/AI/components/requests/agent-requests-resource.component.js +170 -175
  55. package/dist/AI/components/requests/agent-requests-resource.component.js.map +1 -1
  56. package/dist/AI/components/system/system-configuration.component.d.ts +19 -0
  57. package/dist/AI/components/system/system-configuration.component.d.ts.map +1 -1
  58. package/dist/AI/components/system/system-configuration.component.js +403 -362
  59. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  60. package/dist/AI/components/tags/tags-resource.component.js +781 -783
  61. package/dist/AI/components/tags/tags-resource.component.js.map +1 -1
  62. package/dist/AI/components/vectors/vector-management-resource.component.d.ts +8 -3
  63. package/dist/AI/components/vectors/vector-management-resource.component.d.ts.map +1 -1
  64. package/dist/AI/components/vectors/vector-management-resource.component.js +547 -521
  65. package/dist/AI/components/vectors/vector-management-resource.component.js.map +1 -1
  66. package/dist/Actions/components/actions-overview.component.d.ts +6 -0
  67. package/dist/Actions/components/actions-overview.component.d.ts.map +1 -1
  68. package/dist/Actions/components/actions-overview.component.js +79 -30
  69. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  70. package/dist/Actions/components/execution-monitoring.component.d.ts +9 -3
  71. package/dist/Actions/components/execution-monitoring.component.d.ts.map +1 -1
  72. package/dist/Actions/components/execution-monitoring.component.js +196 -142
  73. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  74. package/dist/Actions/components/explorer/action-explorer.component.d.ts +41 -1
  75. package/dist/Actions/components/explorer/action-explorer.component.d.ts.map +1 -1
  76. package/dist/Actions/components/explorer/action-explorer.component.js +388 -94
  77. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  78. package/dist/Actions/components/explorer/index.d.ts +0 -1
  79. package/dist/Actions/components/explorer/index.d.ts.map +1 -1
  80. package/dist/Actions/components/explorer/index.js +0 -1
  81. package/dist/Actions/components/explorer/index.js.map +1 -1
  82. package/dist/Admin/admin-data-schema.component.js +32 -40
  83. package/dist/Admin/admin-data-schema.component.js.map +1 -1
  84. package/dist/Admin/admin-dev-tools-resource.component.js +32 -40
  85. package/dist/Admin/admin-dev-tools-resource.component.js.map +1 -1
  86. package/dist/Admin/admin-identity-access.component.js +32 -40
  87. package/dist/Admin/admin-identity-access.component.js.map +1 -1
  88. package/dist/Admin/admin-monitoring.component.js +32 -40
  89. package/dist/Admin/admin-monitoring.component.js.map +1 -1
  90. package/dist/ApplicationRoles/application-roles-resource.component.js +76 -82
  91. package/dist/ApplicationRoles/application-roles-resource.component.js.map +1 -1
  92. package/dist/Archiving/components/archive-config-resource.component.d.ts.map +1 -1
  93. package/dist/Archiving/components/archive-config-resource.component.js +24 -5
  94. package/dist/Archiving/components/archive-config-resource.component.js.map +1 -1
  95. package/dist/Archiving/components/archive-runs-resource.component.d.ts.map +1 -1
  96. package/dist/Archiving/components/archive-runs-resource.component.js +24 -5
  97. package/dist/Archiving/components/archive-runs-resource.component.js.map +1 -1
  98. package/dist/Communication/communication-logs-resource.component.d.ts +1 -1
  99. package/dist/Communication/communication-logs-resource.component.d.ts.map +1 -1
  100. package/dist/Communication/communication-logs-resource.component.js +80 -99
  101. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  102. package/dist/Communication/communication-monitor-resource.component.d.ts.map +1 -1
  103. package/dist/Communication/communication-monitor-resource.component.js +127 -106
  104. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  105. package/dist/Communication/communication-providers-resource.component.d.ts.map +1 -1
  106. package/dist/Communication/communication-providers-resource.component.js +44 -45
  107. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  108. package/dist/Communication/communication-runs-resource.component.d.ts.map +1 -1
  109. package/dist/Communication/communication-runs-resource.component.js +60 -58
  110. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  111. package/dist/Communication/communication-templates-resource.component.d.ts +1 -1
  112. package/dist/Communication/communication-templates-resource.component.d.ts.map +1 -1
  113. package/dist/Communication/communication-templates-resource.component.js +139 -162
  114. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  115. package/dist/Credentials/components/credentials-audit-resource.component.d.ts +7 -0
  116. package/dist/Credentials/components/credentials-audit-resource.component.d.ts.map +1 -1
  117. package/dist/Credentials/components/credentials-audit-resource.component.js +310 -297
  118. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  119. package/dist/Credentials/components/credentials-categories-resource.component.js +245 -266
  120. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  121. package/dist/Credentials/components/credentials-list-resource.component.d.ts +7 -0
  122. package/dist/Credentials/components/credentials-list-resource.component.d.ts.map +1 -1
  123. package/dist/Credentials/components/credentials-list-resource.component.js +381 -399
  124. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  125. package/dist/Credentials/components/credentials-overview-resource.component.js +222 -228
  126. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  127. package/dist/Credentials/components/credentials-types-resource.component.d.ts +6 -0
  128. package/dist/Credentials/components/credentials-types-resource.component.d.ts.map +1 -1
  129. package/dist/Credentials/components/credentials-types-resource.component.js +294 -305
  130. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  131. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts +8 -0
  132. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.d.ts.map +1 -1
  133. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js +21 -0
  134. package/dist/DatabaseDesigner/components/database-designer-dashboard.component.js.map +1 -1
  135. package/dist/DatabaseDesigner/components/entity-list.component.js +147 -160
  136. package/dist/DatabaseDesigner/components/entity-list.component.js.map +1 -1
  137. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts +1 -1
  138. package/dist/DatabaseDesigner/database-designer-dashboards.module.d.ts.map +1 -1
  139. package/dist/DatabaseDesigner/database-designer-dashboards.module.js +19 -1
  140. package/dist/DatabaseDesigner/database-designer-dashboards.module.js.map +1 -1
  141. package/dist/EntityAdmin/entity-admin-dashboard.component.js +20 -16
  142. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  143. package/dist/Home/home-dashboard.component.d.ts +6 -0
  144. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  145. package/dist/Home/home-dashboard.component.js +521 -485
  146. package/dist/Home/home-dashboard.component.js.map +1 -1
  147. package/dist/Integration/components/activity/activity.component.d.ts +8 -0
  148. package/dist/Integration/components/activity/activity.component.d.ts.map +1 -1
  149. package/dist/Integration/components/activity/activity.component.js +309 -318
  150. package/dist/Integration/components/activity/activity.component.js.map +1 -1
  151. package/dist/Integration/components/connections/connections.component.js +866 -847
  152. package/dist/Integration/components/connections/connections.component.js.map +1 -1
  153. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js +234 -233
  154. package/dist/Integration/components/mapping-workspace/mapping-workspace.component.js.map +1 -1
  155. package/dist/Integration/components/overview/overview.component.js +182 -163
  156. package/dist/Integration/components/overview/overview.component.js.map +1 -1
  157. package/dist/Integration/components/pipelines/pipelines.component.d.ts +2 -0
  158. package/dist/Integration/components/pipelines/pipelines.component.d.ts.map +1 -1
  159. package/dist/Integration/components/pipelines/pipelines.component.js +610 -606
  160. package/dist/Integration/components/pipelines/pipelines.component.js.map +1 -1
  161. package/dist/Integration/components/schedules/schedules.component.js +241 -241
  162. package/dist/Integration/components/schedules/schedules.component.js.map +1 -1
  163. package/dist/Integration/integration.module.d.ts +1 -1
  164. package/dist/Integration/integration.module.d.ts.map +1 -1
  165. package/dist/Integration/integration.module.js +28 -1
  166. package/dist/Integration/integration.module.js.map +1 -1
  167. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js +673 -674
  168. package/dist/KnowledgeHub/components/analytics/analytics-resource.component.js.map +1 -1
  169. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js +54 -51
  170. package/dist/KnowledgeHub/components/clusters/cluster-visualization-resource.component.js.map +1 -1
  171. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js +745 -703
  172. package/dist/KnowledgeHub/components/config/knowledge-config-resource.component.js.map +1 -1
  173. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts +12 -1
  174. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.d.ts.map +1 -1
  175. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js +191 -120
  176. package/dist/KnowledgeHub/components/scheduling/scheduling-resource.component.js.map +1 -1
  177. package/dist/Lists/components/lists-browse-resource.component.d.ts +18 -1
  178. package/dist/Lists/components/lists-browse-resource.component.d.ts.map +1 -1
  179. package/dist/Lists/components/lists-browse-resource.component.js +486 -532
  180. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  181. package/dist/Lists/components/lists-categories-resource.component.d.ts.map +1 -1
  182. package/dist/Lists/components/lists-categories-resource.component.js +152 -160
  183. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  184. package/dist/Lists/components/lists-my-lists-resource.component.d.ts.map +1 -1
  185. package/dist/Lists/components/lists-my-lists-resource.component.js +302 -319
  186. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  187. package/dist/Lists/components/lists-operations-resource.component.d.ts.map +1 -1
  188. package/dist/Lists/components/lists-operations-resource.component.js +234 -246
  189. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  190. package/dist/MCP/mcp-dashboard.component.d.ts +20 -0
  191. package/dist/MCP/mcp-dashboard.component.d.ts.map +1 -1
  192. package/dist/MCP/mcp-dashboard.component.js +1248 -1338
  193. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  194. package/dist/MCP/mcp.module.d.ts +1 -1
  195. package/dist/MCP/mcp.module.d.ts.map +1 -1
  196. package/dist/MCP/mcp.module.js +34 -1
  197. package/dist/MCP/mcp.module.js.map +1 -1
  198. package/dist/Permissions/audit-log-resource.component.js +76 -85
  199. package/dist/Permissions/audit-log-resource.component.js.map +1 -1
  200. package/dist/Permissions/resource-access-resource.component.js +64 -69
  201. package/dist/Permissions/resource-access-resource.component.js.map +1 -1
  202. package/dist/Permissions/user-access-resource.component.js +63 -74
  203. package/dist/Permissions/user-access-resource.component.js.map +1 -1
  204. package/dist/QueryBrowser/query-browser-resource.component.js +2 -2
  205. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  206. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts +2 -1
  207. package/dist/Scheduling/components/scheduling-activity-resource.component.d.ts.map +1 -1
  208. package/dist/Scheduling/components/scheduling-activity-resource.component.js +11 -12
  209. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  210. package/dist/Scheduling/components/scheduling-activity.component.d.ts +9 -1
  211. package/dist/Scheduling/components/scheduling-activity.component.d.ts.map +1 -1
  212. package/dist/Scheduling/components/scheduling-activity.component.js +250 -197
  213. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  214. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts +2 -1
  215. package/dist/Scheduling/components/scheduling-jobs-resource.component.d.ts.map +1 -1
  216. package/dist/Scheduling/components/scheduling-jobs-resource.component.js +11 -12
  217. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  218. package/dist/Scheduling/components/scheduling-jobs.component.d.ts +9 -1
  219. package/dist/Scheduling/components/scheduling-jobs.component.d.ts.map +1 -1
  220. package/dist/Scheduling/components/scheduling-jobs.component.js +203 -147
  221. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  222. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts +2 -1
  223. package/dist/Scheduling/components/scheduling-overview-resource.component.d.ts.map +1 -1
  224. package/dist/Scheduling/components/scheduling-overview-resource.component.js +11 -12
  225. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  226. package/dist/Scheduling/components/scheduling-overview.component.d.ts +3 -1
  227. package/dist/Scheduling/components/scheduling-overview.component.d.ts.map +1 -1
  228. package/dist/Scheduling/components/scheduling-overview.component.js +224 -190
  229. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  230. package/dist/Scheduling/scheduling-dashboard.component.d.ts +19 -6
  231. package/dist/Scheduling/scheduling-dashboard.component.d.ts.map +1 -1
  232. package/dist/Scheduling/scheduling-dashboard.component.js +262 -104
  233. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  234. package/dist/SystemDiagnostics/system-diagnostics.component.js +773 -783
  235. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  236. package/dist/Testing/components/testing-analytics-resource.component.d.ts +2 -1
  237. package/dist/Testing/components/testing-analytics-resource.component.d.ts.map +1 -1
  238. package/dist/Testing/components/testing-analytics-resource.component.js +7 -14
  239. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  240. package/dist/Testing/components/testing-analytics.component.d.ts +3 -1
  241. package/dist/Testing/components/testing-analytics.component.d.ts.map +1 -1
  242. package/dist/Testing/components/testing-analytics.component.js +420 -393
  243. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  244. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts +2 -1
  245. package/dist/Testing/components/testing-dashboard-tab-resource.component.d.ts.map +1 -1
  246. package/dist/Testing/components/testing-dashboard-tab-resource.component.js +16 -19
  247. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  248. package/dist/Testing/components/testing-dashboard-tab.component.d.ts +3 -1
  249. package/dist/Testing/components/testing-dashboard-tab.component.d.ts.map +1 -1
  250. package/dist/Testing/components/testing-dashboard-tab.component.js +157 -122
  251. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  252. package/dist/Testing/components/testing-explorer-resource.component.d.ts +2 -1
  253. package/dist/Testing/components/testing-explorer-resource.component.d.ts.map +1 -1
  254. package/dist/Testing/components/testing-explorer-resource.component.js +7 -12
  255. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  256. package/dist/Testing/components/testing-explorer.component.d.ts +8 -1
  257. package/dist/Testing/components/testing-explorer.component.d.ts.map +1 -1
  258. package/dist/Testing/components/testing-explorer.component.js +587 -608
  259. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  260. package/dist/Testing/components/testing-review-resource.component.d.ts +4 -1
  261. package/dist/Testing/components/testing-review-resource.component.d.ts.map +1 -1
  262. package/dist/Testing/components/testing-review-resource.component.js +9 -12
  263. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  264. package/dist/Testing/components/testing-review.component.d.ts +3 -1
  265. package/dist/Testing/components/testing-review.component.d.ts.map +1 -1
  266. package/dist/Testing/components/testing-review.component.js +310 -274
  267. package/dist/Testing/components/testing-review.component.js.map +1 -1
  268. package/dist/Testing/components/testing-runs-resource.component.d.ts +2 -1
  269. package/dist/Testing/components/testing-runs-resource.component.d.ts.map +1 -1
  270. package/dist/Testing/components/testing-runs-resource.component.js +16 -19
  271. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  272. package/dist/Testing/components/testing-runs.component.d.ts +3 -1
  273. package/dist/Testing/components/testing-runs.component.d.ts.map +1 -1
  274. package/dist/Testing/components/testing-runs.component.js +307 -273
  275. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  276. package/dist/Testing/testing-dashboard.component.d.ts +2 -0
  277. package/dist/Testing/testing-dashboard.component.d.ts.map +1 -1
  278. package/dist/Testing/testing-dashboard.component.js +107 -93
  279. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  280. package/dist/VersionHistory/components/diff-resource.component.js +185 -188
  281. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  282. package/dist/VersionHistory/components/graph-resource.component.js +154 -184
  283. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  284. package/dist/VersionHistory/components/labels-resource.component.d.ts +7 -0
  285. package/dist/VersionHistory/components/labels-resource.component.d.ts.map +1 -1
  286. package/dist/VersionHistory/components/labels-resource.component.js +350 -354
  287. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  288. package/dist/VersionHistory/components/restore-resource.component.js +163 -169
  289. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  290. package/dist/actions-dashboards.module.d.ts +15 -16
  291. package/dist/actions-dashboards.module.d.ts.map +1 -1
  292. package/dist/actions-dashboards.module.js +34 -11
  293. package/dist/actions-dashboards.module.js.map +1 -1
  294. package/dist/ai-dashboards.module.d.ts +45 -48
  295. package/dist/ai-dashboards.module.d.ts.map +1 -1
  296. package/dist/ai-dashboards.module.js +36 -10
  297. package/dist/ai-dashboards.module.js.map +1 -1
  298. package/dist/archiving-dashboards.module.d.ts +2 -1
  299. package/dist/archiving-dashboards.module.d.ts.map +1 -1
  300. package/dist/archiving-dashboards.module.js +12 -2
  301. package/dist/archiving-dashboards.module.js.map +1 -1
  302. package/dist/communication-dashboards.module.d.ts +2 -1
  303. package/dist/communication-dashboards.module.d.ts.map +1 -1
  304. package/dist/communication-dashboards.module.js +24 -3
  305. package/dist/communication-dashboards.module.js.map +1 -1
  306. package/dist/core-dashboards.module.d.ts +1 -1
  307. package/dist/core-dashboards.module.d.ts.map +1 -1
  308. package/dist/core-dashboards.module.js +31 -1
  309. package/dist/core-dashboards.module.js.map +1 -1
  310. package/dist/credentials-dashboards.module.d.ts +1 -1
  311. package/dist/credentials-dashboards.module.d.ts.map +1 -1
  312. package/dist/credentials-dashboards.module.js +28 -1
  313. package/dist/credentials-dashboards.module.js.map +1 -1
  314. package/dist/lists-dashboards.module.d.ts +1 -1
  315. package/dist/lists-dashboards.module.d.ts.map +1 -1
  316. package/dist/lists-dashboards.module.js +28 -1
  317. package/dist/lists-dashboards.module.js.map +1 -1
  318. package/dist/public-api.d.ts +2 -2
  319. package/dist/public-api.d.ts.map +1 -1
  320. package/dist/public-api.js +3 -3
  321. package/dist/public-api.js.map +1 -1
  322. package/dist/scheduling-dashboards.module.d.ts +1 -1
  323. package/dist/scheduling-dashboards.module.d.ts.map +1 -1
  324. package/dist/scheduling-dashboards.module.js +31 -1
  325. package/dist/scheduling-dashboards.module.js.map +1 -1
  326. package/dist/testing-dashboards.module.d.ts +8 -7
  327. package/dist/testing-dashboards.module.d.ts.map +1 -1
  328. package/dist/testing-dashboards.module.js +30 -0
  329. package/dist/testing-dashboards.module.js.map +1 -1
  330. package/package.json +52 -52
  331. package/dist/AI/components/agents/agent-filter-panel.component.d.ts +0 -56
  332. package/dist/AI/components/agents/agent-filter-panel.component.d.ts.map +0 -1
  333. package/dist/AI/components/agents/agent-filter-panel.component.js +0 -285
  334. package/dist/AI/components/agents/agent-filter-panel.component.js.map +0 -1
  335. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts +0 -49
  336. package/dist/AI/components/prompts/prompt-filter-panel.component.d.ts.map +0 -1
  337. package/dist/AI/components/prompts/prompt-filter-panel.component.js +0 -184
  338. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +0 -1
  339. package/dist/AI/components/system/system-config-filter-panel.component.d.ts +0 -33
  340. package/dist/AI/components/system/system-config-filter-panel.component.d.ts.map +0 -1
  341. package/dist/AI/components/system/system-config-filter-panel.component.js +0 -144
  342. package/dist/AI/components/system/system-config-filter-panel.component.js.map +0 -1
  343. package/dist/Actions/components/explorer/action-toolbar.component.d.ts +0 -63
  344. package/dist/Actions/components/explorer/action-toolbar.component.d.ts.map +0 -1
  345. package/dist/Actions/components/explorer/action-toolbar.component.js +0 -463
  346. package/dist/Actions/components/explorer/action-toolbar.component.js.map +0 -1
@@ -22,19 +22,19 @@ const _forTrack0 = ($index, $item) => $item.ID;
22
22
  const _forTrack1 = ($index, $item) => $item.Name;
23
23
  const _forTrack2 = ($index, $item) => $item.Value;
24
24
  const _forTrack3 = ($index, $item) => $item.EntityID;
25
- function MappingWorkspaceComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
25
+ function MappingWorkspaceComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
26
26
  i0.ɵɵelement(0, "mj-loading", 3);
27
27
  } }
28
- function MappingWorkspaceComponent_Conditional_6_Conditional_6_Template(rf, ctx) { if (rf & 1) {
28
+ function MappingWorkspaceComponent_Conditional_5_Conditional_6_Template(rf, ctx) { if (rf & 1) {
29
29
  i0.ɵɵelement(0, "mj-loading", 9);
30
30
  } }
31
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_10_Template(rf, ctx) { if (rf & 1) {
31
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_10_Template(rf, ctx) { if (rf & 1) {
32
32
  i0.ɵɵelementStart(0, "div", 30);
33
33
  i0.ɵɵelement(1, "i", 42);
34
34
  i0.ɵɵtext(2, " Discovering objects... ");
35
35
  i0.ɵɵelementEnd();
36
36
  } }
37
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_11_Template(rf, ctx) { if (rf & 1) {
37
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_11_Template(rf, ctx) { if (rf & 1) {
38
38
  i0.ɵɵelementStart(0, "div", 31);
39
39
  i0.ɵɵelement(1, "i", 43);
40
40
  i0.ɵɵtext(2);
@@ -44,16 +44,16 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Con
44
44
  i0.ɵɵadvance(2);
45
45
  i0.ɵɵtextInterpolate1(" ", ctx_r1.DiscoverError, " ");
46
46
  } }
47
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_12_Template(rf, ctx) { if (rf & 1) {
47
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_12_Template(rf, ctx) { if (rf & 1) {
48
48
  i0.ɵɵelementStart(0, "div", 31);
49
49
  i0.ɵɵtext(1, " No objects found in external system. ");
50
50
  i0.ɵɵelementEnd();
51
51
  } }
52
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_13_Template(rf, ctx) { if (rf & 1) {
52
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_13_Template(rf, ctx) { if (rf & 1) {
53
53
  const _r5 = i0.ɵɵgetCurrentView();
54
54
  i0.ɵɵelementStart(0, "mj-dropdown", 44);
55
- i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_13_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.SelectedSourceObjectName, $event) || (ctx_r1.SelectedSourceObjectName = $event); return i0.ɵɵresetView($event); });
56
- i0.ɵɵlistener("ValueChange", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_13_Template_mj_dropdown_ValueChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnSourceObjectChange($event)); });
55
+ i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_13_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.SelectedSourceObjectName, $event) || (ctx_r1.SelectedSourceObjectName = $event); return i0.ɵɵresetView($event); });
56
+ i0.ɵɵlistener("ValueChange", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_13_Template_mj_dropdown_ValueChange_0_listener($event) { i0.ɵɵrestoreView(_r5); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnSourceObjectChange($event)); });
57
57
  i0.ɵɵelementEnd();
58
58
  } if (rf & 2) {
59
59
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -61,13 +61,13 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Con
61
61
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.SelectedSourceObjectName);
62
62
  i0.ɵɵproperty("Filterable", true)("DefaultItem", i0.ɵɵpureFunction0(5, _c2));
63
63
  } }
64
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_21_Conditional_3_Template(rf, ctx) { if (rf & 1) {
64
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_21_Conditional_3_Template(rf, ctx) { if (rf & 1) {
65
65
  i0.ɵɵelement(0, "mj-loading", 16);
66
66
  } }
67
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_21_Conditional_4_Template(rf, ctx) { if (rf & 1) {
67
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_21_Conditional_4_Template(rf, ctx) { if (rf & 1) {
68
68
  const _r6 = i0.ɵɵgetCurrentView();
69
69
  i0.ɵɵelementStart(0, "mj-dropdown", 46);
70
- i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_21_Conditional_4_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(5); i0.ɵɵtwoWayBindingSet(ctx_r1.SelectedEntityID, $event) || (ctx_r1.SelectedEntityID = $event); return i0.ɵɵresetView($event); });
70
+ i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_21_Conditional_4_Template_mj_dropdown_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r6); const ctx_r1 = i0.ɵɵnextContext(5); i0.ɵɵtwoWayBindingSet(ctx_r1.SelectedEntityID, $event) || (ctx_r1.SelectedEntityID = $event); return i0.ɵɵresetView($event); });
71
71
  i0.ɵɵelementEnd();
72
72
  } if (rf & 2) {
73
73
  const ctx_r1 = i0.ɵɵnextContext(5);
@@ -75,18 +75,18 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Con
75
75
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.SelectedEntityID);
76
76
  i0.ɵɵproperty("Filterable", true)("DefaultItem", i0.ɵɵpureFunction0(5, _c3));
77
77
  } }
78
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_21_Template(rf, ctx) { if (rf & 1) {
78
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_21_Template(rf, ctx) { if (rf & 1) {
79
79
  i0.ɵɵelementStart(0, "div", 29)(1, "label");
80
80
  i0.ɵɵtext(2, "Target MJ Entity");
81
81
  i0.ɵɵelementEnd();
82
- i0.ɵɵconditionalCreate(3, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_21_Conditional_3_Template, 1, 0, "mj-loading", 16)(4, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_21_Conditional_4_Template, 1, 6, "mj-dropdown", 45);
82
+ i0.ɵɵconditionalCreate(3, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_21_Conditional_3_Template, 1, 0, "mj-loading", 16)(4, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_21_Conditional_4_Template, 1, 6, "mj-dropdown", 45);
83
83
  i0.ɵɵelementEnd();
84
84
  } if (rf & 2) {
85
85
  const ctx_r1 = i0.ɵɵnextContext(4);
86
86
  i0.ɵɵadvance(3);
87
87
  i0.ɵɵconditional(ctx_r1.IsLoadingEntities ? 3 : 4);
88
88
  } }
89
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Conditional_12_Template(rf, ctx) { if (rf & 1) {
89
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Conditional_12_Template(rf, ctx) { if (rf & 1) {
90
90
  i0.ɵɵelementStart(0, "span", 51);
91
91
  i0.ɵɵtext(1);
92
92
  i0.ɵɵelementEnd();
@@ -95,15 +95,15 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Con
95
95
  i0.ɵɵadvance();
96
96
  i0.ɵɵtextInterpolate1("Suggested: ", ctx_r1.SuggestedTableName);
97
97
  } }
98
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_2_Template(rf, ctx) { if (rf & 1) {
98
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_2_Template(rf, ctx) { if (rf & 1) {
99
99
  i0.ɵɵelement(0, "i", 42);
100
100
  i0.ɵɵtext(1, " Generating... ");
101
101
  } }
102
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_3_Template(rf, ctx) { if (rf & 1) {
102
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_3_Template(rf, ctx) { if (rf & 1) {
103
103
  i0.ɵɵelement(0, "i", 35);
104
104
  i0.ɵɵtext(1, " Preview DDL ");
105
105
  } }
106
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_4_Template(rf, ctx) { if (rf & 1) {
106
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_4_Template(rf, ctx) { if (rf & 1) {
107
107
  i0.ɵɵelementStart(0, "div", 54);
108
108
  i0.ɵɵelement(1, "i", 43);
109
109
  i0.ɵɵtext(2);
@@ -113,7 +113,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Con
113
113
  i0.ɵɵadvance(2);
114
114
  i0.ɵɵtextInterpolate1(" ", ctx_r1.DDLPreviewError, " ");
115
115
  } }
116
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_5_Template(rf, ctx) { if (rf & 1) {
116
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_5_Template(rf, ctx) { if (rf & 1) {
117
117
  i0.ɵɵelementStart(0, "pre", 55);
118
118
  i0.ɵɵtext(1);
119
119
  i0.ɵɵelementEnd();
@@ -122,14 +122,14 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Con
122
122
  i0.ɵɵadvance();
123
123
  i0.ɵɵtextInterpolate(ctx_r1.DDLPreviewContent);
124
124
  } }
125
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Template(rf, ctx) { if (rf & 1) {
125
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Template(rf, ctx) { if (rf & 1) {
126
126
  const _r8 = i0.ɵɵgetCurrentView();
127
127
  i0.ɵɵelementStart(0, "div", 52)(1, "button", 53);
128
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.PreviewDDL()); });
129
- i0.ɵɵconditionalCreate(2, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_2_Template, 2, 0)(3, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_3_Template, 2, 0);
128
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Template_button_click_1_listener() { i0.ɵɵrestoreView(_r8); const ctx_r1 = i0.ɵɵnextContext(5); return i0.ɵɵresetView(ctx_r1.PreviewDDL()); });
129
+ i0.ɵɵconditionalCreate(2, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_2_Template, 2, 0)(3, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_3_Template, 2, 0);
130
130
  i0.ɵɵelementEnd();
131
- i0.ɵɵconditionalCreate(4, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_4_Template, 3, 1, "div", 54);
132
- i0.ɵɵconditionalCreate(5, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_5_Template, 2, 1, "pre", 55);
131
+ i0.ɵɵconditionalCreate(4, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_4_Template, 3, 1, "div", 54);
132
+ i0.ɵɵconditionalCreate(5, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Conditional_5_Template, 2, 1, "pre", 55);
133
133
  i0.ɵɵelementEnd();
134
134
  } if (rf & 2) {
135
135
  const ctx_r1 = i0.ɵɵnextContext(5);
@@ -142,7 +142,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Con
142
142
  i0.ɵɵadvance();
143
143
  i0.ɵɵconditional(ctx_r1.DDLPreviewContent ? 5 : -1);
144
144
  } }
145
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Template(rf, ctx) { if (rf & 1) {
145
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Template(rf, ctx) { if (rf & 1) {
146
146
  const _r7 = i0.ɵɵgetCurrentView();
147
147
  i0.ɵɵelementStart(0, "div", 37)(1, "div", 47);
148
148
  i0.ɵɵtext(2, "Define New Entity");
@@ -151,24 +151,24 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Con
151
151
  i0.ɵɵtext(5, "DB Schema");
152
152
  i0.ɵɵelementEnd();
153
153
  i0.ɵɵelementStart(6, "mj-combobox", 48);
154
- i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Template_mj_combobox_ngModelChange_6_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.NewEntitySchemaName, $event) || (ctx_r1.NewEntitySchemaName = $event); return i0.ɵɵresetView($event); });
155
- i0.ɵɵlistener("ValueChange", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Template_mj_combobox_ValueChange_6_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnSchemaNameChange()); });
154
+ i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Template_mj_combobox_ngModelChange_6_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.NewEntitySchemaName, $event) || (ctx_r1.NewEntitySchemaName = $event); return i0.ɵɵresetView($event); });
155
+ i0.ɵɵlistener("ValueChange", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Template_mj_combobox_ValueChange_6_listener() { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnSchemaNameChange()); });
156
156
  i0.ɵɵelementEnd()();
157
157
  i0.ɵɵelementStart(7, "div", 49)(8, "div", 29)(9, "label");
158
158
  i0.ɵɵtext(10, "Table Name");
159
159
  i0.ɵɵelementEnd();
160
160
  i0.ɵɵelementStart(11, "input", 50);
161
- i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Template_input_ngModelChange_11_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.NewEntityTableName, $event) || (ctx_r1.NewEntityTableName = $event); return i0.ɵɵresetView($event); });
161
+ i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Template_input_ngModelChange_11_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.NewEntityTableName, $event) || (ctx_r1.NewEntityTableName = $event); return i0.ɵɵresetView($event); });
162
162
  i0.ɵɵelementEnd();
163
- i0.ɵɵconditionalCreate(12, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Conditional_12_Template, 2, 1, "span", 51);
163
+ i0.ɵɵconditionalCreate(12, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Conditional_12_Template, 2, 1, "span", 51);
164
164
  i0.ɵɵelementEnd();
165
165
  i0.ɵɵelementStart(13, "div", 29)(14, "label");
166
166
  i0.ɵɵtext(15, "Entity Name");
167
167
  i0.ɵɵelementEnd();
168
168
  i0.ɵɵelementStart(16, "input", 50);
169
- i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Template_input_ngModelChange_16_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.NewEntityName, $event) || (ctx_r1.NewEntityName = $event); return i0.ɵɵresetView($event); });
169
+ i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Template_input_ngModelChange_16_listener($event) { i0.ɵɵrestoreView(_r7); const ctx_r1 = i0.ɵɵnextContext(4); i0.ɵɵtwoWayBindingSet(ctx_r1.NewEntityName, $event) || (ctx_r1.NewEntityName = $event); return i0.ɵɵresetView($event); });
170
170
  i0.ɵɵelementEnd()()();
171
- i0.ɵɵconditionalCreate(17, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Template, 6, 4, "div", 52);
171
+ i0.ɵɵconditionalCreate(17, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Conditional_17_Template, 6, 4, "div", 52);
172
172
  i0.ɵɵelementEnd();
173
173
  } if (rf & 2) {
174
174
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -187,57 +187,57 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Con
187
187
  i0.ɵɵadvance();
188
188
  i0.ɵɵconditional(ctx_r1.SelectedSourceObjectName && ctx_r1.NewEntitySchemaName && ctx_r1.NewEntityTableName ? 17 : -1);
189
189
  } }
190
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_29_Template(rf, ctx) { if (rf & 1) {
190
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_29_Template(rf, ctx) { if (rf & 1) {
191
191
  i0.ɵɵelement(0, "i", 42);
192
192
  i0.ɵɵtext(1, " Saving... ");
193
193
  } }
194
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_30_Template(rf, ctx) { if (rf & 1) {
194
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_30_Template(rf, ctx) { if (rf & 1) {
195
195
  i0.ɵɵelement(0, "i", 36);
196
196
  i0.ɵɵtext(1, " Create Pending Map ");
197
197
  } }
198
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_31_Template(rf, ctx) { if (rf & 1) {
198
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_31_Template(rf, ctx) { if (rf & 1) {
199
199
  i0.ɵɵelement(0, "i", 56);
200
200
  i0.ɵɵtext(1, " Add Map ");
201
201
  } }
202
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Template(rf, ctx) { if (rf & 1) {
202
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Template(rf, ctx) { if (rf & 1) {
203
203
  const _r4 = i0.ɵɵgetCurrentView();
204
204
  i0.ɵɵelementStart(0, "div", 22)(1, "div", 25)(2, "h5");
205
205
  i0.ɵɵelement(3, "i", 26);
206
206
  i0.ɵɵtext(4, " Add Entity Map");
207
207
  i0.ɵɵelementEnd();
208
208
  i0.ɵɵelementStart(5, "button", 27);
209
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.CloseAddPanel()); });
209
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.CloseAddPanel()); });
210
210
  i0.ɵɵelement(6, "i", 28);
211
211
  i0.ɵɵelementEnd()();
212
212
  i0.ɵɵelementStart(7, "div", 29)(8, "label");
213
213
  i0.ɵɵtext(9, "Source Object");
214
214
  i0.ɵɵelementEnd();
215
- i0.ɵɵconditionalCreate(10, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_10_Template, 3, 0, "div", 30)(11, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_11_Template, 3, 1, "div", 31)(12, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_12_Template, 2, 0, "div", 31)(13, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_13_Template, 1, 6, "mj-dropdown", 32);
215
+ i0.ɵɵconditionalCreate(10, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_10_Template, 3, 0, "div", 30)(11, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_11_Template, 3, 1, "div", 31)(12, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_12_Template, 2, 0, "div", 31)(13, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_13_Template, 1, 6, "mj-dropdown", 32);
216
216
  i0.ɵɵelementEnd();
217
217
  i0.ɵɵelementStart(14, "div", 33)(15, "button", 34);
218
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.SetTargetMode("existing")); });
218
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Template_button_click_15_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.SetTargetMode("existing")); });
219
219
  i0.ɵɵelement(16, "i", 35);
220
220
  i0.ɵɵtext(17, " Existing Entity ");
221
221
  i0.ɵɵelementEnd();
222
222
  i0.ɵɵelementStart(18, "button", 34);
223
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.SetTargetMode("new")); });
223
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Template_button_click_18_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.SetTargetMode("new")); });
224
224
  i0.ɵɵelement(19, "i", 36);
225
225
  i0.ɵɵtext(20, " New Entity ");
226
226
  i0.ɵɵelementEnd()();
227
- i0.ɵɵconditionalCreate(21, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_21_Template, 5, 1, "div", 29);
228
- i0.ɵɵconditionalCreate(22, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_22_Template, 18, 10, "div", 37);
227
+ i0.ɵɵconditionalCreate(21, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_21_Template, 5, 1, "div", 29);
228
+ i0.ɵɵconditionalCreate(22, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_22_Template, 18, 10, "div", 37);
229
229
  i0.ɵɵelementStart(23, "div", 29)(24, "label");
230
230
  i0.ɵɵtext(25, "Sync Direction");
231
231
  i0.ɵɵelementEnd();
232
232
  i0.ɵɵelementStart(26, "mj-dropdown", 38);
233
- i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Template_mj_dropdown_ngModelChange_26_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.AddSyncDirection, $event) || (ctx_r1.AddSyncDirection = $event); return i0.ɵɵresetView($event); });
233
+ i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Template_mj_dropdown_ngModelChange_26_listener($event) { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.AddSyncDirection, $event) || (ctx_r1.AddSyncDirection = $event); return i0.ɵɵresetView($event); });
234
234
  i0.ɵɵelementEnd()();
235
235
  i0.ɵɵelementStart(27, "div", 39)(28, "button", 40);
236
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.SaveAddMap()); });
237
- i0.ɵɵconditionalCreate(29, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_29_Template, 2, 0)(30, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_30_Template, 2, 0)(31, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Conditional_31_Template, 2, 0);
236
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Template_button_click_28_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.SaveAddMap()); });
237
+ i0.ɵɵconditionalCreate(29, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_29_Template, 2, 0)(30, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_30_Template, 2, 0)(31, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Conditional_31_Template, 2, 0);
238
238
  i0.ɵɵelementEnd();
239
239
  i0.ɵɵelementStart(32, "button", 41);
240
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Template_button_click_32_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.CloseAddPanel()); });
240
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Template_button_click_32_listener() { i0.ɵɵrestoreView(_r4); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.CloseAddPanel()); });
241
241
  i0.ɵɵtext(33, " Cancel ");
242
242
  i0.ɵɵelementEnd()()();
243
243
  } if (rf & 2) {
@@ -260,26 +260,26 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Tem
260
260
  i0.ɵɵadvance();
261
261
  i0.ɵɵconditional(ctx_r1.IsSavingEntityMap ? 29 : ctx_r1.TargetMode === "new" ? 30 : 31);
262
262
  } }
263
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_8_Template(rf, ctx) { if (rf & 1) {
263
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_8_Template(rf, ctx) { if (rf & 1) {
264
264
  const _r9 = i0.ɵɵgetCurrentView();
265
265
  i0.ɵɵelementStart(0, "div", 23)(1, "input", 57);
266
- i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_8_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.EntityMapSearchText, $event) || (ctx_r1.EntityMapSearchText = $event); return i0.ɵɵresetView($event); });
266
+ i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_8_Template_input_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r9); const ctx_r1 = i0.ɵɵnextContext(3); i0.ɵɵtwoWayBindingSet(ctx_r1.EntityMapSearchText, $event) || (ctx_r1.EntityMapSearchText = $event); return i0.ɵɵresetView($event); });
267
267
  i0.ɵɵelementEnd()();
268
268
  } if (rf & 2) {
269
269
  const ctx_r1 = i0.ɵɵnextContext(3);
270
270
  i0.ɵɵadvance();
271
271
  i0.ɵɵtwoWayProperty("ngModel", ctx_r1.EntityMapSearchText);
272
272
  } }
273
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_9_Template(rf, ctx) { if (rf & 1) {
273
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_9_Template(rf, ctx) { if (rf & 1) {
274
274
  const _r10 = i0.ɵɵgetCurrentView();
275
275
  i0.ɵɵelementStart(0, "p", 15);
276
276
  i0.ɵɵtext(1, " No entity maps configured. ");
277
277
  i0.ɵɵelementStart(2, "a", 58);
278
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_9_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OpenAddPanel()); });
278
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_9_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r10); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.OpenAddPanel()); });
279
279
  i0.ɵɵtext(3, "Add one");
280
280
  i0.ɵɵelementEnd()();
281
281
  } }
282
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_10_Template(rf, ctx) { if (rf & 1) {
282
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_10_Template(rf, ctx) { if (rf & 1) {
283
283
  i0.ɵɵelementStart(0, "p", 15);
284
284
  i0.ɵɵtext(1);
285
285
  i0.ɵɵelementEnd();
@@ -288,25 +288,25 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_10_Te
288
288
  i0.ɵɵadvance();
289
289
  i0.ɵɵtextInterpolate1("No matches for \"", ctx_r1.EntityMapSearchText, "\".");
290
290
  } }
291
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_11_For_2_Conditional_12_Template(rf, ctx) { if (rf & 1) {
291
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_11_For_2_Conditional_12_Template(rf, ctx) { if (rf & 1) {
292
292
  i0.ɵɵelementStart(0, "span", 69);
293
293
  i0.ɵɵtext(1, "Pending");
294
294
  i0.ɵɵelementEnd();
295
295
  } }
296
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_11_For_2_Conditional_16_Template(rf, ctx) { if (rf & 1) {
296
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_11_For_2_Conditional_16_Template(rf, ctx) { if (rf & 1) {
297
297
  const _r13 = i0.ɵɵgetCurrentView();
298
298
  i0.ɵɵelementStart(0, "mj-switch", 74);
299
- i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_11_For_2_Conditional_16_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r13); const item_r12 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(item_r12.RealMap.SyncEnabled, $event) || (item_r12.RealMap.SyncEnabled = $event); return i0.ɵɵresetView($event); });
300
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_11_For_2_Conditional_16_Template_mj_switch_ngModelChange_0_listener() { i0.ɵɵrestoreView(_r13); const item_r12 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnToggleEntityMap(item_r12.RealMap)); });
299
+ i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_11_For_2_Conditional_16_Template_mj_switch_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r13); const item_r12 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(item_r12.RealMap.SyncEnabled, $event) || (item_r12.RealMap.SyncEnabled = $event); return i0.ɵɵresetView($event); });
300
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_11_For_2_Conditional_16_Template_mj_switch_ngModelChange_0_listener() { i0.ɵɵrestoreView(_r13); const item_r12 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnToggleEntityMap(item_r12.RealMap)); });
301
301
  i0.ɵɵelementEnd();
302
302
  } if (rf & 2) {
303
303
  const item_r12 = i0.ɵɵnextContext().$implicit;
304
304
  i0.ɵɵtwoWayProperty("ngModel", item_r12.RealMap.SyncEnabled);
305
305
  } }
306
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_11_For_2_Template(rf, ctx) { if (rf & 1) {
306
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_11_For_2_Template(rf, ctx) { if (rf & 1) {
307
307
  const _r11 = i0.ɵɵgetCurrentView();
308
308
  i0.ɵɵelementStart(0, "div", 60);
309
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_11_For_2_Template_div_click_0_listener() { const item_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnMapSelect(item_r12)); });
309
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_11_For_2_Template_div_click_0_listener() { const item_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnMapSelect(item_r12)); });
310
310
  i0.ɵɵelementStart(1, "div", 61)(2, "span", 62);
311
311
  i0.ɵɵtext(3);
312
312
  i0.ɵɵelementEnd();
@@ -319,13 +319,13 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_11_Fo
319
319
  i0.ɵɵelementStart(8, "div", 66)(9, "div", 67)(10, "span", 68);
320
320
  i0.ɵɵtext(11);
321
321
  i0.ɵɵelementEnd();
322
- i0.ɵɵconditionalCreate(12, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_11_For_2_Conditional_12_Template, 2, 0, "span", 69);
322
+ i0.ɵɵconditionalCreate(12, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_11_For_2_Conditional_12_Template, 2, 0, "span", 69);
323
323
  i0.ɵɵelementEnd();
324
324
  i0.ɵɵelementStart(13, "div", 70)(14, "button", 71);
325
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_11_For_2_Template_button_click_14_listener($event) { const item_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnDeleteMap(item_r12, $event)); });
325
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_11_For_2_Template_button_click_14_listener($event) { const item_r12 = i0.ɵɵrestoreView(_r11).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnDeleteMap(item_r12, $event)); });
326
326
  i0.ɵɵelement(15, "i", 72);
327
327
  i0.ɵɵelementEnd();
328
- i0.ɵɵconditionalCreate(16, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_11_For_2_Conditional_16_Template, 1, 1, "mj-switch", 73);
328
+ i0.ɵɵconditionalCreate(16, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_11_For_2_Conditional_16_Template, 1, 1, "mj-switch", 73);
329
329
  i0.ɵɵelementEnd()()();
330
330
  } if (rf & 2) {
331
331
  const item_r12 = ctx.$implicit;
@@ -342,28 +342,28 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_11_Fo
342
342
  i0.ɵɵadvance(4);
343
343
  i0.ɵɵconditional(!item_r12.IsPending && item_r12.RealMap ? 16 : -1);
344
344
  } }
345
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_11_Template(rf, ctx) { if (rf & 1) {
345
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_11_Template(rf, ctx) { if (rf & 1) {
346
346
  i0.ɵɵelementStart(0, "div", 24);
347
- i0.ɵɵrepeaterCreate(1, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_11_For_2_Template, 17, 9, "div", 59, _forTrack0);
347
+ i0.ɵɵrepeaterCreate(1, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_11_For_2_Template, 17, 9, "div", 59, _forTrack0);
348
348
  i0.ɵɵelementEnd();
349
349
  } if (rf & 2) {
350
350
  const ctx_r1 = i0.ɵɵnextContext(3);
351
351
  i0.ɵɵadvance();
352
352
  i0.ɵɵrepeater(ctx_r1.FilteredMaps);
353
353
  } }
354
- function MappingWorkspaceComponent_Conditional_6_Conditional_7_Template(rf, ctx) { if (rf & 1) {
354
+ function MappingWorkspaceComponent_Conditional_5_Conditional_7_Template(rf, ctx) { if (rf & 1) {
355
355
  const _r3 = i0.ɵɵgetCurrentView();
356
356
  i0.ɵɵelementStart(0, "div", 17)(1, "span", 18);
357
357
  i0.ɵɵtext(2, "Entity Maps");
358
358
  i0.ɵɵelementEnd();
359
359
  i0.ɵɵelementStart(3, "div", 19)(4, "button", 20);
360
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_7_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OpenAddPanel()); });
360
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_7_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r3); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.OpenAddPanel()); });
361
361
  i0.ɵɵelement(5, "i", 21);
362
362
  i0.ɵɵtext(6, " Add Map ");
363
363
  i0.ɵɵelementEnd()()();
364
- i0.ɵɵconditionalCreate(7, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_7_Template, 34, 12, "div", 22);
365
- i0.ɵɵconditionalCreate(8, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_8_Template, 2, 1, "div", 23);
366
- i0.ɵɵconditionalCreate(9, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_9_Template, 4, 0, "p", 15)(10, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_10_Template, 2, 1, "p", 15)(11, MappingWorkspaceComponent_Conditional_6_Conditional_7_Conditional_11_Template, 3, 0, "div", 24);
364
+ i0.ɵɵconditionalCreate(7, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_7_Template, 34, 12, "div", 22);
365
+ i0.ɵɵconditionalCreate(8, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_8_Template, 2, 1, "div", 23);
366
+ i0.ɵɵconditionalCreate(9, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_9_Template, 4, 0, "p", 15)(10, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_10_Template, 2, 1, "p", 15)(11, MappingWorkspaceComponent_Conditional_5_Conditional_7_Conditional_11_Template, 3, 0, "div", 24);
367
367
  } if (rf & 2) {
368
368
  const ctx_r1 = i0.ɵɵnextContext(2);
369
369
  i0.ɵɵadvance(7);
@@ -373,20 +373,20 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_7_Template(rf, ctx)
373
373
  i0.ɵɵadvance();
374
374
  i0.ɵɵconditional(ctx_r1.AllMaps.length === 0 && !ctx_r1.ShowAddPanel ? 9 : ctx_r1.FilteredMaps.length === 0 && ctx_r1.AllMaps.length > 0 ? 10 : 11);
375
375
  } }
376
- function MappingWorkspaceComponent_Conditional_6_Conditional_9_Template(rf, ctx) { if (rf & 1) {
376
+ function MappingWorkspaceComponent_Conditional_5_Conditional_9_Template(rf, ctx) { if (rf & 1) {
377
377
  i0.ɵɵelementStart(0, "div", 11);
378
378
  i0.ɵɵelement(1, "i", 75);
379
379
  i0.ɵɵelementStart(2, "p");
380
380
  i0.ɵɵtext(3, "Select an entity map from the left panel to view and edit field mappings.");
381
381
  i0.ɵɵelementEnd()();
382
382
  } }
383
- function MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_19_Template(rf, ctx) { if (rf & 1) {
383
+ function MappingWorkspaceComponent_Conditional_5_Conditional_10_Conditional_19_Template(rf, ctx) { if (rf & 1) {
384
384
  i0.ɵɵelement(0, "i", 56);
385
385
  } }
386
- function MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_20_Template(rf, ctx) { if (rf & 1) {
386
+ function MappingWorkspaceComponent_Conditional_5_Conditional_10_Conditional_20_Template(rf, ctx) { if (rf & 1) {
387
387
  i0.ɵɵtext(0, " 2 ");
388
388
  } }
389
- function MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_35_Template(rf, ctx) { if (rf & 1) {
389
+ function MappingWorkspaceComponent_Conditional_5_Conditional_10_Conditional_35_Template(rf, ctx) { if (rf & 1) {
390
390
  const _r14 = i0.ɵɵgetCurrentView();
391
391
  i0.ɵɵelementStart(0, "div", 85)(1, "h4", 87);
392
392
  i0.ɵɵelement(2, "i", 35);
@@ -396,7 +396,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_35_T
396
396
  i0.ɵɵtext(5);
397
397
  i0.ɵɵelementEnd();
398
398
  i0.ɵɵelementStart(6, "div", 89)(7, "button", 90);
399
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_35_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.CopyDDLToClipboard(ctx_r1.SelectedPendingMap.DDLContent)); });
399
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_10_Conditional_35_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r14); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.CopyDDLToClipboard(ctx_r1.SelectedPendingMap.DDLContent)); });
400
400
  i0.ɵɵelement(8, "i", 91);
401
401
  i0.ɵɵtext(9, " Copy DDL ");
402
402
  i0.ɵɵelementEnd()()();
@@ -405,23 +405,23 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_35_T
405
405
  i0.ɵɵadvance(5);
406
406
  i0.ɵɵtextInterpolate(ctx_r1.SelectedPendingMap.DDLContent);
407
407
  } }
408
- function MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_36_For_8_Conditional_5_Template(rf, ctx) { if (rf & 1) {
408
+ function MappingWorkspaceComponent_Conditional_5_Conditional_10_Conditional_36_For_8_Conditional_5_Template(rf, ctx) { if (rf & 1) {
409
409
  i0.ɵɵelement(0, "i", 99);
410
410
  } }
411
- function MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_36_For_8_Conditional_6_Template(rf, ctx) { if (rf & 1) {
411
+ function MappingWorkspaceComponent_Conditional_5_Conditional_10_Conditional_36_For_8_Conditional_6_Template(rf, ctx) { if (rf & 1) {
412
412
  i0.ɵɵelementStart(0, "span", 100);
413
413
  i0.ɵɵtext(1, "*");
414
414
  i0.ɵɵelementEnd();
415
415
  } }
416
- function MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_36_For_8_Template(rf, ctx) { if (rf & 1) {
416
+ function MappingWorkspaceComponent_Conditional_5_Conditional_10_Conditional_36_For_8_Template(rf, ctx) { if (rf & 1) {
417
417
  i0.ɵɵelementStart(0, "div", 96)(1, "span", 97);
418
418
  i0.ɵɵtext(2);
419
419
  i0.ɵɵelementEnd();
420
420
  i0.ɵɵelementStart(3, "span", 98);
421
421
  i0.ɵɵtext(4);
422
422
  i0.ɵɵelementEnd();
423
- i0.ɵɵconditionalCreate(5, MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_36_For_8_Conditional_5_Template, 1, 0, "i", 99);
424
- i0.ɵɵconditionalCreate(6, MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_36_For_8_Conditional_6_Template, 2, 0, "span", 100);
423
+ i0.ɵɵconditionalCreate(5, MappingWorkspaceComponent_Conditional_5_Conditional_10_Conditional_36_For_8_Conditional_5_Template, 1, 0, "i", 99);
424
+ i0.ɵɵconditionalCreate(6, MappingWorkspaceComponent_Conditional_5_Conditional_10_Conditional_36_For_8_Conditional_6_Template, 2, 0, "span", 100);
425
425
  i0.ɵɵelementEnd();
426
426
  } if (rf & 2) {
427
427
  const field_r15 = ctx.$implicit;
@@ -434,7 +434,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_36_F
434
434
  i0.ɵɵadvance();
435
435
  i0.ɵɵconditional(field_r15.IsRequired ? 6 : -1);
436
436
  } }
437
- function MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_36_Template(rf, ctx) { if (rf & 1) {
437
+ function MappingWorkspaceComponent_Conditional_5_Conditional_10_Conditional_36_Template(rf, ctx) { if (rf & 1) {
438
438
  i0.ɵɵelementStart(0, "div", 86)(1, "h4", 92);
439
439
  i0.ɵɵelement(2, "i", 93);
440
440
  i0.ɵɵtext(3, " Source Fields ");
@@ -442,7 +442,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_36_T
442
442
  i0.ɵɵtext(5);
443
443
  i0.ɵɵelementEnd()();
444
444
  i0.ɵɵelementStart(6, "div", 95);
445
- i0.ɵɵrepeaterCreate(7, MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_36_For_8_Template, 7, 4, "div", 96, _forTrack1);
445
+ i0.ɵɵrepeaterCreate(7, MappingWorkspaceComponent_Conditional_5_Conditional_10_Conditional_36_For_8_Template, 7, 4, "div", 96, _forTrack1);
446
446
  i0.ɵɵelementEnd()();
447
447
  } if (rf & 2) {
448
448
  const ctx_r1 = i0.ɵɵnextContext(3);
@@ -451,7 +451,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_36_T
451
451
  i0.ɵɵadvance(2);
452
452
  i0.ɵɵrepeater(ctx_r1.SelectedPendingMap.SourceFields);
453
453
  } }
454
- function MappingWorkspaceComponent_Conditional_6_Conditional_10_Template(rf, ctx) { if (rf & 1) {
454
+ function MappingWorkspaceComponent_Conditional_5_Conditional_10_Template(rf, ctx) { if (rf & 1) {
455
455
  i0.ɵɵelementStart(0, "div", 12)(1, "div", 76);
456
456
  i0.ɵɵelement(2, "i", 77);
457
457
  i0.ɵɵelementEnd();
@@ -473,7 +473,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_10_Template(rf, ctx
473
473
  i0.ɵɵelementEnd()();
474
474
  i0.ɵɵelement(16, "div", 82);
475
475
  i0.ɵɵelementStart(17, "div", 79)(18, "div", 83);
476
- i0.ɵɵconditionalCreate(19, MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_19_Template, 1, 0, "i", 56)(20, MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_20_Template, 1, 0);
476
+ i0.ɵɵconditionalCreate(19, MappingWorkspaceComponent_Conditional_5_Conditional_10_Conditional_19_Template, 1, 0, "i", 56)(20, MappingWorkspaceComponent_Conditional_5_Conditional_10_Conditional_20_Template, 1, 0);
477
477
  i0.ɵɵelementEnd();
478
478
  i0.ɵɵelementStart(21, "span", 81);
479
479
  i0.ɵɵtext(22, "DDL Generated");
@@ -492,8 +492,8 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_10_Template(rf, ctx
492
492
  i0.ɵɵelementStart(33, "span", 81);
493
493
  i0.ɵɵtext(34, "Ready to Sync");
494
494
  i0.ɵɵelementEnd()()();
495
- i0.ɵɵconditionalCreate(35, MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_35_Template, 10, 1, "div", 85);
496
- i0.ɵɵconditionalCreate(36, MappingWorkspaceComponent_Conditional_6_Conditional_10_Conditional_36_Template, 9, 1, "div", 86);
495
+ i0.ɵɵconditionalCreate(35, MappingWorkspaceComponent_Conditional_5_Conditional_10_Conditional_35_Template, 10, 1, "div", 85);
496
+ i0.ɵɵconditionalCreate(36, MappingWorkspaceComponent_Conditional_5_Conditional_10_Conditional_36_Template, 9, 1, "div", 86);
497
497
  i0.ɵɵelementEnd();
498
498
  } if (rf & 2) {
499
499
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -512,10 +512,10 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_10_Template(rf, ctx
512
512
  i0.ɵɵadvance();
513
513
  i0.ɵɵconditional(ctx_r1.SelectedPendingMap.SourceFields.length > 0 ? 36 : -1);
514
514
  } }
515
- function MappingWorkspaceComponent_Conditional_6_Conditional_11_Template(rf, ctx) { if (rf & 1) {
515
+ function MappingWorkspaceComponent_Conditional_5_Conditional_11_Template(rf, ctx) { if (rf & 1) {
516
516
  i0.ɵɵelement(0, "mj-loading", 13);
517
517
  } }
518
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_0_Template(rf, ctx) { if (rf & 1) {
518
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_0_Template(rf, ctx) { if (rf & 1) {
519
519
  const _r17 = i0.ɵɵgetCurrentView();
520
520
  i0.ɵɵelementStart(0, "div", 101);
521
521
  i0.ɵɵelement(1, "i", 36);
@@ -525,7 +525,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_0_Te
525
525
  i0.ɵɵtext(6, " by matching source and destination field names.");
526
526
  i0.ɵɵelementEnd()();
527
527
  i0.ɵɵelementStart(7, "button", 114);
528
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_0_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.DismissAutoMapBanner()); });
528
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_0_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r17); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.DismissAutoMapBanner()); });
529
529
  i0.ɵɵelement(8, "i", 28);
530
530
  i0.ɵɵelementEnd()();
531
531
  } if (rf & 2) {
@@ -533,7 +533,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_0_Te
533
533
  i0.ɵɵadvance(5);
534
534
  i0.ɵɵtextInterpolate2("", ctx_r1.AutoMapCount, " field", ctx_r1.AutoMapCount !== 1 ? "s" : "", " auto-mapped");
535
535
  } }
536
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_1_For_4_Template(rf, ctx) { if (rf & 1) {
536
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_1_For_4_Template(rf, ctx) { if (rf & 1) {
537
537
  i0.ɵɵelementStart(0, "span");
538
538
  i0.ɵɵtext(1);
539
539
  i0.ɵɵelementEnd();
@@ -542,45 +542,45 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_1_Fo
542
542
  i0.ɵɵadvance();
543
543
  i0.ɵɵtextInterpolate(warning_r18);
544
544
  } }
545
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_1_Template(rf, ctx) { if (rf & 1) {
545
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_1_Template(rf, ctx) { if (rf & 1) {
546
546
  i0.ɵɵelementStart(0, "div", 102);
547
547
  i0.ɵɵelement(1, "i", 43);
548
548
  i0.ɵɵelementStart(2, "div", 115);
549
- i0.ɵɵrepeaterCreate(3, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_1_For_4_Template, 2, 1, "span", null, i0.ɵɵrepeaterTrackByIdentity);
549
+ i0.ɵɵrepeaterCreate(3, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_1_For_4_Template, 2, 1, "span", null, i0.ɵɵrepeaterTrackByIdentity);
550
550
  i0.ɵɵelementEnd()();
551
551
  } if (rf & 2) {
552
552
  const ctx_r1 = i0.ɵɵnextContext(3);
553
553
  i0.ɵɵadvance(3);
554
554
  i0.ɵɵrepeater(ctx_r1.MappingValidation.Warnings);
555
555
  } }
556
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_15_Template(rf, ctx) { if (rf & 1) {
556
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_15_Template(rf, ctx) { if (rf & 1) {
557
557
  i0.ɵɵelement(0, "i", 42);
558
558
  i0.ɵɵtext(1, " Saving... ");
559
559
  } }
560
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_16_Template(rf, ctx) { if (rf & 1) {
560
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_16_Template(rf, ctx) { if (rf & 1) {
561
561
  i0.ɵɵelement(0, "i", 116);
562
562
  i0.ɵɵtext(1, " Save ");
563
563
  } }
564
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_17_Template(rf, ctx) { if (rf & 1) {
564
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_17_Template(rf, ctx) { if (rf & 1) {
565
565
  const _r19 = i0.ɵɵgetCurrentView();
566
566
  i0.ɵɵelementStart(0, "p", 15);
567
567
  i0.ɵɵtext(1, " No field mappings yet. ");
568
568
  i0.ɵɵelementStart(2, "a", 58);
569
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_17_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.AddFieldMapping()); });
569
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_17_Template_a_click_2_listener() { i0.ɵɵrestoreView(_r19); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.AddFieldMapping()); });
570
570
  i0.ɵɵtext(3, "Add one");
571
571
  i0.ɵɵelementEnd()();
572
572
  } }
573
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
573
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_3_Template(rf, ctx) { if (rf & 1) {
574
574
  const _r21 = i0.ɵɵgetCurrentView();
575
575
  i0.ɵɵelementStart(0, "input", 136);
576
- i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_3_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r21); const field_r22 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(field_r22.SourceFieldName, $event) || (field_r22.SourceFieldName = $event); return i0.ɵɵresetView($event); });
577
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_3_Template_input_ngModelChange_0_listener() { i0.ɵɵrestoreView(_r21); const field_r22 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnFieldChanged(field_r22)); });
576
+ i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_3_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r21); const field_r22 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(field_r22.SourceFieldName, $event) || (field_r22.SourceFieldName = $event); return i0.ɵɵresetView($event); });
577
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_3_Template_input_ngModelChange_0_listener() { i0.ɵɵrestoreView(_r21); const field_r22 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnFieldChanged(field_r22)); });
578
578
  i0.ɵɵelementEnd();
579
579
  } if (rf & 2) {
580
580
  const field_r22 = i0.ɵɵnextContext().$implicit;
581
581
  i0.ɵɵtwoWayProperty("ngModel", field_r22.SourceFieldName);
582
582
  } }
583
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
583
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_3_Template(rf, ctx) { if (rf & 1) {
584
584
  i0.ɵɵelementStart(0, "span", 139);
585
585
  i0.ɵɵtext(1);
586
586
  i0.ɵɵelementEnd();
@@ -589,31 +589,31 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
589
589
  i0.ɵɵadvance();
590
590
  i0.ɵɵtextInterpolate(field_r22.SourceFieldType);
591
591
  } }
592
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_4_Template(rf, ctx) { if (rf & 1) {
592
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_4_Template(rf, ctx) { if (rf & 1) {
593
593
  i0.ɵɵelementStart(0, "span", 140);
594
594
  i0.ɵɵelement(1, "i", 131);
595
595
  i0.ɵɵtext(2, " PK");
596
596
  i0.ɵɵelementEnd();
597
597
  } }
598
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_5_Template(rf, ctx) { if (rf & 1) {
598
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_5_Template(rf, ctx) { if (rf & 1) {
599
599
  i0.ɵɵelementStart(0, "span", 141);
600
600
  i0.ɵɵtext(1, "REQ");
601
601
  i0.ɵɵelementEnd();
602
602
  } }
603
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_6_Template(rf, ctx) { if (rf & 1) {
603
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_6_Template(rf, ctx) { if (rf & 1) {
604
604
  i0.ɵɵelementStart(0, "span", 142);
605
605
  i0.ɵɵtext(1, "RO");
606
606
  i0.ɵɵelementEnd();
607
607
  } }
608
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
608
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_4_Template(rf, ctx) { if (rf & 1) {
609
609
  i0.ɵɵelementStart(0, "div", 137);
610
610
  i0.ɵɵtext(1);
611
611
  i0.ɵɵelementEnd();
612
612
  i0.ɵɵelementStart(2, "div", 138);
613
- i0.ɵɵconditionalCreate(3, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_3_Template, 2, 1, "span", 139);
614
- i0.ɵɵconditionalCreate(4, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_4_Template, 3, 0, "span", 140);
615
- i0.ɵɵconditionalCreate(5, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_5_Template, 2, 0, "span", 141);
616
- i0.ɵɵconditionalCreate(6, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_6_Template, 2, 0, "span", 142);
613
+ i0.ɵɵconditionalCreate(3, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_3_Template, 2, 1, "span", 139);
614
+ i0.ɵɵconditionalCreate(4, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_4_Template, 3, 0, "span", 140);
615
+ i0.ɵɵconditionalCreate(5, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_5_Template, 2, 0, "span", 141);
616
+ i0.ɵɵconditionalCreate(6, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_4_Conditional_6_Template, 2, 0, "span", 142);
617
617
  i0.ɵɵelementEnd();
618
618
  } if (rf & 2) {
619
619
  const field_r22 = i0.ɵɵnextContext().$implicit;
@@ -628,10 +628,10 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
628
628
  i0.ɵɵadvance();
629
629
  i0.ɵɵconditional(field_r22.IsSourceReadOnly ? 6 : -1);
630
630
  } }
631
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
631
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_6_Template(rf, ctx) { if (rf & 1) {
632
632
  const _r23 = i0.ɵɵgetCurrentView();
633
633
  i0.ɵɵelementStart(0, "button", 143);
634
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r23); const field_r22 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.ToggleTransformEditor(field_r22)); });
634
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_6_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r23); const field_r22 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.ToggleTransformEditor(field_r22)); });
635
635
  i0.ɵɵelement(1, "i");
636
636
  i0.ɵɵelementStart(2, "span");
637
637
  i0.ɵɵtext(3);
@@ -650,10 +650,10 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
650
650
  i0.ɵɵadvance(2);
651
651
  i0.ɵɵtextInterpolate1("+", field_r22.TransformPipeline.length - 1);
652
652
  } }
653
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
653
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_7_Template(rf, ctx) { if (rf & 1) {
654
654
  const _r24 = i0.ɵɵgetCurrentView();
655
655
  i0.ɵɵelementStart(0, "button", 145);
656
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r24); const field_r22 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.ToggleTransformEditor(field_r22)); });
656
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_7_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r24); const field_r22 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.ToggleTransformEditor(field_r22)); });
657
657
  i0.ɵɵelement(1, "i", 64);
658
658
  i0.ɵɵelementStart(2, "span");
659
659
  i0.ɵɵtext(3);
@@ -664,7 +664,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
664
664
  i0.ɵɵadvance(3);
665
665
  i0.ɵɵtextInterpolate(field_r22.TransformPipeline.length > 0 ? ctx_r1.GetTransformLabel(field_r22.TransformPipeline[0].Type) : "Direct");
666
666
  } }
667
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_9_For_4_Template(rf, ctx) { if (rf & 1) {
667
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_9_For_4_Template(rf, ctx) { if (rf & 1) {
668
668
  i0.ɵɵelementStart(0, "option", 148);
669
669
  i0.ɵɵtext(1);
670
670
  i0.ɵɵelementEnd();
@@ -674,15 +674,15 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
674
674
  i0.ɵɵadvance();
675
675
  i0.ɵɵtextInterpolate(df_r26.Name);
676
676
  } }
677
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
677
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_9_Template(rf, ctx) { if (rf & 1) {
678
678
  const _r25 = i0.ɵɵgetCurrentView();
679
679
  i0.ɵɵelementStart(0, "select", 146);
680
- i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_9_Template_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r25); const field_r22 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(field_r22.DestinationFieldName, $event) || (field_r22.DestinationFieldName = $event); return i0.ɵɵresetView($event); });
681
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_9_Template_select_ngModelChange_0_listener() { i0.ɵɵrestoreView(_r25); const field_r22 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnFieldChanged(field_r22)); });
680
+ i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_9_Template_select_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r25); const field_r22 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(field_r22.DestinationFieldName, $event) || (field_r22.DestinationFieldName = $event); return i0.ɵɵresetView($event); });
681
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_9_Template_select_ngModelChange_0_listener() { i0.ɵɵrestoreView(_r25); const field_r22 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnFieldChanged(field_r22)); });
682
682
  i0.ɵɵelementStart(1, "option", 147);
683
683
  i0.ɵɵtext(2, "-- Select destination --");
684
684
  i0.ɵɵelementEnd();
685
- i0.ɵɵrepeaterCreate(3, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_9_For_4_Template, 2, 2, "option", 148, _forTrack0);
685
+ i0.ɵɵrepeaterCreate(3, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_9_For_4_Template, 2, 2, "option", 148, _forTrack0);
686
686
  i0.ɵɵelementEnd();
687
687
  } if (rf & 2) {
688
688
  const field_r22 = i0.ɵɵnextContext().$implicit;
@@ -691,17 +691,17 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
691
691
  i0.ɵɵadvance(3);
692
692
  i0.ɵɵrepeater(ctx_r1.DestinationFields);
693
693
  } }
694
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
694
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_10_Template(rf, ctx) { if (rf & 1) {
695
695
  const _r27 = i0.ɵɵgetCurrentView();
696
696
  i0.ɵɵelementStart(0, "input", 149);
697
- i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_10_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r27); const field_r22 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(field_r22.DestinationFieldName, $event) || (field_r22.DestinationFieldName = $event); return i0.ɵɵresetView($event); });
698
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_10_Template_input_ngModelChange_0_listener() { i0.ɵɵrestoreView(_r27); const field_r22 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnFieldChanged(field_r22)); });
697
+ i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_10_Template_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r27); const field_r22 = i0.ɵɵnextContext().$implicit; i0.ɵɵtwoWayBindingSet(field_r22.DestinationFieldName, $event) || (field_r22.DestinationFieldName = $event); return i0.ɵɵresetView($event); });
698
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_10_Template_input_ngModelChange_0_listener() { i0.ɵɵrestoreView(_r27); const field_r22 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnFieldChanged(field_r22)); });
699
699
  i0.ɵɵelementEnd();
700
700
  } if (rf & 2) {
701
701
  const field_r22 = i0.ɵɵnextContext().$implicit;
702
702
  i0.ɵɵtwoWayProperty("ngModel", field_r22.DestinationFieldName);
703
703
  } }
704
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_For_6_Template(rf, ctx) { if (rf & 1) {
704
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_For_6_Template(rf, ctx) { if (rf & 1) {
705
705
  i0.ɵɵelementStart(0, "option", 148);
706
706
  i0.ɵɵtext(1);
707
707
  i0.ɵɵelementEnd();
@@ -711,38 +711,38 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
711
711
  i0.ɵɵadvance();
712
712
  i0.ɵɵtextInterpolate(tt_r32.Label);
713
713
  } }
714
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_17_Template(rf, ctx) { if (rf & 1) {
714
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_17_Template(rf, ctx) { if (rf & 1) {
715
715
  const _r34 = i0.ɵɵgetCurrentView();
716
716
  i0.ɵɵelementStart(0, "div", 163)(1, "label");
717
717
  i0.ɵɵtext(2, "Default value (when source is null)");
718
718
  i0.ɵɵelementEnd();
719
719
  i0.ɵɵelementStart(3, "input", 166);
720
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_17_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r34); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["DefaultValue"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
720
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_17_Template_input_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r34); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["DefaultValue"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
721
721
  i0.ɵɵelementEnd()();
722
722
  } if (rf & 2) {
723
723
  const step_r31 = i0.ɵɵnextContext().$implicit;
724
724
  i0.ɵɵadvance(3);
725
725
  i0.ɵɵproperty("ngModel", step_r31.Config["DefaultValue"] ?? "");
726
726
  } }
727
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_18_Template(rf, ctx) { if (rf & 1) {
727
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_18_Template(rf, ctx) { if (rf & 1) {
728
728
  const _r35 = i0.ɵɵgetCurrentView();
729
729
  i0.ɵɵelementStart(0, "div", 164)(1, "div", 163)(2, "label");
730
730
  i0.ɵɵtext(3, "Pattern");
731
731
  i0.ɵɵelementEnd();
732
732
  i0.ɵɵelementStart(4, "input", 167);
733
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_18_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r35); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Pattern"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
733
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_18_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r35); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Pattern"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
734
734
  i0.ɵɵelementEnd()();
735
735
  i0.ɵɵelementStart(5, "div", 163)(6, "label");
736
736
  i0.ɵɵtext(7, "Replacement");
737
737
  i0.ɵɵelementEnd();
738
738
  i0.ɵɵelementStart(8, "input", 168);
739
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_18_Template_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r35); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Replacement"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
739
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_18_Template_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r35); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Replacement"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
740
740
  i0.ɵɵelementEnd()();
741
741
  i0.ɵɵelementStart(9, "div", 165)(10, "label");
742
742
  i0.ɵɵtext(11, "Flags");
743
743
  i0.ɵɵelementEnd();
744
744
  i0.ɵɵelementStart(12, "input", 169);
745
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_18_Template_input_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r35); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Flags"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
745
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_18_Template_input_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r35); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Flags"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
746
746
  i0.ɵɵelementEnd()()();
747
747
  } if (rf & 2) {
748
748
  const step_r31 = i0.ɵɵnextContext().$implicit;
@@ -753,19 +753,19 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
753
753
  i0.ɵɵadvance(4);
754
754
  i0.ɵɵproperty("ngModel", step_r31.Config["Flags"] ?? "g");
755
755
  } }
756
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_19_Template(rf, ctx) { if (rf & 1) {
756
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_19_Template(rf, ctx) { if (rf & 1) {
757
757
  const _r36 = i0.ɵɵgetCurrentView();
758
758
  i0.ɵɵelementStart(0, "div", 164)(1, "div", 163)(2, "label");
759
759
  i0.ɵɵtext(3, "Delimiter");
760
760
  i0.ɵɵelementEnd();
761
761
  i0.ɵɵelementStart(4, "input", 170);
762
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_19_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r36); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Delimiter"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
762
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_19_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r36); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Delimiter"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
763
763
  i0.ɵɵelementEnd()();
764
764
  i0.ɵɵelementStart(5, "div", 165)(6, "label");
765
765
  i0.ɵɵtext(7, "Part index (0-based)");
766
766
  i0.ɵɵelementEnd();
767
767
  i0.ɵɵelementStart(8, "input", 171);
768
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_19_Template_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r36); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Index"] = +$event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
768
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_19_Template_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r36); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Index"] = +$event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
769
769
  i0.ɵɵelementEnd()()();
770
770
  } if (rf & 2) {
771
771
  const step_r31 = i0.ɵɵnextContext().$implicit;
@@ -774,10 +774,10 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
774
774
  i0.ɵɵadvance(4);
775
775
  i0.ɵɵproperty("ngModel", step_r31.Config["Index"] ?? 0);
776
776
  } }
777
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_20_For_5_Template(rf, ctx) { if (rf & 1) {
777
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_20_For_5_Template(rf, ctx) { if (rf & 1) {
778
778
  const _r38 = i0.ɵɵgetCurrentView();
779
779
  i0.ɵɵelementStart(0, "button", 175);
780
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_20_For_5_Template_button_click_0_listener() { const sf_r39 = i0.ɵɵrestoreView(_r38).$implicit; const step_r31 = i0.ɵɵnextContext(2).$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); ctx_r1.ToggleCombineField(step_r31.Config, sf_r39); return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
780
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_20_For_5_Template_button_click_0_listener() { const sf_r39 = i0.ɵɵrestoreView(_r38).$implicit; const step_r31 = i0.ɵɵnextContext(2).$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); ctx_r1.ToggleCombineField(step_r31.Config, sf_r39); return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
781
781
  i0.ɵɵtext(1);
782
782
  i0.ɵɵelementEnd();
783
783
  } if (rf & 2) {
@@ -788,19 +788,19 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
788
788
  i0.ɵɵadvance();
789
789
  i0.ɵɵtextInterpolate1(" ", sf_r39, " ");
790
790
  } }
791
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_20_Template(rf, ctx) { if (rf & 1) {
791
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_20_Template(rf, ctx) { if (rf & 1) {
792
792
  const _r37 = i0.ɵɵgetCurrentView();
793
793
  i0.ɵɵelementStart(0, "div", 163)(1, "label");
794
794
  i0.ɵɵtext(2, "Source fields to combine");
795
795
  i0.ɵɵelementEnd();
796
796
  i0.ɵɵelementStart(3, "div", 172);
797
- i0.ɵɵrepeaterCreate(4, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_20_For_5_Template, 2, 3, "button", 173, i0.ɵɵrepeaterTrackByIdentity);
797
+ i0.ɵɵrepeaterCreate(4, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_20_For_5_Template, 2, 3, "button", 173, i0.ɵɵrepeaterTrackByIdentity);
798
798
  i0.ɵɵelementEnd()();
799
799
  i0.ɵɵelementStart(6, "div", 165)(7, "label");
800
800
  i0.ɵɵtext(8, "Separator");
801
801
  i0.ɵɵelementEnd();
802
802
  i0.ɵɵelementStart(9, "input", 174);
803
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_20_Template_input_ngModelChange_9_listener($event) { i0.ɵɵrestoreView(_r37); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Separator"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
803
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_20_Template_input_ngModelChange_9_listener($event) { i0.ɵɵrestoreView(_r37); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Separator"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
804
804
  i0.ɵɵelementEnd()();
805
805
  } if (rf & 2) {
806
806
  const step_r31 = i0.ɵɵnextContext().$implicit;
@@ -810,17 +810,17 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
810
810
  i0.ɵɵadvance(5);
811
811
  i0.ɵɵproperty("ngModel", step_r31.Config["Separator"] ?? " ");
812
812
  } }
813
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_For_5_Template(rf, ctx) { if (rf & 1) {
813
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_For_5_Template(rf, ctx) { if (rf & 1) {
814
814
  const _r41 = i0.ɵɵgetCurrentView();
815
815
  i0.ɵɵelementStart(0, "div", 177)(1, "input", 180);
816
- i0.ɵɵlistener("change", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_For_5_Template_input_change_1_listener($event) { const entry_r42 = i0.ɵɵrestoreView(_r41).$implicit; const step_r31 = i0.ɵɵnextContext(2).$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); ctx_r1.UpdateLookupEntry(step_r31.Config, entry_r42.key, $event.target.value, entry_r42.value); return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
816
+ i0.ɵɵlistener("change", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_For_5_Template_input_change_1_listener($event) { const entry_r42 = i0.ɵɵrestoreView(_r41).$implicit; const step_r31 = i0.ɵɵnextContext(2).$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); ctx_r1.UpdateLookupEntry(step_r31.Config, entry_r42.key, $event.target.value, entry_r42.value); return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
817
817
  i0.ɵɵelementEnd();
818
818
  i0.ɵɵelement(2, "i", 181);
819
819
  i0.ɵɵelementStart(3, "input", 182);
820
- i0.ɵɵlistener("change", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_For_5_Template_input_change_3_listener($event) { const entry_r42 = i0.ɵɵrestoreView(_r41).$implicit; const step_r31 = i0.ɵɵnextContext(2).$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); ctx_r1.UpdateLookupEntry(step_r31.Config, entry_r42.key, entry_r42.key, $event.target.value); return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
820
+ i0.ɵɵlistener("change", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_For_5_Template_input_change_3_listener($event) { const entry_r42 = i0.ɵɵrestoreView(_r41).$implicit; const step_r31 = i0.ɵɵnextContext(2).$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); ctx_r1.UpdateLookupEntry(step_r31.Config, entry_r42.key, entry_r42.key, $event.target.value); return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
821
821
  i0.ɵɵelementEnd();
822
822
  i0.ɵɵelementStart(4, "button", 183);
823
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_For_5_Template_button_click_4_listener() { const entry_r42 = i0.ɵɵrestoreView(_r41).$implicit; const step_r31 = i0.ɵɵnextContext(2).$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); ctx_r1.RemoveLookupEntry(step_r31.Config, entry_r42.key); return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
823
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_For_5_Template_button_click_4_listener() { const entry_r42 = i0.ɵɵrestoreView(_r41).$implicit; const step_r31 = i0.ɵɵnextContext(2).$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); ctx_r1.RemoveLookupEntry(step_r31.Config, entry_r42.key); return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
824
824
  i0.ɵɵelement(5, "i", 28);
825
825
  i0.ɵɵelementEnd()();
826
826
  } if (rf & 2) {
@@ -830,15 +830,15 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
830
830
  i0.ɵɵadvance(2);
831
831
  i0.ɵɵproperty("value", entry_r42.value);
832
832
  } }
833
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_Template(rf, ctx) { if (rf & 1) {
833
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_Template(rf, ctx) { if (rf & 1) {
834
834
  const _r40 = i0.ɵɵgetCurrentView();
835
835
  i0.ɵɵelementStart(0, "div", 163)(1, "label");
836
836
  i0.ɵɵtext(2, "Value mapping");
837
837
  i0.ɵɵelementEnd();
838
838
  i0.ɵɵelementStart(3, "div", 176);
839
- i0.ɵɵrepeaterCreate(4, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_For_5_Template, 6, 2, "div", 177, i0.ɵɵrepeaterTrackByIndex);
839
+ i0.ɵɵrepeaterCreate(4, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_For_5_Template, 6, 2, "div", 177, i0.ɵɵrepeaterTrackByIndex);
840
840
  i0.ɵɵelementStart(6, "button", 178);
841
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r40); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); ctx_r1.AddLookupEntry(step_r31.Config); return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
841
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_Template_button_click_6_listener() { i0.ɵɵrestoreView(_r40); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); ctx_r1.AddLookupEntry(step_r31.Config); return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
842
842
  i0.ɵɵelement(7, "i", 21);
843
843
  i0.ɵɵtext(8, " Add mapping ");
844
844
  i0.ɵɵelementEnd()()();
@@ -846,7 +846,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
846
846
  i0.ɵɵtext(11, "Default (when no match)");
847
847
  i0.ɵɵelementEnd();
848
848
  i0.ɵɵelementStart(12, "input", 179);
849
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_Template_input_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r40); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Default"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
849
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_Template_input_ngModelChange_12_listener($event) { i0.ɵɵrestoreView(_r40); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Default"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
850
850
  i0.ɵɵelementEnd()();
851
851
  } if (rf & 2) {
852
852
  const step_r31 = i0.ɵɵnextContext().$implicit;
@@ -856,13 +856,13 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
856
856
  i0.ɵɵadvance(8);
857
857
  i0.ɵɵproperty("ngModel", step_r31.Config["Default"] ?? "");
858
858
  } }
859
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_22_Template(rf, ctx) { if (rf & 1) {
859
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_22_Template(rf, ctx) { if (rf & 1) {
860
860
  const _r43 = i0.ɵɵgetCurrentView();
861
861
  i0.ɵɵelementStart(0, "div", 164)(1, "div", 165)(2, "label");
862
862
  i0.ɵɵtext(3, "Format type");
863
863
  i0.ɵɵelementEnd();
864
864
  i0.ɵɵelementStart(4, "select", 146);
865
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_22_Template_select_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r43); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["FormatType"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
865
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_22_Template_select_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r43); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["FormatType"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
866
866
  i0.ɵɵelementStart(5, "option", 184);
867
867
  i0.ɵɵtext(6, "Date");
868
868
  i0.ɵɵelementEnd();
@@ -876,7 +876,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
876
876
  i0.ɵɵtext(13, "Format string");
877
877
  i0.ɵɵelementEnd();
878
878
  i0.ɵɵelementStart(14, "input", 187);
879
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_22_Template_input_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r43); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["FormatString"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
879
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_22_Template_input_ngModelChange_14_listener($event) { i0.ɵɵrestoreView(_r43); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["FormatString"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
880
880
  i0.ɵɵelementEnd()()();
881
881
  } if (rf & 2) {
882
882
  const step_r31 = i0.ɵɵnextContext().$implicit;
@@ -885,13 +885,13 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
885
885
  i0.ɵɵadvance(10);
886
886
  i0.ɵɵproperty("ngModel", step_r31.Config["FormatString"] ?? "ISO");
887
887
  } }
888
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_23_Template(rf, ctx) { if (rf & 1) {
888
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_23_Template(rf, ctx) { if (rf & 1) {
889
889
  const _r44 = i0.ɵɵgetCurrentView();
890
890
  i0.ɵɵelementStart(0, "div", 165)(1, "label");
891
891
  i0.ɵɵtext(2, "Target type");
892
892
  i0.ɵɵelementEnd();
893
893
  i0.ɵɵelementStart(3, "select", 146);
894
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_23_Template_select_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r44); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["TargetType"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
894
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_23_Template_select_ngModelChange_3_listener($event) { i0.ɵɵrestoreView(_r44); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["TargetType"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
895
895
  i0.ɵɵelementStart(4, "option", 186);
896
896
  i0.ɵɵtext(5, "String");
897
897
  i0.ɵɵelementEnd();
@@ -909,19 +909,19 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
909
909
  i0.ɵɵadvance(3);
910
910
  i0.ɵɵproperty("ngModel", step_r31.Config["TargetType"] ?? "string");
911
911
  } }
912
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_24_Template(rf, ctx) { if (rf & 1) {
912
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_24_Template(rf, ctx) { if (rf & 1) {
913
913
  const _r45 = i0.ɵɵgetCurrentView();
914
914
  i0.ɵɵelementStart(0, "div", 164)(1, "div", 165)(2, "label");
915
915
  i0.ɵɵtext(3, "Start index");
916
916
  i0.ɵɵelementEnd();
917
917
  i0.ɵɵelementStart(4, "input", 171);
918
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_24_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r45); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Start"] = +$event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
918
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_24_Template_input_ngModelChange_4_listener($event) { i0.ɵɵrestoreView(_r45); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Start"] = +$event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
919
919
  i0.ɵɵelementEnd()();
920
920
  i0.ɵɵelementStart(5, "div", 165)(6, "label");
921
921
  i0.ɵɵtext(7, "Length (blank = to end)");
922
922
  i0.ɵɵelementEnd();
923
923
  i0.ɵɵelementStart(8, "input", 189);
924
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_24_Template_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r45); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Length"] = $event ? +$event : undefined; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
924
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_24_Template_input_ngModelChange_8_listener($event) { i0.ɵɵrestoreView(_r45); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Length"] = $event ? +$event : undefined; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
925
925
  i0.ɵɵelementEnd()()();
926
926
  } if (rf & 2) {
927
927
  const step_r31 = i0.ɵɵnextContext().$implicit;
@@ -930,7 +930,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
930
930
  i0.ɵɵadvance(4);
931
931
  i0.ɵɵproperty("ngModel", step_r31.Config["Length"] ?? "");
932
932
  } }
933
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_25_Template(rf, ctx) { if (rf & 1) {
933
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_25_Template(rf, ctx) { if (rf & 1) {
934
934
  const _r46 = i0.ɵɵgetCurrentView();
935
935
  i0.ɵɵelementStart(0, "div", 163)(1, "label");
936
936
  i0.ɵɵtext(2, "JavaScript expression ");
@@ -946,25 +946,25 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
946
946
  i0.ɵɵtext(10, ")");
947
947
  i0.ɵɵelementEnd()();
948
948
  i0.ɵɵelementStart(11, "textarea", 191);
949
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_25_Template_textarea_ngModelChange_11_listener($event) { i0.ɵɵrestoreView(_r46); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Expression"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
949
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_25_Template_textarea_ngModelChange_11_listener($event) { i0.ɵɵrestoreView(_r46); const step_r31 = i0.ɵɵnextContext().$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); step_r31.Config["Expression"] = $event; return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
950
950
  i0.ɵɵelementEnd()();
951
951
  } if (rf & 2) {
952
952
  const step_r31 = i0.ɵɵnextContext().$implicit;
953
953
  i0.ɵɵadvance(11);
954
954
  i0.ɵɵproperty("ngModel", step_r31.Config["Expression"] ?? "value");
955
955
  } }
956
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Template(rf, ctx) { if (rf & 1) {
956
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Template(rf, ctx) { if (rf & 1) {
957
957
  const _r30 = i0.ɵɵgetCurrentView();
958
958
  i0.ɵɵelementStart(0, "div", 153)(1, "div", 154)(2, "span", 155);
959
959
  i0.ɵɵtext(3);
960
960
  i0.ɵɵelementEnd();
961
961
  i0.ɵɵelementStart(4, "select", 156);
962
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Template_select_ngModelChange_4_listener($event) { const step_r31 = i0.ɵɵrestoreView(_r30).$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnTransformTypeChange(field_r22, step_r31, $event)); });
963
- i0.ɵɵrepeaterCreate(5, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_For_6_Template, 2, 2, "option", 148, _forTrack2);
962
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Template_select_ngModelChange_4_listener($event) { const step_r31 = i0.ɵɵrestoreView(_r30).$implicit; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnTransformTypeChange(field_r22, step_r31, $event)); });
963
+ i0.ɵɵrepeaterCreate(5, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_For_6_Template, 2, 2, "option", 148, _forTrack2);
964
964
  i0.ɵɵelementEnd();
965
965
  i0.ɵɵelementStart(7, "select", 157);
966
- i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Template_select_ngModelChange_7_listener($event) { const step_r31 = i0.ɵɵrestoreView(_r30).$implicit; i0.ɵɵtwoWayBindingSet(step_r31.OnError, $event) || (step_r31.OnError = $event); return i0.ɵɵresetView($event); });
967
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Template_select_ngModelChange_7_listener() { i0.ɵɵrestoreView(_r30); const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
966
+ i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Template_select_ngModelChange_7_listener($event) { const step_r31 = i0.ɵɵrestoreView(_r30).$implicit; i0.ɵɵtwoWayBindingSet(step_r31.OnError, $event) || (step_r31.OnError = $event); return i0.ɵɵresetView($event); });
967
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Template_select_ngModelChange_7_listener() { i0.ɵɵrestoreView(_r30); const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnTransformConfigChange(field_r22)); });
968
968
  i0.ɵɵelementStart(8, "option", 158);
969
969
  i0.ɵɵtext(9, "Fail");
970
970
  i0.ɵɵelementEnd();
@@ -975,19 +975,19 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
975
975
  i0.ɵɵtext(13, "Set null");
976
976
  i0.ɵɵelementEnd()();
977
977
  i0.ɵɵelementStart(14, "button", 161);
978
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Template_button_click_14_listener() { const ɵ$index_534_r33 = i0.ɵɵrestoreView(_r30).$index; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.RemoveTransformStep(field_r22, ɵ$index_534_r33)); });
978
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Template_button_click_14_listener() { const ɵ$index_533_r33 = i0.ɵɵrestoreView(_r30).$index; const field_r22 = i0.ɵɵnextContext(2).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.RemoveTransformStep(field_r22, ɵ$index_533_r33)); });
979
979
  i0.ɵɵelement(15, "i", 72);
980
980
  i0.ɵɵelementEnd()();
981
981
  i0.ɵɵelementStart(16, "div", 162);
982
- i0.ɵɵconditionalCreate(17, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_17_Template, 4, 1, "div", 163)(18, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_18_Template, 13, 3, "div", 164)(19, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_19_Template, 9, 2, "div", 164)(20, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_20_Template, 10, 1)(21, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_Template, 13, 1)(22, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_22_Template, 15, 2, "div", 164)(23, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_23_Template, 12, 1, "div", 165)(24, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_24_Template, 9, 2, "div", 164)(25, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_25_Template, 12, 1, "div", 163);
982
+ i0.ɵɵconditionalCreate(17, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_17_Template, 4, 1, "div", 163)(18, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_18_Template, 13, 3, "div", 164)(19, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_19_Template, 9, 2, "div", 164)(20, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_20_Template, 10, 1)(21, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_21_Template, 13, 1)(22, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_22_Template, 15, 2, "div", 164)(23, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_23_Template, 12, 1, "div", 165)(24, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_24_Template, 9, 2, "div", 164)(25, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Case_25_Template, 12, 1, "div", 163);
983
983
  i0.ɵɵelementEnd()();
984
984
  } if (rf & 2) {
985
985
  let tmp_30_0;
986
986
  const step_r31 = ctx.$implicit;
987
- const ɵ$index_534_r33 = ctx.$index;
987
+ const ɵ$index_533_r33 = ctx.$index;
988
988
  const ctx_r1 = i0.ɵɵnextContext(6);
989
989
  i0.ɵɵadvance(3);
990
- i0.ɵɵtextInterpolate(ɵ$index_534_r33 + 1);
990
+ i0.ɵɵtextInterpolate(ɵ$index_533_r33 + 1);
991
991
  i0.ɵɵadvance();
992
992
  i0.ɵɵproperty("ngModel", step_r31.Type);
993
993
  i0.ɵɵadvance();
@@ -997,53 +997,53 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
997
997
  i0.ɵɵadvance(10);
998
998
  i0.ɵɵconditional((tmp_30_0 = step_r31.Type) === "direct" ? 17 : tmp_30_0 === "regex" ? 18 : tmp_30_0 === "split" ? 19 : tmp_30_0 === "combine" ? 20 : tmp_30_0 === "lookup" ? 21 : tmp_30_0 === "format" ? 22 : tmp_30_0 === "coerce" ? 23 : tmp_30_0 === "substring" ? 24 : tmp_30_0 === "custom" ? 25 : -1);
999
999
  } }
1000
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_Template(rf, ctx) { if (rf & 1) {
1000
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_Template(rf, ctx) { if (rf & 1) {
1001
1001
  const _r29 = i0.ɵɵgetCurrentView();
1002
1002
  i0.ɵɵelementStart(0, "div", 135)(1, "div", 150)(2, "span", 151);
1003
1003
  i0.ɵɵelement(3, "i", 36);
1004
1004
  i0.ɵɵtext(4, " Transform Pipeline");
1005
1005
  i0.ɵɵelementEnd();
1006
1006
  i0.ɵɵelementStart(5, "button", 152);
1007
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r29); const field_r22 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.AddTransformStep(field_r22)); });
1007
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r29); const field_r22 = i0.ɵɵnextContext().$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.AddTransformStep(field_r22)); });
1008
1008
  i0.ɵɵelement(6, "i", 21);
1009
1009
  i0.ɵɵtext(7, " Add Step ");
1010
1010
  i0.ɵɵelementEnd()();
1011
- i0.ɵɵrepeaterCreate(8, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Template, 26, 4, "div", 153, i0.ɵɵrepeaterTrackByIndex);
1011
+ i0.ɵɵrepeaterCreate(8, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_For_9_Template, 26, 4, "div", 153, i0.ɵɵrepeaterTrackByIndex);
1012
1012
  i0.ɵɵelementEnd();
1013
1013
  } if (rf & 2) {
1014
1014
  const field_r22 = i0.ɵɵnextContext().$implicit;
1015
1015
  i0.ɵɵadvance(8);
1016
1016
  i0.ɵɵrepeater(field_r22.TransformPipeline);
1017
1017
  } }
1018
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Template(rf, ctx) { if (rf & 1) {
1018
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Template(rf, ctx) { if (rf & 1) {
1019
1019
  const _r20 = i0.ɵɵgetCurrentView();
1020
1020
  i0.ɵɵelementStart(0, "div", 118)(1, "div", 119)(2, "div", 120);
1021
- i0.ɵɵconditionalCreate(3, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_3_Template, 1, 1, "input", 121)(4, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_4_Template, 7, 5);
1021
+ i0.ɵɵconditionalCreate(3, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_3_Template, 1, 1, "input", 121)(4, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_4_Template, 7, 5);
1022
1022
  i0.ɵɵelementEnd();
1023
1023
  i0.ɵɵelementStart(5, "div", 122);
1024
- i0.ɵɵconditionalCreate(6, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_6_Template, 6, 5, "button", 123)(7, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_7_Template, 4, 1, "button", 124);
1024
+ i0.ɵɵconditionalCreate(6, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_6_Template, 6, 5, "button", 123)(7, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_7_Template, 4, 1, "button", 124);
1025
1025
  i0.ɵɵelementEnd();
1026
1026
  i0.ɵɵelementStart(8, "div", 125);
1027
- i0.ɵɵconditionalCreate(9, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_9_Template, 5, 1, "select", 126)(10, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_10_Template, 1, 1, "input", 127);
1027
+ i0.ɵɵconditionalCreate(9, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_9_Template, 5, 1, "select", 126)(10, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_10_Template, 1, 1, "input", 127);
1028
1028
  i0.ɵɵelementEnd();
1029
1029
  i0.ɵɵelementStart(11, "div", 128)(12, "label", 129)(13, "input", 130);
1030
- i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Template_input_ngModelChange_13_listener($event) { const field_r22 = i0.ɵɵrestoreView(_r20).$implicit; i0.ɵɵtwoWayBindingSet(field_r22.IsKeyField, $event) || (field_r22.IsKeyField = $event); return i0.ɵɵresetView($event); });
1031
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Template_input_ngModelChange_13_listener() { const field_r22 = i0.ɵɵrestoreView(_r20).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnFieldChanged(field_r22)); });
1030
+ i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Template_input_ngModelChange_13_listener($event) { const field_r22 = i0.ɵɵrestoreView(_r20).$implicit; i0.ɵɵtwoWayBindingSet(field_r22.IsKeyField, $event) || (field_r22.IsKeyField = $event); return i0.ɵɵresetView($event); });
1031
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Template_input_ngModelChange_13_listener() { const field_r22 = i0.ɵɵrestoreView(_r20).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnFieldChanged(field_r22)); });
1032
1032
  i0.ɵɵelementEnd();
1033
1033
  i0.ɵɵelement(14, "i", 131);
1034
1034
  i0.ɵɵelementEnd();
1035
1035
  i0.ɵɵelementStart(15, "label", 132)(16, "input", 130);
1036
- i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Template_input_ngModelChange_16_listener($event) { const field_r22 = i0.ɵɵrestoreView(_r20).$implicit; i0.ɵɵtwoWayBindingSet(field_r22.IsRequired, $event) || (field_r22.IsRequired = $event); return i0.ɵɵresetView($event); });
1037
- i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Template_input_ngModelChange_16_listener() { const field_r22 = i0.ɵɵrestoreView(_r20).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnFieldChanged(field_r22)); });
1036
+ i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Template_input_ngModelChange_16_listener($event) { const field_r22 = i0.ɵɵrestoreView(_r20).$implicit; i0.ɵɵtwoWayBindingSet(field_r22.IsRequired, $event) || (field_r22.IsRequired = $event); return i0.ɵɵresetView($event); });
1037
+ i0.ɵɵlistener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Template_input_ngModelChange_16_listener() { const field_r22 = i0.ɵɵrestoreView(_r20).$implicit; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.OnFieldChanged(field_r22)); });
1038
1038
  i0.ɵɵelementEnd();
1039
1039
  i0.ɵɵelementStart(17, "span", 133);
1040
1040
  i0.ɵɵtext(18, "*");
1041
1041
  i0.ɵɵelementEnd()()();
1042
1042
  i0.ɵɵelementStart(19, "button", 134);
1043
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Template_button_click_19_listener() { const ɵ$index_430_r28 = i0.ɵɵrestoreView(_r20).$index; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.RemoveFieldMapping(ɵ$index_430_r28)); });
1043
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Template_button_click_19_listener() { const ɵ$index_429_r28 = i0.ɵɵrestoreView(_r20).$index; const ctx_r1 = i0.ɵɵnextContext(4); return i0.ɵɵresetView(ctx_r1.RemoveFieldMapping(ɵ$index_429_r28)); });
1044
1044
  i0.ɵɵelement(20, "i", 28);
1045
1045
  i0.ɵɵelementEnd()();
1046
- i0.ɵɵconditionalCreate(21, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Conditional_21_Template, 10, 0, "div", 135);
1046
+ i0.ɵɵconditionalCreate(21, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Conditional_21_Template, 10, 0, "div", 135);
1047
1047
  i0.ɵɵelementEnd();
1048
1048
  } if (rf & 2) {
1049
1049
  const field_r22 = ctx.$implicit;
@@ -1062,24 +1062,24 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_F
1062
1062
  i0.ɵɵadvance(5);
1063
1063
  i0.ɵɵconditional(field_r22.ShowTransformEditor && field_r22.TransformPipeline.length > 0 ? 21 : -1);
1064
1064
  } }
1065
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_Template(rf, ctx) { if (rf & 1) {
1065
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_Template(rf, ctx) { if (rf & 1) {
1066
1066
  i0.ɵɵelementStart(0, "div", 108);
1067
- i0.ɵɵrepeaterCreate(1, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_For_2_Template, 22, 10, "div", 117, i0.ɵɵrepeaterTrackByIdentity);
1067
+ i0.ɵɵrepeaterCreate(1, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_For_2_Template, 22, 10, "div", 117, i0.ɵɵrepeaterTrackByIdentity);
1068
1068
  i0.ɵɵelementEnd();
1069
1069
  } if (rf & 2) {
1070
1070
  const ctx_r1 = i0.ɵɵnextContext(3);
1071
1071
  i0.ɵɵadvance();
1072
1072
  i0.ɵɵrepeater(ctx_r1.ActiveEditableFields);
1073
1073
  } }
1074
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1074
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_27_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1075
1075
  i0.ɵɵelement(0, "mj-loading", 194);
1076
1076
  } }
1077
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1077
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_27_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1078
1078
  i0.ɵɵelementStart(0, "p", 15);
1079
1079
  i0.ɵɵtext(1, "No source data available.");
1080
1080
  i0.ɵɵelementEnd();
1081
1081
  } }
1082
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_Conditional_9_For_5_Template(rf, ctx) { if (rf & 1) {
1082
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_27_Conditional_9_For_5_Template(rf, ctx) { if (rf & 1) {
1083
1083
  i0.ɵɵelementStart(0, "th");
1084
1084
  i0.ɵɵtext(1);
1085
1085
  i0.ɵɵelementEnd();
@@ -1088,7 +1088,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_C
1088
1088
  i0.ɵɵadvance();
1089
1089
  i0.ɵɵtextInterpolate(col_r48);
1090
1090
  } }
1091
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_Conditional_9_For_8_For_2_Template(rf, ctx) { if (rf & 1) {
1091
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_27_Conditional_9_For_8_For_2_Template(rf, ctx) { if (rf & 1) {
1092
1092
  i0.ɵɵelementStart(0, "td");
1093
1093
  i0.ɵɵtext(1);
1094
1094
  i0.ɵɵelementEnd();
@@ -1099,21 +1099,21 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_C
1099
1099
  i0.ɵɵadvance();
1100
1100
  i0.ɵɵtextInterpolate(ctx_r1.FormatPreviewValue(row_r50[col_r49]));
1101
1101
  } }
1102
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_Conditional_9_For_8_Template(rf, ctx) { if (rf & 1) {
1102
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_27_Conditional_9_For_8_Template(rf, ctx) { if (rf & 1) {
1103
1103
  i0.ɵɵelementStart(0, "tr");
1104
- i0.ɵɵrepeaterCreate(1, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_Conditional_9_For_8_For_2_Template, 2, 1, "td", null, i0.ɵɵrepeaterTrackByIdentity);
1104
+ i0.ɵɵrepeaterCreate(1, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_27_Conditional_9_For_8_For_2_Template, 2, 1, "td", null, i0.ɵɵrepeaterTrackByIdentity);
1105
1105
  i0.ɵɵelementEnd();
1106
1106
  } if (rf & 2) {
1107
1107
  const ctx_r1 = i0.ɵɵnextContext(5);
1108
1108
  i0.ɵɵadvance();
1109
1109
  i0.ɵɵrepeater(ctx_r1.GetPreviewColumns(ctx_r1.SourcePreviewData));
1110
1110
  } }
1111
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1111
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_27_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1112
1112
  i0.ɵɵelementStart(0, "div", 195)(1, "table", 196)(2, "thead")(3, "tr");
1113
- i0.ɵɵrepeaterCreate(4, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_Conditional_9_For_5_Template, 2, 1, "th", null, i0.ɵɵrepeaterTrackByIdentity);
1113
+ i0.ɵɵrepeaterCreate(4, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_27_Conditional_9_For_5_Template, 2, 1, "th", null, i0.ɵɵrepeaterTrackByIdentity);
1114
1114
  i0.ɵɵelementEnd()();
1115
1115
  i0.ɵɵelementStart(6, "tbody");
1116
- i0.ɵɵrepeaterCreate(7, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_Conditional_9_For_8_Template, 3, 0, "tr", null, i0.ɵɵrepeaterTrackByIndex);
1116
+ i0.ɵɵrepeaterCreate(7, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_27_Conditional_9_For_8_Template, 3, 0, "tr", null, i0.ɵɵrepeaterTrackByIndex);
1117
1117
  i0.ɵɵelementEnd()()();
1118
1118
  } if (rf & 2) {
1119
1119
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -1122,32 +1122,32 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_C
1122
1122
  i0.ɵɵadvance(3);
1123
1123
  i0.ɵɵrepeater(ctx_r1.SourcePreviewData);
1124
1124
  } }
1125
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_Template(rf, ctx) { if (rf & 1) {
1125
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_27_Template(rf, ctx) { if (rf & 1) {
1126
1126
  const _r47 = i0.ɵɵgetCurrentView();
1127
1127
  i0.ɵɵelementStart(0, "div", 112)(1, "div", 192)(2, "h4");
1128
1128
  i0.ɵɵelement(3, "i", 193);
1129
1129
  i0.ɵɵtext(4, " Source Data Preview");
1130
1130
  i0.ɵɵelementEnd();
1131
1131
  i0.ɵɵelementStart(5, "button", 27);
1132
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r47); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.CloseSourcePreview()); });
1132
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_27_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r47); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.CloseSourcePreview()); });
1133
1133
  i0.ɵɵelement(6, "i", 28);
1134
1134
  i0.ɵɵelementEnd()();
1135
- i0.ɵɵconditionalCreate(7, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_Conditional_7_Template, 1, 0, "mj-loading", 194)(8, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_Conditional_8_Template, 2, 0, "p", 15)(9, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_Conditional_9_Template, 9, 0, "div", 195);
1135
+ i0.ɵɵconditionalCreate(7, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_27_Conditional_7_Template, 1, 0, "mj-loading", 194)(8, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_27_Conditional_8_Template, 2, 0, "p", 15)(9, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_27_Conditional_9_Template, 9, 0, "div", 195);
1136
1136
  i0.ɵɵelementEnd();
1137
1137
  } if (rf & 2) {
1138
1138
  const ctx_r1 = i0.ɵɵnextContext(3);
1139
1139
  i0.ɵɵadvance(7);
1140
1140
  i0.ɵɵconditional(ctx_r1.IsLoadingSourcePreview ? 7 : ctx_r1.SourcePreviewData.length === 0 ? 8 : 9);
1141
1141
  } }
1142
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1142
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_28_Conditional_7_Template(rf, ctx) { if (rf & 1) {
1143
1143
  i0.ɵɵelement(0, "mj-loading", 197);
1144
1144
  } }
1145
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1145
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_28_Conditional_8_Template(rf, ctx) { if (rf & 1) {
1146
1146
  i0.ɵɵelementStart(0, "p", 15);
1147
1147
  i0.ɵɵtext(1, "No destination data available.");
1148
1148
  i0.ɵɵelementEnd();
1149
1149
  } }
1150
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_Conditional_9_For_5_Template(rf, ctx) { if (rf & 1) {
1150
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_28_Conditional_9_For_5_Template(rf, ctx) { if (rf & 1) {
1151
1151
  i0.ɵɵelementStart(0, "th");
1152
1152
  i0.ɵɵtext(1);
1153
1153
  i0.ɵɵelementEnd();
@@ -1156,7 +1156,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_C
1156
1156
  i0.ɵɵadvance();
1157
1157
  i0.ɵɵtextInterpolate(col_r52);
1158
1158
  } }
1159
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_Conditional_9_For_8_For_2_Template(rf, ctx) { if (rf & 1) {
1159
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_28_Conditional_9_For_8_For_2_Template(rf, ctx) { if (rf & 1) {
1160
1160
  i0.ɵɵelementStart(0, "td");
1161
1161
  i0.ɵɵtext(1);
1162
1162
  i0.ɵɵelementEnd();
@@ -1167,21 +1167,21 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_C
1167
1167
  i0.ɵɵadvance();
1168
1168
  i0.ɵɵtextInterpolate(ctx_r1.FormatPreviewValue(row_r54[col_r53]));
1169
1169
  } }
1170
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_Conditional_9_For_8_Template(rf, ctx) { if (rf & 1) {
1170
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_28_Conditional_9_For_8_Template(rf, ctx) { if (rf & 1) {
1171
1171
  i0.ɵɵelementStart(0, "tr");
1172
- i0.ɵɵrepeaterCreate(1, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_Conditional_9_For_8_For_2_Template, 2, 1, "td", null, i0.ɵɵrepeaterTrackByIdentity);
1172
+ i0.ɵɵrepeaterCreate(1, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_28_Conditional_9_For_8_For_2_Template, 2, 1, "td", null, i0.ɵɵrepeaterTrackByIdentity);
1173
1173
  i0.ɵɵelementEnd();
1174
1174
  } if (rf & 2) {
1175
1175
  const ctx_r1 = i0.ɵɵnextContext(5);
1176
1176
  i0.ɵɵadvance();
1177
1177
  i0.ɵɵrepeater(ctx_r1.GetPreviewColumns(ctx_r1.DestPreviewData));
1178
1178
  } }
1179
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1179
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_28_Conditional_9_Template(rf, ctx) { if (rf & 1) {
1180
1180
  i0.ɵɵelementStart(0, "div", 195)(1, "table", 196)(2, "thead")(3, "tr");
1181
- i0.ɵɵrepeaterCreate(4, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_Conditional_9_For_5_Template, 2, 1, "th", null, i0.ɵɵrepeaterTrackByIdentity);
1181
+ i0.ɵɵrepeaterCreate(4, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_28_Conditional_9_For_5_Template, 2, 1, "th", null, i0.ɵɵrepeaterTrackByIdentity);
1182
1182
  i0.ɵɵelementEnd()();
1183
1183
  i0.ɵɵelementStart(6, "tbody");
1184
- i0.ɵɵrepeaterCreate(7, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_Conditional_9_For_8_Template, 3, 0, "tr", null, i0.ɵɵrepeaterTrackByIndex);
1184
+ i0.ɵɵrepeaterCreate(7, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_28_Conditional_9_For_8_Template, 3, 0, "tr", null, i0.ɵɵrepeaterTrackByIndex);
1185
1185
  i0.ɵɵelementEnd()()();
1186
1186
  } if (rf & 2) {
1187
1187
  const ctx_r1 = i0.ɵɵnextContext(4);
@@ -1190,59 +1190,59 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_C
1190
1190
  i0.ɵɵadvance(3);
1191
1191
  i0.ɵɵrepeater(ctx_r1.DestPreviewData);
1192
1192
  } }
1193
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_Template(rf, ctx) { if (rf & 1) {
1193
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_28_Template(rf, ctx) { if (rf & 1) {
1194
1194
  const _r51 = i0.ɵɵgetCurrentView();
1195
1195
  i0.ɵɵelementStart(0, "div", 112)(1, "div", 192)(2, "h4");
1196
1196
  i0.ɵɵelement(3, "i", 35);
1197
1197
  i0.ɵɵtext(4, " Destination Data Preview");
1198
1198
  i0.ɵɵelementEnd();
1199
1199
  i0.ɵɵelementStart(5, "button", 27);
1200
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r51); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.CloseDestPreview()); });
1200
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_28_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r51); const ctx_r1 = i0.ɵɵnextContext(3); return i0.ɵɵresetView(ctx_r1.CloseDestPreview()); });
1201
1201
  i0.ɵɵelement(6, "i", 28);
1202
1202
  i0.ɵɵelementEnd()();
1203
- i0.ɵɵconditionalCreate(7, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_Conditional_7_Template, 1, 0, "mj-loading", 197)(8, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_Conditional_8_Template, 2, 0, "p", 15)(9, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_Conditional_9_Template, 9, 0, "div", 195);
1203
+ i0.ɵɵconditionalCreate(7, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_28_Conditional_7_Template, 1, 0, "mj-loading", 197)(8, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_28_Conditional_8_Template, 2, 0, "p", 15)(9, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_28_Conditional_9_Template, 9, 0, "div", 195);
1204
1204
  i0.ɵɵelementEnd();
1205
1205
  } if (rf & 2) {
1206
1206
  const ctx_r1 = i0.ɵɵnextContext(3);
1207
1207
  i0.ɵɵadvance(7);
1208
1208
  i0.ɵɵconditional(ctx_r1.IsLoadingDestPreview ? 7 : ctx_r1.DestPreviewData.length === 0 ? 8 : 9);
1209
1209
  } }
1210
- function MappingWorkspaceComponent_Conditional_6_Conditional_12_Template(rf, ctx) { if (rf & 1) {
1210
+ function MappingWorkspaceComponent_Conditional_5_Conditional_12_Template(rf, ctx) { if (rf & 1) {
1211
1211
  const _r16 = i0.ɵɵgetCurrentView();
1212
- i0.ɵɵconditionalCreate(0, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_0_Template, 9, 2, "div", 101);
1213
- i0.ɵɵconditionalCreate(1, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_1_Template, 5, 0, "div", 102);
1212
+ i0.ɵɵconditionalCreate(0, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_0_Template, 9, 2, "div", 101);
1213
+ i0.ɵɵconditionalCreate(1, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_1_Template, 5, 0, "div", 102);
1214
1214
  i0.ɵɵelementStart(2, "div", 103)(3, "h3", 104);
1215
1215
  i0.ɵɵtext(4, " Field Mappings ");
1216
1216
  i0.ɵɵelementStart(5, "span", 105);
1217
1217
  i0.ɵɵtext(6);
1218
1218
  i0.ɵɵelementEnd()();
1219
1219
  i0.ɵɵelementStart(7, "div", 106)(8, "button", 107);
1220
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.RerunAutoMap()); });
1220
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Template_button_click_8_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.RerunAutoMap()); });
1221
1221
  i0.ɵɵelement(9, "i", 36);
1222
1222
  i0.ɵɵtext(10, " Auto-Map ");
1223
1223
  i0.ɵɵelementEnd();
1224
1224
  i0.ɵɵelementStart(11, "button", 90);
1225
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.AddFieldMapping()); });
1225
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Template_button_click_11_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.AddFieldMapping()); });
1226
1226
  i0.ɵɵelement(12, "i", 21);
1227
1227
  i0.ɵɵtext(13, " Add Field ");
1228
1228
  i0.ɵɵelementEnd();
1229
1229
  i0.ɵɵelementStart(14, "button", 40);
1230
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SaveFieldMappings()); });
1231
- i0.ɵɵconditionalCreate(15, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_15_Template, 2, 0)(16, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_16_Template, 2, 0);
1230
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Template_button_click_14_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.SaveFieldMappings()); });
1231
+ i0.ɵɵconditionalCreate(15, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_15_Template, 2, 0)(16, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_16_Template, 2, 0);
1232
1232
  i0.ɵɵelementEnd()()();
1233
- i0.ɵɵconditionalCreate(17, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_17_Template, 4, 0, "p", 15)(18, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_18_Template, 3, 0, "div", 108);
1233
+ i0.ɵɵconditionalCreate(17, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_17_Template, 4, 0, "p", 15)(18, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_18_Template, 3, 0, "div", 108);
1234
1234
  i0.ɵɵelementStart(19, "div", 109)(20, "div", 110)(21, "button", 53);
1235
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.LoadSourcePreview()); });
1235
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Template_button_click_21_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.LoadSourcePreview()); });
1236
1236
  i0.ɵɵelement(22, "i", 111);
1237
1237
  i0.ɵɵtext(23, " Preview Source ");
1238
1238
  i0.ɵɵelementEnd();
1239
1239
  i0.ɵɵelementStart(24, "button", 53);
1240
- i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_6_Conditional_12_Template_button_click_24_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.LoadDestPreview()); });
1240
+ i0.ɵɵlistener("click", function MappingWorkspaceComponent_Conditional_5_Conditional_12_Template_button_click_24_listener() { i0.ɵɵrestoreView(_r16); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.LoadDestPreview()); });
1241
1241
  i0.ɵɵelement(25, "i", 35);
1242
1242
  i0.ɵɵtext(26, " Preview Destination ");
1243
1243
  i0.ɵɵelementEnd()();
1244
- i0.ɵɵconditionalCreate(27, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_27_Template, 10, 1, "div", 112);
1245
- i0.ɵɵconditionalCreate(28, MappingWorkspaceComponent_Conditional_6_Conditional_12_Conditional_28_Template, 10, 1, "div", 112);
1244
+ i0.ɵɵconditionalCreate(27, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_27_Template, 10, 1, "div", 112);
1245
+ i0.ɵɵconditionalCreate(28, MappingWorkspaceComponent_Conditional_5_Conditional_12_Conditional_28_Template, 10, 1, "div", 112);
1246
1246
  i0.ɵɵelementEnd();
1247
1247
  } if (rf & 2) {
1248
1248
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -1268,20 +1268,20 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_12_Template(rf, ctx
1268
1268
  i0.ɵɵadvance();
1269
1269
  i0.ɵɵconditional(ctx_r1.ShowDestPreview ? 28 : -1);
1270
1270
  } }
1271
- function MappingWorkspaceComponent_Conditional_6_Conditional_16_Template(rf, ctx) { if (rf & 1) {
1271
+ function MappingWorkspaceComponent_Conditional_5_Conditional_16_Template(rf, ctx) { if (rf & 1) {
1272
1272
  i0.ɵɵelementStart(0, "p", 15);
1273
1273
  i0.ɵɵtext(1, "Select an integration to see run details.");
1274
1274
  i0.ɵɵelementEnd();
1275
1275
  } }
1276
- function MappingWorkspaceComponent_Conditional_6_Conditional_17_Template(rf, ctx) { if (rf & 1) {
1276
+ function MappingWorkspaceComponent_Conditional_5_Conditional_17_Template(rf, ctx) { if (rf & 1) {
1277
1277
  i0.ɵɵelement(0, "mj-loading", 16);
1278
1278
  } }
1279
- function MappingWorkspaceComponent_Conditional_6_Conditional_18_Template(rf, ctx) { if (rf & 1) {
1279
+ function MappingWorkspaceComponent_Conditional_5_Conditional_18_Template(rf, ctx) { if (rf & 1) {
1280
1280
  i0.ɵɵelementStart(0, "p", 15);
1281
1281
  i0.ɵɵtext(1, "No runs found.");
1282
1282
  i0.ɵɵelementEnd();
1283
1283
  } }
1284
- function MappingWorkspaceComponent_Conditional_6_Conditional_19_Conditional_22_For_3_Template(rf, ctx) { if (rf & 1) {
1284
+ function MappingWorkspaceComponent_Conditional_5_Conditional_19_Conditional_22_For_3_Template(rf, ctx) { if (rf & 1) {
1285
1285
  i0.ɵɵelementStart(0, "div", 203)(1, "div", 204);
1286
1286
  i0.ɵɵtext(2);
1287
1287
  i0.ɵɵelementEnd();
@@ -1316,17 +1316,17 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_19_Conditional_22_F
1316
1316
  i0.ɵɵadvance();
1317
1317
  i0.ɵɵtextInterpolate1(" ", detail_r55.RecordsErrored, " ");
1318
1318
  } }
1319
- function MappingWorkspaceComponent_Conditional_6_Conditional_19_Conditional_22_Template(rf, ctx) { if (rf & 1) {
1319
+ function MappingWorkspaceComponent_Conditional_5_Conditional_19_Conditional_22_Template(rf, ctx) { if (rf & 1) {
1320
1320
  i0.ɵɵelementStart(0, "h4", 202);
1321
1321
  i0.ɵɵtext(1, "Per-Entity Stats");
1322
1322
  i0.ɵɵelementEnd();
1323
- i0.ɵɵrepeaterCreate(2, MappingWorkspaceComponent_Conditional_6_Conditional_19_Conditional_22_For_3_Template, 19, 6, "div", 203, _forTrack3);
1323
+ i0.ɵɵrepeaterCreate(2, MappingWorkspaceComponent_Conditional_5_Conditional_19_Conditional_22_For_3_Template, 19, 6, "div", 203, _forTrack3);
1324
1324
  } if (rf & 2) {
1325
1325
  const ctx_r1 = i0.ɵɵnextContext(3);
1326
1326
  i0.ɵɵadvance(2);
1327
1327
  i0.ɵɵrepeater(ctx_r1.RunEntityDetails);
1328
1328
  } }
1329
- function MappingWorkspaceComponent_Conditional_6_Conditional_19_Template(rf, ctx) { if (rf & 1) {
1329
+ function MappingWorkspaceComponent_Conditional_5_Conditional_19_Template(rf, ctx) { if (rf & 1) {
1330
1330
  i0.ɵɵelementStart(0, "div", 198)(1, "div", 199)(2, "span", 200);
1331
1331
  i0.ɵɵtext(3, "Status");
1332
1332
  i0.ɵɵelementEnd();
@@ -1352,7 +1352,7 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_19_Template(rf, ctx
1352
1352
  i0.ɵɵelementStart(20, "span");
1353
1353
  i0.ɵɵtext(21);
1354
1354
  i0.ɵɵelementEnd()()();
1355
- i0.ɵɵconditionalCreate(22, MappingWorkspaceComponent_Conditional_6_Conditional_19_Conditional_22_Template, 4, 0);
1355
+ i0.ɵɵconditionalCreate(22, MappingWorkspaceComponent_Conditional_5_Conditional_19_Conditional_22_Template, 4, 0);
1356
1356
  } if (rf & 2) {
1357
1357
  const ctx_r1 = i0.ɵɵnextContext(2);
1358
1358
  i0.ɵɵadvance(4);
@@ -1368,24 +1368,24 @@ function MappingWorkspaceComponent_Conditional_6_Conditional_19_Template(rf, ctx
1368
1368
  i0.ɵɵadvance();
1369
1369
  i0.ɵɵconditional(ctx_r1.RunEntityDetails.length > 0 ? 22 : -1);
1370
1370
  } }
1371
- function MappingWorkspaceComponent_Conditional_6_Template(rf, ctx) { if (rf & 1) {
1371
+ function MappingWorkspaceComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
1372
1372
  const _r1 = i0.ɵɵgetCurrentView();
1373
1373
  i0.ɵɵelementStart(0, "div", 4)(1, "div", 5)(2, "div", 6)(3, "label", 7);
1374
1374
  i0.ɵɵtext(4, "Integration");
1375
1375
  i0.ɵɵelementEnd();
1376
1376
  i0.ɵɵelementStart(5, "mj-dropdown", 8);
1377
- i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_6_Template_mj_dropdown_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.SelectedIntegrationID, $event) || (ctx_r1.SelectedIntegrationID = $event); return i0.ɵɵresetView($event); });
1378
- i0.ɵɵlistener("ValueChange", function MappingWorkspaceComponent_Conditional_6_Template_mj_dropdown_ValueChange_5_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnIntegrationChange($event)); });
1377
+ i0.ɵɵtwoWayListener("ngModelChange", function MappingWorkspaceComponent_Conditional_5_Template_mj_dropdown_ngModelChange_5_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵtwoWayBindingSet(ctx_r1.SelectedIntegrationID, $event) || (ctx_r1.SelectedIntegrationID = $event); return i0.ɵɵresetView($event); });
1378
+ i0.ɵɵlistener("ValueChange", function MappingWorkspaceComponent_Conditional_5_Template_mj_dropdown_ValueChange_5_listener($event) { i0.ɵɵrestoreView(_r1); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.OnIntegrationChange($event)); });
1379
1379
  i0.ɵɵelementEnd()();
1380
- i0.ɵɵconditionalCreate(6, MappingWorkspaceComponent_Conditional_6_Conditional_6_Template, 1, 0, "mj-loading", 9)(7, MappingWorkspaceComponent_Conditional_6_Conditional_7_Template, 12, 3);
1380
+ i0.ɵɵconditionalCreate(6, MappingWorkspaceComponent_Conditional_5_Conditional_6_Template, 1, 0, "mj-loading", 9)(7, MappingWorkspaceComponent_Conditional_5_Conditional_7_Template, 12, 3);
1381
1381
  i0.ɵɵelementEnd();
1382
1382
  i0.ɵɵelementStart(8, "div", 10);
1383
- i0.ɵɵconditionalCreate(9, MappingWorkspaceComponent_Conditional_6_Conditional_9_Template, 4, 0, "div", 11)(10, MappingWorkspaceComponent_Conditional_6_Conditional_10_Template, 37, 9, "div", 12)(11, MappingWorkspaceComponent_Conditional_6_Conditional_11_Template, 1, 0, "mj-loading", 13)(12, MappingWorkspaceComponent_Conditional_6_Conditional_12_Template, 29, 11);
1383
+ i0.ɵɵconditionalCreate(9, MappingWorkspaceComponent_Conditional_5_Conditional_9_Template, 4, 0, "div", 11)(10, MappingWorkspaceComponent_Conditional_5_Conditional_10_Template, 37, 9, "div", 12)(11, MappingWorkspaceComponent_Conditional_5_Conditional_11_Template, 1, 0, "mj-loading", 13)(12, MappingWorkspaceComponent_Conditional_5_Conditional_12_Template, 29, 11);
1384
1384
  i0.ɵɵelementEnd();
1385
1385
  i0.ɵɵelementStart(13, "div", 14)(14, "h4", 7);
1386
1386
  i0.ɵɵtext(15, "Last Run Details");
1387
1387
  i0.ɵɵelementEnd();
1388
- i0.ɵɵconditionalCreate(16, MappingWorkspaceComponent_Conditional_6_Conditional_16_Template, 2, 0, "p", 15)(17, MappingWorkspaceComponent_Conditional_6_Conditional_17_Template, 1, 0, "mj-loading", 16)(18, MappingWorkspaceComponent_Conditional_6_Conditional_18_Template, 2, 0, "p", 15)(19, MappingWorkspaceComponent_Conditional_6_Conditional_19_Template, 23, 9);
1388
+ i0.ɵɵconditionalCreate(16, MappingWorkspaceComponent_Conditional_5_Conditional_16_Template, 2, 0, "p", 15)(17, MappingWorkspaceComponent_Conditional_5_Conditional_17_Template, 1, 0, "mj-loading", 16)(18, MappingWorkspaceComponent_Conditional_5_Conditional_18_Template, 2, 0, "p", 15)(19, MappingWorkspaceComponent_Conditional_5_Conditional_19_Template, 23, 9);
1389
1389
  i0.ɵɵelementEnd()();
1390
1390
  } if (rf & 2) {
1391
1391
  const ctx_r1 = i0.ɵɵnextContext();
@@ -2335,17 +2335,18 @@ let MappingWorkspaceComponent = class MappingWorkspaceComponent extends BaseReso
2335
2335
  return 'fa-solid fa-diagram-project';
2336
2336
  }
2337
2337
  static ɵfac = /*@__PURE__*/ (() => { let ɵMappingWorkspaceComponent_BaseFactory; return function MappingWorkspaceComponent_Factory(__ngFactoryType__) { return (ɵMappingWorkspaceComponent_BaseFactory || (ɵMappingWorkspaceComponent_BaseFactory = i0.ɵɵgetInheritedFactory(MappingWorkspaceComponent)))(__ngFactoryType__ || MappingWorkspaceComponent); }; })();
2338
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MappingWorkspaceComponent, selectors: [["app-mapping-workspace"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 7, vars: 1, consts: [[1, "mapping-workspace"], [1, "workspace-header"], [1, "fa-solid", "fa-diagram-project"], ["text", "Loading integrations...", "size", "medium"], [1, "workspace-body"], [1, "left-panel"], [1, "integration-selector"], [1, "panel-label"], ["TextField", "Name", "ValueField", "ID", 3, "ngModelChange", "ValueChange", "Data", "ValuePrimitive", "ngModel", "DefaultItem"], ["text", "Loading entity maps...", "size", "small"], [1, "center-panel"], [1, "placeholder-message"], [1, "pending-entity-panel"], ["text", "Loading field maps...", "size", "medium"], [1, "right-panel"], [1, "empty-hint"], ["text", "Loading...", "size", "small"], [1, "entity-map-header"], [1, "panel-label", 2, "margin", "0"], [1, "header-actions"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Add entity map", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "add-map-panel"], [1, "search-box"], [1, "entity-map-list"], [1, "add-panel-top"], [1, "fa-solid", "fa-plus-circle"], [1, "add-panel-close", 3, "click"], [1, "fa-solid", "fa-times"], [1, "form-group"], [1, "source-loading"], [1, "discover-error-inline"], ["TextField", "Label", "ValueField", "Name", 3, "Data", "ValuePrimitive", "ngModel", "Filterable", "DefaultItem"], [1, "target-mode-toggle"], [1, "target-mode-btn", 3, "click"], [1, "fa-solid", "fa-database"], [1, "fa-solid", "fa-wand-magic-sparkles"], [1, "new-entity-form"], [3, "ngModelChange", "Data", "ngModel"], [1, "add-form-actions"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click", "disabled"], ["mjButton", "", "size", "sm", 3, "click"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-triangle-exclamation"], ["TextField", "Label", "ValueField", "Name", 3, "ngModelChange", "ValueChange", "Data", "ValuePrimitive", "ngModel", "Filterable", "DefaultItem"], ["TextField", "Name", "ValueField", "ID", 3, "Data", "ValuePrimitive", "ngModel", "Filterable", "DefaultItem"], ["TextField", "Name", "ValueField", "ID", 3, "ngModelChange", "Data", "ValuePrimitive", "ngModel", "Filterable", "DefaultItem"], [1, "section-label"], ["Placeholder", "Select or type schema...", 3, "ngModelChange", "ValueChange", "Data", "ngModel", "AllowCustom", "Filterable"], [1, "form-row"], [1, "mj-input", 3, "ngModelChange", "ngModel", "placeholder"], [1, "auto-hint"], [1, "ddl-preview-section"], ["mjButton", "", "variant", "outline", "size", "sm", 3, "click", "disabled"], [1, "discover-error-inline", 2, "margin-top", "8px"], [1, "ddl-preview-code"], [1, "fa-solid", "fa-check"], ["placeholder", "Search entity maps...", 1, "mj-input", 3, "ngModelChange", "ngModel"], ["href", "javascript:void(0)", 2, "color", "var(--mj-brand-primary)", 3, "click"], [1, "entity-map-item", 3, "selected", "pending"], [1, "entity-map-item", 3, "click"], [1, "em-top-row"], [1, "em-name"], [1, "em-arrow"], [1, "fa-solid", "fa-arrow-right"], [1, "em-entity"], [1, "em-bottom-row"], [1, "em-badges"], [1, "badge", "badge-direction"], [1, "badge", "badge-pending"], [1, "em-actions"], ["title", "Delete", 1, "em-delete", 3, "click"], [1, "fa-solid", "fa-trash-can"], [3, "ngModel"], [3, "ngModelChange", "ngModel"], [1, "fa-solid", "fa-hand-pointer"], [1, "pending-icon"], [1, "fa-solid", "fa-clock"], [1, "pending-steps"], [1, "step"], [1, "step-circle", "done"], [1, "step-label"], [1, "step-connector"], [1, "step-circle", 3, "ngClass"], [1, "step-circle", "future"], [1, "ddl-preview-inline"], [1, "pending-fields-section"], [2, "font-size", "14px", "margin-bottom", "8px"], [1, "ddl-code-block"], [1, "ddl-actions"], ["mjButton", "", "variant", "outline", "size", "sm", 3, "click"], [1, "fa-solid", "fa-copy"], [2, "font-size", "14px", "margin", "16px 0 8px"], [1, "fa-solid", "fa-list"], [2, "color", "var(--mj-text-muted)", "font-weight", "400"], [1, "pending-fields-list"], [1, "pending-field-item"], [1, "pending-field-name"], [1, "pending-field-type"], ["title", "Key field", 1, "fa-solid", "fa-key", "key-icon"], [1, "pending-field-req"], [1, "auto-map-banner"], [1, "validation-banner"], [1, "field-mapping-header"], [1, "panel-title"], [1, "field-count"], [1, "field-mapping-actions"], ["mjButton", "", "variant", "outline", "size", "sm", "title", "Auto-match source and destination fields by name", 3, "click", "disabled"], [1, "field-map-cards"], [1, "data-preview-section"], [1, "preview-actions"], [1, "fa-solid", "fa-cloud-arrow-down"], [1, "preview-panel"], [1, "banner-text"], ["mjButton", "", "variant", "flat", "size", "sm", 3, "click"], [1, "validation-warnings"], [1, "fa-solid", "fa-floppy-disk"], [1, "field-map-card", 3, "validation-error", "has-transform"], [1, "field-map-card"], [1, "fmc-row"], [1, "fmc-source"], ["type", "text", "placeholder", "Source field name", 1, "fmc-input", 3, "ngModel"], [1, "fmc-transform-zone"], [1, "fmc-transform-pill", 3, "title"], ["title", "Click to change transform type", 1, "fmc-transform-pill", "fmc-transform-direct"], [1, "fmc-dest"], [1, "fmc-select", 3, "ngModel"], ["type", "text", "placeholder", "Destination field", 1, "fmc-input", 3, "ngModel"], [1, "fmc-flags"], ["title", "Key field for matching", 1, "fmc-flag"], ["type", "checkbox", 3, "ngModelChange", "ngModel"], [1, "fa-solid", "fa-key"], ["title", "Required field", 1, "fmc-flag"], [1, "fmc-req-star"], ["title", "Remove mapping", 1, "fmc-remove", 3, "click"], [1, "fmc-transform-editor"], ["type", "text", "placeholder", "Source field name", 1, "fmc-input", 3, "ngModelChange", "ngModel"], [1, "fmc-field-name"], [1, "fmc-badges"], [1, "fmc-badge", "badge-type"], ["title", "Primary Key", 1, "fmc-badge", "badge-pk"], ["title", "Required", 1, "fmc-badge", "badge-req"], ["title", "Read-Only", 1, "fmc-badge", "badge-ro"], [1, "fmc-transform-pill", 3, "click", "title"], [1, "fmc-step-count"], ["title", "Click to change transform type", 1, "fmc-transform-pill", "fmc-transform-direct", 3, "click"], [1, "fmc-select", 3, "ngModelChange", "ngModel"], ["value", ""], [3, "value"], ["type", "text", "placeholder", "Destination field", 1, "fmc-input", 3, "ngModelChange", "ngModel"], [1, "fmc-te-header"], [1, "fmc-te-title"], ["title", "Add another step", 1, "fmc-te-add", 3, "click"], [1, "fmc-te-step"], [1, "fmc-te-step-header"], [1, "fmc-te-step-num"], [1, "fmc-te-type-select", 3, "ngModelChange", "ngModel"], ["title", "On error", 1, "fmc-te-error-select", 3, "ngModelChange", "ngModel"], ["value", "Fail"], ["value", "Skip"], ["value", "Null"], ["title", "Remove step", 1, "fmc-te-remove-step", 3, "click"], [1, "fmc-te-config"], [1, "fmc-te-field"], [1, "fmc-te-row"], [1, "fmc-te-field", "fmc-te-sm"], ["type", "text", "placeholder", "Leave empty for no default", 1, "fmc-input", 3, "ngModelChange", "ngModel"], ["type", "text", "placeholder", "e.g. (\\d{3})-(\\d{4})", 1, "fmc-input", "mono", 3, "ngModelChange", "ngModel"], ["type", "text", "placeholder", "e.g. $1$2", 1, "fmc-input", "mono", 3, "ngModelChange", "ngModel"], ["type", "text", "placeholder", "gi", 1, "fmc-input", "mono", 3, "ngModelChange", "ngModel"], ["type", "text", "placeholder", ",", 1, "fmc-input", "mono", 3, "ngModelChange", "ngModel"], ["type", "number", "min", "0", 1, "fmc-input", 3, "ngModelChange", "ngModel"], [1, "fmc-combine-chips"], [1, "fmc-chip", 3, "selected"], ["type", "text", "placeholder", " ", 1, "fmc-input", "mono", 3, "ngModelChange", "ngModel"], [1, "fmc-chip", 3, "click"], [1, "fmc-lookup-table"], [1, "fmc-lookup-row"], [1, "fmc-lookup-add", 3, "click"], ["type", "text", "placeholder", "null", 1, "fmc-input", 3, "ngModelChange", "ngModel"], ["type", "text", "placeholder", "Source value", 1, "fmc-input", 3, "change", "value"], [1, "fa-solid", "fa-arrow-right", "fmc-lookup-arrow"], ["type", "text", "placeholder", "Mapped value", 1, "fmc-input", 3, "change", "value"], [1, "fmc-lookup-del", 3, "click"], ["value", "date"], ["value", "number"], ["value", "string"], ["type", "text", "placeholder", "ISO or decimal places", 1, "fmc-input", "mono", 3, "ngModelChange", "ngModel"], ["value", "boolean"], ["type", "number", "min", "1", 1, "fmc-input", 3, "ngModelChange", "ngModel"], [1, "fmc-te-hint"], ["placeholder", "value.toUpperCase()", "rows", "2", 1, "fmc-input", "mono", "fmc-textarea", 3, "ngModelChange", "ngModel"], [1, "preview-panel-header"], [1, "fa-solid", "fa-cloud"], ["text", "Loading source data...", "size", "small"], [1, "preview-table-wrapper"], [1, "preview-table"], ["text", "Loading destination data...", "size", "small"], [1, "run-summary-card"], [1, "run-summary-row"], [1, "label"], [1, "run-status"], [1, "panel-label", 2, "margin-top", "16px"], [1, "entity-stat-card"], [1, "entity-stat-name"], [1, "entity-stat-grid"], [1, "mini-stat"], [1, "mini-val"], [1, "mini-label"]], template: function MappingWorkspaceComponent_Template(rf, ctx) { if (rf & 1) {
2339
- i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "h2");
2340
- i0.ɵɵelement(3, "i", 2);
2341
- i0.ɵɵtext(4, " Mapping Workspace");
2342
- i0.ɵɵelementEnd()();
2343
- i0.ɵɵconditionalCreate(5, MappingWorkspaceComponent_Conditional_5_Template, 1, 0, "mj-loading", 3)(6, MappingWorkspaceComponent_Conditional_6_Template, 20, 8, "div", 4);
2344
- i0.ɵɵelementEnd();
2338
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: MappingWorkspaceComponent, selectors: [["app-mapping-workspace"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 6, vars: 3, consts: [["Title", "Mapping Workspace", "Icon", "fa-solid fa-diagram-project", "Subtitle", "Build and validate entity field mappings"], [3, "Flex", "Padding"], [1, "mapping-workspace"], ["text", "Loading integrations...", "size", "medium"], [1, "workspace-body"], [1, "left-panel"], [1, "integration-selector"], [1, "panel-label"], ["TextField", "Name", "ValueField", "ID", 3, "ngModelChange", "ValueChange", "Data", "ValuePrimitive", "ngModel", "DefaultItem"], ["text", "Loading entity maps...", "size", "small"], [1, "center-panel"], [1, "placeholder-message"], [1, "pending-entity-panel"], ["text", "Loading field maps...", "size", "medium"], [1, "right-panel"], [1, "empty-hint"], ["text", "Loading...", "size", "small"], [1, "entity-map-header"], [1, "panel-label", 2, "margin", "0"], [1, "header-actions"], ["mjButton", "", "variant", "flat", "size", "sm", "title", "Add entity map", 3, "click"], [1, "fa-solid", "fa-plus"], [1, "add-map-panel"], [1, "search-box"], [1, "entity-map-list"], [1, "add-panel-top"], [1, "fa-solid", "fa-plus-circle"], [1, "add-panel-close", 3, "click"], [1, "fa-solid", "fa-times"], [1, "form-group"], [1, "source-loading"], [1, "discover-error-inline"], ["TextField", "Label", "ValueField", "Name", 3, "Data", "ValuePrimitive", "ngModel", "Filterable", "DefaultItem"], [1, "target-mode-toggle"], [1, "target-mode-btn", 3, "click"], [1, "fa-solid", "fa-database"], [1, "fa-solid", "fa-wand-magic-sparkles"], [1, "new-entity-form"], [3, "ngModelChange", "Data", "ngModel"], [1, "add-form-actions"], ["mjButton", "", "variant", "primary", "size", "sm", 3, "click", "disabled"], ["mjButton", "", "size", "sm", 3, "click"], [1, "fa-solid", "fa-spinner", "fa-spin"], [1, "fa-solid", "fa-triangle-exclamation"], ["TextField", "Label", "ValueField", "Name", 3, "ngModelChange", "ValueChange", "Data", "ValuePrimitive", "ngModel", "Filterable", "DefaultItem"], ["TextField", "Name", "ValueField", "ID", 3, "Data", "ValuePrimitive", "ngModel", "Filterable", "DefaultItem"], ["TextField", "Name", "ValueField", "ID", 3, "ngModelChange", "Data", "ValuePrimitive", "ngModel", "Filterable", "DefaultItem"], [1, "section-label"], ["Placeholder", "Select or type schema...", 3, "ngModelChange", "ValueChange", "Data", "ngModel", "AllowCustom", "Filterable"], [1, "form-row"], [1, "mj-input", 3, "ngModelChange", "ngModel", "placeholder"], [1, "auto-hint"], [1, "ddl-preview-section"], ["mjButton", "", "variant", "outline", "size", "sm", 3, "click", "disabled"], [1, "discover-error-inline", 2, "margin-top", "8px"], [1, "ddl-preview-code"], [1, "fa-solid", "fa-check"], ["placeholder", "Search entity maps...", 1, "mj-input", 3, "ngModelChange", "ngModel"], ["href", "javascript:void(0)", 2, "color", "var(--mj-brand-primary)", 3, "click"], [1, "entity-map-item", 3, "selected", "pending"], [1, "entity-map-item", 3, "click"], [1, "em-top-row"], [1, "em-name"], [1, "em-arrow"], [1, "fa-solid", "fa-arrow-right"], [1, "em-entity"], [1, "em-bottom-row"], [1, "em-badges"], [1, "badge", "badge-direction"], [1, "badge", "badge-pending"], [1, "em-actions"], ["title", "Delete", 1, "em-delete", 3, "click"], [1, "fa-solid", "fa-trash-can"], [3, "ngModel"], [3, "ngModelChange", "ngModel"], [1, "fa-solid", "fa-hand-pointer"], [1, "pending-icon"], [1, "fa-solid", "fa-clock"], [1, "pending-steps"], [1, "step"], [1, "step-circle", "done"], [1, "step-label"], [1, "step-connector"], [1, "step-circle", 3, "ngClass"], [1, "step-circle", "future"], [1, "ddl-preview-inline"], [1, "pending-fields-section"], [2, "font-size", "14px", "margin-bottom", "8px"], [1, "ddl-code-block"], [1, "ddl-actions"], ["mjButton", "", "variant", "outline", "size", "sm", 3, "click"], [1, "fa-solid", "fa-copy"], [2, "font-size", "14px", "margin", "16px 0 8px"], [1, "fa-solid", "fa-list"], [2, "color", "var(--mj-text-muted)", "font-weight", "400"], [1, "pending-fields-list"], [1, "pending-field-item"], [1, "pending-field-name"], [1, "pending-field-type"], ["title", "Key field", 1, "fa-solid", "fa-key", "key-icon"], [1, "pending-field-req"], [1, "auto-map-banner"], [1, "validation-banner"], [1, "field-mapping-header"], [1, "panel-title"], [1, "field-count"], [1, "field-mapping-actions"], ["mjButton", "", "variant", "outline", "size", "sm", "title", "Auto-match source and destination fields by name", 3, "click", "disabled"], [1, "field-map-cards"], [1, "data-preview-section"], [1, "preview-actions"], [1, "fa-solid", "fa-cloud-arrow-down"], [1, "preview-panel"], [1, "banner-text"], ["mjButton", "", "variant", "flat", "size", "sm", 3, "click"], [1, "validation-warnings"], [1, "fa-solid", "fa-floppy-disk"], [1, "field-map-card", 3, "validation-error", "has-transform"], [1, "field-map-card"], [1, "fmc-row"], [1, "fmc-source"], ["type", "text", "placeholder", "Source field name", 1, "fmc-input", 3, "ngModel"], [1, "fmc-transform-zone"], [1, "fmc-transform-pill", 3, "title"], ["title", "Click to change transform type", 1, "fmc-transform-pill", "fmc-transform-direct"], [1, "fmc-dest"], [1, "fmc-select", 3, "ngModel"], ["type", "text", "placeholder", "Destination field", 1, "fmc-input", 3, "ngModel"], [1, "fmc-flags"], ["title", "Key field for matching", 1, "fmc-flag"], ["type", "checkbox", 3, "ngModelChange", "ngModel"], [1, "fa-solid", "fa-key"], ["title", "Required field", 1, "fmc-flag"], [1, "fmc-req-star"], ["title", "Remove mapping", 1, "fmc-remove", 3, "click"], [1, "fmc-transform-editor"], ["type", "text", "placeholder", "Source field name", 1, "fmc-input", 3, "ngModelChange", "ngModel"], [1, "fmc-field-name"], [1, "fmc-badges"], [1, "fmc-badge", "badge-type"], ["title", "Primary Key", 1, "fmc-badge", "badge-pk"], ["title", "Required", 1, "fmc-badge", "badge-req"], ["title", "Read-Only", 1, "fmc-badge", "badge-ro"], [1, "fmc-transform-pill", 3, "click", "title"], [1, "fmc-step-count"], ["title", "Click to change transform type", 1, "fmc-transform-pill", "fmc-transform-direct", 3, "click"], [1, "fmc-select", 3, "ngModelChange", "ngModel"], ["value", ""], [3, "value"], ["type", "text", "placeholder", "Destination field", 1, "fmc-input", 3, "ngModelChange", "ngModel"], [1, "fmc-te-header"], [1, "fmc-te-title"], ["title", "Add another step", 1, "fmc-te-add", 3, "click"], [1, "fmc-te-step"], [1, "fmc-te-step-header"], [1, "fmc-te-step-num"], [1, "fmc-te-type-select", 3, "ngModelChange", "ngModel"], ["title", "On error", 1, "fmc-te-error-select", 3, "ngModelChange", "ngModel"], ["value", "Fail"], ["value", "Skip"], ["value", "Null"], ["title", "Remove step", 1, "fmc-te-remove-step", 3, "click"], [1, "fmc-te-config"], [1, "fmc-te-field"], [1, "fmc-te-row"], [1, "fmc-te-field", "fmc-te-sm"], ["type", "text", "placeholder", "Leave empty for no default", 1, "fmc-input", 3, "ngModelChange", "ngModel"], ["type", "text", "placeholder", "e.g. (\\d{3})-(\\d{4})", 1, "fmc-input", "mono", 3, "ngModelChange", "ngModel"], ["type", "text", "placeholder", "e.g. $1$2", 1, "fmc-input", "mono", 3, "ngModelChange", "ngModel"], ["type", "text", "placeholder", "gi", 1, "fmc-input", "mono", 3, "ngModelChange", "ngModel"], ["type", "text", "placeholder", ",", 1, "fmc-input", "mono", 3, "ngModelChange", "ngModel"], ["type", "number", "min", "0", 1, "fmc-input", 3, "ngModelChange", "ngModel"], [1, "fmc-combine-chips"], [1, "fmc-chip", 3, "selected"], ["type", "text", "placeholder", " ", 1, "fmc-input", "mono", 3, "ngModelChange", "ngModel"], [1, "fmc-chip", 3, "click"], [1, "fmc-lookup-table"], [1, "fmc-lookup-row"], [1, "fmc-lookup-add", 3, "click"], ["type", "text", "placeholder", "null", 1, "fmc-input", 3, "ngModelChange", "ngModel"], ["type", "text", "placeholder", "Source value", 1, "fmc-input", 3, "change", "value"], [1, "fa-solid", "fa-arrow-right", "fmc-lookup-arrow"], ["type", "text", "placeholder", "Mapped value", 1, "fmc-input", 3, "change", "value"], [1, "fmc-lookup-del", 3, "click"], ["value", "date"], ["value", "number"], ["value", "string"], ["type", "text", "placeholder", "ISO or decimal places", 1, "fmc-input", "mono", 3, "ngModelChange", "ngModel"], ["value", "boolean"], ["type", "number", "min", "1", 1, "fmc-input", 3, "ngModelChange", "ngModel"], [1, "fmc-te-hint"], ["placeholder", "value.toUpperCase()", "rows", "2", 1, "fmc-input", "mono", "fmc-textarea", 3, "ngModelChange", "ngModel"], [1, "preview-panel-header"], [1, "fa-solid", "fa-cloud"], ["text", "Loading source data...", "size", "small"], [1, "preview-table-wrapper"], [1, "preview-table"], ["text", "Loading destination data...", "size", "small"], [1, "run-summary-card"], [1, "run-summary-row"], [1, "label"], [1, "run-status"], [1, "panel-label", 2, "margin-top", "16px"], [1, "entity-stat-card"], [1, "entity-stat-name"], [1, "entity-stat-grid"], [1, "mini-stat"], [1, "mini-val"], [1, "mini-label"]], template: function MappingWorkspaceComponent_Template(rf, ctx) { if (rf & 1) {
2339
+ i0.ɵɵelementStart(0, "mj-page-layout");
2340
+ i0.ɵɵelement(1, "mj-page-header", 0);
2341
+ i0.ɵɵelementStart(2, "mj-page-body", 1)(3, "div", 2);
2342
+ i0.ɵɵconditionalCreate(4, MappingWorkspaceComponent_Conditional_4_Template, 1, 0, "mj-loading", 3)(5, MappingWorkspaceComponent_Conditional_5_Template, 20, 8, "div", 4);
2343
+ i0.ɵɵelementEnd()()();
2345
2344
  } if (rf & 2) {
2346
- i0.ɵɵadvance(5);
2347
- i0.ɵɵconditional(ctx.IsLoadingIntegrations ? 5 : 6);
2348
- } }, dependencies: [i1.NgClass, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.DefaultValueAccessor, i2.NumberValueAccessor, i2.CheckboxControlValueAccessor, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.MinValidator, i2.NgModel, i3.MJButtonDirective, i3.MJComboboxComponent, i3.MJDropdownComponent, i3.MJSwitchComponent, i4.LoadingComponent, i1.DecimalPipe], styles: [".mapping-workspace[_ngcontent-%COMP%] { padding: 24px; height: 100%; display: flex; flex-direction: column; }\n.workspace-header[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 16px;\n}\n.workspace-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0; font-size: 20px; font-weight: 600;\n}\n.workspace-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { margin-right: 8px; color: var(--mj-color-indigo-500); }\n\n\n\n.workspace-body[_ngcontent-%COMP%] {\n display: flex; flex: 1; gap: 1px; background: var(--mj-border-default);\n border-radius: 10px; overflow: hidden; min-height: 500px;\n}\n\n.left-panel[_ngcontent-%COMP%] { width: 320px; min-width: 280px; background: var(--mj-bg-surface); padding: 16px; overflow-y: auto; flex-shrink: 0; }\n.center-panel[_ngcontent-%COMP%] { flex: 1; background: var(--mj-bg-surface); padding: 20px; overflow-y: auto; }\n.right-panel[_ngcontent-%COMP%] { width: 280px; min-width: 240px; background: var(--mj-bg-surface); padding: 16px; overflow-y: auto; flex-shrink: 0; }\n\n\n\n.panel-label[_ngcontent-%COMP%] {\n font-size: 11px; font-weight: 700; color: var(--mj-text-disabled);\n text-transform: uppercase; letter-spacing: 0.6px;\n margin: 0 0 6px 0; display: block;\n}\n.panel-title[_ngcontent-%COMP%] { margin: 0 0 12px 0; font-size: 16px; font-weight: 600; }\n.panel-title[_ngcontent-%COMP%] .field-count[_ngcontent-%COMP%] { color: var(--mj-text-disabled); font-weight: 400; font-size: 13px; }\n.empty-hint[_ngcontent-%COMP%] { color: var(--mj-text-disabled); font-size: 13px; font-style: italic; }\n.search-box[_ngcontent-%COMP%] { margin-bottom: 12px; }\n\n\n\n.integration-selector[_ngcontent-%COMP%] { margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--mj-border-subtle); }\n\n\n\n.entity-map-header[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 10px;\n}\n.header-actions[_ngcontent-%COMP%] { display: flex; gap: 4px; }\n\n\n\n.add-map-panel[_ngcontent-%COMP%] {\n background: var(--mj-bg-page); border: 1px solid var(--mj-border-default); border-radius: 10px;\n padding: 16px; margin-bottom: 14px;\n}\n.add-panel-top[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 14px;\n}\n.add-panel-top[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] { margin: 0; font-size: 14px; font-weight: 600; }\n.add-panel-close[_ngcontent-%COMP%] {\n background: none; border: none; cursor: pointer; color: var(--mj-text-disabled); font-size: 14px;\n}\n.add-panel-close[_ngcontent-%COMP%]:hover { color: var(--mj-text-primary); }\n\n.form-group[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }\n.form-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] { font-size: 12px; font-weight: 600; color: var(--mj-text-muted); }\n.form-row[_ngcontent-%COMP%] { display: flex; gap: 10px; }\n.form-row[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] { flex: 1; }\n\n.source-loading[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 8px;\n font-size: 12px; color: var(--mj-text-disabled); padding: 6px 0;\n}\n.source-loading[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-color-indigo-500); }\n\n.discover-error-inline[_ngcontent-%COMP%] {\n font-size: 12px; color: var(--mj-color-error-600); padding: 6px 0;\n}\n.discover-error-inline[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { margin-right: 4px; }\n\n\n\n.target-mode-toggle[_ngcontent-%COMP%] {\n display: flex; border: 1px solid var(--mj-border-default); border-radius: 6px;\n overflow: hidden; margin-bottom: 12px;\n}\n.target-mode-btn[_ngcontent-%COMP%] {\n flex: 1; padding: 8px 12px; font-size: 12px; font-weight: 600;\n text-align: center; cursor: pointer; background: var(--mj-bg-surface); border: none;\n color: var(--mj-text-muted); transition: all 0.15s;\n}\n.target-mode-btn[_ngcontent-%COMP%]:first-child { border-right: 1px solid var(--mj-border-default); }\n.target-mode-btn.active[_ngcontent-%COMP%] { background: var(--mj-color-indigo-500); color: var(--mj-bg-surface); }\n.target-mode-btn[_ngcontent-%COMP%]:not(.active):hover { background: var(--mj-status-info-bg); color: var(--mj-color-indigo-500); }\n.target-mode-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { margin-right: 4px; }\n\n\n\n.new-entity-form[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default); border-radius: 8px;\n padding: 14px; margin-bottom: 12px;\n}\n.new-entity-form[_ngcontent-%COMP%] .section-label[_ngcontent-%COMP%] {\n font-size: 11px; font-weight: 700; color: var(--mj-color-indigo-500);\n text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 10px;\n}\n.auto-hint[_ngcontent-%COMP%] { font-size: 10px; color: var(--mj-text-disabled); font-style: italic; }\n\n\n\n.ddl-preview-section[_ngcontent-%COMP%] { margin-top: 8px; }\n.ddl-preview-code[_ngcontent-%COMP%] {\n background: var(--mj-text-primary); color: var(--mj-color-neutral-300); padding: 10px;\n border-radius: 4px; font-size: 11px; line-height: 1.5;\n max-height: 200px; overflow: auto; white-space: pre-wrap;\n word-break: break-word; margin-top: 8px;\n}\n\n.add-form-actions[_ngcontent-%COMP%] { display: flex; gap: 6px; padding-top: 4px; }\n\n\n\n.entity-map-list[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 4px; }\n.entity-map-item[_ngcontent-%COMP%] {\n padding: 8px 10px; border-radius: 6px;\n cursor: pointer; border: 1px solid var(--mj-border-subtle); transition: all 0.15s;\n}\n.entity-map-item[_ngcontent-%COMP%]:hover { background: var(--mj-bg-page); }\n.entity-map-item.selected[_ngcontent-%COMP%] { background: var(--mj-status-info-bg); border-color: var(--mj-color-indigo-500); }\n.entity-map-item.pending[_ngcontent-%COMP%] { border-left: 3px solid var(--mj-status-warning); }\n\n.em-top-row[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 4px;\n font-size: 13px; margin-bottom: 4px;\n}\n.em-name[_ngcontent-%COMP%] { font-weight: 600; }\n.em-arrow[_ngcontent-%COMP%] { color: var(--mj-text-disabled); font-size: 11px; }\n.em-entity[_ngcontent-%COMP%] { color: var(--mj-text-muted); }\n\n.em-bottom-row[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: space-between;\n font-size: 11px; color: var(--mj-text-disabled);\n}\n.em-badges[_ngcontent-%COMP%] { display: flex; gap: 4px; align-items: center; }\n.badge[_ngcontent-%COMP%] {\n font-size: 10px; padding: 1px 6px; border-radius: 4px; font-weight: 600;\n}\n.badge-direction[_ngcontent-%COMP%] { background: var(--mj-bg-surface-hover); color: var(--mj-text-muted); }\n.badge-pending[_ngcontent-%COMP%] { background: var(--mj-color-warning-50); color: var(--mj-color-warning-600); }\n\n.em-actions[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 4px; }\n.em-delete[_ngcontent-%COMP%] {\n opacity: 0; transition: opacity 0.15s;\n cursor: pointer; color: var(--mj-color-error-600); background: none; border: none;\n padding: 2px 4px; font-size: 12px;\n}\n.entity-map-item[_ngcontent-%COMP%]:hover .em-delete[_ngcontent-%COMP%] { opacity: 1; }\n\n\n\n.placeholder-message[_ngcontent-%COMP%] {\n display: flex; flex-direction: column; align-items: center;\n justify-content: center; height: 300px; color: var(--mj-text-disabled);\n}\n.placeholder-message[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 36px; margin-bottom: 12px; }\n.placeholder-message[_ngcontent-%COMP%] p[_ngcontent-%COMP%] { text-align: center; }\n\n\n\n.pending-entity-panel[_ngcontent-%COMP%] {\n background: var(--mj-status-warning-bg); border: 1px solid var(--mj-color-warning-200); border-radius: 10px;\n padding: 24px; text-align: center;\n}\n.pending-icon[_ngcontent-%COMP%] { font-size: 40px; color: var(--mj-status-warning); margin-bottom: 12px; }\n.pending-entity-panel[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] { font-size: 16px; margin-bottom: 8px; }\n.pending-entity-panel[_ngcontent-%COMP%] p[_ngcontent-%COMP%] { font-size: 13px; color: var(--mj-text-disabled); margin-bottom: 16px; line-height: 1.5; }\n\n\n\n.pending-steps[_ngcontent-%COMP%] {\n display: flex; gap: 0; margin: 20px 0; justify-content: center; align-items: center;\n}\n.step[_ngcontent-%COMP%] {\n display: flex; flex-direction: column; align-items: center; gap: 6px;\n padding: 0 16px;\n}\n.step-circle[_ngcontent-%COMP%] {\n width: 36px; height: 36px; border-radius: 50%;\n display: flex; align-items: center; justify-content: center;\n font-size: 14px; font-weight: 700;\n}\n.step-circle.done[_ngcontent-%COMP%] { background: var(--mj-status-success-bg); color: var(--mj-color-success-700); }\n.step-circle.current[_ngcontent-%COMP%] { background: var(--mj-color-indigo-500); color: var(--mj-bg-surface); }\n.step-circle.future[_ngcontent-%COMP%] { background: var(--mj-bg-surface-hover); color: var(--mj-text-disabled); }\n.step-label[_ngcontent-%COMP%] { font-size: 10px; font-weight: 600; color: var(--mj-text-disabled); text-transform: uppercase; white-space: nowrap; }\n.step-connector[_ngcontent-%COMP%] { width: 32px; height: 2px; background: var(--mj-border-default); align-self: center; margin-bottom: 18px; }\n.step-connector.done[_ngcontent-%COMP%] { background: var(--mj-color-success-700); }\n\n\n\n.ddl-preview-inline[_ngcontent-%COMP%] { margin-top: 16px; text-align: left; }\n.ddl-code-block[_ngcontent-%COMP%] {\n background: var(--mj-text-primary); color: var(--mj-color-neutral-300); padding: 12px;\n border-radius: 6px; font-size: 12px; line-height: 1.5;\n max-height: 250px; overflow: auto; white-space: pre-wrap;\n}\n.ddl-actions[_ngcontent-%COMP%] { display: flex; gap: 8px; margin-top: 12px; justify-content: center; }\n\n\n\n.pending-fields-section[_ngcontent-%COMP%] { text-align: left; }\n.pending-fields-list[_ngcontent-%COMP%] {\n display: flex; flex-direction: column; gap: 2px;\n max-height: 200px; overflow-y: auto;\n}\n.pending-field-item[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 8px;\n padding: 4px 8px; font-size: 13px; border-radius: 4px;\n}\n.pending-field-item[_ngcontent-%COMP%]:hover { background: var(--mj-status-warning-bg); }\n.pending-field-name[_ngcontent-%COMP%] { font-weight: 600; }\n.pending-field-type[_ngcontent-%COMP%] { font-size: 11px; color: var(--mj-text-disabled); background: var(--mj-bg-surface-hover); padding: 1px 6px; border-radius: 3px; }\n.pending-field-req[_ngcontent-%COMP%] { color: var(--mj-color-error-600); font-weight: 700; }\n\n\n\n.auto-map-banner[_ngcontent-%COMP%] {\n background: var(--mj-status-info-bg); border: 1px solid var(--mj-color-info-100); border-radius: 8px;\n padding: 12px 16px; margin-bottom: 16px;\n display: flex; align-items: center; gap: 12px;\n}\n.auto-map-banner[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] { color: var(--mj-color-indigo-500); font-size: 18px; }\n.auto-map-banner[_ngcontent-%COMP%] .banner-text[_ngcontent-%COMP%] { flex: 1; }\n.auto-map-banner[_ngcontent-%COMP%] .banner-text[_ngcontent-%COMP%] p[_ngcontent-%COMP%] { font-size: 13px; color: var(--mj-text-muted); margin: 0; }\n.auto-map-banner[_ngcontent-%COMP%] .banner-text[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] { color: var(--mj-text-primary); }\n\n\n\n.field-mapping-header[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 16px;\n}\n.field-mapping-actions[_ngcontent-%COMP%] { display: flex; gap: 6px; }\n\n\n\n.field-map-cards[_ngcontent-%COMP%] {\n display: flex; flex-direction: column; gap: 6px;\n}\n\n.field-map-card[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n background: var(--mj-bg-surface);\n transition: all 0.2s ease;\n overflow: hidden;\n}\n.field-map-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-border-strong);\n box-shadow: 0 2px 8px rgba(74, 108, 247, 0.06);\n}\n.field-map-card.has-transform[_ngcontent-%COMP%] {\n border-left: 3px solid var(--mj-color-indigo-500);\n}\n.field-map-card.validation-error[_ngcontent-%COMP%] {\n border-color: var(--mj-color-warning-200);\n background: var(--mj-status-warning-bg);\n}\n\n\n\n.fmc-row[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 10px;\n padding: 10px 14px;\n}\n\n\n\n.fmc-source[_ngcontent-%COMP%] {\n flex: 1; min-width: 0;\n}\n.fmc-field-name[_ngcontent-%COMP%] {\n font-size: 13px; font-weight: 600; color: var(--mj-text-primary);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n}\n.fmc-badges[_ngcontent-%COMP%] {\n display: flex; gap: 4px; margin-top: 3px; flex-wrap: wrap;\n}\n.fmc-badge[_ngcontent-%COMP%] {\n font-size: 9px; font-weight: 700; padding: 1px 5px;\n border-radius: 3px; text-transform: uppercase; letter-spacing: 0.3px;\n white-space: nowrap; line-height: 1.5;\n}\n.badge-type[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-hover); color: var(--mj-text-muted);\n}\n.badge-pk[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-color-warning-100), var(--mj-color-warning-200));\n color: var(--mj-color-warning-800);\n}\n.badge-pk[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 8px; margin-right: 2px; }\n.badge-req[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-color-error-100), var(--mj-color-error-200));\n color: var(--mj-color-error-800);\n}\n.badge-ro[_ngcontent-%COMP%] {\n background: var(--mj-color-purple-50); color: var(--mj-color-purple-700);\n}\n\n\n\n.fmc-transform-zone[_ngcontent-%COMP%] {\n flex-shrink: 0;\n display: flex; align-items: center; justify-content: center;\n width: 100px;\n}\n.fmc-arrow-btn[_ngcontent-%COMP%] {\n width: 32px; height: 32px;\n border-radius: 50%; border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page); color: var(--mj-text-disabled);\n cursor: pointer; font-size: 12px;\n display: flex; align-items: center; justify-content: center;\n transition: all 0.2s;\n}\n.fmc-arrow-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-indigo-500); color: var(--mj-bg-surface); border-color: var(--mj-color-indigo-500);\n transform: scale(1.1);\n}\n.fmc-transform-pill[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 4px;\n padding: 4px 10px; border-radius: 16px;\n background: linear-gradient(135deg, var(--mj-color-indigo-50), var(--mj-color-indigo-100));\n border: 1px solid var(--mj-color-indigo-200); color: var(--mj-color-indigo-700);\n font-size: 11px; font-weight: 600;\n cursor: pointer; transition: all 0.2s;\n white-space: nowrap;\n}\n.fmc-transform-pill[_ngcontent-%COMP%]:hover {\n background: linear-gradient(135deg, var(--mj-color-indigo-100), var(--mj-color-indigo-200));\n transform: scale(1.02);\n}\n.fmc-transform-pill[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 10px; }\n.fmc-transform-direct[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-bg-page), var(--mj-bg-surface-hover));\n border-color: var(--mj-color-neutral-300); color: var(--mj-text-muted);\n}\n.fmc-transform-direct[_ngcontent-%COMP%]:hover {\n background: linear-gradient(135deg, var(--mj-color-indigo-50), var(--mj-color-indigo-100));\n border-color: var(--mj-color-indigo-200); color: var(--mj-color-indigo-700);\n}\n.fmc-step-count[_ngcontent-%COMP%] {\n background: var(--mj-color-indigo-700); color: var(--mj-bg-surface); font-size: 9px;\n padding: 0 4px; border-radius: 8px; font-weight: 700;\n}\n\n\n\n.fmc-dest[_ngcontent-%COMP%] {\n flex: 1; min-width: 0;\n}\n.fmc-select[_ngcontent-%COMP%] {\n width: 100%; padding: 6px 10px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 13px; color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n transition: border-color 0.15s;\n}\n.fmc-select[_ngcontent-%COMP%]:focus { border-color: var(--mj-color-indigo-500); outline: none; box-shadow: 0 0 0 2px rgba(74, 108, 247, 0.12); }\n\n\n\n.fmc-input[_ngcontent-%COMP%] {\n width: 100%; padding: 5px 8px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 13px; color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n transition: border-color 0.15s;\n}\n.fmc-input[_ngcontent-%COMP%]:focus { border-color: var(--mj-color-indigo-500); outline: none; box-shadow: 0 0 0 2px rgba(74, 108, 247, 0.12); }\n.fmc-input.mono[_ngcontent-%COMP%] { font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace; font-size: 12px; }\n\n\n\n.fmc-flags[_ngcontent-%COMP%] {\n display: flex; gap: 6px; flex-shrink: 0;\n}\n.fmc-flag[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 3px;\n font-size: 11px; color: var(--mj-text-disabled); cursor: pointer;\n padding: 2px 4px; border-radius: 4px;\n transition: color 0.15s;\n}\n.fmc-flag[_ngcontent-%COMP%]:hover { color: var(--mj-color-indigo-500); }\n.fmc-flag[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 13px; height: 13px; cursor: pointer;\n accent-color: var(--mj-color-indigo-500);\n}\n.fmc-flag[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 10px; }\n.fmc-req-star[_ngcontent-%COMP%] { font-size: 14px; font-weight: 700; color: inherit; }\n\n\n\n.fmc-remove[_ngcontent-%COMP%] {\n flex-shrink: 0;\n background: none; border: none; cursor: pointer;\n color: var(--mj-color-neutral-300); font-size: 13px; padding: 4px;\n border-radius: 4px; transition: all 0.15s;\n}\n.fmc-remove[_ngcontent-%COMP%]:hover { color: var(--mj-status-error); background: var(--mj-status-error-bg); }\n\n\n\n.fmc-transform-editor[_ngcontent-%COMP%] {\n border-top: 1px solid var(--mj-bg-surface-hover);\n background: linear-gradient(180deg, var(--mj-color-indigo-50) 0%, var(--mj-bg-page) 100%);\n padding: 12px 14px;\n}\n.fmc-te-header[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 10px;\n}\n.fmc-te-title[_ngcontent-%COMP%] {\n font-size: 11px; font-weight: 700; color: var(--mj-color-indigo-500);\n text-transform: uppercase; letter-spacing: 0.5px;\n}\n.fmc-te-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { margin-right: 4px; }\n.fmc-te-add[_ngcontent-%COMP%] {\n font-size: 11px; font-weight: 600; color: var(--mj-color-indigo-500);\n background: none; border: 1px solid var(--mj-color-indigo-200);\n border-radius: 6px; padding: 3px 10px;\n cursor: pointer; transition: all 0.15s;\n}\n.fmc-te-add[_ngcontent-%COMP%]:hover { background: var(--mj-color-indigo-50); }\n.fmc-te-add[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { margin-right: 3px; font-size: 10px; }\n\n\n\n.fmc-te-step[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 10px 12px;\n margin-bottom: 8px;\n transition: box-shadow 0.15s;\n}\n.fmc-te-step[_ngcontent-%COMP%]:hover { box-shadow: 0 1px 4px rgba(0,0,0,0.05); }\n.fmc-te-step[_ngcontent-%COMP%]:last-child { margin-bottom: 0; }\n\n.fmc-te-step-header[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 8px; margin-bottom: 8px;\n}\n.fmc-te-step-num[_ngcontent-%COMP%] {\n width: 22px; height: 22px; border-radius: 50%;\n background: linear-gradient(135deg, var(--mj-color-indigo-500), var(--mj-color-indigo-500));\n color: var(--mj-bg-surface); font-size: 11px; font-weight: 700;\n display: flex; align-items: center; justify-content: center;\n flex-shrink: 0;\n}\n.fmc-te-type-select[_ngcontent-%COMP%] {\n flex: 1; padding: 4px 8px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 12px; font-weight: 600;\n color: var(--mj-text-primary); background: var(--mj-bg-page);\n}\n.fmc-te-type-select[_ngcontent-%COMP%]:focus { border-color: var(--mj-color-indigo-500); outline: none; }\n.fmc-te-error-select[_ngcontent-%COMP%] {\n width: 100px; padding: 4px 6px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 11px; color: var(--mj-text-muted);\n background: var(--mj-bg-page);\n}\n.fmc-te-error-select[_ngcontent-%COMP%]:focus { border-color: var(--mj-color-indigo-500); outline: none; }\n.fmc-te-remove-step[_ngcontent-%COMP%] {\n background: none; border: none; cursor: pointer;\n color: var(--mj-color-neutral-300); font-size: 12px; padding: 4px;\n border-radius: 4px; transition: all 0.15s;\n}\n.fmc-te-remove-step[_ngcontent-%COMP%]:hover { color: var(--mj-status-error); background: var(--mj-status-error-bg); }\n\n\n\n.fmc-te-config[_ngcontent-%COMP%] {\n padding-left: 30px;\n}\n.fmc-te-field[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n}\n.fmc-te-field[_ngcontent-%COMP%]:last-child { margin-bottom: 0; }\n.fmc-te-field[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block; font-size: 11px; font-weight: 600;\n color: var(--mj-text-muted); margin-bottom: 3px;\n}\n.fmc-te-field[_ngcontent-%COMP%] label[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-hover); padding: 0 3px; border-radius: 3px;\n font-size: 10px; color: var(--mj-color-indigo-700);\n}\n.fmc-te-hint[_ngcontent-%COMP%] { font-weight: 400; color: var(--mj-text-disabled); }\n.fmc-te-row[_ngcontent-%COMP%] {\n display: flex; gap: 10px; align-items: flex-end;\n}\n.fmc-te-sm[_ngcontent-%COMP%] { max-width: 140px; }\n.fmc-textarea[_ngcontent-%COMP%] {\n resize: vertical; min-height: 40px;\n}\n\n\n\n.fmc-combine-chips[_ngcontent-%COMP%] {\n display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px;\n}\n.fmc-chip[_ngcontent-%COMP%] {\n font-size: 11px; padding: 3px 8px; border-radius: 14px;\n border: 1px solid var(--mj-border-default); background: var(--mj-bg-surface);\n color: var(--mj-text-muted); cursor: pointer;\n transition: all 0.15s; font-weight: 500;\n}\n.fmc-chip[_ngcontent-%COMP%]:hover { border-color: var(--mj-color-indigo-300); color: var(--mj-color-indigo-700); }\n.fmc-chip.selected[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-color-indigo-50), var(--mj-color-indigo-100));\n border-color: var(--mj-color-indigo-400); color: var(--mj-color-indigo-700); font-weight: 600;\n}\n\n\n\n.fmc-lookup-table[_ngcontent-%COMP%] {\n display: flex; flex-direction: column; gap: 4px; margin-top: 4px;\n}\n.fmc-lookup-row[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 6px;\n}\n.fmc-lookup-row[_ngcontent-%COMP%] .fmc-input[_ngcontent-%COMP%] { flex: 1; }\n.fmc-lookup-arrow[_ngcontent-%COMP%] { color: var(--mj-color-indigo-200); font-size: 10px; flex-shrink: 0; }\n.fmc-lookup-del[_ngcontent-%COMP%] {\n background: none; border: none; cursor: pointer;\n color: var(--mj-color-neutral-300); font-size: 11px; padding: 2px;\n transition: color 0.15s;\n}\n.fmc-lookup-del[_ngcontent-%COMP%]:hover { color: var(--mj-status-error); }\n.fmc-lookup-add[_ngcontent-%COMP%] {\n font-size: 11px; color: var(--mj-color-indigo-500); background: none;\n border: 1px dashed var(--mj-color-indigo-200); border-radius: 6px;\n padding: 4px 10px; cursor: pointer;\n transition: all 0.15s; margin-top: 2px;\n}\n.fmc-lookup-add[_ngcontent-%COMP%]:hover { background: var(--mj-color-indigo-50); }\n.fmc-lookup-add[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { margin-right: 3px; font-size: 10px; }\n\n\n\n.data-preview-section[_ngcontent-%COMP%] { margin-top: 24px; border-top: 1px solid var(--mj-border-subtle); padding-top: 16px; }\n.preview-actions[_ngcontent-%COMP%] { display: flex; gap: 8px; margin-bottom: 12px; }\n\n.preview-panel[_ngcontent-%COMP%] {\n background: var(--mj-bg-page); border: 1px solid var(--mj-border-default); border-radius: 8px;\n padding: 12px; margin-bottom: 12px;\n}\n.preview-panel-header[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 8px;\n}\n.preview-panel-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] { font-size: 13px; font-weight: 600; margin: 0; }\n.preview-panel-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { margin-right: 6px; color: var(--mj-color-indigo-500); }\n\n.preview-table-wrapper[_ngcontent-%COMP%] { overflow-x: auto; }\n.preview-table[_ngcontent-%COMP%] {\n width: 100%; border-collapse: collapse; font-size: 12px;\n}\n.preview-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n text-align: left; padding: 5px 8px;\n background: var(--mj-border-default); font-weight: 600; font-size: 10px;\n text-transform: uppercase; color: var(--mj-text-muted);\n border-bottom: 1px solid var(--mj-border-default); white-space: nowrap;\n}\n.preview-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 4px 8px; border-bottom: 1px solid var(--mj-border-subtle);\n white-space: nowrap; max-width: 150px; overflow: hidden; text-overflow: ellipsis;\n}\n.preview-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover { background: var(--mj-status-info-bg); }\n\n\n\n.run-summary-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-page); border-radius: 8px; padding: 12px;\n}\n.run-summary-row[_ngcontent-%COMP%] {\n display: flex; justify-content: space-between;\n padding: 4px 0; font-size: 13px;\n}\n.run-summary-row[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] { color: var(--mj-text-muted); font-weight: 500; }\n.run-status[_ngcontent-%COMP%] {\n font-size: 11px; padding: 2px 6px; border-radius: 4px; font-weight: 600;\n}\n.status-green[_ngcontent-%COMP%] { background: var(--mj-status-success-bg); color: var(--mj-color-success-700); }\n.status-amber[_ngcontent-%COMP%] { background: var(--mj-color-warning-50); color: var(--mj-color-warning-600); }\n.status-red[_ngcontent-%COMP%] { background: var(--mj-status-error-bg); color: var(--mj-color-error-600); }\n\n.entity-stat-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-page); border-radius: 6px; padding: 10px;\n margin-bottom: 8px;\n}\n.entity-stat-name[_ngcontent-%COMP%] { font-size: 13px; font-weight: 600; margin-bottom: 6px; }\n.entity-stat-grid[_ngcontent-%COMP%] { display: flex; gap: 12px; }\n.mini-stat[_ngcontent-%COMP%] { text-align: center; }\n.mini-val[_ngcontent-%COMP%] { display: block; font-size: 16px; font-weight: 600; }\n.mini-val.has-errors[_ngcontent-%COMP%] { color: var(--mj-color-error-600); }\n.mini-label[_ngcontent-%COMP%] { font-size: 10px; color: var(--mj-text-disabled); }\n\n\n\n.validation-banner[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50); border: 1px solid var(--mj-color-warning-200); border-radius: 8px;\n padding: 10px 14px; margin-bottom: 14px;\n display: flex; align-items: flex-start; gap: 10px;\n font-size: 13px; color: var(--mj-color-warning-600);\n}\n.validation-banner[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] { margin-top: 2px; }\n.validation-warnings[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 2px; }\n\n.field-map-card.validation-error[_ngcontent-%COMP%] .fmc-source[_ngcontent-%COMP%] {\n border-left: 3px solid var(--mj-color-warning-600);\n padding-left: 8px;\n}\n\n\n\n@media (max-width: 1100px) { .right-panel[_ngcontent-%COMP%] { display: none; } }\n@media (max-width: 800px) { .left-panel[_ngcontent-%COMP%] { width: 260px; } }"] });
2345
+ i0.ɵɵadvance(2);
2346
+ i0.ɵɵproperty("Flex", true)("Padding", false);
2347
+ i0.ɵɵadvance(2);
2348
+ i0.ɵɵconditional(ctx.IsLoadingIntegrations ? 4 : 5);
2349
+ } }, dependencies: [i1.NgClass, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.DefaultValueAccessor, i2.NumberValueAccessor, i2.CheckboxControlValueAccessor, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.MinValidator, i2.NgModel, i3.MJButtonDirective, i3.MJComboboxComponent, i3.MJDropdownComponent, i3.MJSwitchComponent, i3.MJPageLayoutComponent, i3.MJPageHeaderComponent, i3.MJPageBodyComponent, i4.LoadingComponent, i1.DecimalPipe], styles: [".mapping-workspace[_ngcontent-%COMP%] { padding: 24px; height: 100%; display: flex; flex-direction: column; }\n.workspace-header[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 16px;\n}\n.workspace-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] {\n margin: 0; font-size: 20px; font-weight: 600;\n}\n.workspace-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { margin-right: 8px; color: var(--mj-color-indigo-500); }\n\n\n\n.workspace-body[_ngcontent-%COMP%] {\n display: flex; flex: 1; gap: 1px; background: var(--mj-border-default);\n border-radius: 10px; overflow: hidden; min-height: 500px;\n}\n\n.left-panel[_ngcontent-%COMP%] { width: 320px; min-width: 280px; background: var(--mj-bg-surface); padding: 16px; overflow-y: auto; flex-shrink: 0; }\n.center-panel[_ngcontent-%COMP%] { flex: 1; background: var(--mj-bg-surface); padding: 20px; overflow-y: auto; }\n.right-panel[_ngcontent-%COMP%] { width: 280px; min-width: 240px; background: var(--mj-bg-surface); padding: 16px; overflow-y: auto; flex-shrink: 0; }\n\n\n\n.panel-label[_ngcontent-%COMP%] {\n font-size: 11px; font-weight: 700; color: var(--mj-text-disabled);\n text-transform: uppercase; letter-spacing: 0.6px;\n margin: 0 0 6px 0; display: block;\n}\n.panel-title[_ngcontent-%COMP%] { margin: 0 0 12px 0; font-size: 16px; font-weight: 600; }\n.panel-title[_ngcontent-%COMP%] .field-count[_ngcontent-%COMP%] { color: var(--mj-text-disabled); font-weight: 400; font-size: 13px; }\n.empty-hint[_ngcontent-%COMP%] { color: var(--mj-text-disabled); font-size: 13px; font-style: italic; }\n.search-box[_ngcontent-%COMP%] { margin-bottom: 12px; }\n\n\n\n.integration-selector[_ngcontent-%COMP%] { margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--mj-border-subtle); }\n\n\n\n.entity-map-header[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 10px;\n}\n.header-actions[_ngcontent-%COMP%] { display: flex; gap: 4px; }\n\n\n\n.add-map-panel[_ngcontent-%COMP%] {\n background: var(--mj-bg-page); border: 1px solid var(--mj-border-default); border-radius: 10px;\n padding: 16px; margin-bottom: 14px;\n}\n.add-panel-top[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 14px;\n}\n.add-panel-top[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] { margin: 0; font-size: 14px; font-weight: 600; }\n.add-panel-close[_ngcontent-%COMP%] {\n background: none; border: none; cursor: pointer; color: var(--mj-text-disabled); font-size: 14px;\n}\n.add-panel-close[_ngcontent-%COMP%]:hover { color: var(--mj-text-primary); }\n\n.form-group[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }\n.form-group[_ngcontent-%COMP%] label[_ngcontent-%COMP%] { font-size: 12px; font-weight: 600; color: var(--mj-text-muted); }\n.form-row[_ngcontent-%COMP%] { display: flex; gap: 10px; }\n.form-row[_ngcontent-%COMP%] .form-group[_ngcontent-%COMP%] { flex: 1; }\n\n.source-loading[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 8px;\n font-size: 12px; color: var(--mj-text-disabled); padding: 6px 0;\n}\n.source-loading[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { color: var(--mj-color-indigo-500); }\n\n.discover-error-inline[_ngcontent-%COMP%] {\n font-size: 12px; color: var(--mj-color-error-600); padding: 6px 0;\n}\n.discover-error-inline[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { margin-right: 4px; }\n\n\n\n.target-mode-toggle[_ngcontent-%COMP%] {\n display: flex; border: 1px solid var(--mj-border-default); border-radius: 6px;\n overflow: hidden; margin-bottom: 12px;\n}\n.target-mode-btn[_ngcontent-%COMP%] {\n flex: 1; padding: 8px 12px; font-size: 12px; font-weight: 600;\n text-align: center; cursor: pointer; background: var(--mj-bg-surface); border: none;\n color: var(--mj-text-muted); transition: all 0.15s;\n}\n.target-mode-btn[_ngcontent-%COMP%]:first-child { border-right: 1px solid var(--mj-border-default); }\n.target-mode-btn.active[_ngcontent-%COMP%] { background: var(--mj-color-indigo-500); color: var(--mj-bg-surface); }\n.target-mode-btn[_ngcontent-%COMP%]:not(.active):hover { background: var(--mj-status-info-bg); color: var(--mj-color-indigo-500); }\n.target-mode-btn[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { margin-right: 4px; }\n\n\n\n.new-entity-form[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default); border-radius: 8px;\n padding: 14px; margin-bottom: 12px;\n}\n.new-entity-form[_ngcontent-%COMP%] .section-label[_ngcontent-%COMP%] {\n font-size: 11px; font-weight: 700; color: var(--mj-color-indigo-500);\n text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 10px;\n}\n.auto-hint[_ngcontent-%COMP%] { font-size: 10px; color: var(--mj-text-disabled); font-style: italic; }\n\n\n\n.ddl-preview-section[_ngcontent-%COMP%] { margin-top: 8px; }\n.ddl-preview-code[_ngcontent-%COMP%] {\n background: var(--mj-text-primary); color: var(--mj-color-neutral-300); padding: 10px;\n border-radius: 4px; font-size: 11px; line-height: 1.5;\n max-height: 200px; overflow: auto; white-space: pre-wrap;\n word-break: break-word; margin-top: 8px;\n}\n\n.add-form-actions[_ngcontent-%COMP%] { display: flex; gap: 6px; padding-top: 4px; }\n\n\n\n.entity-map-list[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 4px; }\n.entity-map-item[_ngcontent-%COMP%] {\n padding: 8px 10px; border-radius: 6px;\n cursor: pointer; border: 1px solid var(--mj-border-subtle); transition: all 0.15s;\n}\n.entity-map-item[_ngcontent-%COMP%]:hover { background: var(--mj-bg-page); }\n.entity-map-item.selected[_ngcontent-%COMP%] { background: var(--mj-status-info-bg); border-color: var(--mj-color-indigo-500); }\n.entity-map-item.pending[_ngcontent-%COMP%] { border-left: 3px solid var(--mj-status-warning); }\n\n.em-top-row[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 4px;\n font-size: 13px; margin-bottom: 4px;\n}\n.em-name[_ngcontent-%COMP%] { font-weight: 600; }\n.em-arrow[_ngcontent-%COMP%] { color: var(--mj-text-disabled); font-size: 11px; }\n.em-entity[_ngcontent-%COMP%] { color: var(--mj-text-muted); }\n\n.em-bottom-row[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: space-between;\n font-size: 11px; color: var(--mj-text-disabled);\n}\n.em-badges[_ngcontent-%COMP%] { display: flex; gap: 4px; align-items: center; }\n.badge[_ngcontent-%COMP%] {\n font-size: 10px; padding: 1px 6px; border-radius: 4px; font-weight: 600;\n}\n.badge-direction[_ngcontent-%COMP%] { background: var(--mj-bg-surface-hover); color: var(--mj-text-muted); }\n.badge-pending[_ngcontent-%COMP%] { background: var(--mj-color-warning-50); color: var(--mj-color-warning-600); }\n\n.em-actions[_ngcontent-%COMP%] { display: flex; align-items: center; gap: 4px; }\n.em-delete[_ngcontent-%COMP%] {\n opacity: 0; transition: opacity 0.15s;\n cursor: pointer; color: var(--mj-color-error-600); background: none; border: none;\n padding: 2px 4px; font-size: 12px;\n}\n.entity-map-item[_ngcontent-%COMP%]:hover .em-delete[_ngcontent-%COMP%] { opacity: 1; }\n\n\n\n.placeholder-message[_ngcontent-%COMP%] {\n display: flex; flex-direction: column; align-items: center;\n justify-content: center; height: 300px; color: var(--mj-text-disabled);\n}\n.placeholder-message[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 36px; margin-bottom: 12px; }\n.placeholder-message[_ngcontent-%COMP%] p[_ngcontent-%COMP%] { text-align: center; }\n\n\n\n.pending-entity-panel[_ngcontent-%COMP%] {\n background: var(--mj-status-warning-bg); border: 1px solid var(--mj-color-warning-200); border-radius: 10px;\n padding: 24px; text-align: center;\n}\n.pending-icon[_ngcontent-%COMP%] { font-size: 40px; color: var(--mj-status-warning); margin-bottom: 12px; }\n.pending-entity-panel[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] { font-size: 16px; margin-bottom: 8px; }\n.pending-entity-panel[_ngcontent-%COMP%] p[_ngcontent-%COMP%] { font-size: 13px; color: var(--mj-text-disabled); margin-bottom: 16px; line-height: 1.5; }\n\n\n\n.pending-steps[_ngcontent-%COMP%] {\n display: flex; gap: 0; margin: 20px 0; justify-content: center; align-items: center;\n}\n.step[_ngcontent-%COMP%] {\n display: flex; flex-direction: column; align-items: center; gap: 6px;\n padding: 0 16px;\n}\n.step-circle[_ngcontent-%COMP%] {\n width: 36px; height: 36px; border-radius: 50%;\n display: flex; align-items: center; justify-content: center;\n font-size: 14px; font-weight: 700;\n}\n.step-circle.done[_ngcontent-%COMP%] { background: var(--mj-status-success-bg); color: var(--mj-color-success-700); }\n.step-circle.current[_ngcontent-%COMP%] { background: var(--mj-color-indigo-500); color: var(--mj-bg-surface); }\n.step-circle.future[_ngcontent-%COMP%] { background: var(--mj-bg-surface-hover); color: var(--mj-text-disabled); }\n.step-label[_ngcontent-%COMP%] { font-size: 10px; font-weight: 600; color: var(--mj-text-disabled); text-transform: uppercase; white-space: nowrap; }\n.step-connector[_ngcontent-%COMP%] { width: 32px; height: 2px; background: var(--mj-border-default); align-self: center; margin-bottom: 18px; }\n.step-connector.done[_ngcontent-%COMP%] { background: var(--mj-color-success-700); }\n\n\n\n.ddl-preview-inline[_ngcontent-%COMP%] { margin-top: 16px; text-align: left; }\n.ddl-code-block[_ngcontent-%COMP%] {\n background: var(--mj-text-primary); color: var(--mj-color-neutral-300); padding: 12px;\n border-radius: 6px; font-size: 12px; line-height: 1.5;\n max-height: 250px; overflow: auto; white-space: pre-wrap;\n}\n.ddl-actions[_ngcontent-%COMP%] { display: flex; gap: 8px; margin-top: 12px; justify-content: center; }\n\n\n\n.pending-fields-section[_ngcontent-%COMP%] { text-align: left; }\n.pending-fields-list[_ngcontent-%COMP%] {\n display: flex; flex-direction: column; gap: 2px;\n max-height: 200px; overflow-y: auto;\n}\n.pending-field-item[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 8px;\n padding: 4px 8px; font-size: 13px; border-radius: 4px;\n}\n.pending-field-item[_ngcontent-%COMP%]:hover { background: var(--mj-status-warning-bg); }\n.pending-field-name[_ngcontent-%COMP%] { font-weight: 600; }\n.pending-field-type[_ngcontent-%COMP%] { font-size: 11px; color: var(--mj-text-disabled); background: var(--mj-bg-surface-hover); padding: 1px 6px; border-radius: 3px; }\n.pending-field-req[_ngcontent-%COMP%] { color: var(--mj-color-error-600); font-weight: 700; }\n\n\n\n.auto-map-banner[_ngcontent-%COMP%] {\n background: var(--mj-status-info-bg); border: 1px solid var(--mj-color-info-100); border-radius: 8px;\n padding: 12px 16px; margin-bottom: 16px;\n display: flex; align-items: center; gap: 12px;\n}\n.auto-map-banner[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] { color: var(--mj-color-indigo-500); font-size: 18px; }\n.auto-map-banner[_ngcontent-%COMP%] .banner-text[_ngcontent-%COMP%] { flex: 1; }\n.auto-map-banner[_ngcontent-%COMP%] .banner-text[_ngcontent-%COMP%] p[_ngcontent-%COMP%] { font-size: 13px; color: var(--mj-text-muted); margin: 0; }\n.auto-map-banner[_ngcontent-%COMP%] .banner-text[_ngcontent-%COMP%] strong[_ngcontent-%COMP%] { color: var(--mj-text-primary); }\n\n\n\n.field-mapping-header[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 16px;\n}\n.field-mapping-actions[_ngcontent-%COMP%] { display: flex; gap: 6px; }\n\n\n\n.field-map-cards[_ngcontent-%COMP%] {\n display: flex; flex-direction: column; gap: 6px;\n}\n\n.field-map-card[_ngcontent-%COMP%] {\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n background: var(--mj-bg-surface);\n transition: all 0.2s ease;\n overflow: hidden;\n}\n.field-map-card[_ngcontent-%COMP%]:hover {\n border-color: var(--mj-border-strong);\n box-shadow: 0 2px 8px rgba(74, 108, 247, 0.06);\n}\n.field-map-card.has-transform[_ngcontent-%COMP%] {\n border-left: 3px solid var(--mj-color-indigo-500);\n}\n.field-map-card.validation-error[_ngcontent-%COMP%] {\n border-color: var(--mj-color-warning-200);\n background: var(--mj-status-warning-bg);\n}\n\n\n\n.fmc-row[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 10px;\n padding: 10px 14px;\n}\n\n\n\n.fmc-source[_ngcontent-%COMP%] {\n flex: 1; min-width: 0;\n}\n.fmc-field-name[_ngcontent-%COMP%] {\n font-size: 13px; font-weight: 600; color: var(--mj-text-primary);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n}\n.fmc-badges[_ngcontent-%COMP%] {\n display: flex; gap: 4px; margin-top: 3px; flex-wrap: wrap;\n}\n.fmc-badge[_ngcontent-%COMP%] {\n font-size: 9px; font-weight: 700; padding: 1px 5px;\n border-radius: 3px; text-transform: uppercase; letter-spacing: 0.3px;\n white-space: nowrap; line-height: 1.5;\n}\n.badge-type[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-hover); color: var(--mj-text-muted);\n}\n.badge-pk[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-color-warning-100), var(--mj-color-warning-200));\n color: var(--mj-color-warning-800);\n}\n.badge-pk[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 8px; margin-right: 2px; }\n.badge-req[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-color-error-100), var(--mj-color-error-200));\n color: var(--mj-color-error-800);\n}\n.badge-ro[_ngcontent-%COMP%] {\n background: var(--mj-color-purple-50); color: var(--mj-color-purple-700);\n}\n\n\n\n.fmc-transform-zone[_ngcontent-%COMP%] {\n flex-shrink: 0;\n display: flex; align-items: center; justify-content: center;\n width: 100px;\n}\n.fmc-arrow-btn[_ngcontent-%COMP%] {\n width: 32px; height: 32px;\n border-radius: 50%; border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page); color: var(--mj-text-disabled);\n cursor: pointer; font-size: 12px;\n display: flex; align-items: center; justify-content: center;\n transition: all 0.2s;\n}\n.fmc-arrow-btn[_ngcontent-%COMP%]:hover {\n background: var(--mj-color-indigo-500); color: var(--mj-bg-surface); border-color: var(--mj-color-indigo-500);\n transform: scale(1.1);\n}\n.fmc-transform-pill[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 4px;\n padding: 4px 10px; border-radius: 16px;\n background: linear-gradient(135deg, var(--mj-color-indigo-50), var(--mj-color-indigo-100));\n border: 1px solid var(--mj-color-indigo-200); color: var(--mj-color-indigo-700);\n font-size: 11px; font-weight: 600;\n cursor: pointer; transition: all 0.2s;\n white-space: nowrap;\n}\n.fmc-transform-pill[_ngcontent-%COMP%]:hover {\n background: linear-gradient(135deg, var(--mj-color-indigo-100), var(--mj-color-indigo-200));\n transform: scale(1.02);\n}\n.fmc-transform-pill[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 10px; }\n.fmc-transform-direct[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-bg-page), var(--mj-bg-surface-hover));\n border-color: var(--mj-color-neutral-300); color: var(--mj-text-muted);\n}\n.fmc-transform-direct[_ngcontent-%COMP%]:hover {\n background: linear-gradient(135deg, var(--mj-color-indigo-50), var(--mj-color-indigo-100));\n border-color: var(--mj-color-indigo-200); color: var(--mj-color-indigo-700);\n}\n.fmc-step-count[_ngcontent-%COMP%] {\n background: var(--mj-color-indigo-700); color: var(--mj-bg-surface); font-size: 9px;\n padding: 0 4px; border-radius: 8px; font-weight: 700;\n}\n\n\n\n.fmc-dest[_ngcontent-%COMP%] {\n flex: 1; min-width: 0;\n}\n.fmc-select[_ngcontent-%COMP%] {\n width: 100%; padding: 6px 10px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 13px; color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n transition: border-color 0.15s;\n}\n.fmc-select[_ngcontent-%COMP%]:focus { border-color: var(--mj-color-indigo-500); outline: none; box-shadow: 0 0 0 2px rgba(74, 108, 247, 0.12); }\n\n\n\n.fmc-input[_ngcontent-%COMP%] {\n width: 100%; padding: 5px 8px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 13px; color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n transition: border-color 0.15s;\n}\n.fmc-input[_ngcontent-%COMP%]:focus { border-color: var(--mj-color-indigo-500); outline: none; box-shadow: 0 0 0 2px rgba(74, 108, 247, 0.12); }\n.fmc-input.mono[_ngcontent-%COMP%] { font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace; font-size: 12px; }\n\n\n\n.fmc-flags[_ngcontent-%COMP%] {\n display: flex; gap: 6px; flex-shrink: 0;\n}\n.fmc-flag[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 3px;\n font-size: 11px; color: var(--mj-text-disabled); cursor: pointer;\n padding: 2px 4px; border-radius: 4px;\n transition: color 0.15s;\n}\n.fmc-flag[_ngcontent-%COMP%]:hover { color: var(--mj-color-indigo-500); }\n.fmc-flag[_ngcontent-%COMP%] input[type=\"checkbox\"][_ngcontent-%COMP%] {\n width: 13px; height: 13px; cursor: pointer;\n accent-color: var(--mj-color-indigo-500);\n}\n.fmc-flag[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { font-size: 10px; }\n.fmc-req-star[_ngcontent-%COMP%] { font-size: 14px; font-weight: 700; color: inherit; }\n\n\n\n.fmc-remove[_ngcontent-%COMP%] {\n flex-shrink: 0;\n background: none; border: none; cursor: pointer;\n color: var(--mj-color-neutral-300); font-size: 13px; padding: 4px;\n border-radius: 4px; transition: all 0.15s;\n}\n.fmc-remove[_ngcontent-%COMP%]:hover { color: var(--mj-status-error); background: var(--mj-status-error-bg); }\n\n\n\n.fmc-transform-editor[_ngcontent-%COMP%] {\n border-top: 1px solid var(--mj-bg-surface-hover);\n background: linear-gradient(180deg, var(--mj-color-indigo-50) 0%, var(--mj-bg-page) 100%);\n padding: 12px 14px;\n}\n.fmc-te-header[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 10px;\n}\n.fmc-te-title[_ngcontent-%COMP%] {\n font-size: 11px; font-weight: 700; color: var(--mj-color-indigo-500);\n text-transform: uppercase; letter-spacing: 0.5px;\n}\n.fmc-te-title[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { margin-right: 4px; }\n.fmc-te-add[_ngcontent-%COMP%] {\n font-size: 11px; font-weight: 600; color: var(--mj-color-indigo-500);\n background: none; border: 1px solid var(--mj-color-indigo-200);\n border-radius: 6px; padding: 3px 10px;\n cursor: pointer; transition: all 0.15s;\n}\n.fmc-te-add[_ngcontent-%COMP%]:hover { background: var(--mj-color-indigo-50); }\n.fmc-te-add[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { margin-right: 3px; font-size: 10px; }\n\n\n\n.fmc-te-step[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 10px 12px;\n margin-bottom: 8px;\n transition: box-shadow 0.15s;\n}\n.fmc-te-step[_ngcontent-%COMP%]:hover { box-shadow: 0 1px 4px rgba(0,0,0,0.05); }\n.fmc-te-step[_ngcontent-%COMP%]:last-child { margin-bottom: 0; }\n\n.fmc-te-step-header[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 8px; margin-bottom: 8px;\n}\n.fmc-te-step-num[_ngcontent-%COMP%] {\n width: 22px; height: 22px; border-radius: 50%;\n background: linear-gradient(135deg, var(--mj-color-indigo-500), var(--mj-color-indigo-500));\n color: var(--mj-bg-surface); font-size: 11px; font-weight: 700;\n display: flex; align-items: center; justify-content: center;\n flex-shrink: 0;\n}\n.fmc-te-type-select[_ngcontent-%COMP%] {\n flex: 1; padding: 4px 8px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 12px; font-weight: 600;\n color: var(--mj-text-primary); background: var(--mj-bg-page);\n}\n.fmc-te-type-select[_ngcontent-%COMP%]:focus { border-color: var(--mj-color-indigo-500); outline: none; }\n.fmc-te-error-select[_ngcontent-%COMP%] {\n width: 100px; padding: 4px 6px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 11px; color: var(--mj-text-muted);\n background: var(--mj-bg-page);\n}\n.fmc-te-error-select[_ngcontent-%COMP%]:focus { border-color: var(--mj-color-indigo-500); outline: none; }\n.fmc-te-remove-step[_ngcontent-%COMP%] {\n background: none; border: none; cursor: pointer;\n color: var(--mj-color-neutral-300); font-size: 12px; padding: 4px;\n border-radius: 4px; transition: all 0.15s;\n}\n.fmc-te-remove-step[_ngcontent-%COMP%]:hover { color: var(--mj-status-error); background: var(--mj-status-error-bg); }\n\n\n\n.fmc-te-config[_ngcontent-%COMP%] {\n padding-left: 30px;\n}\n.fmc-te-field[_ngcontent-%COMP%] {\n margin-bottom: 8px;\n}\n.fmc-te-field[_ngcontent-%COMP%]:last-child { margin-bottom: 0; }\n.fmc-te-field[_ngcontent-%COMP%] label[_ngcontent-%COMP%] {\n display: block; font-size: 11px; font-weight: 600;\n color: var(--mj-text-muted); margin-bottom: 3px;\n}\n.fmc-te-field[_ngcontent-%COMP%] label[_ngcontent-%COMP%] code[_ngcontent-%COMP%] {\n background: var(--mj-bg-surface-hover); padding: 0 3px; border-radius: 3px;\n font-size: 10px; color: var(--mj-color-indigo-700);\n}\n.fmc-te-hint[_ngcontent-%COMP%] { font-weight: 400; color: var(--mj-text-disabled); }\n.fmc-te-row[_ngcontent-%COMP%] {\n display: flex; gap: 10px; align-items: flex-end;\n}\n.fmc-te-sm[_ngcontent-%COMP%] { max-width: 140px; }\n.fmc-textarea[_ngcontent-%COMP%] {\n resize: vertical; min-height: 40px;\n}\n\n\n\n.fmc-combine-chips[_ngcontent-%COMP%] {\n display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px;\n}\n.fmc-chip[_ngcontent-%COMP%] {\n font-size: 11px; padding: 3px 8px; border-radius: 14px;\n border: 1px solid var(--mj-border-default); background: var(--mj-bg-surface);\n color: var(--mj-text-muted); cursor: pointer;\n transition: all 0.15s; font-weight: 500;\n}\n.fmc-chip[_ngcontent-%COMP%]:hover { border-color: var(--mj-color-indigo-300); color: var(--mj-color-indigo-700); }\n.fmc-chip.selected[_ngcontent-%COMP%] {\n background: linear-gradient(135deg, var(--mj-color-indigo-50), var(--mj-color-indigo-100));\n border-color: var(--mj-color-indigo-400); color: var(--mj-color-indigo-700); font-weight: 600;\n}\n\n\n\n.fmc-lookup-table[_ngcontent-%COMP%] {\n display: flex; flex-direction: column; gap: 4px; margin-top: 4px;\n}\n.fmc-lookup-row[_ngcontent-%COMP%] {\n display: flex; align-items: center; gap: 6px;\n}\n.fmc-lookup-row[_ngcontent-%COMP%] .fmc-input[_ngcontent-%COMP%] { flex: 1; }\n.fmc-lookup-arrow[_ngcontent-%COMP%] { color: var(--mj-color-indigo-200); font-size: 10px; flex-shrink: 0; }\n.fmc-lookup-del[_ngcontent-%COMP%] {\n background: none; border: none; cursor: pointer;\n color: var(--mj-color-neutral-300); font-size: 11px; padding: 2px;\n transition: color 0.15s;\n}\n.fmc-lookup-del[_ngcontent-%COMP%]:hover { color: var(--mj-status-error); }\n.fmc-lookup-add[_ngcontent-%COMP%] {\n font-size: 11px; color: var(--mj-color-indigo-500); background: none;\n border: 1px dashed var(--mj-color-indigo-200); border-radius: 6px;\n padding: 4px 10px; cursor: pointer;\n transition: all 0.15s; margin-top: 2px;\n}\n.fmc-lookup-add[_ngcontent-%COMP%]:hover { background: var(--mj-color-indigo-50); }\n.fmc-lookup-add[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { margin-right: 3px; font-size: 10px; }\n\n\n\n.data-preview-section[_ngcontent-%COMP%] { margin-top: 24px; border-top: 1px solid var(--mj-border-subtle); padding-top: 16px; }\n.preview-actions[_ngcontent-%COMP%] { display: flex; gap: 8px; margin-bottom: 12px; }\n\n.preview-panel[_ngcontent-%COMP%] {\n background: var(--mj-bg-page); border: 1px solid var(--mj-border-default); border-radius: 8px;\n padding: 12px; margin-bottom: 12px;\n}\n.preview-panel-header[_ngcontent-%COMP%] {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 8px;\n}\n.preview-panel-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] { font-size: 13px; font-weight: 600; margin: 0; }\n.preview-panel-header[_ngcontent-%COMP%] h4[_ngcontent-%COMP%] i[_ngcontent-%COMP%] { margin-right: 6px; color: var(--mj-color-indigo-500); }\n\n.preview-table-wrapper[_ngcontent-%COMP%] { overflow-x: auto; }\n.preview-table[_ngcontent-%COMP%] {\n width: 100%; border-collapse: collapse; font-size: 12px;\n}\n.preview-table[_ngcontent-%COMP%] th[_ngcontent-%COMP%] {\n text-align: left; padding: 5px 8px;\n background: var(--mj-border-default); font-weight: 600; font-size: 10px;\n text-transform: uppercase; color: var(--mj-text-muted);\n border-bottom: 1px solid var(--mj-border-default); white-space: nowrap;\n}\n.preview-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%] {\n padding: 4px 8px; border-bottom: 1px solid var(--mj-border-subtle);\n white-space: nowrap; max-width: 150px; overflow: hidden; text-overflow: ellipsis;\n}\n.preview-table[_ngcontent-%COMP%] tr[_ngcontent-%COMP%]:hover { background: var(--mj-status-info-bg); }\n\n\n\n.run-summary-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-page); border-radius: 8px; padding: 12px;\n}\n.run-summary-row[_ngcontent-%COMP%] {\n display: flex; justify-content: space-between;\n padding: 4px 0; font-size: 13px;\n}\n.run-summary-row[_ngcontent-%COMP%] .label[_ngcontent-%COMP%] { color: var(--mj-text-muted); font-weight: 500; }\n.run-status[_ngcontent-%COMP%] {\n font-size: 11px; padding: 2px 6px; border-radius: 4px; font-weight: 600;\n}\n.status-green[_ngcontent-%COMP%] { background: var(--mj-status-success-bg); color: var(--mj-color-success-700); }\n.status-amber[_ngcontent-%COMP%] { background: var(--mj-color-warning-50); color: var(--mj-color-warning-600); }\n.status-red[_ngcontent-%COMP%] { background: var(--mj-status-error-bg); color: var(--mj-color-error-600); }\n\n.entity-stat-card[_ngcontent-%COMP%] {\n background: var(--mj-bg-page); border-radius: 6px; padding: 10px;\n margin-bottom: 8px;\n}\n.entity-stat-name[_ngcontent-%COMP%] { font-size: 13px; font-weight: 600; margin-bottom: 6px; }\n.entity-stat-grid[_ngcontent-%COMP%] { display: flex; gap: 12px; }\n.mini-stat[_ngcontent-%COMP%] { text-align: center; }\n.mini-val[_ngcontent-%COMP%] { display: block; font-size: 16px; font-weight: 600; }\n.mini-val.has-errors[_ngcontent-%COMP%] { color: var(--mj-color-error-600); }\n.mini-label[_ngcontent-%COMP%] { font-size: 10px; color: var(--mj-text-disabled); }\n\n\n\n.validation-banner[_ngcontent-%COMP%] {\n background: var(--mj-color-warning-50); border: 1px solid var(--mj-color-warning-200); border-radius: 8px;\n padding: 10px 14px; margin-bottom: 14px;\n display: flex; align-items: flex-start; gap: 10px;\n font-size: 13px; color: var(--mj-color-warning-600);\n}\n.validation-banner[_ngcontent-%COMP%] > i[_ngcontent-%COMP%] { margin-top: 2px; }\n.validation-warnings[_ngcontent-%COMP%] { display: flex; flex-direction: column; gap: 2px; }\n\n.field-map-card.validation-error[_ngcontent-%COMP%] .fmc-source[_ngcontent-%COMP%] {\n border-left: 3px solid var(--mj-color-warning-600);\n padding-left: 8px;\n}\n\n\n\n@media (max-width: 1100px) { .right-panel[_ngcontent-%COMP%] { display: none; } }\n@media (max-width: 800px) { .left-panel[_ngcontent-%COMP%] { width: 260px; } }"] });
2349
2350
  };
2350
2351
  MappingWorkspaceComponent = __decorate([
2351
2352
  RegisterClass(BaseResourceComponent, 'IntegrationMappingWorkspace')
@@ -2353,7 +2354,7 @@ MappingWorkspaceComponent = __decorate([
2353
2354
  export { MappingWorkspaceComponent };
2354
2355
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MappingWorkspaceComponent, [{
2355
2356
  type: Component,
2356
- args: [{ standalone: false, selector: 'app-mapping-workspace', template: "<div class=\"mapping-workspace\">\n <div class=\"workspace-header\">\n <h2><i class=\"fa-solid fa-diagram-project\"></i> Mapping Workspace</h2>\n </div>\n\n @if (IsLoadingIntegrations) {\n <mj-loading text=\"Loading integrations...\" size=\"medium\"></mj-loading>\n } @else {\n <div class=\"workspace-body\">\n <!-- ============================================================ -->\n <!-- LEFT PANEL: Integration selector + Entity map list -->\n <!-- ============================================================ -->\n <div class=\"left-panel\">\n <div class=\"integration-selector\">\n <label class=\"panel-label\">Integration</label>\n <mj-dropdown\n [Data]=\"Integrations\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n [(ngModel)]=\"SelectedIntegrationID\"\n (ValueChange)=\"OnIntegrationChange($any($event))\"\n [DefaultItem]=\"{ ID: '', Name: '-- Select --' }\">\n </mj-dropdown>\n </div>\n\n @if (IsLoadingEntityMaps) {\n <mj-loading text=\"Loading entity maps...\" size=\"small\"></mj-loading>\n } @else if (SelectedIntegrationID) {\n <!-- Entity Map Header -->\n <div class=\"entity-map-header\">\n <span class=\"panel-label\" style=\"margin: 0;\">Entity Maps</span>\n <div class=\"header-actions\">\n <button mjButton variant=\"flat\" size=\"sm\"\n (click)=\"OpenAddPanel()\" title=\"Add entity map\">\n <i class=\"fa-solid fa-plus\"></i> Add Map\n </button>\n </div>\n </div>\n\n <!-- ==================== ADD MAP PANEL ==================== -->\n @if (ShowAddPanel) {\n <div class=\"add-map-panel\">\n <div class=\"add-panel-top\">\n <h5><i class=\"fa-solid fa-plus-circle\"></i> Add Entity Map</h5>\n <button class=\"add-panel-close\" (click)=\"CloseAddPanel()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <!-- Source Object Dropdown -->\n <div class=\"form-group\">\n <label>Source Object</label>\n @if (IsDiscoveringObjects) {\n <div class=\"source-loading\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Discovering objects...\n </div>\n } @else if (DiscoverError) {\n <div class=\"discover-error-inline\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n {{ DiscoverError }}\n </div>\n } @else if (DiscoveredObjects.length === 0) {\n <div class=\"discover-error-inline\">\n No objects found in external system.\n </div>\n } @else {\n <mj-dropdown\n [Data]=\"DiscoveredObjects\"\n TextField=\"Label\"\n ValueField=\"Name\"\n [ValuePrimitive]=\"true\"\n [(ngModel)]=\"SelectedSourceObjectName\"\n (ValueChange)=\"OnSourceObjectChange($any($event))\"\n [Filterable]=\"true\"\n [DefaultItem]=\"{ Name: '', Label: 'Select source object...' }\">\n </mj-dropdown>\n }\n </div>\n\n <!-- Target Mode Toggle -->\n <div class=\"target-mode-toggle\">\n <button class=\"target-mode-btn\"\n [class.active]=\"TargetMode === 'existing'\"\n (click)=\"SetTargetMode('existing')\">\n <i class=\"fa-solid fa-database\"></i> Existing Entity\n </button>\n <button class=\"target-mode-btn\"\n [class.active]=\"TargetMode === 'new'\"\n (click)=\"SetTargetMode('new')\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i> New Entity\n </button>\n </div>\n\n <!-- Existing entity picker -->\n @if (TargetMode === 'existing') {\n <div class=\"form-group\">\n <label>Target MJ Entity</label>\n @if (IsLoadingEntities) {\n <mj-loading text=\"Loading...\" size=\"small\"></mj-loading>\n } @else {\n <mj-dropdown\n [Data]=\"MJEntities\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n [(ngModel)]=\"SelectedEntityID\"\n [Filterable]=\"true\"\n [DefaultItem]=\"{ ID: null, Name: 'Select entity...' }\">\n </mj-dropdown>\n }\n </div>\n }\n\n <!-- New entity form -->\n @if (TargetMode === 'new') {\n <div class=\"new-entity-form\">\n <div class=\"section-label\">Define New Entity</div>\n <div class=\"form-group\">\n <label>DB Schema</label>\n <mj-combobox\n [Data]=\"DBSchemas\"\n [(ngModel)]=\"NewEntitySchemaName\"\n (ValueChange)=\"OnSchemaNameChange()\"\n [AllowCustom]=\"true\"\n [Filterable]=\"true\"\n Placeholder=\"Select or type schema...\">\n </mj-combobox>\n </div>\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label>Table Name</label>\n <input class=\"mj-input\" [(ngModel)]=\"NewEntityTableName\"\n [placeholder]=\"SuggestedTableName || 'Table name'\" />\n @if (SuggestedTableName && !NewEntityTableName) {\n <span class=\"auto-hint\">Suggested: {{ SuggestedTableName }}</span>\n }\n </div>\n <div class=\"form-group\">\n <label>Entity Name</label>\n <input class=\"mj-input\" [(ngModel)]=\"NewEntityName\"\n [placeholder]=\"SuggestedEntityName || 'Entity name'\" />\n </div>\n </div>\n\n <!-- DDL Preview -->\n @if (SelectedSourceObjectName && NewEntitySchemaName && NewEntityTableName) {\n <div class=\"ddl-preview-section\">\n <button mjButton variant=\"outline\" size=\"sm\"\n [disabled]=\"IsGeneratingDDL\"\n (click)=\"PreviewDDL()\">\n @if (IsGeneratingDDL) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Generating...\n } @else {\n <i class=\"fa-solid fa-database\"></i> Preview DDL\n }\n </button>\n @if (DDLPreviewError) {\n <div class=\"discover-error-inline\" style=\"margin-top: 8px;\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i> {{ DDLPreviewError }}\n </div>\n }\n @if (DDLPreviewContent) {\n <pre class=\"ddl-preview-code\">{{ DDLPreviewContent }}</pre>\n }\n </div>\n }\n </div>\n }\n\n <!-- Sync direction -->\n <div class=\"form-group\">\n <label>Sync Direction</label>\n <mj-dropdown\n [Data]=\"['Pull', 'Push', 'Bidirectional']\"\n [(ngModel)]=\"AddSyncDirection\">\n </mj-dropdown>\n </div>\n\n <!-- Save / Cancel -->\n <div class=\"add-form-actions\">\n <button mjButton variant=\"primary\" size=\"sm\"\n [disabled]=\"!IsAddFormValid || IsSavingEntityMap\"\n (click)=\"SaveAddMap()\">\n @if (IsSavingEntityMap) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Saving...\n } @else if (TargetMode === 'new') {\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i> Create Pending Map\n } @else {\n <i class=\"fa-solid fa-check\"></i> Add Map\n }\n </button>\n <button mjButton size=\"sm\" (click)=\"CloseAddPanel()\">\n Cancel\n </button>\n </div>\n </div>\n }\n\n <!-- Search -->\n @if (AllMaps.length > 0) {\n <div class=\"search-box\">\n <input class=\"mj-input\"\n [(ngModel)]=\"EntityMapSearchText\"\n placeholder=\"Search entity maps...\" />\n </div>\n }\n\n <!-- Entity Map List -->\n @if (AllMaps.length === 0 && !ShowAddPanel) {\n <p class=\"empty-hint\">\n No entity maps configured.\n <a href=\"javascript:void(0)\" (click)=\"OpenAddPanel()\" style=\"color: var(--mj-brand-primary);\">Add one</a>\n </p>\n } @else if (FilteredMaps.length === 0 && AllMaps.length > 0) {\n <p class=\"empty-hint\">No matches for \"{{ EntityMapSearchText }}\".</p>\n } @else {\n <div class=\"entity-map-list\">\n @for (item of FilteredMaps; track item.ID) {\n <div class=\"entity-map-item\"\n [class.selected]=\"IsSelectedMap(item.ID)\"\n [class.pending]=\"item.IsPending\"\n (click)=\"OnMapSelect(item)\">\n <div class=\"em-top-row\">\n <span class=\"em-name\">{{ item.SourceName }}</span>\n <span class=\"em-arrow\"><i class=\"fa-solid fa-arrow-right\"></i></span>\n <span class=\"em-entity\">{{ item.TargetName }}</span>\n </div>\n <div class=\"em-bottom-row\">\n <div class=\"em-badges\">\n <span class=\"badge badge-direction\">{{ item.SyncDirection }}</span>\n @if (item.IsPending) {\n <span class=\"badge badge-pending\">Pending</span>\n }\n </div>\n <div class=\"em-actions\">\n <button class=\"em-delete\" title=\"Delete\"\n (click)=\"OnDeleteMap(item, $event)\">\n <i class=\"fa-solid fa-trash-can\"></i>\n </button>\n @if (!item.IsPending && item.RealMap) {\n <mj-switch\n [(ngModel)]=\"item.RealMap.SyncEnabled\"\n (ngModelChange)=\"OnToggleEntityMap(item.RealMap)\">\n </mj-switch>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n }\n </div>\n\n <!-- ============================================================ -->\n <!-- CENTER PANEL: Field mapping / Pending entity / Placeholder -->\n <!-- ============================================================ -->\n <div class=\"center-panel\">\n @if (!SelectedMapID) {\n <!-- No selection placeholder -->\n <div class=\"placeholder-message\">\n <i class=\"fa-solid fa-hand-pointer\"></i>\n <p>Select an entity map from the left panel to view and edit field mappings.</p>\n </div>\n } @else if (SelectedPendingMap) {\n <!-- ==================== PENDING ENTITY VIEW ==================== -->\n <div class=\"pending-entity-panel\">\n <div class=\"pending-icon\"><i class=\"fa-solid fa-clock\"></i></div>\n <h3>Pending Entity: {{ SelectedPendingMap.EntityName }}</h3>\n <p>\n This entity map is waiting for the target entity\n <strong>{{ SelectedPendingMap.SchemaName }}.{{ SelectedPendingMap.TableName }}</strong>\n to be created. Run the DDL migration and CodeGen to activate this mapping.\n </p>\n\n <!-- Progress stepper -->\n <div class=\"pending-steps\">\n <div class=\"step\">\n <div class=\"step-circle done\"><i class=\"fa-solid fa-check\"></i></div>\n <span class=\"step-label\">Map Created</span>\n </div>\n <div class=\"step-connector\" [class.done]=\"SelectedPendingMap.DDLContent\"></div>\n <div class=\"step\">\n <div class=\"step-circle\" [ngClass]=\"GetPendingStepStatus(SelectedPendingMap, 2)\">\n @if (SelectedPendingMap.DDLContent) {\n <i class=\"fa-solid fa-check\"></i>\n } @else {\n 2\n }\n </div>\n <span class=\"step-label\">DDL Generated</span>\n </div>\n <div class=\"step-connector\"></div>\n <div class=\"step\">\n <div class=\"step-circle future\">3</div>\n <span class=\"step-label\">Deploy & CodeGen</span>\n </div>\n <div class=\"step-connector\"></div>\n <div class=\"step\">\n <div class=\"step-circle future\">4</div>\n <span class=\"step-label\">Ready to Sync</span>\n </div>\n </div>\n\n <!-- DDL content -->\n @if (SelectedPendingMap.DDLContent) {\n <div class=\"ddl-preview-inline\">\n <h4 style=\"font-size: 14px; margin-bottom: 8px;\">\n <i class=\"fa-solid fa-database\"></i> Generated DDL\n </h4>\n <pre class=\"ddl-code-block\">{{ SelectedPendingMap.DDLContent }}</pre>\n <div class=\"ddl-actions\">\n <button mjButton variant=\"outline\" size=\"sm\"\n (click)=\"CopyDDLToClipboard(SelectedPendingMap.DDLContent)\">\n <i class=\"fa-solid fa-copy\"></i> Copy DDL\n </button>\n </div>\n </div>\n }\n\n <!-- Source fields list -->\n @if (SelectedPendingMap.SourceFields.length > 0) {\n <div class=\"pending-fields-section\">\n <h4 style=\"font-size: 14px; margin: 16px 0 8px;\">\n <i class=\"fa-solid fa-list\"></i> Source Fields\n <span style=\"color: var(--mj-text-muted); font-weight: 400;\">({{ SelectedPendingMap.SourceFields.length }})</span>\n </h4>\n <div class=\"pending-fields-list\">\n @for (field of SelectedPendingMap.SourceFields; track field.Name) {\n <div class=\"pending-field-item\">\n <span class=\"pending-field-name\">{{ field.Name }}</span>\n <span class=\"pending-field-type\">{{ field.Type }}</span>\n @if (field.IsPrimaryKey) {\n <i class=\"fa-solid fa-key key-icon\" title=\"Key field\"></i>\n }\n @if (field.IsRequired) {\n <span class=\"pending-field-req\">*</span>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n } @else if (IsLoadingFieldMaps) {\n <mj-loading text=\"Loading field maps...\" size=\"medium\"></mj-loading>\n } @else {\n <!-- ==================== FIELD MAPPING EDITOR ==================== -->\n\n <!-- Auto-map banner -->\n @if (ShowAutoMapBanner) {\n <div class=\"auto-map-banner\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i>\n <div class=\"banner-text\">\n <p><strong>{{ AutoMapCount }} field{{ AutoMapCount !== 1 ? 's' : '' }} auto-mapped</strong> by matching source and destination field names.</p>\n </div>\n <button mjButton variant=\"flat\" size=\"sm\" (click)=\"DismissAutoMapBanner()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n }\n\n <!-- Validation warnings -->\n @if (ActiveEditableFields.length > 0 && !MappingValidation.IsValid) {\n <div class=\"validation-banner\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n <div class=\"validation-warnings\">\n @for (warning of MappingValidation.Warnings; track warning) {\n <span>{{ warning }}</span>\n }\n </div>\n </div>\n }\n\n <div class=\"field-mapping-header\">\n <h3 class=\"panel-title\">\n Field Mappings\n <span class=\"field-count\">({{ ActiveEditableFields.length }})</span>\n </h3>\n <div class=\"field-mapping-actions\">\n <button mjButton variant=\"outline\" size=\"sm\"\n [disabled]=\"IsLoadingSourceFields\"\n (click)=\"RerunAutoMap()\" title=\"Auto-match source and destination fields by name\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i> Auto-Map\n </button>\n <button mjButton variant=\"outline\" size=\"sm\"\n (click)=\"AddFieldMapping()\">\n <i class=\"fa-solid fa-plus\"></i> Add Field\n </button>\n <button mjButton variant=\"primary\" size=\"sm\"\n [disabled]=\"!HasDirtyFields || IsSavingFields\"\n (click)=\"SaveFieldMappings()\">\n @if (IsSavingFields) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Saving...\n } @else {\n <i class=\"fa-solid fa-floppy-disk\"></i> Save\n }\n </button>\n </div>\n </div>\n\n @if (ActiveEditableFields.length === 0) {\n <p class=\"empty-hint\">\n No field mappings yet.\n <a href=\"javascript:void(0)\" (click)=\"AddFieldMapping()\" style=\"color: var(--mj-brand-primary);\">Add one</a>\n </p>\n } @else {\n <div class=\"field-map-cards\">\n @for (field of ActiveEditableFields; track field; let i = $index) {\n <div class=\"field-map-card\" [class.validation-error]=\"field.IsRequired && !field.DestinationFieldName\"\n [class.has-transform]=\"field.TransformPipeline.length > 0\">\n\n <!-- Main mapping row -->\n <div class=\"fmc-row\">\n <!-- Source column -->\n <div class=\"fmc-source\">\n @if (field.IsNew) {\n <input type=\"text\" class=\"fmc-input\" [(ngModel)]=\"field.SourceFieldName\"\n (ngModelChange)=\"OnFieldChanged(field)\" placeholder=\"Source field name\" />\n } @else {\n <div class=\"fmc-field-name\">{{ field.SourceFieldName }}</div>\n <div class=\"fmc-badges\">\n @if (field.SourceFieldType) {\n <span class=\"fmc-badge badge-type\">{{ field.SourceFieldType }}</span>\n }\n @if (field.IsSourcePK) {\n <span class=\"fmc-badge badge-pk\" title=\"Primary Key\"><i class=\"fa-solid fa-key\"></i> PK</span>\n }\n @if (field.IsSourceRequired) {\n <span class=\"fmc-badge badge-req\" title=\"Required\">REQ</span>\n }\n @if (field.IsSourceReadOnly) {\n <span class=\"fmc-badge badge-ro\" title=\"Read-Only\">RO</span>\n }\n </div>\n }\n </div>\n\n <!-- Transform indicator -->\n <div class=\"fmc-transform-zone\">\n @if (field.TransformPipeline.length > 1) {\n <button class=\"fmc-transform-pill\" (click)=\"ToggleTransformEditor(field)\"\n [title]=\"field.TransformPipeline.length + ' transform step(s)'\">\n <i [class]=\"GetTransformIcon(field.TransformPipeline[0].Type)\"></i>\n <span>{{ GetTransformLabel(field.TransformPipeline[0].Type) }}</span>\n <span class=\"fmc-step-count\">+{{ field.TransformPipeline.length - 1 }}</span>\n </button>\n } @else {\n <button class=\"fmc-transform-pill fmc-transform-direct\" (click)=\"ToggleTransformEditor(field)\"\n title=\"Click to change transform type\">\n <i class=\"fa-solid fa-arrow-right\"></i>\n <span>{{ field.TransformPipeline.length > 0 ? GetTransformLabel(field.TransformPipeline[0].Type) : 'Direct' }}</span>\n </button>\n }\n </div>\n\n <!-- Destination column -->\n <div class=\"fmc-dest\">\n @if (DestinationFields.length > 0) {\n <select class=\"fmc-select\" [(ngModel)]=\"field.DestinationFieldName\"\n (ngModelChange)=\"OnFieldChanged(field)\">\n <option value=\"\">-- Select destination --</option>\n @for (df of DestinationFields; track df.ID) {\n <option [value]=\"df.Name\">{{ df.Name }}</option>\n }\n </select>\n } @else {\n <input type=\"text\" class=\"fmc-input\" [(ngModel)]=\"field.DestinationFieldName\"\n (ngModelChange)=\"OnFieldChanged(field)\" placeholder=\"Destination field\" />\n }\n </div>\n\n <!-- Sync flags -->\n <div class=\"fmc-flags\">\n <label class=\"fmc-flag\" title=\"Key field for matching\">\n <input type=\"checkbox\" [(ngModel)]=\"field.IsKeyField\"\n (ngModelChange)=\"OnFieldChanged(field)\" />\n <i class=\"fa-solid fa-key\"></i>\n </label>\n <label class=\"fmc-flag\" title=\"Required field\">\n <input type=\"checkbox\" [(ngModel)]=\"field.IsRequired\"\n (ngModelChange)=\"OnFieldChanged(field)\" />\n <span class=\"fmc-req-star\">*</span>\n </label>\n </div>\n\n <!-- Remove button -->\n <button class=\"fmc-remove\" title=\"Remove mapping\" (click)=\"RemoveFieldMapping(i)\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <!-- Transform pipeline editor (expandable) -->\n @if (field.ShowTransformEditor && field.TransformPipeline.length > 0) {\n <div class=\"fmc-transform-editor\">\n <div class=\"fmc-te-header\">\n <span class=\"fmc-te-title\"><i class=\"fa-solid fa-wand-magic-sparkles\"></i> Transform Pipeline</span>\n <button class=\"fmc-te-add\" (click)=\"AddTransformStep(field)\" title=\"Add another step\">\n <i class=\"fa-solid fa-plus\"></i> Add Step\n </button>\n </div>\n @for (step of field.TransformPipeline; track $index; let si = $index) {\n <div class=\"fmc-te-step\">\n <div class=\"fmc-te-step-header\">\n <span class=\"fmc-te-step-num\">{{ si + 1 }}</span>\n <select class=\"fmc-te-type-select\" [ngModel]=\"step.Type\"\n (ngModelChange)=\"OnTransformTypeChange(field, step, $event)\">\n @for (tt of TransformTypes; track tt.Value) {\n <option [value]=\"tt.Value\">{{ tt.Label }}</option>\n }\n </select>\n <select class=\"fmc-te-error-select\" [(ngModel)]=\"step.OnError\"\n (ngModelChange)=\"OnTransformConfigChange(field)\" title=\"On error\">\n <option value=\"Fail\">Fail</option>\n <option value=\"Skip\">Skip row</option>\n <option value=\"Null\">Set null</option>\n </select>\n <button class=\"fmc-te-remove-step\" (click)=\"RemoveTransformStep(field, si)\" title=\"Remove step\">\n <i class=\"fa-solid fa-trash-can\"></i>\n </button>\n </div>\n\n <!-- Config editors per type -->\n <div class=\"fmc-te-config\">\n @switch (step.Type) {\n @case ('direct') {\n <div class=\"fmc-te-field\">\n <label>Default value (when source is null)</label>\n <input type=\"text\" class=\"fmc-input\" [ngModel]=\"step.Config['DefaultValue'] ?? ''\"\n (ngModelChange)=\"step.Config['DefaultValue'] = $event; OnTransformConfigChange(field)\"\n placeholder=\"Leave empty for no default\" />\n </div>\n }\n @case ('regex') {\n <div class=\"fmc-te-row\">\n <div class=\"fmc-te-field\">\n <label>Pattern</label>\n <input type=\"text\" class=\"fmc-input mono\" [ngModel]=\"step.Config['Pattern'] ?? ''\"\n (ngModelChange)=\"step.Config['Pattern'] = $event; OnTransformConfigChange(field)\"\n placeholder=\"e.g. (\\d{3})-(\\d{4})\" />\n </div>\n <div class=\"fmc-te-field\">\n <label>Replacement</label>\n <input type=\"text\" class=\"fmc-input mono\" [ngModel]=\"step.Config['Replacement'] ?? ''\"\n (ngModelChange)=\"step.Config['Replacement'] = $event; OnTransformConfigChange(field)\"\n placeholder=\"e.g. $1$2\" />\n </div>\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Flags</label>\n <input type=\"text\" class=\"fmc-input mono\" [ngModel]=\"step.Config['Flags'] ?? 'g'\"\n (ngModelChange)=\"step.Config['Flags'] = $event; OnTransformConfigChange(field)\"\n placeholder=\"gi\" />\n </div>\n </div>\n }\n @case ('split') {\n <div class=\"fmc-te-row\">\n <div class=\"fmc-te-field\">\n <label>Delimiter</label>\n <input type=\"text\" class=\"fmc-input mono\" [ngModel]=\"step.Config['Delimiter'] ?? ','\"\n (ngModelChange)=\"step.Config['Delimiter'] = $event; OnTransformConfigChange(field)\"\n placeholder=\",\" />\n </div>\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Part index (0-based)</label>\n <input type=\"number\" class=\"fmc-input\" [ngModel]=\"step.Config['Index'] ?? 0\"\n (ngModelChange)=\"step.Config['Index'] = +$event; OnTransformConfigChange(field)\"\n min=\"0\" />\n </div>\n </div>\n }\n @case ('combine') {\n <div class=\"fmc-te-field\">\n <label>Source fields to combine</label>\n <div class=\"fmc-combine-chips\">\n @for (sf of GetAvailableSourceFields(); track sf) {\n <button class=\"fmc-chip\" [class.selected]=\"IsCombineFieldSelected(step.Config, sf)\"\n (click)=\"ToggleCombineField(step.Config, sf); OnTransformConfigChange(field)\">\n {{ sf }}\n </button>\n }\n </div>\n </div>\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Separator</label>\n <input type=\"text\" class=\"fmc-input mono\" [ngModel]=\"step.Config['Separator'] ?? ' '\"\n (ngModelChange)=\"step.Config['Separator'] = $event; OnTransformConfigChange(field)\"\n placeholder=\" \" />\n </div>\n }\n @case ('lookup') {\n <div class=\"fmc-te-field\">\n <label>Value mapping</label>\n <div class=\"fmc-lookup-table\">\n @for (entry of GetLookupEntries(step.Config); track $index) {\n <div class=\"fmc-lookup-row\">\n <input type=\"text\" class=\"fmc-input\" [value]=\"entry.key\" placeholder=\"Source value\"\n (change)=\"UpdateLookupEntry(step.Config, entry.key, $any($event.target).value, entry.value); OnTransformConfigChange(field)\" />\n <i class=\"fa-solid fa-arrow-right fmc-lookup-arrow\"></i>\n <input type=\"text\" class=\"fmc-input\" [value]=\"entry.value\" placeholder=\"Mapped value\"\n (change)=\"UpdateLookupEntry(step.Config, entry.key, entry.key, $any($event.target).value); OnTransformConfigChange(field)\" />\n <button class=\"fmc-lookup-del\" (click)=\"RemoveLookupEntry(step.Config, entry.key); OnTransformConfigChange(field)\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n }\n <button class=\"fmc-lookup-add\" (click)=\"AddLookupEntry(step.Config); OnTransformConfigChange(field)\">\n <i class=\"fa-solid fa-plus\"></i> Add mapping\n </button>\n </div>\n </div>\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Default (when no match)</label>\n <input type=\"text\" class=\"fmc-input\" [ngModel]=\"step.Config['Default'] ?? ''\"\n (ngModelChange)=\"step.Config['Default'] = $event; OnTransformConfigChange(field)\"\n placeholder=\"null\" />\n </div>\n }\n @case ('format') {\n <div class=\"fmc-te-row\">\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Format type</label>\n <select class=\"fmc-select\" [ngModel]=\"step.Config['FormatType'] ?? 'date'\"\n (ngModelChange)=\"step.Config['FormatType'] = $event; OnTransformConfigChange(field)\">\n <option value=\"date\">Date</option>\n <option value=\"number\">Number</option>\n <option value=\"string\">String</option>\n </select>\n </div>\n <div class=\"fmc-te-field\">\n <label>Format string</label>\n <input type=\"text\" class=\"fmc-input mono\" [ngModel]=\"step.Config['FormatString'] ?? 'ISO'\"\n (ngModelChange)=\"step.Config['FormatString'] = $event; OnTransformConfigChange(field)\"\n placeholder=\"ISO or decimal places\" />\n </div>\n </div>\n }\n @case ('coerce') {\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Target type</label>\n <select class=\"fmc-select\" [ngModel]=\"step.Config['TargetType'] ?? 'string'\"\n (ngModelChange)=\"step.Config['TargetType'] = $event; OnTransformConfigChange(field)\">\n <option value=\"string\">String</option>\n <option value=\"number\">Number</option>\n <option value=\"boolean\">Boolean</option>\n <option value=\"date\">Date</option>\n </select>\n </div>\n }\n @case ('substring') {\n <div class=\"fmc-te-row\">\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Start index</label>\n <input type=\"number\" class=\"fmc-input\" [ngModel]=\"step.Config['Start'] ?? 0\"\n (ngModelChange)=\"step.Config['Start'] = +$event; OnTransformConfigChange(field)\"\n min=\"0\" />\n </div>\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Length (blank = to end)</label>\n <input type=\"number\" class=\"fmc-input\" [ngModel]=\"step.Config['Length'] ?? ''\"\n (ngModelChange)=\"step.Config['Length'] = $event ? +$event : undefined; OnTransformConfigChange(field)\"\n min=\"1\" />\n </div>\n </div>\n }\n @case ('custom') {\n <div class=\"fmc-te-field\">\n <label>JavaScript expression <span class=\"fmc-te-hint\">(use <code>value</code> and <code>fields</code>)</span></label>\n <textarea class=\"fmc-input mono fmc-textarea\" [ngModel]=\"step.Config['Expression'] ?? 'value'\"\n (ngModelChange)=\"step.Config['Expression'] = $event; OnTransformConfigChange(field)\"\n placeholder=\"value.toUpperCase()\" rows=\"2\"></textarea>\n </div>\n }\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- Data Preview Section -->\n <div class=\"data-preview-section\">\n <div class=\"preview-actions\">\n <button mjButton variant=\"outline\" size=\"sm\"\n [disabled]=\"IsLoadingSourcePreview\"\n (click)=\"LoadSourcePreview()\">\n <i class=\"fa-solid fa-cloud-arrow-down\"></i> Preview Source\n </button>\n <button mjButton variant=\"outline\" size=\"sm\"\n [disabled]=\"IsLoadingDestPreview\"\n (click)=\"LoadDestPreview()\">\n <i class=\"fa-solid fa-database\"></i> Preview Destination\n </button>\n </div>\n\n @if (ShowSourcePreview) {\n <div class=\"preview-panel\">\n <div class=\"preview-panel-header\">\n <h4><i class=\"fa-solid fa-cloud\"></i> Source Data Preview</h4>\n <button class=\"add-panel-close\" (click)=\"CloseSourcePreview()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n @if (IsLoadingSourcePreview) {\n <mj-loading text=\"Loading source data...\" size=\"small\"></mj-loading>\n } @else if (SourcePreviewData.length === 0) {\n <p class=\"empty-hint\">No source data available.</p>\n } @else {\n <div class=\"preview-table-wrapper\">\n <table class=\"preview-table\">\n <thead>\n <tr>\n @for (col of GetPreviewColumns(SourcePreviewData); track col) {\n <th>{{ col }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of SourcePreviewData; track $index) {\n <tr>\n @for (col of GetPreviewColumns(SourcePreviewData); track col) {\n <td>{{ FormatPreviewValue(row[col]) }}</td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n }\n\n @if (ShowDestPreview) {\n <div class=\"preview-panel\">\n <div class=\"preview-panel-header\">\n <h4><i class=\"fa-solid fa-database\"></i> Destination Data Preview</h4>\n <button class=\"add-panel-close\" (click)=\"CloseDestPreview()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n @if (IsLoadingDestPreview) {\n <mj-loading text=\"Loading destination data...\" size=\"small\"></mj-loading>\n } @else if (DestPreviewData.length === 0) {\n <p class=\"empty-hint\">No destination data available.</p>\n } @else {\n <div class=\"preview-table-wrapper\">\n <table class=\"preview-table\">\n <thead>\n <tr>\n @for (col of GetPreviewColumns(DestPreviewData); track col) {\n <th>{{ col }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of DestPreviewData; track $index) {\n <tr>\n @for (col of GetPreviewColumns(DestPreviewData); track col) {\n <td>{{ FormatPreviewValue(row[col]) }}</td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n\n <!-- ============================================================ -->\n <!-- RIGHT PANEL: Last run details -->\n <!-- ============================================================ -->\n <div class=\"right-panel\">\n <h4 class=\"panel-label\">Last Run Details</h4>\n @if (!SelectedIntegrationID) {\n <p class=\"empty-hint\">Select an integration to see run details.</p>\n } @else if (IsLoadingRunDetails) {\n <mj-loading text=\"Loading...\" size=\"small\"></mj-loading>\n } @else if (!LatestRun) {\n <p class=\"empty-hint\">No runs found.</p>\n } @else {\n <div class=\"run-summary-card\">\n <div class=\"run-summary-row\">\n <span class=\"label\">Status</span>\n <span class=\"run-status\" [class]=\"'status-' + RunStatusColor\">\n {{ LatestRun.Status }}\n </span>\n </div>\n <div class=\"run-summary-row\">\n <span class=\"label\">Started</span>\n <span>{{ FormatDate(LatestRun.StartedAt) }}</span>\n </div>\n <div class=\"run-summary-row\">\n <span class=\"label\">Total Records</span>\n <span>{{ LatestRun.TotalRecords | number }}</span>\n </div>\n <div class=\"run-summary-row\">\n <span class=\"label\">Run By</span>\n <span>{{ LatestRun.RunByUser }}</span>\n </div>\n </div>\n\n @if (RunEntityDetails.length > 0) {\n <h4 class=\"panel-label\" style=\"margin-top: 16px;\">Per-Entity Stats</h4>\n @for (detail of RunEntityDetails; track detail.EntityID) {\n <div class=\"entity-stat-card\">\n <div class=\"entity-stat-name\">{{ detail.Entity }}</div>\n <div class=\"entity-stat-grid\">\n <div class=\"mini-stat\">\n <span class=\"mini-val\">{{ detail.RecordsCreated }}</span>\n <span class=\"mini-label\">Created</span>\n </div>\n <div class=\"mini-stat\">\n <span class=\"mini-val\">{{ detail.RecordsUpdated }}</span>\n <span class=\"mini-label\">Updated</span>\n </div>\n <div class=\"mini-stat\">\n <span class=\"mini-val\" [class.has-errors]=\"detail.RecordsErrored > 0\">\n {{ detail.RecordsErrored }}\n </span>\n <span class=\"mini-label\">Errors</span>\n </div>\n </div>\n </div>\n }\n }\n }\n </div>\n </div>\n }\n</div>\n", styles: [".mapping-workspace { padding: 24px; height: 100%; display: flex; flex-direction: column; }\n.workspace-header {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 16px;\n}\n.workspace-header h2 {\n margin: 0; font-size: 20px; font-weight: 600;\n}\n.workspace-header h2 i { margin-right: 8px; color: var(--mj-color-indigo-500); }\n\n/* ===== Three-panel layout ===== */\n.workspace-body {\n display: flex; flex: 1; gap: 1px; background: var(--mj-border-default);\n border-radius: 10px; overflow: hidden; min-height: 500px;\n}\n\n.left-panel { width: 320px; min-width: 280px; background: var(--mj-bg-surface); padding: 16px; overflow-y: auto; flex-shrink: 0; }\n.center-panel { flex: 1; background: var(--mj-bg-surface); padding: 20px; overflow-y: auto; }\n.right-panel { width: 280px; min-width: 240px; background: var(--mj-bg-surface); padding: 16px; overflow-y: auto; flex-shrink: 0; }\n\n/* ===== Shared ===== */\n.panel-label {\n font-size: 11px; font-weight: 700; color: var(--mj-text-disabled);\n text-transform: uppercase; letter-spacing: 0.6px;\n margin: 0 0 6px 0; display: block;\n}\n.panel-title { margin: 0 0 12px 0; font-size: 16px; font-weight: 600; }\n.panel-title .field-count { color: var(--mj-text-disabled); font-weight: 400; font-size: 13px; }\n.empty-hint { color: var(--mj-text-disabled); font-size: 13px; font-style: italic; }\n.search-box { margin-bottom: 12px; }\n\n/* ===== Integration selector ===== */\n.integration-selector { margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--mj-border-subtle); }\n\n/* ===== Entity Map Header ===== */\n.entity-map-header {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 10px;\n}\n.header-actions { display: flex; gap: 4px; }\n\n/* ===== Add Map Panel ===== */\n.add-map-panel {\n background: var(--mj-bg-page); border: 1px solid var(--mj-border-default); border-radius: 10px;\n padding: 16px; margin-bottom: 14px;\n}\n.add-panel-top {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 14px;\n}\n.add-panel-top h5 { margin: 0; font-size: 14px; font-weight: 600; }\n.add-panel-close {\n background: none; border: none; cursor: pointer; color: var(--mj-text-disabled); font-size: 14px;\n}\n.add-panel-close:hover { color: var(--mj-text-primary); }\n\n.form-group { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }\n.form-group label { font-size: 12px; font-weight: 600; color: var(--mj-text-muted); }\n.form-row { display: flex; gap: 10px; }\n.form-row .form-group { flex: 1; }\n\n.source-loading {\n display: flex; align-items: center; gap: 8px;\n font-size: 12px; color: var(--mj-text-disabled); padding: 6px 0;\n}\n.source-loading i { color: var(--mj-color-indigo-500); }\n\n.discover-error-inline {\n font-size: 12px; color: var(--mj-color-error-600); padding: 6px 0;\n}\n.discover-error-inline i { margin-right: 4px; }\n\n/* Target mode toggle */\n.target-mode-toggle {\n display: flex; border: 1px solid var(--mj-border-default); border-radius: 6px;\n overflow: hidden; margin-bottom: 12px;\n}\n.target-mode-btn {\n flex: 1; padding: 8px 12px; font-size: 12px; font-weight: 600;\n text-align: center; cursor: pointer; background: var(--mj-bg-surface); border: none;\n color: var(--mj-text-muted); transition: all 0.15s;\n}\n.target-mode-btn:first-child { border-right: 1px solid var(--mj-border-default); }\n.target-mode-btn.active { background: var(--mj-color-indigo-500); color: var(--mj-bg-surface); }\n.target-mode-btn:not(.active):hover { background: var(--mj-status-info-bg); color: var(--mj-color-indigo-500); }\n.target-mode-btn i { margin-right: 4px; }\n\n/* New entity form */\n.new-entity-form {\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default); border-radius: 8px;\n padding: 14px; margin-bottom: 12px;\n}\n.new-entity-form .section-label {\n font-size: 11px; font-weight: 700; color: var(--mj-color-indigo-500);\n text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 10px;\n}\n.auto-hint { font-size: 10px; color: var(--mj-text-disabled); font-style: italic; }\n\n/* DDL preview in add panel */\n.ddl-preview-section { margin-top: 8px; }\n.ddl-preview-code {\n background: var(--mj-text-primary); color: var(--mj-color-neutral-300); padding: 10px;\n border-radius: 4px; font-size: 11px; line-height: 1.5;\n max-height: 200px; overflow: auto; white-space: pre-wrap;\n word-break: break-word; margin-top: 8px;\n}\n\n.add-form-actions { display: flex; gap: 6px; padding-top: 4px; }\n\n/* ===== Entity Map List ===== */\n.entity-map-list { display: flex; flex-direction: column; gap: 4px; }\n.entity-map-item {\n padding: 8px 10px; border-radius: 6px;\n cursor: pointer; border: 1px solid var(--mj-border-subtle); transition: all 0.15s;\n}\n.entity-map-item:hover { background: var(--mj-bg-page); }\n.entity-map-item.selected { background: var(--mj-status-info-bg); border-color: var(--mj-color-indigo-500); }\n.entity-map-item.pending { border-left: 3px solid var(--mj-status-warning); }\n\n.em-top-row {\n display: flex; align-items: center; gap: 4px;\n font-size: 13px; margin-bottom: 4px;\n}\n.em-name { font-weight: 600; }\n.em-arrow { color: var(--mj-text-disabled); font-size: 11px; }\n.em-entity { color: var(--mj-text-muted); }\n\n.em-bottom-row {\n display: flex; align-items: center; justify-content: space-between;\n font-size: 11px; color: var(--mj-text-disabled);\n}\n.em-badges { display: flex; gap: 4px; align-items: center; }\n.badge {\n font-size: 10px; padding: 1px 6px; border-radius: 4px; font-weight: 600;\n}\n.badge-direction { background: var(--mj-bg-surface-hover); color: var(--mj-text-muted); }\n.badge-pending { background: var(--mj-color-warning-50); color: var(--mj-color-warning-600); }\n\n.em-actions { display: flex; align-items: center; gap: 4px; }\n.em-delete {\n opacity: 0; transition: opacity 0.15s;\n cursor: pointer; color: var(--mj-color-error-600); background: none; border: none;\n padding: 2px 4px; font-size: 12px;\n}\n.entity-map-item:hover .em-delete { opacity: 1; }\n\n/* ===== Center Panel: Placeholder ===== */\n.placeholder-message {\n display: flex; flex-direction: column; align-items: center;\n justify-content: center; height: 300px; color: var(--mj-text-disabled);\n}\n.placeholder-message i { font-size: 36px; margin-bottom: 12px; }\n.placeholder-message p { text-align: center; }\n\n/* ===== Pending Entity Panel ===== */\n.pending-entity-panel {\n background: var(--mj-status-warning-bg); border: 1px solid var(--mj-color-warning-200); border-radius: 10px;\n padding: 24px; text-align: center;\n}\n.pending-icon { font-size: 40px; color: var(--mj-status-warning); margin-bottom: 12px; }\n.pending-entity-panel h3 { font-size: 16px; margin-bottom: 8px; }\n.pending-entity-panel p { font-size: 13px; color: var(--mj-text-disabled); margin-bottom: 16px; line-height: 1.5; }\n\n/* Stepper */\n.pending-steps {\n display: flex; gap: 0; margin: 20px 0; justify-content: center; align-items: center;\n}\n.step {\n display: flex; flex-direction: column; align-items: center; gap: 6px;\n padding: 0 16px;\n}\n.step-circle {\n width: 36px; height: 36px; border-radius: 50%;\n display: flex; align-items: center; justify-content: center;\n font-size: 14px; font-weight: 700;\n}\n.step-circle.done { background: var(--mj-status-success-bg); color: var(--mj-color-success-700); }\n.step-circle.current { background: var(--mj-color-indigo-500); color: var(--mj-bg-surface); }\n.step-circle.future { background: var(--mj-bg-surface-hover); color: var(--mj-text-disabled); }\n.step-label { font-size: 10px; font-weight: 600; color: var(--mj-text-disabled); text-transform: uppercase; white-space: nowrap; }\n.step-connector { width: 32px; height: 2px; background: var(--mj-border-default); align-self: center; margin-bottom: 18px; }\n.step-connector.done { background: var(--mj-color-success-700); }\n\n/* DDL in pending view */\n.ddl-preview-inline { margin-top: 16px; text-align: left; }\n.ddl-code-block {\n background: var(--mj-text-primary); color: var(--mj-color-neutral-300); padding: 12px;\n border-radius: 6px; font-size: 12px; line-height: 1.5;\n max-height: 250px; overflow: auto; white-space: pre-wrap;\n}\n.ddl-actions { display: flex; gap: 8px; margin-top: 12px; justify-content: center; }\n\n/* Pending fields list */\n.pending-fields-section { text-align: left; }\n.pending-fields-list {\n display: flex; flex-direction: column; gap: 2px;\n max-height: 200px; overflow-y: auto;\n}\n.pending-field-item {\n display: flex; align-items: center; gap: 8px;\n padding: 4px 8px; font-size: 13px; border-radius: 4px;\n}\n.pending-field-item:hover { background: var(--mj-status-warning-bg); }\n.pending-field-name { font-weight: 600; }\n.pending-field-type { font-size: 11px; color: var(--mj-text-disabled); background: var(--mj-bg-surface-hover); padding: 1px 6px; border-radius: 3px; }\n.pending-field-req { color: var(--mj-color-error-600); font-weight: 700; }\n\n/* ===== Auto-map banner ===== */\n.auto-map-banner {\n background: var(--mj-status-info-bg); border: 1px solid var(--mj-color-info-100); border-radius: 8px;\n padding: 12px 16px; margin-bottom: 16px;\n display: flex; align-items: center; gap: 12px;\n}\n.auto-map-banner > i { color: var(--mj-color-indigo-500); font-size: 18px; }\n.auto-map-banner .banner-text { flex: 1; }\n.auto-map-banner .banner-text p { font-size: 13px; color: var(--mj-text-muted); margin: 0; }\n.auto-map-banner .banner-text strong { color: var(--mj-text-primary); }\n\n/* ===== Field Mapping Editor ===== */\n.field-mapping-header {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 16px;\n}\n.field-mapping-actions { display: flex; gap: 6px; }\n\n/* ===== Field Map Cards (New world-class design) ===== */\n.field-map-cards {\n display: flex; flex-direction: column; gap: 6px;\n}\n\n.field-map-card {\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n background: var(--mj-bg-surface);\n transition: all 0.2s ease;\n overflow: hidden;\n}\n.field-map-card:hover {\n border-color: var(--mj-border-strong);\n box-shadow: 0 2px 8px rgba(74, 108, 247, 0.06);\n}\n.field-map-card.has-transform {\n border-left: 3px solid var(--mj-color-indigo-500);\n}\n.field-map-card.validation-error {\n border-color: var(--mj-color-warning-200);\n background: var(--mj-status-warning-bg);\n}\n\n/* Main mapping row */\n.fmc-row {\n display: flex; align-items: center; gap: 10px;\n padding: 10px 14px;\n}\n\n/* Source column */\n.fmc-source {\n flex: 1; min-width: 0;\n}\n.fmc-field-name {\n font-size: 13px; font-weight: 600; color: var(--mj-text-primary);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n}\n.fmc-badges {\n display: flex; gap: 4px; margin-top: 3px; flex-wrap: wrap;\n}\n.fmc-badge {\n font-size: 9px; font-weight: 700; padding: 1px 5px;\n border-radius: 3px; text-transform: uppercase; letter-spacing: 0.3px;\n white-space: nowrap; line-height: 1.5;\n}\n.badge-type {\n background: var(--mj-bg-surface-hover); color: var(--mj-text-muted);\n}\n.badge-pk {\n background: linear-gradient(135deg, var(--mj-color-warning-100), var(--mj-color-warning-200));\n color: var(--mj-color-warning-800);\n}\n.badge-pk i { font-size: 8px; margin-right: 2px; }\n.badge-req {\n background: linear-gradient(135deg, var(--mj-color-error-100), var(--mj-color-error-200));\n color: var(--mj-color-error-800);\n}\n.badge-ro {\n background: var(--mj-color-purple-50); color: var(--mj-color-purple-700);\n}\n\n/* Transform zone (center arrow / pill) */\n.fmc-transform-zone {\n flex-shrink: 0;\n display: flex; align-items: center; justify-content: center;\n width: 100px;\n}\n.fmc-arrow-btn {\n width: 32px; height: 32px;\n border-radius: 50%; border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page); color: var(--mj-text-disabled);\n cursor: pointer; font-size: 12px;\n display: flex; align-items: center; justify-content: center;\n transition: all 0.2s;\n}\n.fmc-arrow-btn:hover {\n background: var(--mj-color-indigo-500); color: var(--mj-bg-surface); border-color: var(--mj-color-indigo-500);\n transform: scale(1.1);\n}\n.fmc-transform-pill {\n display: flex; align-items: center; gap: 4px;\n padding: 4px 10px; border-radius: 16px;\n background: linear-gradient(135deg, var(--mj-color-indigo-50), var(--mj-color-indigo-100));\n border: 1px solid var(--mj-color-indigo-200); color: var(--mj-color-indigo-700);\n font-size: 11px; font-weight: 600;\n cursor: pointer; transition: all 0.2s;\n white-space: nowrap;\n}\n.fmc-transform-pill:hover {\n background: linear-gradient(135deg, var(--mj-color-indigo-100), var(--mj-color-indigo-200));\n transform: scale(1.02);\n}\n.fmc-transform-pill i { font-size: 10px; }\n.fmc-transform-direct {\n background: linear-gradient(135deg, var(--mj-bg-page), var(--mj-bg-surface-hover));\n border-color: var(--mj-color-neutral-300); color: var(--mj-text-muted);\n}\n.fmc-transform-direct:hover {\n background: linear-gradient(135deg, var(--mj-color-indigo-50), var(--mj-color-indigo-100));\n border-color: var(--mj-color-indigo-200); color: var(--mj-color-indigo-700);\n}\n.fmc-step-count {\n background: var(--mj-color-indigo-700); color: var(--mj-bg-surface); font-size: 9px;\n padding: 0 4px; border-radius: 8px; font-weight: 700;\n}\n\n/* Destination column */\n.fmc-dest {\n flex: 1; min-width: 0;\n}\n.fmc-select {\n width: 100%; padding: 6px 10px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 13px; color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n transition: border-color 0.15s;\n}\n.fmc-select:focus { border-color: var(--mj-color-indigo-500); outline: none; box-shadow: 0 0 0 2px rgba(74, 108, 247, 0.12); }\n\n/* Shared input style */\n.fmc-input {\n width: 100%; padding: 5px 8px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 13px; color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n transition: border-color 0.15s;\n}\n.fmc-input:focus { border-color: var(--mj-color-indigo-500); outline: none; box-shadow: 0 0 0 2px rgba(74, 108, 247, 0.12); }\n.fmc-input.mono { font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace; font-size: 12px; }\n\n/* Flags (key, required) */\n.fmc-flags {\n display: flex; gap: 6px; flex-shrink: 0;\n}\n.fmc-flag {\n display: flex; align-items: center; gap: 3px;\n font-size: 11px; color: var(--mj-text-disabled); cursor: pointer;\n padding: 2px 4px; border-radius: 4px;\n transition: color 0.15s;\n}\n.fmc-flag:hover { color: var(--mj-color-indigo-500); }\n.fmc-flag input[type=\"checkbox\"] {\n width: 13px; height: 13px; cursor: pointer;\n accent-color: var(--mj-color-indigo-500);\n}\n.fmc-flag i { font-size: 10px; }\n.fmc-req-star { font-size: 14px; font-weight: 700; color: inherit; }\n\n/* Remove button */\n.fmc-remove {\n flex-shrink: 0;\n background: none; border: none; cursor: pointer;\n color: var(--mj-color-neutral-300); font-size: 13px; padding: 4px;\n border-radius: 4px; transition: all 0.15s;\n}\n.fmc-remove:hover { color: var(--mj-status-error); background: var(--mj-status-error-bg); }\n\n/* ===== Transform Pipeline Editor ===== */\n.fmc-transform-editor {\n border-top: 1px solid var(--mj-bg-surface-hover);\n background: linear-gradient(180deg, var(--mj-color-indigo-50) 0%, var(--mj-bg-page) 100%);\n padding: 12px 14px;\n}\n.fmc-te-header {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 10px;\n}\n.fmc-te-title {\n font-size: 11px; font-weight: 700; color: var(--mj-color-indigo-500);\n text-transform: uppercase; letter-spacing: 0.5px;\n}\n.fmc-te-title i { margin-right: 4px; }\n.fmc-te-add {\n font-size: 11px; font-weight: 600; color: var(--mj-color-indigo-500);\n background: none; border: 1px solid var(--mj-color-indigo-200);\n border-radius: 6px; padding: 3px 10px;\n cursor: pointer; transition: all 0.15s;\n}\n.fmc-te-add:hover { background: var(--mj-color-indigo-50); }\n.fmc-te-add i { margin-right: 3px; font-size: 10px; }\n\n/* Individual transform step */\n.fmc-te-step {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 10px 12px;\n margin-bottom: 8px;\n transition: box-shadow 0.15s;\n}\n.fmc-te-step:hover { box-shadow: 0 1px 4px rgba(0,0,0,0.05); }\n.fmc-te-step:last-child { margin-bottom: 0; }\n\n.fmc-te-step-header {\n display: flex; align-items: center; gap: 8px; margin-bottom: 8px;\n}\n.fmc-te-step-num {\n width: 22px; height: 22px; border-radius: 50%;\n background: linear-gradient(135deg, var(--mj-color-indigo-500), var(--mj-color-indigo-500));\n color: var(--mj-bg-surface); font-size: 11px; font-weight: 700;\n display: flex; align-items: center; justify-content: center;\n flex-shrink: 0;\n}\n.fmc-te-type-select {\n flex: 1; padding: 4px 8px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 12px; font-weight: 600;\n color: var(--mj-text-primary); background: var(--mj-bg-page);\n}\n.fmc-te-type-select:focus { border-color: var(--mj-color-indigo-500); outline: none; }\n.fmc-te-error-select {\n width: 100px; padding: 4px 6px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 11px; color: var(--mj-text-muted);\n background: var(--mj-bg-page);\n}\n.fmc-te-error-select:focus { border-color: var(--mj-color-indigo-500); outline: none; }\n.fmc-te-remove-step {\n background: none; border: none; cursor: pointer;\n color: var(--mj-color-neutral-300); font-size: 12px; padding: 4px;\n border-radius: 4px; transition: all 0.15s;\n}\n.fmc-te-remove-step:hover { color: var(--mj-status-error); background: var(--mj-status-error-bg); }\n\n/* Config area */\n.fmc-te-config {\n padding-left: 30px;\n}\n.fmc-te-field {\n margin-bottom: 8px;\n}\n.fmc-te-field:last-child { margin-bottom: 0; }\n.fmc-te-field label {\n display: block; font-size: 11px; font-weight: 600;\n color: var(--mj-text-muted); margin-bottom: 3px;\n}\n.fmc-te-field label code {\n background: var(--mj-bg-surface-hover); padding: 0 3px; border-radius: 3px;\n font-size: 10px; color: var(--mj-color-indigo-700);\n}\n.fmc-te-hint { font-weight: 400; color: var(--mj-text-disabled); }\n.fmc-te-row {\n display: flex; gap: 10px; align-items: flex-end;\n}\n.fmc-te-sm { max-width: 140px; }\n.fmc-textarea {\n resize: vertical; min-height: 40px;\n}\n\n/* Combine chips */\n.fmc-combine-chips {\n display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px;\n}\n.fmc-chip {\n font-size: 11px; padding: 3px 8px; border-radius: 14px;\n border: 1px solid var(--mj-border-default); background: var(--mj-bg-surface);\n color: var(--mj-text-muted); cursor: pointer;\n transition: all 0.15s; font-weight: 500;\n}\n.fmc-chip:hover { border-color: var(--mj-color-indigo-300); color: var(--mj-color-indigo-700); }\n.fmc-chip.selected {\n background: linear-gradient(135deg, var(--mj-color-indigo-50), var(--mj-color-indigo-100));\n border-color: var(--mj-color-indigo-400); color: var(--mj-color-indigo-700); font-weight: 600;\n}\n\n/* Lookup table */\n.fmc-lookup-table {\n display: flex; flex-direction: column; gap: 4px; margin-top: 4px;\n}\n.fmc-lookup-row {\n display: flex; align-items: center; gap: 6px;\n}\n.fmc-lookup-row .fmc-input { flex: 1; }\n.fmc-lookup-arrow { color: var(--mj-color-indigo-200); font-size: 10px; flex-shrink: 0; }\n.fmc-lookup-del {\n background: none; border: none; cursor: pointer;\n color: var(--mj-color-neutral-300); font-size: 11px; padding: 2px;\n transition: color 0.15s;\n}\n.fmc-lookup-del:hover { color: var(--mj-status-error); }\n.fmc-lookup-add {\n font-size: 11px; color: var(--mj-color-indigo-500); background: none;\n border: 1px dashed var(--mj-color-indigo-200); border-radius: 6px;\n padding: 4px 10px; cursor: pointer;\n transition: all 0.15s; margin-top: 2px;\n}\n.fmc-lookup-add:hover { background: var(--mj-color-indigo-50); }\n.fmc-lookup-add i { margin-right: 3px; font-size: 10px; }\n\n/* ===== Data Preview ===== */\n.data-preview-section { margin-top: 24px; border-top: 1px solid var(--mj-border-subtle); padding-top: 16px; }\n.preview-actions { display: flex; gap: 8px; margin-bottom: 12px; }\n\n.preview-panel {\n background: var(--mj-bg-page); border: 1px solid var(--mj-border-default); border-radius: 8px;\n padding: 12px; margin-bottom: 12px;\n}\n.preview-panel-header {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 8px;\n}\n.preview-panel-header h4 { font-size: 13px; font-weight: 600; margin: 0; }\n.preview-panel-header h4 i { margin-right: 6px; color: var(--mj-color-indigo-500); }\n\n.preview-table-wrapper { overflow-x: auto; }\n.preview-table {\n width: 100%; border-collapse: collapse; font-size: 12px;\n}\n.preview-table th {\n text-align: left; padding: 5px 8px;\n background: var(--mj-border-default); font-weight: 600; font-size: 10px;\n text-transform: uppercase; color: var(--mj-text-muted);\n border-bottom: 1px solid var(--mj-border-default); white-space: nowrap;\n}\n.preview-table td {\n padding: 4px 8px; border-bottom: 1px solid var(--mj-border-subtle);\n white-space: nowrap; max-width: 150px; overflow: hidden; text-overflow: ellipsis;\n}\n.preview-table tr:hover { background: var(--mj-status-info-bg); }\n\n/* ===== Right panel: run details ===== */\n.run-summary-card {\n background: var(--mj-bg-page); border-radius: 8px; padding: 12px;\n}\n.run-summary-row {\n display: flex; justify-content: space-between;\n padding: 4px 0; font-size: 13px;\n}\n.run-summary-row .label { color: var(--mj-text-muted); font-weight: 500; }\n.run-status {\n font-size: 11px; padding: 2px 6px; border-radius: 4px; font-weight: 600;\n}\n.status-green { background: var(--mj-status-success-bg); color: var(--mj-color-success-700); }\n.status-amber { background: var(--mj-color-warning-50); color: var(--mj-color-warning-600); }\n.status-red { background: var(--mj-status-error-bg); color: var(--mj-color-error-600); }\n\n.entity-stat-card {\n background: var(--mj-bg-page); border-radius: 6px; padding: 10px;\n margin-bottom: 8px;\n}\n.entity-stat-name { font-size: 13px; font-weight: 600; margin-bottom: 6px; }\n.entity-stat-grid { display: flex; gap: 12px; }\n.mini-stat { text-align: center; }\n.mini-val { display: block; font-size: 16px; font-weight: 600; }\n.mini-val.has-errors { color: var(--mj-color-error-600); }\n.mini-label { font-size: 10px; color: var(--mj-text-disabled); }\n\n/* ===== Validation ===== */\n.validation-banner {\n background: var(--mj-color-warning-50); border: 1px solid var(--mj-color-warning-200); border-radius: 8px;\n padding: 10px 14px; margin-bottom: 14px;\n display: flex; align-items: flex-start; gap: 10px;\n font-size: 13px; color: var(--mj-color-warning-600);\n}\n.validation-banner > i { margin-top: 2px; }\n.validation-warnings { display: flex; flex-direction: column; gap: 2px; }\n\n.field-map-card.validation-error .fmc-source {\n border-left: 3px solid var(--mj-color-warning-600);\n padding-left: 8px;\n}\n\n/* ===== Responsive ===== */\n@media (max-width: 1100px) { .right-panel { display: none; } }\n@media (max-width: 800px) { .left-panel { width: 260px; } }\n"] }]
2357
+ args: [{ standalone: false, selector: 'app-mapping-workspace', template: "<mj-page-layout>\n <mj-page-header\n Title=\"Mapping Workspace\"\n Icon=\"fa-solid fa-diagram-project\"\n Subtitle=\"Build and validate entity field mappings\">\n </mj-page-header>\n\n <mj-page-body [Flex]=\"true\" [Padding]=\"false\">\n<div class=\"mapping-workspace\">\n @if (IsLoadingIntegrations) {\n <mj-loading text=\"Loading integrations...\" size=\"medium\"></mj-loading>\n } @else {\n <div class=\"workspace-body\">\n <!-- ============================================================ -->\n <!-- LEFT PANEL: Integration selector + Entity map list -->\n <!-- ============================================================ -->\n <div class=\"left-panel\">\n <div class=\"integration-selector\">\n <label class=\"panel-label\">Integration</label>\n <mj-dropdown\n [Data]=\"Integrations\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n [(ngModel)]=\"SelectedIntegrationID\"\n (ValueChange)=\"OnIntegrationChange($any($event))\"\n [DefaultItem]=\"{ ID: '', Name: '-- Select --' }\">\n </mj-dropdown>\n </div>\n\n @if (IsLoadingEntityMaps) {\n <mj-loading text=\"Loading entity maps...\" size=\"small\"></mj-loading>\n } @else if (SelectedIntegrationID) {\n <!-- Entity Map Header -->\n <div class=\"entity-map-header\">\n <span class=\"panel-label\" style=\"margin: 0;\">Entity Maps</span>\n <div class=\"header-actions\">\n <button mjButton variant=\"flat\" size=\"sm\"\n (click)=\"OpenAddPanel()\" title=\"Add entity map\">\n <i class=\"fa-solid fa-plus\"></i> Add Map\n </button>\n </div>\n </div>\n\n <!-- ==================== ADD MAP PANEL ==================== -->\n @if (ShowAddPanel) {\n <div class=\"add-map-panel\">\n <div class=\"add-panel-top\">\n <h5><i class=\"fa-solid fa-plus-circle\"></i> Add Entity Map</h5>\n <button class=\"add-panel-close\" (click)=\"CloseAddPanel()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <!-- Source Object Dropdown -->\n <div class=\"form-group\">\n <label>Source Object</label>\n @if (IsDiscoveringObjects) {\n <div class=\"source-loading\">\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Discovering objects...\n </div>\n } @else if (DiscoverError) {\n <div class=\"discover-error-inline\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n {{ DiscoverError }}\n </div>\n } @else if (DiscoveredObjects.length === 0) {\n <div class=\"discover-error-inline\">\n No objects found in external system.\n </div>\n } @else {\n <mj-dropdown\n [Data]=\"DiscoveredObjects\"\n TextField=\"Label\"\n ValueField=\"Name\"\n [ValuePrimitive]=\"true\"\n [(ngModel)]=\"SelectedSourceObjectName\"\n (ValueChange)=\"OnSourceObjectChange($any($event))\"\n [Filterable]=\"true\"\n [DefaultItem]=\"{ Name: '', Label: 'Select source object...' }\">\n </mj-dropdown>\n }\n </div>\n\n <!-- Target Mode Toggle -->\n <div class=\"target-mode-toggle\">\n <button class=\"target-mode-btn\"\n [class.active]=\"TargetMode === 'existing'\"\n (click)=\"SetTargetMode('existing')\">\n <i class=\"fa-solid fa-database\"></i> Existing Entity\n </button>\n <button class=\"target-mode-btn\"\n [class.active]=\"TargetMode === 'new'\"\n (click)=\"SetTargetMode('new')\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i> New Entity\n </button>\n </div>\n\n <!-- Existing entity picker -->\n @if (TargetMode === 'existing') {\n <div class=\"form-group\">\n <label>Target MJ Entity</label>\n @if (IsLoadingEntities) {\n <mj-loading text=\"Loading...\" size=\"small\"></mj-loading>\n } @else {\n <mj-dropdown\n [Data]=\"MJEntities\"\n TextField=\"Name\"\n ValueField=\"ID\"\n [ValuePrimitive]=\"true\"\n [(ngModel)]=\"SelectedEntityID\"\n [Filterable]=\"true\"\n [DefaultItem]=\"{ ID: null, Name: 'Select entity...' }\">\n </mj-dropdown>\n }\n </div>\n }\n\n <!-- New entity form -->\n @if (TargetMode === 'new') {\n <div class=\"new-entity-form\">\n <div class=\"section-label\">Define New Entity</div>\n <div class=\"form-group\">\n <label>DB Schema</label>\n <mj-combobox\n [Data]=\"DBSchemas\"\n [(ngModel)]=\"NewEntitySchemaName\"\n (ValueChange)=\"OnSchemaNameChange()\"\n [AllowCustom]=\"true\"\n [Filterable]=\"true\"\n Placeholder=\"Select or type schema...\">\n </mj-combobox>\n </div>\n <div class=\"form-row\">\n <div class=\"form-group\">\n <label>Table Name</label>\n <input class=\"mj-input\" [(ngModel)]=\"NewEntityTableName\"\n [placeholder]=\"SuggestedTableName || 'Table name'\" />\n @if (SuggestedTableName && !NewEntityTableName) {\n <span class=\"auto-hint\">Suggested: {{ SuggestedTableName }}</span>\n }\n </div>\n <div class=\"form-group\">\n <label>Entity Name</label>\n <input class=\"mj-input\" [(ngModel)]=\"NewEntityName\"\n [placeholder]=\"SuggestedEntityName || 'Entity name'\" />\n </div>\n </div>\n\n <!-- DDL Preview -->\n @if (SelectedSourceObjectName && NewEntitySchemaName && NewEntityTableName) {\n <div class=\"ddl-preview-section\">\n <button mjButton variant=\"outline\" size=\"sm\"\n [disabled]=\"IsGeneratingDDL\"\n (click)=\"PreviewDDL()\">\n @if (IsGeneratingDDL) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Generating...\n } @else {\n <i class=\"fa-solid fa-database\"></i> Preview DDL\n }\n </button>\n @if (DDLPreviewError) {\n <div class=\"discover-error-inline\" style=\"margin-top: 8px;\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i> {{ DDLPreviewError }}\n </div>\n }\n @if (DDLPreviewContent) {\n <pre class=\"ddl-preview-code\">{{ DDLPreviewContent }}</pre>\n }\n </div>\n }\n </div>\n }\n\n <!-- Sync direction -->\n <div class=\"form-group\">\n <label>Sync Direction</label>\n <mj-dropdown\n [Data]=\"['Pull', 'Push', 'Bidirectional']\"\n [(ngModel)]=\"AddSyncDirection\">\n </mj-dropdown>\n </div>\n\n <!-- Save / Cancel -->\n <div class=\"add-form-actions\">\n <button mjButton variant=\"primary\" size=\"sm\"\n [disabled]=\"!IsAddFormValid || IsSavingEntityMap\"\n (click)=\"SaveAddMap()\">\n @if (IsSavingEntityMap) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Saving...\n } @else if (TargetMode === 'new') {\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i> Create Pending Map\n } @else {\n <i class=\"fa-solid fa-check\"></i> Add Map\n }\n </button>\n <button mjButton size=\"sm\" (click)=\"CloseAddPanel()\">\n Cancel\n </button>\n </div>\n </div>\n }\n\n <!-- Search -->\n @if (AllMaps.length > 0) {\n <div class=\"search-box\">\n <input class=\"mj-input\"\n [(ngModel)]=\"EntityMapSearchText\"\n placeholder=\"Search entity maps...\" />\n </div>\n }\n\n <!-- Entity Map List -->\n @if (AllMaps.length === 0 && !ShowAddPanel) {\n <p class=\"empty-hint\">\n No entity maps configured.\n <a href=\"javascript:void(0)\" (click)=\"OpenAddPanel()\" style=\"color: var(--mj-brand-primary);\">Add one</a>\n </p>\n } @else if (FilteredMaps.length === 0 && AllMaps.length > 0) {\n <p class=\"empty-hint\">No matches for \"{{ EntityMapSearchText }}\".</p>\n } @else {\n <div class=\"entity-map-list\">\n @for (item of FilteredMaps; track item.ID) {\n <div class=\"entity-map-item\"\n [class.selected]=\"IsSelectedMap(item.ID)\"\n [class.pending]=\"item.IsPending\"\n (click)=\"OnMapSelect(item)\">\n <div class=\"em-top-row\">\n <span class=\"em-name\">{{ item.SourceName }}</span>\n <span class=\"em-arrow\"><i class=\"fa-solid fa-arrow-right\"></i></span>\n <span class=\"em-entity\">{{ item.TargetName }}</span>\n </div>\n <div class=\"em-bottom-row\">\n <div class=\"em-badges\">\n <span class=\"badge badge-direction\">{{ item.SyncDirection }}</span>\n @if (item.IsPending) {\n <span class=\"badge badge-pending\">Pending</span>\n }\n </div>\n <div class=\"em-actions\">\n <button class=\"em-delete\" title=\"Delete\"\n (click)=\"OnDeleteMap(item, $event)\">\n <i class=\"fa-solid fa-trash-can\"></i>\n </button>\n @if (!item.IsPending && item.RealMap) {\n <mj-switch\n [(ngModel)]=\"item.RealMap.SyncEnabled\"\n (ngModelChange)=\"OnToggleEntityMap(item.RealMap)\">\n </mj-switch>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n }\n </div>\n\n <!-- ============================================================ -->\n <!-- CENTER PANEL: Field mapping / Pending entity / Placeholder -->\n <!-- ============================================================ -->\n <div class=\"center-panel\">\n @if (!SelectedMapID) {\n <!-- No selection placeholder -->\n <div class=\"placeholder-message\">\n <i class=\"fa-solid fa-hand-pointer\"></i>\n <p>Select an entity map from the left panel to view and edit field mappings.</p>\n </div>\n } @else if (SelectedPendingMap) {\n <!-- ==================== PENDING ENTITY VIEW ==================== -->\n <div class=\"pending-entity-panel\">\n <div class=\"pending-icon\"><i class=\"fa-solid fa-clock\"></i></div>\n <h3>Pending Entity: {{ SelectedPendingMap.EntityName }}</h3>\n <p>\n This entity map is waiting for the target entity\n <strong>{{ SelectedPendingMap.SchemaName }}.{{ SelectedPendingMap.TableName }}</strong>\n to be created. Run the DDL migration and CodeGen to activate this mapping.\n </p>\n\n <!-- Progress stepper -->\n <div class=\"pending-steps\">\n <div class=\"step\">\n <div class=\"step-circle done\"><i class=\"fa-solid fa-check\"></i></div>\n <span class=\"step-label\">Map Created</span>\n </div>\n <div class=\"step-connector\" [class.done]=\"SelectedPendingMap.DDLContent\"></div>\n <div class=\"step\">\n <div class=\"step-circle\" [ngClass]=\"GetPendingStepStatus(SelectedPendingMap, 2)\">\n @if (SelectedPendingMap.DDLContent) {\n <i class=\"fa-solid fa-check\"></i>\n } @else {\n 2\n }\n </div>\n <span class=\"step-label\">DDL Generated</span>\n </div>\n <div class=\"step-connector\"></div>\n <div class=\"step\">\n <div class=\"step-circle future\">3</div>\n <span class=\"step-label\">Deploy & CodeGen</span>\n </div>\n <div class=\"step-connector\"></div>\n <div class=\"step\">\n <div class=\"step-circle future\">4</div>\n <span class=\"step-label\">Ready to Sync</span>\n </div>\n </div>\n\n <!-- DDL content -->\n @if (SelectedPendingMap.DDLContent) {\n <div class=\"ddl-preview-inline\">\n <h4 style=\"font-size: 14px; margin-bottom: 8px;\">\n <i class=\"fa-solid fa-database\"></i> Generated DDL\n </h4>\n <pre class=\"ddl-code-block\">{{ SelectedPendingMap.DDLContent }}</pre>\n <div class=\"ddl-actions\">\n <button mjButton variant=\"outline\" size=\"sm\"\n (click)=\"CopyDDLToClipboard(SelectedPendingMap.DDLContent)\">\n <i class=\"fa-solid fa-copy\"></i> Copy DDL\n </button>\n </div>\n </div>\n }\n\n <!-- Source fields list -->\n @if (SelectedPendingMap.SourceFields.length > 0) {\n <div class=\"pending-fields-section\">\n <h4 style=\"font-size: 14px; margin: 16px 0 8px;\">\n <i class=\"fa-solid fa-list\"></i> Source Fields\n <span style=\"color: var(--mj-text-muted); font-weight: 400;\">({{ SelectedPendingMap.SourceFields.length }})</span>\n </h4>\n <div class=\"pending-fields-list\">\n @for (field of SelectedPendingMap.SourceFields; track field.Name) {\n <div class=\"pending-field-item\">\n <span class=\"pending-field-name\">{{ field.Name }}</span>\n <span class=\"pending-field-type\">{{ field.Type }}</span>\n @if (field.IsPrimaryKey) {\n <i class=\"fa-solid fa-key key-icon\" title=\"Key field\"></i>\n }\n @if (field.IsRequired) {\n <span class=\"pending-field-req\">*</span>\n }\n </div>\n }\n </div>\n </div>\n }\n </div>\n } @else if (IsLoadingFieldMaps) {\n <mj-loading text=\"Loading field maps...\" size=\"medium\"></mj-loading>\n } @else {\n <!-- ==================== FIELD MAPPING EDITOR ==================== -->\n\n <!-- Auto-map banner -->\n @if (ShowAutoMapBanner) {\n <div class=\"auto-map-banner\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i>\n <div class=\"banner-text\">\n <p><strong>{{ AutoMapCount }} field{{ AutoMapCount !== 1 ? 's' : '' }} auto-mapped</strong> by matching source and destination field names.</p>\n </div>\n <button mjButton variant=\"flat\" size=\"sm\" (click)=\"DismissAutoMapBanner()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n }\n\n <!-- Validation warnings -->\n @if (ActiveEditableFields.length > 0 && !MappingValidation.IsValid) {\n <div class=\"validation-banner\">\n <i class=\"fa-solid fa-triangle-exclamation\"></i>\n <div class=\"validation-warnings\">\n @for (warning of MappingValidation.Warnings; track warning) {\n <span>{{ warning }}</span>\n }\n </div>\n </div>\n }\n\n <div class=\"field-mapping-header\">\n <h3 class=\"panel-title\">\n Field Mappings\n <span class=\"field-count\">({{ ActiveEditableFields.length }})</span>\n </h3>\n <div class=\"field-mapping-actions\">\n <button mjButton variant=\"outline\" size=\"sm\"\n [disabled]=\"IsLoadingSourceFields\"\n (click)=\"RerunAutoMap()\" title=\"Auto-match source and destination fields by name\">\n <i class=\"fa-solid fa-wand-magic-sparkles\"></i> Auto-Map\n </button>\n <button mjButton variant=\"outline\" size=\"sm\"\n (click)=\"AddFieldMapping()\">\n <i class=\"fa-solid fa-plus\"></i> Add Field\n </button>\n <button mjButton variant=\"primary\" size=\"sm\"\n [disabled]=\"!HasDirtyFields || IsSavingFields\"\n (click)=\"SaveFieldMappings()\">\n @if (IsSavingFields) {\n <i class=\"fa-solid fa-spinner fa-spin\"></i> Saving...\n } @else {\n <i class=\"fa-solid fa-floppy-disk\"></i> Save\n }\n </button>\n </div>\n </div>\n\n @if (ActiveEditableFields.length === 0) {\n <p class=\"empty-hint\">\n No field mappings yet.\n <a href=\"javascript:void(0)\" (click)=\"AddFieldMapping()\" style=\"color: var(--mj-brand-primary);\">Add one</a>\n </p>\n } @else {\n <div class=\"field-map-cards\">\n @for (field of ActiveEditableFields; track field; let i = $index) {\n <div class=\"field-map-card\" [class.validation-error]=\"field.IsRequired && !field.DestinationFieldName\"\n [class.has-transform]=\"field.TransformPipeline.length > 0\">\n\n <!-- Main mapping row -->\n <div class=\"fmc-row\">\n <!-- Source column -->\n <div class=\"fmc-source\">\n @if (field.IsNew) {\n <input type=\"text\" class=\"fmc-input\" [(ngModel)]=\"field.SourceFieldName\"\n (ngModelChange)=\"OnFieldChanged(field)\" placeholder=\"Source field name\" />\n } @else {\n <div class=\"fmc-field-name\">{{ field.SourceFieldName }}</div>\n <div class=\"fmc-badges\">\n @if (field.SourceFieldType) {\n <span class=\"fmc-badge badge-type\">{{ field.SourceFieldType }}</span>\n }\n @if (field.IsSourcePK) {\n <span class=\"fmc-badge badge-pk\" title=\"Primary Key\"><i class=\"fa-solid fa-key\"></i> PK</span>\n }\n @if (field.IsSourceRequired) {\n <span class=\"fmc-badge badge-req\" title=\"Required\">REQ</span>\n }\n @if (field.IsSourceReadOnly) {\n <span class=\"fmc-badge badge-ro\" title=\"Read-Only\">RO</span>\n }\n </div>\n }\n </div>\n\n <!-- Transform indicator -->\n <div class=\"fmc-transform-zone\">\n @if (field.TransformPipeline.length > 1) {\n <button class=\"fmc-transform-pill\" (click)=\"ToggleTransformEditor(field)\"\n [title]=\"field.TransformPipeline.length + ' transform step(s)'\">\n <i [class]=\"GetTransformIcon(field.TransformPipeline[0].Type)\"></i>\n <span>{{ GetTransformLabel(field.TransformPipeline[0].Type) }}</span>\n <span class=\"fmc-step-count\">+{{ field.TransformPipeline.length - 1 }}</span>\n </button>\n } @else {\n <button class=\"fmc-transform-pill fmc-transform-direct\" (click)=\"ToggleTransformEditor(field)\"\n title=\"Click to change transform type\">\n <i class=\"fa-solid fa-arrow-right\"></i>\n <span>{{ field.TransformPipeline.length > 0 ? GetTransformLabel(field.TransformPipeline[0].Type) : 'Direct' }}</span>\n </button>\n }\n </div>\n\n <!-- Destination column -->\n <div class=\"fmc-dest\">\n @if (DestinationFields.length > 0) {\n <select class=\"fmc-select\" [(ngModel)]=\"field.DestinationFieldName\"\n (ngModelChange)=\"OnFieldChanged(field)\">\n <option value=\"\">-- Select destination --</option>\n @for (df of DestinationFields; track df.ID) {\n <option [value]=\"df.Name\">{{ df.Name }}</option>\n }\n </select>\n } @else {\n <input type=\"text\" class=\"fmc-input\" [(ngModel)]=\"field.DestinationFieldName\"\n (ngModelChange)=\"OnFieldChanged(field)\" placeholder=\"Destination field\" />\n }\n </div>\n\n <!-- Sync flags -->\n <div class=\"fmc-flags\">\n <label class=\"fmc-flag\" title=\"Key field for matching\">\n <input type=\"checkbox\" [(ngModel)]=\"field.IsKeyField\"\n (ngModelChange)=\"OnFieldChanged(field)\" />\n <i class=\"fa-solid fa-key\"></i>\n </label>\n <label class=\"fmc-flag\" title=\"Required field\">\n <input type=\"checkbox\" [(ngModel)]=\"field.IsRequired\"\n (ngModelChange)=\"OnFieldChanged(field)\" />\n <span class=\"fmc-req-star\">*</span>\n </label>\n </div>\n\n <!-- Remove button -->\n <button class=\"fmc-remove\" title=\"Remove mapping\" (click)=\"RemoveFieldMapping(i)\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <!-- Transform pipeline editor (expandable) -->\n @if (field.ShowTransformEditor && field.TransformPipeline.length > 0) {\n <div class=\"fmc-transform-editor\">\n <div class=\"fmc-te-header\">\n <span class=\"fmc-te-title\"><i class=\"fa-solid fa-wand-magic-sparkles\"></i> Transform Pipeline</span>\n <button class=\"fmc-te-add\" (click)=\"AddTransformStep(field)\" title=\"Add another step\">\n <i class=\"fa-solid fa-plus\"></i> Add Step\n </button>\n </div>\n @for (step of field.TransformPipeline; track $index; let si = $index) {\n <div class=\"fmc-te-step\">\n <div class=\"fmc-te-step-header\">\n <span class=\"fmc-te-step-num\">{{ si + 1 }}</span>\n <select class=\"fmc-te-type-select\" [ngModel]=\"step.Type\"\n (ngModelChange)=\"OnTransformTypeChange(field, step, $event)\">\n @for (tt of TransformTypes; track tt.Value) {\n <option [value]=\"tt.Value\">{{ tt.Label }}</option>\n }\n </select>\n <select class=\"fmc-te-error-select\" [(ngModel)]=\"step.OnError\"\n (ngModelChange)=\"OnTransformConfigChange(field)\" title=\"On error\">\n <option value=\"Fail\">Fail</option>\n <option value=\"Skip\">Skip row</option>\n <option value=\"Null\">Set null</option>\n </select>\n <button class=\"fmc-te-remove-step\" (click)=\"RemoveTransformStep(field, si)\" title=\"Remove step\">\n <i class=\"fa-solid fa-trash-can\"></i>\n </button>\n </div>\n\n <!-- Config editors per type -->\n <div class=\"fmc-te-config\">\n @switch (step.Type) {\n @case ('direct') {\n <div class=\"fmc-te-field\">\n <label>Default value (when source is null)</label>\n <input type=\"text\" class=\"fmc-input\" [ngModel]=\"step.Config['DefaultValue'] ?? ''\"\n (ngModelChange)=\"step.Config['DefaultValue'] = $event; OnTransformConfigChange(field)\"\n placeholder=\"Leave empty for no default\" />\n </div>\n }\n @case ('regex') {\n <div class=\"fmc-te-row\">\n <div class=\"fmc-te-field\">\n <label>Pattern</label>\n <input type=\"text\" class=\"fmc-input mono\" [ngModel]=\"step.Config['Pattern'] ?? ''\"\n (ngModelChange)=\"step.Config['Pattern'] = $event; OnTransformConfigChange(field)\"\n placeholder=\"e.g. (\\d{3})-(\\d{4})\" />\n </div>\n <div class=\"fmc-te-field\">\n <label>Replacement</label>\n <input type=\"text\" class=\"fmc-input mono\" [ngModel]=\"step.Config['Replacement'] ?? ''\"\n (ngModelChange)=\"step.Config['Replacement'] = $event; OnTransformConfigChange(field)\"\n placeholder=\"e.g. $1$2\" />\n </div>\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Flags</label>\n <input type=\"text\" class=\"fmc-input mono\" [ngModel]=\"step.Config['Flags'] ?? 'g'\"\n (ngModelChange)=\"step.Config['Flags'] = $event; OnTransformConfigChange(field)\"\n placeholder=\"gi\" />\n </div>\n </div>\n }\n @case ('split') {\n <div class=\"fmc-te-row\">\n <div class=\"fmc-te-field\">\n <label>Delimiter</label>\n <input type=\"text\" class=\"fmc-input mono\" [ngModel]=\"step.Config['Delimiter'] ?? ','\"\n (ngModelChange)=\"step.Config['Delimiter'] = $event; OnTransformConfigChange(field)\"\n placeholder=\",\" />\n </div>\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Part index (0-based)</label>\n <input type=\"number\" class=\"fmc-input\" [ngModel]=\"step.Config['Index'] ?? 0\"\n (ngModelChange)=\"step.Config['Index'] = +$event; OnTransformConfigChange(field)\"\n min=\"0\" />\n </div>\n </div>\n }\n @case ('combine') {\n <div class=\"fmc-te-field\">\n <label>Source fields to combine</label>\n <div class=\"fmc-combine-chips\">\n @for (sf of GetAvailableSourceFields(); track sf) {\n <button class=\"fmc-chip\" [class.selected]=\"IsCombineFieldSelected(step.Config, sf)\"\n (click)=\"ToggleCombineField(step.Config, sf); OnTransformConfigChange(field)\">\n {{ sf }}\n </button>\n }\n </div>\n </div>\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Separator</label>\n <input type=\"text\" class=\"fmc-input mono\" [ngModel]=\"step.Config['Separator'] ?? ' '\"\n (ngModelChange)=\"step.Config['Separator'] = $event; OnTransformConfigChange(field)\"\n placeholder=\" \" />\n </div>\n }\n @case ('lookup') {\n <div class=\"fmc-te-field\">\n <label>Value mapping</label>\n <div class=\"fmc-lookup-table\">\n @for (entry of GetLookupEntries(step.Config); track $index) {\n <div class=\"fmc-lookup-row\">\n <input type=\"text\" class=\"fmc-input\" [value]=\"entry.key\" placeholder=\"Source value\"\n (change)=\"UpdateLookupEntry(step.Config, entry.key, $any($event.target).value, entry.value); OnTransformConfigChange(field)\" />\n <i class=\"fa-solid fa-arrow-right fmc-lookup-arrow\"></i>\n <input type=\"text\" class=\"fmc-input\" [value]=\"entry.value\" placeholder=\"Mapped value\"\n (change)=\"UpdateLookupEntry(step.Config, entry.key, entry.key, $any($event.target).value); OnTransformConfigChange(field)\" />\n <button class=\"fmc-lookup-del\" (click)=\"RemoveLookupEntry(step.Config, entry.key); OnTransformConfigChange(field)\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n }\n <button class=\"fmc-lookup-add\" (click)=\"AddLookupEntry(step.Config); OnTransformConfigChange(field)\">\n <i class=\"fa-solid fa-plus\"></i> Add mapping\n </button>\n </div>\n </div>\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Default (when no match)</label>\n <input type=\"text\" class=\"fmc-input\" [ngModel]=\"step.Config['Default'] ?? ''\"\n (ngModelChange)=\"step.Config['Default'] = $event; OnTransformConfigChange(field)\"\n placeholder=\"null\" />\n </div>\n }\n @case ('format') {\n <div class=\"fmc-te-row\">\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Format type</label>\n <select class=\"fmc-select\" [ngModel]=\"step.Config['FormatType'] ?? 'date'\"\n (ngModelChange)=\"step.Config['FormatType'] = $event; OnTransformConfigChange(field)\">\n <option value=\"date\">Date</option>\n <option value=\"number\">Number</option>\n <option value=\"string\">String</option>\n </select>\n </div>\n <div class=\"fmc-te-field\">\n <label>Format string</label>\n <input type=\"text\" class=\"fmc-input mono\" [ngModel]=\"step.Config['FormatString'] ?? 'ISO'\"\n (ngModelChange)=\"step.Config['FormatString'] = $event; OnTransformConfigChange(field)\"\n placeholder=\"ISO or decimal places\" />\n </div>\n </div>\n }\n @case ('coerce') {\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Target type</label>\n <select class=\"fmc-select\" [ngModel]=\"step.Config['TargetType'] ?? 'string'\"\n (ngModelChange)=\"step.Config['TargetType'] = $event; OnTransformConfigChange(field)\">\n <option value=\"string\">String</option>\n <option value=\"number\">Number</option>\n <option value=\"boolean\">Boolean</option>\n <option value=\"date\">Date</option>\n </select>\n </div>\n }\n @case ('substring') {\n <div class=\"fmc-te-row\">\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Start index</label>\n <input type=\"number\" class=\"fmc-input\" [ngModel]=\"step.Config['Start'] ?? 0\"\n (ngModelChange)=\"step.Config['Start'] = +$event; OnTransformConfigChange(field)\"\n min=\"0\" />\n </div>\n <div class=\"fmc-te-field fmc-te-sm\">\n <label>Length (blank = to end)</label>\n <input type=\"number\" class=\"fmc-input\" [ngModel]=\"step.Config['Length'] ?? ''\"\n (ngModelChange)=\"step.Config['Length'] = $event ? +$event : undefined; OnTransformConfigChange(field)\"\n min=\"1\" />\n </div>\n </div>\n }\n @case ('custom') {\n <div class=\"fmc-te-field\">\n <label>JavaScript expression <span class=\"fmc-te-hint\">(use <code>value</code> and <code>fields</code>)</span></label>\n <textarea class=\"fmc-input mono fmc-textarea\" [ngModel]=\"step.Config['Expression'] ?? 'value'\"\n (ngModelChange)=\"step.Config['Expression'] = $event; OnTransformConfigChange(field)\"\n placeholder=\"value.toUpperCase()\" rows=\"2\"></textarea>\n </div>\n }\n }\n </div>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n\n <!-- Data Preview Section -->\n <div class=\"data-preview-section\">\n <div class=\"preview-actions\">\n <button mjButton variant=\"outline\" size=\"sm\"\n [disabled]=\"IsLoadingSourcePreview\"\n (click)=\"LoadSourcePreview()\">\n <i class=\"fa-solid fa-cloud-arrow-down\"></i> Preview Source\n </button>\n <button mjButton variant=\"outline\" size=\"sm\"\n [disabled]=\"IsLoadingDestPreview\"\n (click)=\"LoadDestPreview()\">\n <i class=\"fa-solid fa-database\"></i> Preview Destination\n </button>\n </div>\n\n @if (ShowSourcePreview) {\n <div class=\"preview-panel\">\n <div class=\"preview-panel-header\">\n <h4><i class=\"fa-solid fa-cloud\"></i> Source Data Preview</h4>\n <button class=\"add-panel-close\" (click)=\"CloseSourcePreview()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n @if (IsLoadingSourcePreview) {\n <mj-loading text=\"Loading source data...\" size=\"small\"></mj-loading>\n } @else if (SourcePreviewData.length === 0) {\n <p class=\"empty-hint\">No source data available.</p>\n } @else {\n <div class=\"preview-table-wrapper\">\n <table class=\"preview-table\">\n <thead>\n <tr>\n @for (col of GetPreviewColumns(SourcePreviewData); track col) {\n <th>{{ col }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of SourcePreviewData; track $index) {\n <tr>\n @for (col of GetPreviewColumns(SourcePreviewData); track col) {\n <td>{{ FormatPreviewValue(row[col]) }}</td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n }\n\n @if (ShowDestPreview) {\n <div class=\"preview-panel\">\n <div class=\"preview-panel-header\">\n <h4><i class=\"fa-solid fa-database\"></i> Destination Data Preview</h4>\n <button class=\"add-panel-close\" (click)=\"CloseDestPreview()\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n @if (IsLoadingDestPreview) {\n <mj-loading text=\"Loading destination data...\" size=\"small\"></mj-loading>\n } @else if (DestPreviewData.length === 0) {\n <p class=\"empty-hint\">No destination data available.</p>\n } @else {\n <div class=\"preview-table-wrapper\">\n <table class=\"preview-table\">\n <thead>\n <tr>\n @for (col of GetPreviewColumns(DestPreviewData); track col) {\n <th>{{ col }}</th>\n }\n </tr>\n </thead>\n <tbody>\n @for (row of DestPreviewData; track $index) {\n <tr>\n @for (col of GetPreviewColumns(DestPreviewData); track col) {\n <td>{{ FormatPreviewValue(row[col]) }}</td>\n }\n </tr>\n }\n </tbody>\n </table>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n\n <!-- ============================================================ -->\n <!-- RIGHT PANEL: Last run details -->\n <!-- ============================================================ -->\n <div class=\"right-panel\">\n <h4 class=\"panel-label\">Last Run Details</h4>\n @if (!SelectedIntegrationID) {\n <p class=\"empty-hint\">Select an integration to see run details.</p>\n } @else if (IsLoadingRunDetails) {\n <mj-loading text=\"Loading...\" size=\"small\"></mj-loading>\n } @else if (!LatestRun) {\n <p class=\"empty-hint\">No runs found.</p>\n } @else {\n <div class=\"run-summary-card\">\n <div class=\"run-summary-row\">\n <span class=\"label\">Status</span>\n <span class=\"run-status\" [class]=\"'status-' + RunStatusColor\">\n {{ LatestRun.Status }}\n </span>\n </div>\n <div class=\"run-summary-row\">\n <span class=\"label\">Started</span>\n <span>{{ FormatDate(LatestRun.StartedAt) }}</span>\n </div>\n <div class=\"run-summary-row\">\n <span class=\"label\">Total Records</span>\n <span>{{ LatestRun.TotalRecords | number }}</span>\n </div>\n <div class=\"run-summary-row\">\n <span class=\"label\">Run By</span>\n <span>{{ LatestRun.RunByUser }}</span>\n </div>\n </div>\n\n @if (RunEntityDetails.length > 0) {\n <h4 class=\"panel-label\" style=\"margin-top: 16px;\">Per-Entity Stats</h4>\n @for (detail of RunEntityDetails; track detail.EntityID) {\n <div class=\"entity-stat-card\">\n <div class=\"entity-stat-name\">{{ detail.Entity }}</div>\n <div class=\"entity-stat-grid\">\n <div class=\"mini-stat\">\n <span class=\"mini-val\">{{ detail.RecordsCreated }}</span>\n <span class=\"mini-label\">Created</span>\n </div>\n <div class=\"mini-stat\">\n <span class=\"mini-val\">{{ detail.RecordsUpdated }}</span>\n <span class=\"mini-label\">Updated</span>\n </div>\n <div class=\"mini-stat\">\n <span class=\"mini-val\" [class.has-errors]=\"detail.RecordsErrored > 0\">\n {{ detail.RecordsErrored }}\n </span>\n <span class=\"mini-label\">Errors</span>\n </div>\n </div>\n </div>\n }\n }\n }\n </div>\n </div>\n }\n</div>\n </mj-page-body>\n</mj-page-layout>\n", styles: [".mapping-workspace { padding: 24px; height: 100%; display: flex; flex-direction: column; }\n.workspace-header {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 16px;\n}\n.workspace-header h2 {\n margin: 0; font-size: 20px; font-weight: 600;\n}\n.workspace-header h2 i { margin-right: 8px; color: var(--mj-color-indigo-500); }\n\n/* ===== Three-panel layout ===== */\n.workspace-body {\n display: flex; flex: 1; gap: 1px; background: var(--mj-border-default);\n border-radius: 10px; overflow: hidden; min-height: 500px;\n}\n\n.left-panel { width: 320px; min-width: 280px; background: var(--mj-bg-surface); padding: 16px; overflow-y: auto; flex-shrink: 0; }\n.center-panel { flex: 1; background: var(--mj-bg-surface); padding: 20px; overflow-y: auto; }\n.right-panel { width: 280px; min-width: 240px; background: var(--mj-bg-surface); padding: 16px; overflow-y: auto; flex-shrink: 0; }\n\n/* ===== Shared ===== */\n.panel-label {\n font-size: 11px; font-weight: 700; color: var(--mj-text-disabled);\n text-transform: uppercase; letter-spacing: 0.6px;\n margin: 0 0 6px 0; display: block;\n}\n.panel-title { margin: 0 0 12px 0; font-size: 16px; font-weight: 600; }\n.panel-title .field-count { color: var(--mj-text-disabled); font-weight: 400; font-size: 13px; }\n.empty-hint { color: var(--mj-text-disabled); font-size: 13px; font-style: italic; }\n.search-box { margin-bottom: 12px; }\n\n/* ===== Integration selector ===== */\n.integration-selector { margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--mj-border-subtle); }\n\n/* ===== Entity Map Header ===== */\n.entity-map-header {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 10px;\n}\n.header-actions { display: flex; gap: 4px; }\n\n/* ===== Add Map Panel ===== */\n.add-map-panel {\n background: var(--mj-bg-page); border: 1px solid var(--mj-border-default); border-radius: 10px;\n padding: 16px; margin-bottom: 14px;\n}\n.add-panel-top {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 14px;\n}\n.add-panel-top h5 { margin: 0; font-size: 14px; font-weight: 600; }\n.add-panel-close {\n background: none; border: none; cursor: pointer; color: var(--mj-text-disabled); font-size: 14px;\n}\n.add-panel-close:hover { color: var(--mj-text-primary); }\n\n.form-group { display: flex; flex-direction: column; gap: 4px; margin-bottom: 12px; }\n.form-group label { font-size: 12px; font-weight: 600; color: var(--mj-text-muted); }\n.form-row { display: flex; gap: 10px; }\n.form-row .form-group { flex: 1; }\n\n.source-loading {\n display: flex; align-items: center; gap: 8px;\n font-size: 12px; color: var(--mj-text-disabled); padding: 6px 0;\n}\n.source-loading i { color: var(--mj-color-indigo-500); }\n\n.discover-error-inline {\n font-size: 12px; color: var(--mj-color-error-600); padding: 6px 0;\n}\n.discover-error-inline i { margin-right: 4px; }\n\n/* Target mode toggle */\n.target-mode-toggle {\n display: flex; border: 1px solid var(--mj-border-default); border-radius: 6px;\n overflow: hidden; margin-bottom: 12px;\n}\n.target-mode-btn {\n flex: 1; padding: 8px 12px; font-size: 12px; font-weight: 600;\n text-align: center; cursor: pointer; background: var(--mj-bg-surface); border: none;\n color: var(--mj-text-muted); transition: all 0.15s;\n}\n.target-mode-btn:first-child { border-right: 1px solid var(--mj-border-default); }\n.target-mode-btn.active { background: var(--mj-color-indigo-500); color: var(--mj-bg-surface); }\n.target-mode-btn:not(.active):hover { background: var(--mj-status-info-bg); color: var(--mj-color-indigo-500); }\n.target-mode-btn i { margin-right: 4px; }\n\n/* New entity form */\n.new-entity-form {\n background: var(--mj-bg-surface); border: 1px solid var(--mj-border-default); border-radius: 8px;\n padding: 14px; margin-bottom: 12px;\n}\n.new-entity-form .section-label {\n font-size: 11px; font-weight: 700; color: var(--mj-color-indigo-500);\n text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 10px;\n}\n.auto-hint { font-size: 10px; color: var(--mj-text-disabled); font-style: italic; }\n\n/* DDL preview in add panel */\n.ddl-preview-section { margin-top: 8px; }\n.ddl-preview-code {\n background: var(--mj-text-primary); color: var(--mj-color-neutral-300); padding: 10px;\n border-radius: 4px; font-size: 11px; line-height: 1.5;\n max-height: 200px; overflow: auto; white-space: pre-wrap;\n word-break: break-word; margin-top: 8px;\n}\n\n.add-form-actions { display: flex; gap: 6px; padding-top: 4px; }\n\n/* ===== Entity Map List ===== */\n.entity-map-list { display: flex; flex-direction: column; gap: 4px; }\n.entity-map-item {\n padding: 8px 10px; border-radius: 6px;\n cursor: pointer; border: 1px solid var(--mj-border-subtle); transition: all 0.15s;\n}\n.entity-map-item:hover { background: var(--mj-bg-page); }\n.entity-map-item.selected { background: var(--mj-status-info-bg); border-color: var(--mj-color-indigo-500); }\n.entity-map-item.pending { border-left: 3px solid var(--mj-status-warning); }\n\n.em-top-row {\n display: flex; align-items: center; gap: 4px;\n font-size: 13px; margin-bottom: 4px;\n}\n.em-name { font-weight: 600; }\n.em-arrow { color: var(--mj-text-disabled); font-size: 11px; }\n.em-entity { color: var(--mj-text-muted); }\n\n.em-bottom-row {\n display: flex; align-items: center; justify-content: space-between;\n font-size: 11px; color: var(--mj-text-disabled);\n}\n.em-badges { display: flex; gap: 4px; align-items: center; }\n.badge {\n font-size: 10px; padding: 1px 6px; border-radius: 4px; font-weight: 600;\n}\n.badge-direction { background: var(--mj-bg-surface-hover); color: var(--mj-text-muted); }\n.badge-pending { background: var(--mj-color-warning-50); color: var(--mj-color-warning-600); }\n\n.em-actions { display: flex; align-items: center; gap: 4px; }\n.em-delete {\n opacity: 0; transition: opacity 0.15s;\n cursor: pointer; color: var(--mj-color-error-600); background: none; border: none;\n padding: 2px 4px; font-size: 12px;\n}\n.entity-map-item:hover .em-delete { opacity: 1; }\n\n/* ===== Center Panel: Placeholder ===== */\n.placeholder-message {\n display: flex; flex-direction: column; align-items: center;\n justify-content: center; height: 300px; color: var(--mj-text-disabled);\n}\n.placeholder-message i { font-size: 36px; margin-bottom: 12px; }\n.placeholder-message p { text-align: center; }\n\n/* ===== Pending Entity Panel ===== */\n.pending-entity-panel {\n background: var(--mj-status-warning-bg); border: 1px solid var(--mj-color-warning-200); border-radius: 10px;\n padding: 24px; text-align: center;\n}\n.pending-icon { font-size: 40px; color: var(--mj-status-warning); margin-bottom: 12px; }\n.pending-entity-panel h3 { font-size: 16px; margin-bottom: 8px; }\n.pending-entity-panel p { font-size: 13px; color: var(--mj-text-disabled); margin-bottom: 16px; line-height: 1.5; }\n\n/* Stepper */\n.pending-steps {\n display: flex; gap: 0; margin: 20px 0; justify-content: center; align-items: center;\n}\n.step {\n display: flex; flex-direction: column; align-items: center; gap: 6px;\n padding: 0 16px;\n}\n.step-circle {\n width: 36px; height: 36px; border-radius: 50%;\n display: flex; align-items: center; justify-content: center;\n font-size: 14px; font-weight: 700;\n}\n.step-circle.done { background: var(--mj-status-success-bg); color: var(--mj-color-success-700); }\n.step-circle.current { background: var(--mj-color-indigo-500); color: var(--mj-bg-surface); }\n.step-circle.future { background: var(--mj-bg-surface-hover); color: var(--mj-text-disabled); }\n.step-label { font-size: 10px; font-weight: 600; color: var(--mj-text-disabled); text-transform: uppercase; white-space: nowrap; }\n.step-connector { width: 32px; height: 2px; background: var(--mj-border-default); align-self: center; margin-bottom: 18px; }\n.step-connector.done { background: var(--mj-color-success-700); }\n\n/* DDL in pending view */\n.ddl-preview-inline { margin-top: 16px; text-align: left; }\n.ddl-code-block {\n background: var(--mj-text-primary); color: var(--mj-color-neutral-300); padding: 12px;\n border-radius: 6px; font-size: 12px; line-height: 1.5;\n max-height: 250px; overflow: auto; white-space: pre-wrap;\n}\n.ddl-actions { display: flex; gap: 8px; margin-top: 12px; justify-content: center; }\n\n/* Pending fields list */\n.pending-fields-section { text-align: left; }\n.pending-fields-list {\n display: flex; flex-direction: column; gap: 2px;\n max-height: 200px; overflow-y: auto;\n}\n.pending-field-item {\n display: flex; align-items: center; gap: 8px;\n padding: 4px 8px; font-size: 13px; border-radius: 4px;\n}\n.pending-field-item:hover { background: var(--mj-status-warning-bg); }\n.pending-field-name { font-weight: 600; }\n.pending-field-type { font-size: 11px; color: var(--mj-text-disabled); background: var(--mj-bg-surface-hover); padding: 1px 6px; border-radius: 3px; }\n.pending-field-req { color: var(--mj-color-error-600); font-weight: 700; }\n\n/* ===== Auto-map banner ===== */\n.auto-map-banner {\n background: var(--mj-status-info-bg); border: 1px solid var(--mj-color-info-100); border-radius: 8px;\n padding: 12px 16px; margin-bottom: 16px;\n display: flex; align-items: center; gap: 12px;\n}\n.auto-map-banner > i { color: var(--mj-color-indigo-500); font-size: 18px; }\n.auto-map-banner .banner-text { flex: 1; }\n.auto-map-banner .banner-text p { font-size: 13px; color: var(--mj-text-muted); margin: 0; }\n.auto-map-banner .banner-text strong { color: var(--mj-text-primary); }\n\n/* ===== Field Mapping Editor ===== */\n.field-mapping-header {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 16px;\n}\n.field-mapping-actions { display: flex; gap: 6px; }\n\n/* ===== Field Map Cards (New world-class design) ===== */\n.field-map-cards {\n display: flex; flex-direction: column; gap: 6px;\n}\n\n.field-map-card {\n border: 1px solid var(--mj-border-default);\n border-radius: 10px;\n background: var(--mj-bg-surface);\n transition: all 0.2s ease;\n overflow: hidden;\n}\n.field-map-card:hover {\n border-color: var(--mj-border-strong);\n box-shadow: 0 2px 8px rgba(74, 108, 247, 0.06);\n}\n.field-map-card.has-transform {\n border-left: 3px solid var(--mj-color-indigo-500);\n}\n.field-map-card.validation-error {\n border-color: var(--mj-color-warning-200);\n background: var(--mj-status-warning-bg);\n}\n\n/* Main mapping row */\n.fmc-row {\n display: flex; align-items: center; gap: 10px;\n padding: 10px 14px;\n}\n\n/* Source column */\n.fmc-source {\n flex: 1; min-width: 0;\n}\n.fmc-field-name {\n font-size: 13px; font-weight: 600; color: var(--mj-text-primary);\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n}\n.fmc-badges {\n display: flex; gap: 4px; margin-top: 3px; flex-wrap: wrap;\n}\n.fmc-badge {\n font-size: 9px; font-weight: 700; padding: 1px 5px;\n border-radius: 3px; text-transform: uppercase; letter-spacing: 0.3px;\n white-space: nowrap; line-height: 1.5;\n}\n.badge-type {\n background: var(--mj-bg-surface-hover); color: var(--mj-text-muted);\n}\n.badge-pk {\n background: linear-gradient(135deg, var(--mj-color-warning-100), var(--mj-color-warning-200));\n color: var(--mj-color-warning-800);\n}\n.badge-pk i { font-size: 8px; margin-right: 2px; }\n.badge-req {\n background: linear-gradient(135deg, var(--mj-color-error-100), var(--mj-color-error-200));\n color: var(--mj-color-error-800);\n}\n.badge-ro {\n background: var(--mj-color-purple-50); color: var(--mj-color-purple-700);\n}\n\n/* Transform zone (center arrow / pill) */\n.fmc-transform-zone {\n flex-shrink: 0;\n display: flex; align-items: center; justify-content: center;\n width: 100px;\n}\n.fmc-arrow-btn {\n width: 32px; height: 32px;\n border-radius: 50%; border: 1px solid var(--mj-border-default);\n background: var(--mj-bg-page); color: var(--mj-text-disabled);\n cursor: pointer; font-size: 12px;\n display: flex; align-items: center; justify-content: center;\n transition: all 0.2s;\n}\n.fmc-arrow-btn:hover {\n background: var(--mj-color-indigo-500); color: var(--mj-bg-surface); border-color: var(--mj-color-indigo-500);\n transform: scale(1.1);\n}\n.fmc-transform-pill {\n display: flex; align-items: center; gap: 4px;\n padding: 4px 10px; border-radius: 16px;\n background: linear-gradient(135deg, var(--mj-color-indigo-50), var(--mj-color-indigo-100));\n border: 1px solid var(--mj-color-indigo-200); color: var(--mj-color-indigo-700);\n font-size: 11px; font-weight: 600;\n cursor: pointer; transition: all 0.2s;\n white-space: nowrap;\n}\n.fmc-transform-pill:hover {\n background: linear-gradient(135deg, var(--mj-color-indigo-100), var(--mj-color-indigo-200));\n transform: scale(1.02);\n}\n.fmc-transform-pill i { font-size: 10px; }\n.fmc-transform-direct {\n background: linear-gradient(135deg, var(--mj-bg-page), var(--mj-bg-surface-hover));\n border-color: var(--mj-color-neutral-300); color: var(--mj-text-muted);\n}\n.fmc-transform-direct:hover {\n background: linear-gradient(135deg, var(--mj-color-indigo-50), var(--mj-color-indigo-100));\n border-color: var(--mj-color-indigo-200); color: var(--mj-color-indigo-700);\n}\n.fmc-step-count {\n background: var(--mj-color-indigo-700); color: var(--mj-bg-surface); font-size: 9px;\n padding: 0 4px; border-radius: 8px; font-weight: 700;\n}\n\n/* Destination column */\n.fmc-dest {\n flex: 1; min-width: 0;\n}\n.fmc-select {\n width: 100%; padding: 6px 10px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 13px; color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n transition: border-color 0.15s;\n}\n.fmc-select:focus { border-color: var(--mj-color-indigo-500); outline: none; box-shadow: 0 0 0 2px rgba(74, 108, 247, 0.12); }\n\n/* Shared input style */\n.fmc-input {\n width: 100%; padding: 5px 8px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 13px; color: var(--mj-text-primary);\n background: var(--mj-bg-page);\n transition: border-color 0.15s;\n}\n.fmc-input:focus { border-color: var(--mj-color-indigo-500); outline: none; box-shadow: 0 0 0 2px rgba(74, 108, 247, 0.12); }\n.fmc-input.mono { font-family: 'SF Mono', 'Fira Code', 'Consolas', monospace; font-size: 12px; }\n\n/* Flags (key, required) */\n.fmc-flags {\n display: flex; gap: 6px; flex-shrink: 0;\n}\n.fmc-flag {\n display: flex; align-items: center; gap: 3px;\n font-size: 11px; color: var(--mj-text-disabled); cursor: pointer;\n padding: 2px 4px; border-radius: 4px;\n transition: color 0.15s;\n}\n.fmc-flag:hover { color: var(--mj-color-indigo-500); }\n.fmc-flag input[type=\"checkbox\"] {\n width: 13px; height: 13px; cursor: pointer;\n accent-color: var(--mj-color-indigo-500);\n}\n.fmc-flag i { font-size: 10px; }\n.fmc-req-star { font-size: 14px; font-weight: 700; color: inherit; }\n\n/* Remove button */\n.fmc-remove {\n flex-shrink: 0;\n background: none; border: none; cursor: pointer;\n color: var(--mj-color-neutral-300); font-size: 13px; padding: 4px;\n border-radius: 4px; transition: all 0.15s;\n}\n.fmc-remove:hover { color: var(--mj-status-error); background: var(--mj-status-error-bg); }\n\n/* ===== Transform Pipeline Editor ===== */\n.fmc-transform-editor {\n border-top: 1px solid var(--mj-bg-surface-hover);\n background: linear-gradient(180deg, var(--mj-color-indigo-50) 0%, var(--mj-bg-page) 100%);\n padding: 12px 14px;\n}\n.fmc-te-header {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 10px;\n}\n.fmc-te-title {\n font-size: 11px; font-weight: 700; color: var(--mj-color-indigo-500);\n text-transform: uppercase; letter-spacing: 0.5px;\n}\n.fmc-te-title i { margin-right: 4px; }\n.fmc-te-add {\n font-size: 11px; font-weight: 600; color: var(--mj-color-indigo-500);\n background: none; border: 1px solid var(--mj-color-indigo-200);\n border-radius: 6px; padding: 3px 10px;\n cursor: pointer; transition: all 0.15s;\n}\n.fmc-te-add:hover { background: var(--mj-color-indigo-50); }\n.fmc-te-add i { margin-right: 3px; font-size: 10px; }\n\n/* Individual transform step */\n.fmc-te-step {\n background: var(--mj-bg-surface);\n border: 1px solid var(--mj-border-default);\n border-radius: 8px;\n padding: 10px 12px;\n margin-bottom: 8px;\n transition: box-shadow 0.15s;\n}\n.fmc-te-step:hover { box-shadow: 0 1px 4px rgba(0,0,0,0.05); }\n.fmc-te-step:last-child { margin-bottom: 0; }\n\n.fmc-te-step-header {\n display: flex; align-items: center; gap: 8px; margin-bottom: 8px;\n}\n.fmc-te-step-num {\n width: 22px; height: 22px; border-radius: 50%;\n background: linear-gradient(135deg, var(--mj-color-indigo-500), var(--mj-color-indigo-500));\n color: var(--mj-bg-surface); font-size: 11px; font-weight: 700;\n display: flex; align-items: center; justify-content: center;\n flex-shrink: 0;\n}\n.fmc-te-type-select {\n flex: 1; padding: 4px 8px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 12px; font-weight: 600;\n color: var(--mj-text-primary); background: var(--mj-bg-page);\n}\n.fmc-te-type-select:focus { border-color: var(--mj-color-indigo-500); outline: none; }\n.fmc-te-error-select {\n width: 100px; padding: 4px 6px; border: 1px solid var(--mj-border-default);\n border-radius: 6px; font-size: 11px; color: var(--mj-text-muted);\n background: var(--mj-bg-page);\n}\n.fmc-te-error-select:focus { border-color: var(--mj-color-indigo-500); outline: none; }\n.fmc-te-remove-step {\n background: none; border: none; cursor: pointer;\n color: var(--mj-color-neutral-300); font-size: 12px; padding: 4px;\n border-radius: 4px; transition: all 0.15s;\n}\n.fmc-te-remove-step:hover { color: var(--mj-status-error); background: var(--mj-status-error-bg); }\n\n/* Config area */\n.fmc-te-config {\n padding-left: 30px;\n}\n.fmc-te-field {\n margin-bottom: 8px;\n}\n.fmc-te-field:last-child { margin-bottom: 0; }\n.fmc-te-field label {\n display: block; font-size: 11px; font-weight: 600;\n color: var(--mj-text-muted); margin-bottom: 3px;\n}\n.fmc-te-field label code {\n background: var(--mj-bg-surface-hover); padding: 0 3px; border-radius: 3px;\n font-size: 10px; color: var(--mj-color-indigo-700);\n}\n.fmc-te-hint { font-weight: 400; color: var(--mj-text-disabled); }\n.fmc-te-row {\n display: flex; gap: 10px; align-items: flex-end;\n}\n.fmc-te-sm { max-width: 140px; }\n.fmc-textarea {\n resize: vertical; min-height: 40px;\n}\n\n/* Combine chips */\n.fmc-combine-chips {\n display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px;\n}\n.fmc-chip {\n font-size: 11px; padding: 3px 8px; border-radius: 14px;\n border: 1px solid var(--mj-border-default); background: var(--mj-bg-surface);\n color: var(--mj-text-muted); cursor: pointer;\n transition: all 0.15s; font-weight: 500;\n}\n.fmc-chip:hover { border-color: var(--mj-color-indigo-300); color: var(--mj-color-indigo-700); }\n.fmc-chip.selected {\n background: linear-gradient(135deg, var(--mj-color-indigo-50), var(--mj-color-indigo-100));\n border-color: var(--mj-color-indigo-400); color: var(--mj-color-indigo-700); font-weight: 600;\n}\n\n/* Lookup table */\n.fmc-lookup-table {\n display: flex; flex-direction: column; gap: 4px; margin-top: 4px;\n}\n.fmc-lookup-row {\n display: flex; align-items: center; gap: 6px;\n}\n.fmc-lookup-row .fmc-input { flex: 1; }\n.fmc-lookup-arrow { color: var(--mj-color-indigo-200); font-size: 10px; flex-shrink: 0; }\n.fmc-lookup-del {\n background: none; border: none; cursor: pointer;\n color: var(--mj-color-neutral-300); font-size: 11px; padding: 2px;\n transition: color 0.15s;\n}\n.fmc-lookup-del:hover { color: var(--mj-status-error); }\n.fmc-lookup-add {\n font-size: 11px; color: var(--mj-color-indigo-500); background: none;\n border: 1px dashed var(--mj-color-indigo-200); border-radius: 6px;\n padding: 4px 10px; cursor: pointer;\n transition: all 0.15s; margin-top: 2px;\n}\n.fmc-lookup-add:hover { background: var(--mj-color-indigo-50); }\n.fmc-lookup-add i { margin-right: 3px; font-size: 10px; }\n\n/* ===== Data Preview ===== */\n.data-preview-section { margin-top: 24px; border-top: 1px solid var(--mj-border-subtle); padding-top: 16px; }\n.preview-actions { display: flex; gap: 8px; margin-bottom: 12px; }\n\n.preview-panel {\n background: var(--mj-bg-page); border: 1px solid var(--mj-border-default); border-radius: 8px;\n padding: 12px; margin-bottom: 12px;\n}\n.preview-panel-header {\n display: flex; align-items: center; justify-content: space-between;\n margin-bottom: 8px;\n}\n.preview-panel-header h4 { font-size: 13px; font-weight: 600; margin: 0; }\n.preview-panel-header h4 i { margin-right: 6px; color: var(--mj-color-indigo-500); }\n\n.preview-table-wrapper { overflow-x: auto; }\n.preview-table {\n width: 100%; border-collapse: collapse; font-size: 12px;\n}\n.preview-table th {\n text-align: left; padding: 5px 8px;\n background: var(--mj-border-default); font-weight: 600; font-size: 10px;\n text-transform: uppercase; color: var(--mj-text-muted);\n border-bottom: 1px solid var(--mj-border-default); white-space: nowrap;\n}\n.preview-table td {\n padding: 4px 8px; border-bottom: 1px solid var(--mj-border-subtle);\n white-space: nowrap; max-width: 150px; overflow: hidden; text-overflow: ellipsis;\n}\n.preview-table tr:hover { background: var(--mj-status-info-bg); }\n\n/* ===== Right panel: run details ===== */\n.run-summary-card {\n background: var(--mj-bg-page); border-radius: 8px; padding: 12px;\n}\n.run-summary-row {\n display: flex; justify-content: space-between;\n padding: 4px 0; font-size: 13px;\n}\n.run-summary-row .label { color: var(--mj-text-muted); font-weight: 500; }\n.run-status {\n font-size: 11px; padding: 2px 6px; border-radius: 4px; font-weight: 600;\n}\n.status-green { background: var(--mj-status-success-bg); color: var(--mj-color-success-700); }\n.status-amber { background: var(--mj-color-warning-50); color: var(--mj-color-warning-600); }\n.status-red { background: var(--mj-status-error-bg); color: var(--mj-color-error-600); }\n\n.entity-stat-card {\n background: var(--mj-bg-page); border-radius: 6px; padding: 10px;\n margin-bottom: 8px;\n}\n.entity-stat-name { font-size: 13px; font-weight: 600; margin-bottom: 6px; }\n.entity-stat-grid { display: flex; gap: 12px; }\n.mini-stat { text-align: center; }\n.mini-val { display: block; font-size: 16px; font-weight: 600; }\n.mini-val.has-errors { color: var(--mj-color-error-600); }\n.mini-label { font-size: 10px; color: var(--mj-text-disabled); }\n\n/* ===== Validation ===== */\n.validation-banner {\n background: var(--mj-color-warning-50); border: 1px solid var(--mj-color-warning-200); border-radius: 8px;\n padding: 10px 14px; margin-bottom: 14px;\n display: flex; align-items: flex-start; gap: 10px;\n font-size: 13px; color: var(--mj-color-warning-600);\n}\n.validation-banner > i { margin-top: 2px; }\n.validation-warnings { display: flex; flex-direction: column; gap: 2px; }\n\n.field-map-card.validation-error .fmc-source {\n border-left: 3px solid var(--mj-color-warning-600);\n padding-left: 8px;\n}\n\n/* ===== Responsive ===== */\n@media (max-width: 1100px) { .right-panel { display: none; } }\n@media (max-width: 800px) { .left-panel { width: 260px; } }\n"] }]
2357
2358
  }], null, null); })();
2358
2359
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(MappingWorkspaceComponent, { className: "MappingWorkspaceComponent", filePath: "src/Integration/components/mapping-workspace/mapping-workspace.component.ts", lineNumber: 118 }); })();
2359
2360
  export function LoadMappingWorkspace() {