@cplace/test-mcp-server 1.0.0 → 1.1.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 (623) hide show
  1. package/README.md +57 -36
  2. package/dist/api.d.ts.map +1 -1
  3. package/dist/api.js +7 -1
  4. package/dist/api.js.map +1 -1
  5. package/dist/conditional-registration.d.ts.map +1 -1
  6. package/dist/conditional-registration.js +7 -1
  7. package/dist/conditional-registration.js.map +1 -1
  8. package/dist/index.js +56 -3
  9. package/dist/index.js.map +1 -1
  10. package/dist/profiles.d.ts.map +1 -1
  11. package/dist/profiles.js +8 -4
  12. package/dist/profiles.js.map +1 -1
  13. package/dist/tool-metadata.d.ts.map +1 -1
  14. package/dist/tool-metadata.js +3 -1
  15. package/dist/tool-metadata.js.map +1 -1
  16. package/dist/tools/board-widget.d.ts +432 -0
  17. package/dist/tools/board-widget.d.ts.map +1 -0
  18. package/dist/tools/board-widget.js +820 -0
  19. package/dist/tools/board-widget.js.map +1 -0
  20. package/dist/tools/generic-layouts.d.ts +1 -1
  21. package/dist/tools/generic-layouts.d.ts.map +1 -1
  22. package/dist/tools/generic-layouts.js +23 -1
  23. package/dist/tools/generic-layouts.js.map +1 -1
  24. package/dist/tools/jobs.d.ts +32 -0
  25. package/dist/tools/jobs.d.ts.map +1 -0
  26. package/dist/tools/jobs.js +193 -0
  27. package/dist/tools/jobs.js.map +1 -0
  28. package/dist/tools/script.d.ts +25 -0
  29. package/dist/tools/script.d.ts.map +1 -0
  30. package/dist/tools/script.js +121 -0
  31. package/dist/tools/script.js.map +1 -0
  32. package/dist/tools/search.d.ts +1 -1
  33. package/dist/tools/search.js +1 -1
  34. package/dist/tools/search.js.map +1 -1
  35. package/dist/tools/type-management.d.ts +2 -2
  36. package/dist/tools/widgets.d.ts +8 -5
  37. package/dist/tools/widgets.d.ts.map +1 -1
  38. package/dist/tools/widgets.js +143 -40
  39. package/dist/tools/widgets.js.map +1 -1
  40. package/dist/tools/workspace-admin.d.ts +11 -1
  41. package/dist/tools/workspace-admin.d.ts.map +1 -1
  42. package/dist/tools/workspace-admin.js +67 -8
  43. package/dist/tools/workspace-admin.js.map +1 -1
  44. package/dist/tools/workspace-core.d.ts +4 -1
  45. package/dist/tools/workspace-core.d.ts.map +1 -1
  46. package/dist/tools/workspace-core.js +38 -7
  47. package/dist/tools/workspace-core.js.map +1 -1
  48. package/dist/utils.d.ts +6 -0
  49. package/dist/utils.d.ts.map +1 -1
  50. package/dist/utils.js +107 -1
  51. package/dist/utils.js.map +1 -1
  52. package/dist/widget-specifications/CLAUDE.md +288 -0
  53. package/dist/widget-specifications/DOCUMENTATION-STATUS.md +424 -0
  54. package/dist/widget-specifications/GENERATING-FROM-RESEARCH.md +61 -0
  55. package/dist/widget-specifications/WIDGET-TAGGING-SCHEME.md +217 -0
  56. package/dist/widget-specifications/_research_from_ga_products/.claude-settings.local.json +48 -0
  57. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-api-common-config-metadata-SyncMetadataTable/research.md +168 -0
  58. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-breadcrumbs-breadcrumbsWidget/research.md +125 -0
  59. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-cboard-main-board/research.md +373 -0
  60. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-citizenAi-askYourPageWidget/research.md +319 -0
  61. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-cplaceReportGeneration-generateReportWidget/research.md +295 -0
  62. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-ctts-main-employeeReportChart/research.md +230 -0
  63. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-ctts-main-employeeReportGrid/research.md +215 -0
  64. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-ctts-main-projectmanagerReportChart/research.md +192 -0
  65. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-ctts-main-projectmanagerReportGrid/research.md +178 -0
  66. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-ctts-main-widget/research.md +332 -0
  67. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-demoWidgets-demoRichString/research.md +194 -0
  68. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-documentation-navigationWidget/research.md +426 -0
  69. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-dragAndDropImageView-imageWithTextAndListWidget/research.md +326 -0
  70. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-dragAndDropImageView-imageWithTextWidget/research.md +580 -0
  71. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-dragAndDropImageView-widget/research.md +281 -0
  72. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-draggablePageList-widget/research.md +210 -0
  73. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-dynamicCodeBlockWidget-dynamicCodeBlockWidget/research.md +250 -0
  74. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-ecf-attribute-conversion-widget-enumMappingTable/research.md +260 -0
  75. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-ecf-configuration-widget-attributeMappingTable/research.md +148 -0
  76. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-ecf-connector-extension-widget-cleanupConfigTable/research.md +138 -0
  77. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-ecf-connector-extension-widget-connectorSyncConfigsTable/research.md +150 -0
  78. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-ecf-connector-extension-widget-serverConnectionTable/research.md +181 -0
  79. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-extendedTreeTableWidget/research.md +253 -0
  80. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-formsWizard-horizontalDivider/research.md +261 -0
  81. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-formsWizard-startWizardWidget/research.md +211 -0
  82. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-formsWizard-stepEditorForWizardWidget/research.md +183 -0
  83. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-formsWizard-stepEditorWidget/research.md +298 -0
  84. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-formsWizard-stepManager/research.md +419 -0
  85. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-formsWizard-stepPreview/research.md +256 -0
  86. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-formsWizard-wizardActivation/research.md +174 -0
  87. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-formsWizard-wizardAnalysis/research.md +283 -0
  88. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-formsWizard-wizardLocalizations/research.md +193 -0
  89. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-genericInterface-api-widgets-triggerInterfaceButton/research.md +180 -0
  90. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-landingPageFromPage-quickOverview/research.md +186 -0
  91. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-landingPageFromPage-sessionUserNameWidget/research.md +158 -0
  92. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-landingPageFromPage-simpleListWithAttachment/research.md +135 -0
  93. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-layoutTabsWidget-widget/research.md +238 -0
  94. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-lowCodeWidgets-lowCodeButton/research.md +272 -0
  95. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-lowcode-ai-chatWidget/research.md +194 -0
  96. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-meeting-pageHeader/research.md +208 -0
  97. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-navigationTileWidget-widget/research.md +259 -0
  98. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-officeReports-headlineForReports/research.md +174 -0
  99. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-officeReports-scriptPlaceholders/research.md +233 -0
  100. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-officeReports-templatePlaceholders/research.md +150 -0
  101. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-orgaTree-edit/research.md +353 -0
  102. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-outlookMessageIntegration-outlookMessages/research.md +233 -0
  103. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-pageViewHeadline-widget/research.md +217 -0
  104. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-pdfPreview-widget/research.md +235 -0
  105. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-platform-attributesGroup/research.md +525 -0
  106. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-platform-batchJobQuickGlance/research.md +372 -0
  107. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-platform-connectedAttributesGroup/research.md +408 -0
  108. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-platform-dynamicIframe/research.md +198 -0
  109. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-platform-tableWidget/research.md +427 -0
  110. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-pptexport-pgPreviewWidget/research.md +151 -0
  111. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-projectTree-editProjects/research.md +163 -0
  112. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-projektplanung-scheduleLockState/research.md +174 -0
  113. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-projektplanung-subscriptions/research.md +316 -0
  114. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-qrCodeWidget/research.md +130 -0
  115. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-resourceManagement-resourcePlannerDefinition/research.md +331 -0
  116. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-rest-config-widget-productionModeHintWidget/research.md +332 -0
  117. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-simpleCalendar-calendar/research.md +284 -0
  118. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-simpleForm-widget/research.md +193 -0
  119. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-tableDetailViewWidget-widget/research.md +311 -0
  120. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-treeTableWidget/research.md +420 -0
  121. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-tuplesWidget-widget/research.md +295 -0
  122. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-videoWidget/research.md +154 -0
  123. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-visualizations-scriptingHighcharts/research.md +249 -0
  124. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-visualizations-scriptingLineChart/research.md +279 -0
  125. package/dist/widget-specifications/_research_from_ga_products/cf-cplace-visualizations-tupleLineChart/research.md +221 -0
  126. package/dist/widget-specifications/_research_from_ga_products/cf-platform-attributeHistory/research.md +421 -0
  127. package/dist/widget-specifications/_research_from_ga_products/cf-platform-attributes/research.md +377 -0
  128. package/dist/widget-specifications/_research_from_ga_products/cf-platform-comments/research.md +254 -0
  129. package/dist/widget-specifications/_research_from_ga_products/cf-platform-connectedBarChart/research.md +275 -0
  130. package/dist/widget-specifications/_research_from_ga_products/cf-platform-connectedMatrix/research.md +396 -0
  131. package/dist/widget-specifications/_research_from_ga_products/cf-platform-connectedPieChart/research.md +150 -0
  132. package/dist/widget-specifications/_research_from_ga_products/cf-platform-connectedSingleAttribute/research.md +430 -0
  133. package/dist/widget-specifications/_research_from_ga_products/cf-platform-connectedTableFilter/research.md +468 -0
  134. package/dist/widget-specifications/_research_from_ga_products/cf-platform-customRichStringAttribute/research.md +120 -0
  135. package/dist/widget-specifications/_research_from_ga_products/cf-platform-embeddedSearchAsList/research.md +485 -0
  136. package/dist/widget-specifications/_research_from_ga_products/cf-platform-embeddedSearchAsTable/research.md +428 -0
  137. package/dist/widget-specifications/_research_from_ga_products/cf-platform-files/research.md +240 -0
  138. package/dist/widget-specifications/_research_from_ga_products/cf-platform-iframe/research.md +358 -0
  139. package/dist/widget-specifications/_research_from_ga_products/cf-platform-incomingLinks/research.md +242 -0
  140. package/dist/widget-specifications/_research_from_ga_products/cf-platform-incomingReferences/research.md +488 -0
  141. package/dist/widget-specifications/_research_from_ga_products/cf-platform-makeover-attributes/research.md +219 -0
  142. package/dist/widget-specifications/_research_from_ga_products/cf-platform-modificationInfo/research.md +141 -0
  143. package/dist/widget-specifications/_research_from_ga_products/cf-platform-myElements/research.md +116 -0
  144. package/dist/widget-specifications/_research_from_ga_products/cf-platform-richString/research.md +437 -0
  145. package/dist/widget-specifications/_research_from_ga_products/cf-platform-singleAttribute/research.md +1094 -0
  146. package/dist/widget-specifications/_research_from_ga_products/cf-platform-tags/research.md +332 -0
  147. package/dist/widget-specifications/_research_from_ga_products/cf-platform-wiki/research.md +258 -0
  148. package/dist/widget-specifications/_research_from_ga_products/cf-projektplanung-gantt/research.md +268 -0
  149. package/dist/widget-specifications/_research_from_ga_products/cf-projektplanung-ganttTaskDemo/research.md +271 -0
  150. package/dist/widget-specifications/_research_from_ga_products/cf-projektplanung-multiGantt/research.md +343 -0
  151. package/dist/widget-specifications/_research_from_ga_products/cf-projektplanung-scheduleTreeTable/research.md +261 -0
  152. package/dist/widget-specifications/_research_from_ga_products/cf-projektplanung-singleGantt/research.md +184 -0
  153. package/dist/widget-specifications/_research_from_ga_products/cf-projektplanung-singleGanttLink/research.md +188 -0
  154. package/dist/widget-specifications/_research_from_ga_products/de-2lforge-curves-widget/research.md +341 -0
  155. package/dist/widget-specifications/_research_from_ga_products/de-2lforge-toolbar-datePickerWidget/research.md +232 -0
  156. package/dist/widget-specifications/_research_from_ga_products/de-2lforge-toolbar-dropDownWidget/research.md +417 -0
  157. package/dist/widget-specifications/_research_from_ga_products/de-2lforge-toolbar-miscWidget/research.md +172 -0
  158. package/dist/widget-specifications/_research_from_ga_products/de-visualistik-visualRoadmap-widget/research.md +277 -0
  159. package/dist/widget-specifications/_research_from_ga_products/msg-scripts-imagegallery-basic/research.md +112 -0
  160. package/dist/widget-specifications/_research_from_ga_products/phase-0-discovery-approach.md +248 -0
  161. package/dist/widget-specifications/_research_from_ga_products/widget-definition-mapping.md +168 -0
  162. package/dist/widget-specifications/_research_from_ga_products/widget-documentation-project.md +259 -0
  163. package/dist/widget-specifications/_research_from_ga_products/widget-research-generation/generate.sh +100 -0
  164. package/dist/widget-specifications/_research_from_ga_products/widget-research-generation/parse-mapping.sh +35 -0
  165. package/dist/widget-specifications/_research_from_ga_products/widget-research-generation/template.md +38 -0
  166. package/dist/widget-specifications/_research_from_ga_products/widget-research-generation/widgets.txt +107 -0
  167. package/dist/widget-specifications/cf.cplace.api.common.config.metadata.SyncMetadataTable/_catalog-data.json +12 -0
  168. package/dist/widget-specifications/cf.cplace.api.common.config.metadata.SyncMetadataTable/_meta.json +11 -0
  169. package/dist/widget-specifications/cf.cplace.api.common.config.metadata.SyncMetadataTable/_overview.md +40 -0
  170. package/dist/widget-specifications/cf.cplace.api.common.config.metadata.SyncMetadataTable/_summary.md +1 -0
  171. package/dist/widget-specifications/cf.cplace.breadcrumbs.breadcrumbsWidget/_catalog-data.json +12 -0
  172. package/dist/widget-specifications/cf.cplace.breadcrumbs.breadcrumbsWidget/_meta.json +8 -0
  173. package/dist/widget-specifications/cf.cplace.breadcrumbs.breadcrumbsWidget/_overview.md +74 -0
  174. package/dist/widget-specifications/cf.cplace.breadcrumbs.breadcrumbsWidget/_summary.md +1 -0
  175. package/dist/widget-specifications/cf.cplace.cboard.main.board/_catalog-data.json +12 -0
  176. package/dist/widget-specifications/cf.cplace.cboard.main.board/_implementation.md +37 -0
  177. package/dist/widget-specifications/cf.cplace.cboard.main.board/_meta.json +11 -0
  178. package/dist/widget-specifications/cf.cplace.cboard.main.board/_overview.md +117 -0
  179. package/dist/widget-specifications/cf.cplace.cboard.main.board/_summary.md +1 -0
  180. package/dist/widget-specifications/cf.cplace.citizenAi.askYourPageWidget/_meta.json +3 -0
  181. package/dist/widget-specifications/cf.cplace.citizenAi.askYourPageWidget/_overview.md +123 -0
  182. package/dist/widget-specifications/cf.cplace.citizenAi.askYourPageWidget/_summary.md +1 -0
  183. package/dist/widget-specifications/cf.cplace.cplaceReportGeneration.generateReportWidget/_catalog-data.json +12 -0
  184. package/dist/widget-specifications/cf.cplace.cplaceReportGeneration.generateReportWidget/_meta.json +10 -0
  185. package/dist/widget-specifications/cf.cplace.cplaceReportGeneration.generateReportWidget/_overview.md +45 -0
  186. package/dist/widget-specifications/cf.cplace.cplaceReportGeneration.generateReportWidget/_summary.md +1 -0
  187. package/dist/widget-specifications/cf.cplace.ctts.main.employeeReportChart/_catalog-data.json +12 -0
  188. package/dist/widget-specifications/cf.cplace.ctts.main.employeeReportChart/_meta.json +11 -0
  189. package/dist/widget-specifications/cf.cplace.ctts.main.employeeReportChart/_overview.md +79 -0
  190. package/dist/widget-specifications/cf.cplace.ctts.main.employeeReportChart/_summary.md +1 -0
  191. package/dist/widget-specifications/cf.cplace.ctts.main.employeeReportGrid/_catalog-data.json +12 -0
  192. package/dist/widget-specifications/cf.cplace.ctts.main.employeeReportGrid/_meta.json +11 -0
  193. package/dist/widget-specifications/cf.cplace.ctts.main.employeeReportGrid/_overview.md +45 -0
  194. package/dist/widget-specifications/cf.cplace.ctts.main.employeeReportGrid/_summary.md +1 -0
  195. package/dist/widget-specifications/cf.cplace.ctts.main.projectmanagerReportChart/_catalog-data.json +12 -0
  196. package/dist/widget-specifications/cf.cplace.ctts.main.projectmanagerReportChart/_meta.json +11 -0
  197. package/dist/widget-specifications/cf.cplace.ctts.main.projectmanagerReportChart/_overview.md +68 -0
  198. package/dist/widget-specifications/cf.cplace.ctts.main.projectmanagerReportChart/_summary.md +1 -0
  199. package/dist/widget-specifications/cf.cplace.ctts.main.projectmanagerReportGrid/_catalog-data.json +12 -0
  200. package/dist/widget-specifications/cf.cplace.ctts.main.projectmanagerReportGrid/_meta.json +9 -0
  201. package/dist/widget-specifications/cf.cplace.ctts.main.projectmanagerReportGrid/_overview.md +45 -0
  202. package/dist/widget-specifications/cf.cplace.ctts.main.projectmanagerReportGrid/_summary.md +1 -0
  203. package/dist/widget-specifications/cf.cplace.ctts.main.widget/_catalog-data.json +12 -0
  204. package/dist/widget-specifications/cf.cplace.ctts.main.widget/_meta.json +11 -0
  205. package/dist/widget-specifications/cf.cplace.ctts.main.widget/_overview.md +157 -0
  206. package/dist/widget-specifications/cf.cplace.ctts.main.widget/_summary.md +1 -0
  207. package/dist/widget-specifications/cf.cplace.demoWidgets.demoRichString/_catalog-data.json +12 -0
  208. package/dist/widget-specifications/cf.cplace.demoWidgets.demoRichString/_meta.json +10 -0
  209. package/dist/widget-specifications/cf.cplace.demoWidgets.demoRichString/_overview.md +200 -0
  210. package/dist/widget-specifications/cf.cplace.demoWidgets.demoRichString/_summary.md +1 -0
  211. package/dist/widget-specifications/cf.cplace.documentation.navigationWidget/_catalog-data.json +12 -0
  212. package/dist/widget-specifications/cf.cplace.documentation.navigationWidget/_meta.json +10 -0
  213. package/dist/widget-specifications/cf.cplace.documentation.navigationWidget/_overview.md +27 -0
  214. package/dist/widget-specifications/cf.cplace.documentation.navigationWidget/_summary.md +1 -0
  215. package/dist/widget-specifications/cf.cplace.dragAndDropImageView.imageWithTextAndListWidget/_catalog-data.json +12 -0
  216. package/dist/widget-specifications/cf.cplace.dragAndDropImageView.imageWithTextAndListWidget/_meta.json +10 -0
  217. package/dist/widget-specifications/cf.cplace.dragAndDropImageView.imageWithTextAndListWidget/_overview.md +79 -0
  218. package/dist/widget-specifications/cf.cplace.dragAndDropImageView.imageWithTextAndListWidget/_summary.md +1 -0
  219. package/dist/widget-specifications/cf.cplace.dragAndDropImageView.imageWithTextWidget/_catalog-data.json +12 -0
  220. package/dist/widget-specifications/cf.cplace.dragAndDropImageView.imageWithTextWidget/_meta.json +10 -0
  221. package/dist/widget-specifications/cf.cplace.dragAndDropImageView.imageWithTextWidget/_overview.md +176 -0
  222. package/dist/widget-specifications/cf.cplace.dragAndDropImageView.imageWithTextWidget/_summary.md +1 -0
  223. package/dist/widget-specifications/cf.cplace.dragAndDropImageView.widget/_catalog-data.json +12 -0
  224. package/dist/widget-specifications/cf.cplace.dragAndDropImageView.widget/_meta.json +10 -0
  225. package/dist/widget-specifications/cf.cplace.dragAndDropImageView.widget/_overview.md +85 -0
  226. package/dist/widget-specifications/cf.cplace.dragAndDropImageView.widget/_summary.md +1 -0
  227. package/dist/widget-specifications/cf.cplace.draggablePageList.widget/_catalog-data.json +12 -0
  228. package/dist/widget-specifications/cf.cplace.draggablePageList.widget/_meta.json +11 -0
  229. package/dist/widget-specifications/cf.cplace.draggablePageList.widget/_overview.md +93 -0
  230. package/dist/widget-specifications/cf.cplace.draggablePageList.widget/_summary.md +1 -0
  231. package/dist/widget-specifications/cf.cplace.dynamicCodeBlockWidget.dynamicCodeBlockWidget/_catalog-data.json +12 -0
  232. package/dist/widget-specifications/cf.cplace.dynamicCodeBlockWidget.dynamicCodeBlockWidget/_meta.json +9 -0
  233. package/dist/widget-specifications/cf.cplace.dynamicCodeBlockWidget.dynamicCodeBlockWidget/_overview.md +75 -0
  234. package/dist/widget-specifications/cf.cplace.dynamicCodeBlockWidget.dynamicCodeBlockWidget/_summary.md +1 -0
  235. package/dist/widget-specifications/cf.cplace.ecf.attribute.conversion.widget.enumMappingTable/_catalog-data.json +12 -0
  236. package/dist/widget-specifications/cf.cplace.ecf.attribute.conversion.widget.enumMappingTable/_meta.json +10 -0
  237. package/dist/widget-specifications/cf.cplace.ecf.attribute.conversion.widget.enumMappingTable/_overview.md +167 -0
  238. package/dist/widget-specifications/cf.cplace.ecf.attribute.conversion.widget.enumMappingTable/_summary.md +1 -0
  239. package/dist/widget-specifications/cf.cplace.ecf.configuration.widget.attributeMappingTable/_catalog-data.json +12 -0
  240. package/dist/widget-specifications/cf.cplace.ecf.configuration.widget.attributeMappingTable/_meta.json +10 -0
  241. package/dist/widget-specifications/cf.cplace.ecf.configuration.widget.attributeMappingTable/_overview.md +64 -0
  242. package/dist/widget-specifications/cf.cplace.ecf.configuration.widget.attributeMappingTable/_summary.md +1 -0
  243. package/dist/widget-specifications/cf.cplace.ecf.connector.extension.widget.cleanupConfigTable/_catalog-data.json +12 -0
  244. package/dist/widget-specifications/cf.cplace.ecf.connector.extension.widget.cleanupConfigTable/_meta.json +11 -0
  245. package/dist/widget-specifications/cf.cplace.ecf.connector.extension.widget.cleanupConfigTable/_overview.md +61 -0
  246. package/dist/widget-specifications/cf.cplace.ecf.connector.extension.widget.cleanupConfigTable/_summary.md +1 -0
  247. package/dist/widget-specifications/cf.cplace.ecf.connector.extension.widget.connectorSyncConfigsTable/_catalog-data.json +12 -0
  248. package/dist/widget-specifications/cf.cplace.ecf.connector.extension.widget.connectorSyncConfigsTable/_meta.json +11 -0
  249. package/dist/widget-specifications/cf.cplace.ecf.connector.extension.widget.connectorSyncConfigsTable/_overview.md +94 -0
  250. package/dist/widget-specifications/cf.cplace.ecf.connector.extension.widget.connectorSyncConfigsTable/_summary.md +1 -0
  251. package/dist/widget-specifications/cf.cplace.ecf.connector.extension.widget.serverConnectionTable/_catalog-data.json +12 -0
  252. package/dist/widget-specifications/cf.cplace.ecf.connector.extension.widget.serverConnectionTable/_meta.json +10 -0
  253. package/dist/widget-specifications/cf.cplace.ecf.connector.extension.widget.serverConnectionTable/_overview.md +28 -0
  254. package/dist/widget-specifications/cf.cplace.ecf.connector.extension.widget.serverConnectionTable/_summary.md +1 -0
  255. package/dist/widget-specifications/cf.cplace.extendedTreeTableWidget/_catalog-data.json +12 -0
  256. package/dist/widget-specifications/cf.cplace.extendedTreeTableWidget/_meta.json +11 -0
  257. package/dist/widget-specifications/cf.cplace.extendedTreeTableWidget/_overview.md +116 -0
  258. package/dist/widget-specifications/cf.cplace.extendedTreeTableWidget/_summary.md +1 -0
  259. package/dist/widget-specifications/cf.cplace.formsWizard.horizontalDivider/_catalog-data.json +12 -0
  260. package/dist/widget-specifications/cf.cplace.formsWizard.horizontalDivider/_meta.json +8 -0
  261. package/dist/widget-specifications/cf.cplace.formsWizard.horizontalDivider/_overview.md +44 -0
  262. package/dist/widget-specifications/cf.cplace.formsWizard.horizontalDivider/_summary.md +1 -0
  263. package/dist/widget-specifications/cf.cplace.formsWizard.startWizardWidget/_catalog-data.json +12 -0
  264. package/dist/widget-specifications/cf.cplace.formsWizard.startWizardWidget/_meta.json +10 -0
  265. package/dist/widget-specifications/cf.cplace.formsWizard.startWizardWidget/_overview.md +40 -0
  266. package/dist/widget-specifications/cf.cplace.formsWizard.startWizardWidget/_summary.md +1 -0
  267. package/dist/widget-specifications/cf.cplace.formsWizard.stepEditorForWizardWidget/_catalog-data.json +12 -0
  268. package/dist/widget-specifications/cf.cplace.formsWizard.stepEditorForWizardWidget/_meta.json +10 -0
  269. package/dist/widget-specifications/cf.cplace.formsWizard.stepEditorForWizardWidget/_overview.md +47 -0
  270. package/dist/widget-specifications/cf.cplace.formsWizard.stepEditorForWizardWidget/_summary.md +1 -0
  271. package/dist/widget-specifications/cf.cplace.formsWizard.stepEditorWidget/_catalog-data.json +12 -0
  272. package/dist/widget-specifications/cf.cplace.formsWizard.stepEditorWidget/_meta.json +9 -0
  273. package/dist/widget-specifications/cf.cplace.formsWizard.stepEditorWidget/_overview.md +23 -0
  274. package/dist/widget-specifications/cf.cplace.formsWizard.stepEditorWidget/_summary.md +1 -0
  275. package/dist/widget-specifications/cf.cplace.formsWizard.stepManager/_catalog-data.json +12 -0
  276. package/dist/widget-specifications/cf.cplace.formsWizard.stepManager/_meta.json +10 -0
  277. package/dist/widget-specifications/cf.cplace.formsWizard.stepManager/_overview.md +32 -0
  278. package/dist/widget-specifications/cf.cplace.formsWizard.stepManager/_summary.md +1 -0
  279. package/dist/widget-specifications/cf.cplace.formsWizard.stepPreview/_catalog-data.json +12 -0
  280. package/dist/widget-specifications/cf.cplace.formsWizard.stepPreview/_meta.json +8 -0
  281. package/dist/widget-specifications/cf.cplace.formsWizard.stepPreview/_overview.md +29 -0
  282. package/dist/widget-specifications/cf.cplace.formsWizard.stepPreview/_summary.md +1 -0
  283. package/dist/widget-specifications/cf.cplace.formsWizard.wizardActivation/_catalog-data.json +12 -0
  284. package/dist/widget-specifications/cf.cplace.formsWizard.wizardActivation/_meta.json +9 -0
  285. package/dist/widget-specifications/cf.cplace.formsWizard.wizardActivation/_overview.md +69 -0
  286. package/dist/widget-specifications/cf.cplace.formsWizard.wizardActivation/_summary.md +1 -0
  287. package/dist/widget-specifications/cf.cplace.formsWizard.wizardAnalysis/_catalog-data.json +12 -0
  288. package/dist/widget-specifications/cf.cplace.formsWizard.wizardAnalysis/_meta.json +10 -0
  289. package/dist/widget-specifications/cf.cplace.formsWizard.wizardAnalysis/_overview.md +91 -0
  290. package/dist/widget-specifications/cf.cplace.formsWizard.wizardAnalysis/_summary.md +1 -0
  291. package/dist/widget-specifications/cf.cplace.formsWizard.wizardLocalizations/_catalog-data.json +12 -0
  292. package/dist/widget-specifications/cf.cplace.formsWizard.wizardLocalizations/_meta.json +10 -0
  293. package/dist/widget-specifications/cf.cplace.formsWizard.wizardLocalizations/_overview.md +48 -0
  294. package/dist/widget-specifications/cf.cplace.formsWizard.wizardLocalizations/_summary.md +1 -0
  295. package/dist/widget-specifications/cf.cplace.genericInterface.api.widgets.triggerInterfaceButton/_catalog-data.json +12 -0
  296. package/dist/widget-specifications/cf.cplace.genericInterface.api.widgets.triggerInterfaceButton/_meta.json +9 -0
  297. package/dist/widget-specifications/cf.cplace.genericInterface.api.widgets.triggerInterfaceButton/_overview.md +58 -0
  298. package/dist/widget-specifications/cf.cplace.genericInterface.api.widgets.triggerInterfaceButton/_summary.md +1 -0
  299. package/dist/widget-specifications/cf.cplace.landingPageFromPage.quickOverview/_catalog-data.json +12 -0
  300. package/dist/widget-specifications/cf.cplace.landingPageFromPage.quickOverview/_meta.json +10 -0
  301. package/dist/widget-specifications/cf.cplace.landingPageFromPage.quickOverview/_overview.md +66 -0
  302. package/dist/widget-specifications/cf.cplace.landingPageFromPage.quickOverview/_summary.md +1 -0
  303. package/dist/widget-specifications/cf.cplace.landingPageFromPage.sessionUserNameWidget/_catalog-data.json +12 -0
  304. package/dist/widget-specifications/cf.cplace.landingPageFromPage.sessionUserNameWidget/_meta.json +9 -0
  305. package/dist/widget-specifications/cf.cplace.landingPageFromPage.sessionUserNameWidget/_overview.md +52 -0
  306. package/dist/widget-specifications/cf.cplace.landingPageFromPage.sessionUserNameWidget/_summary.md +1 -0
  307. package/dist/widget-specifications/cf.cplace.landingPageFromPage.simpleListWithAttachment/_catalog-data.json +12 -0
  308. package/dist/widget-specifications/cf.cplace.landingPageFromPage.simpleListWithAttachment/_meta.json +10 -0
  309. package/dist/widget-specifications/cf.cplace.landingPageFromPage.simpleListWithAttachment/_overview.md +53 -0
  310. package/dist/widget-specifications/cf.cplace.landingPageFromPage.simpleListWithAttachment/_summary.md +1 -0
  311. package/dist/widget-specifications/cf.cplace.layoutTabsWidget.widget/_catalog-data.json +12 -0
  312. package/dist/widget-specifications/cf.cplace.layoutTabsWidget.widget/_implementation.md +6 -0
  313. package/dist/widget-specifications/cf.cplace.layoutTabsWidget.widget/_meta.json +7 -0
  314. package/dist/widget-specifications/cf.cplace.layoutTabsWidget.widget/_overview.md +115 -0
  315. package/dist/widget-specifications/cf.cplace.layoutTabsWidget.widget/_summary.md +1 -0
  316. package/dist/widget-specifications/cf.cplace.layoutTabsWidget.widget/cf.cplace.layoutTabsWidget.layoutSelection.md +2 -0
  317. package/dist/widget-specifications/cf.cplace.layoutTabsWidget.widget/cf.cplace.layoutTabsWidget.layouts.md +3 -0
  318. package/dist/widget-specifications/cf.cplace.layoutTabsWidget.widget/cf.cplace.layoutTabsWidget.sourceForLayouts.md +1 -0
  319. package/dist/widget-specifications/cf.cplace.lowCodeWidgets.lowCodeButton/_catalog-data.json +12 -0
  320. package/dist/widget-specifications/cf.cplace.lowCodeWidgets.lowCodeButton/_meta.json +10 -0
  321. package/dist/widget-specifications/cf.cplace.lowCodeWidgets.lowCodeButton/_overview.md +137 -0
  322. package/dist/widget-specifications/cf.cplace.lowCodeWidgets.lowCodeButton/_summary.md +1 -0
  323. package/dist/widget-specifications/cf.cplace.lowcode.ai.chatWidget/_catalog-data.json +12 -0
  324. package/dist/widget-specifications/cf.cplace.lowcode.ai.chatWidget/_meta.json +10 -0
  325. package/dist/widget-specifications/cf.cplace.lowcode.ai.chatWidget/_overview.md +63 -0
  326. package/dist/widget-specifications/cf.cplace.lowcode.ai.chatWidget/_summary.md +1 -0
  327. package/dist/widget-specifications/cf.cplace.meeting.pageHeader/_catalog-data.json +12 -0
  328. package/dist/widget-specifications/cf.cplace.meeting.pageHeader/_meta.json +12 -0
  329. package/dist/widget-specifications/cf.cplace.meeting.pageHeader/_overview.md +31 -0
  330. package/dist/widget-specifications/cf.cplace.meeting.pageHeader/_summary.md +1 -0
  331. package/dist/widget-specifications/cf.cplace.navigationTileWidget.widget/_catalog-data.json +12 -0
  332. package/dist/widget-specifications/cf.cplace.navigationTileWidget.widget/_meta.json +9 -0
  333. package/dist/widget-specifications/cf.cplace.navigationTileWidget.widget/_overview.md +71 -0
  334. package/dist/widget-specifications/cf.cplace.navigationTileWidget.widget/_summary.md +1 -0
  335. package/dist/widget-specifications/cf.cplace.officeReports.headlineForReports/_catalog-data.json +12 -0
  336. package/dist/widget-specifications/cf.cplace.officeReports.headlineForReports/_meta.json +8 -0
  337. package/dist/widget-specifications/cf.cplace.officeReports.headlineForReports/_overview.md +57 -0
  338. package/dist/widget-specifications/cf.cplace.officeReports.headlineForReports/_summary.md +1 -0
  339. package/dist/widget-specifications/cf.cplace.officeReports.scriptPlaceholders/_catalog-data.json +12 -0
  340. package/dist/widget-specifications/cf.cplace.officeReports.scriptPlaceholders/_meta.json +10 -0
  341. package/dist/widget-specifications/cf.cplace.officeReports.scriptPlaceholders/_overview.md +22 -0
  342. package/dist/widget-specifications/cf.cplace.officeReports.scriptPlaceholders/_summary.md +1 -0
  343. package/dist/widget-specifications/cf.cplace.officeReports.templatePlaceholders/_catalog-data.json +12 -0
  344. package/dist/widget-specifications/cf.cplace.officeReports.templatePlaceholders/_meta.json +10 -0
  345. package/dist/widget-specifications/cf.cplace.officeReports.templatePlaceholders/_overview.md +24 -0
  346. package/dist/widget-specifications/cf.cplace.officeReports.templatePlaceholders/_summary.md +1 -0
  347. package/dist/widget-specifications/cf.cplace.orgaTree.edit/_catalog-data.json +12 -0
  348. package/dist/widget-specifications/cf.cplace.orgaTree.edit/_meta.json +11 -0
  349. package/dist/widget-specifications/cf.cplace.orgaTree.edit/_overview.md +62 -0
  350. package/dist/widget-specifications/cf.cplace.orgaTree.edit/_summary.md +1 -0
  351. package/dist/widget-specifications/cf.cplace.outlookMessageIntegration.outlookMessages/_catalog-data.json +12 -0
  352. package/dist/widget-specifications/cf.cplace.outlookMessageIntegration.outlookMessages/_meta.json +12 -0
  353. package/dist/widget-specifications/cf.cplace.outlookMessageIntegration.outlookMessages/_overview.md +50 -0
  354. package/dist/widget-specifications/cf.cplace.outlookMessageIntegration.outlookMessages/_summary.md +1 -0
  355. package/dist/widget-specifications/cf.cplace.pageViewHeadline.widget/_catalog-data.json +12 -0
  356. package/dist/widget-specifications/cf.cplace.pageViewHeadline.widget/_meta.json +9 -0
  357. package/dist/widget-specifications/cf.cplace.pageViewHeadline.widget/_overview.md +62 -0
  358. package/dist/widget-specifications/cf.cplace.pageViewHeadline.widget/_summary.md +1 -0
  359. package/dist/widget-specifications/cf.cplace.pdfPreview.widget/_catalog-data.json +12 -0
  360. package/dist/widget-specifications/cf.cplace.pdfPreview.widget/_meta.json +9 -0
  361. package/dist/widget-specifications/cf.cplace.pdfPreview.widget/_overview.md +79 -0
  362. package/dist/widget-specifications/cf.cplace.pdfPreview.widget/_summary.md +1 -0
  363. package/dist/widget-specifications/cf.cplace.platform.attributesGroup/_catalog-data.json +12 -0
  364. package/dist/widget-specifications/cf.cplace.platform.attributesGroup/_implementation.md +13 -0
  365. package/dist/widget-specifications/cf.cplace.platform.attributesGroup/_meta.json +9 -0
  366. package/dist/widget-specifications/cf.cplace.platform.attributesGroup/_overview.md +108 -0
  367. package/dist/widget-specifications/cf.cplace.platform.attributesGroup/_summary.md +1 -0
  368. package/dist/widget-specifications/cf.cplace.platform.attributesGroup/absoluteSelection.md +9 -0
  369. package/dist/widget-specifications/cf.cplace.platform.attributesGroup/layout.md +8 -0
  370. package/dist/widget-specifications/cf.cplace.platform.attributesGroup/pageSelection.md +12 -0
  371. package/dist/widget-specifications/cf.cplace.platform.attributesGroup/relativeSelection.md +14 -0
  372. package/dist/widget-specifications/cf.cplace.platform.batchJobQuickGlance/_catalog-data.json +12 -0
  373. package/dist/widget-specifications/cf.cplace.platform.batchJobQuickGlance/_meta.json +9 -0
  374. package/dist/widget-specifications/cf.cplace.platform.batchJobQuickGlance/_overview.md +52 -0
  375. package/dist/widget-specifications/cf.cplace.platform.batchJobQuickGlance/_summary.md +1 -0
  376. package/dist/widget-specifications/cf.cplace.platform.connectedAttributesGroup/_catalog-data.json +12 -0
  377. package/dist/widget-specifications/cf.cplace.platform.connectedAttributesGroup/_implementation.md +17 -0
  378. package/dist/widget-specifications/cf.cplace.platform.connectedAttributesGroup/_meta.json +10 -0
  379. package/dist/widget-specifications/cf.cplace.platform.connectedAttributesGroup/_overview.md +103 -0
  380. package/dist/widget-specifications/cf.cplace.platform.connectedAttributesGroup/_summary.md +1 -0
  381. package/dist/widget-specifications/cf.cplace.platform.connectedAttributesGroup/cf.cplace.platform.attributesGroup.layout.md +8 -0
  382. package/dist/widget-specifications/cf.cplace.platform.connectedAttributesGroup/singleSelectionWidgetId.md +15 -0
  383. package/dist/widget-specifications/cf.cplace.platform.dynamicIframe/_catalog-data.json +12 -0
  384. package/dist/widget-specifications/cf.cplace.platform.dynamicIframe/_meta.json +9 -0
  385. package/dist/widget-specifications/cf.cplace.platform.dynamicIframe/_overview.md +49 -0
  386. package/dist/widget-specifications/cf.cplace.platform.dynamicIframe/_summary.md +1 -0
  387. package/dist/widget-specifications/cf.cplace.platform.tableWidget/_catalog-data.json +12 -0
  388. package/dist/widget-specifications/cf.cplace.platform.tableWidget/_meta.json +12 -0
  389. package/dist/widget-specifications/cf.cplace.platform.tableWidget/_overview.md +188 -0
  390. package/dist/widget-specifications/cf.cplace.platform.tableWidget/_summary.md +1 -0
  391. package/dist/widget-specifications/cf.cplace.pptexport.pgPreviewWidget/_catalog-data.json +12 -0
  392. package/dist/widget-specifications/cf.cplace.pptexport.pgPreviewWidget/_meta.json +11 -0
  393. package/dist/widget-specifications/cf.cplace.pptexport.pgPreviewWidget/_overview.md +92 -0
  394. package/dist/widget-specifications/cf.cplace.pptexport.pgPreviewWidget/_summary.md +1 -0
  395. package/dist/widget-specifications/cf.cplace.projectTree.editProjects/_catalog-data.json +12 -0
  396. package/dist/widget-specifications/cf.cplace.projectTree.editProjects/_meta.json +11 -0
  397. package/dist/widget-specifications/cf.cplace.projectTree.editProjects/_overview.md +81 -0
  398. package/dist/widget-specifications/cf.cplace.projectTree.editProjects/_summary.md +1 -0
  399. package/dist/widget-specifications/cf.cplace.projektplanung.scheduleLockState/_catalog-data.json +12 -0
  400. package/dist/widget-specifications/cf.cplace.projektplanung.scheduleLockState/_meta.json +10 -0
  401. package/dist/widget-specifications/cf.cplace.projektplanung.scheduleLockState/_overview.md +60 -0
  402. package/dist/widget-specifications/cf.cplace.projektplanung.scheduleLockState/_summary.md +1 -0
  403. package/dist/widget-specifications/cf.cplace.projektplanung.subscriptions/_catalog-data.json +12 -0
  404. package/dist/widget-specifications/cf.cplace.projektplanung.subscriptions/_meta.json +10 -0
  405. package/dist/widget-specifications/cf.cplace.projektplanung.subscriptions/_overview.md +59 -0
  406. package/dist/widget-specifications/cf.cplace.projektplanung.subscriptions/_summary.md +1 -0
  407. package/dist/widget-specifications/cf.cplace.qrCodeWidget/_catalog-data.json +12 -0
  408. package/dist/widget-specifications/cf.cplace.qrCodeWidget/_meta.json +9 -0
  409. package/dist/widget-specifications/cf.cplace.qrCodeWidget/_overview.md +25 -0
  410. package/dist/widget-specifications/cf.cplace.qrCodeWidget/_summary.md +1 -0
  411. package/dist/widget-specifications/cf.cplace.resourceManagement.resourcePlannerDefinition/_catalog-data.json +12 -0
  412. package/dist/widget-specifications/cf.cplace.resourceManagement.resourcePlannerDefinition/_meta.json +11 -0
  413. package/dist/widget-specifications/cf.cplace.resourceManagement.resourcePlannerDefinition/_overview.md +78 -0
  414. package/dist/widget-specifications/cf.cplace.resourceManagement.resourcePlannerDefinition/_summary.md +1 -0
  415. package/dist/widget-specifications/cf.cplace.rest.config.widget.productionModeHintWidget/_catalog-data.json +12 -0
  416. package/dist/widget-specifications/cf.cplace.rest.config.widget.productionModeHintWidget/_meta.json +9 -0
  417. package/dist/widget-specifications/cf.cplace.rest.config.widget.productionModeHintWidget/_overview.md +44 -0
  418. package/dist/widget-specifications/cf.cplace.rest.config.widget.productionModeHintWidget/_summary.md +1 -0
  419. package/dist/widget-specifications/cf.cplace.simpleCalendar.calendar/_catalog-data.json +12 -0
  420. package/dist/widget-specifications/cf.cplace.simpleCalendar.calendar/_meta.json +10 -0
  421. package/dist/widget-specifications/cf.cplace.simpleCalendar.calendar/_overview.md +42 -0
  422. package/dist/widget-specifications/cf.cplace.simpleCalendar.calendar/_summary.md +1 -0
  423. package/dist/widget-specifications/cf.cplace.simpleForm.widget/_catalog-data.json +12 -0
  424. package/dist/widget-specifications/cf.cplace.simpleForm.widget/_meta.json +10 -0
  425. package/dist/widget-specifications/cf.cplace.simpleForm.widget/_overview.md +85 -0
  426. package/dist/widget-specifications/cf.cplace.simpleForm.widget/_summary.md +1 -0
  427. package/dist/widget-specifications/cf.cplace.tableDetailViewWidget.widget/_catalog-data.json +12 -0
  428. package/dist/widget-specifications/cf.cplace.tableDetailViewWidget.widget/_meta.json +11 -0
  429. package/dist/widget-specifications/cf.cplace.tableDetailViewWidget.widget/_overview.md +92 -0
  430. package/dist/widget-specifications/cf.cplace.tableDetailViewWidget.widget/_summary.md +1 -0
  431. package/dist/widget-specifications/cf.cplace.tableDetailViewWidget.widget/attributes.md +7 -0
  432. package/dist/widget-specifications/cf.cplace.treeTableWidget/_catalog-data.json +12 -0
  433. package/dist/widget-specifications/cf.cplace.treeTableWidget/_meta.json +11 -0
  434. package/dist/widget-specifications/cf.cplace.treeTableWidget/_overview.md +51 -0
  435. package/dist/widget-specifications/cf.cplace.treeTableWidget/_summary.md +1 -0
  436. package/dist/widget-specifications/cf.cplace.tuplesWidget.widget/_catalog-data.json +12 -0
  437. package/dist/widget-specifications/cf.cplace.tuplesWidget.widget/_meta.json +11 -0
  438. package/dist/widget-specifications/cf.cplace.tuplesWidget.widget/_overview.md +202 -0
  439. package/dist/widget-specifications/cf.cplace.tuplesWidget.widget/_summary.md +1 -0
  440. package/dist/widget-specifications/cf.cplace.videoWidget/_catalog-data.json +12 -0
  441. package/dist/widget-specifications/cf.cplace.videoWidget/_meta.json +10 -0
  442. package/dist/widget-specifications/cf.cplace.videoWidget/_overview.md +65 -0
  443. package/dist/widget-specifications/cf.cplace.videoWidget/_summary.md +1 -0
  444. package/dist/widget-specifications/cf.cplace.visualizations.scriptingHighcharts/_catalog-data.json +12 -0
  445. package/dist/widget-specifications/cf.cplace.visualizations.scriptingHighcharts/_implementation.md +12 -0
  446. package/dist/widget-specifications/cf.cplace.visualizations.scriptingHighcharts/_meta.json +9 -0
  447. package/dist/widget-specifications/cf.cplace.visualizations.scriptingHighcharts/_overview.md +117 -0
  448. package/dist/widget-specifications/cf.cplace.visualizations.scriptingHighcharts/_summary.md +1 -0
  449. package/dist/widget-specifications/cf.cplace.visualizations.scriptingHighcharts/cf.cplace.visualization.dataSource.md +5 -0
  450. package/dist/widget-specifications/cf.cplace.visualizations.scriptingHighcharts/cf.cplace.visualization.search.md +10 -0
  451. package/dist/widget-specifications/cf.cplace.visualizations.scriptingHighcharts/script.md +29 -0
  452. package/dist/widget-specifications/cf.cplace.visualizations.scriptingHighcharts/tableWidgetId.md +10 -0
  453. package/dist/widget-specifications/cf.cplace.visualizations.scriptingLineChart/_catalog-data.json +12 -0
  454. package/dist/widget-specifications/cf.cplace.visualizations.scriptingLineChart/_meta.json +11 -0
  455. package/dist/widget-specifications/cf.cplace.visualizations.scriptingLineChart/_overview.md +72 -0
  456. package/dist/widget-specifications/cf.cplace.visualizations.scriptingLineChart/_summary.md +1 -0
  457. package/dist/widget-specifications/cf.cplace.visualizations.tupleLineChart/_catalog-data.json +12 -0
  458. package/dist/widget-specifications/cf.cplace.visualizations.tupleLineChart/_meta.json +11 -0
  459. package/dist/widget-specifications/cf.cplace.visualizations.tupleLineChart/_overview.md +50 -0
  460. package/dist/widget-specifications/cf.cplace.visualizations.tupleLineChart/_summary.md +1 -0
  461. package/dist/widget-specifications/cf.platform.attributeHistory/_catalog-data.json +12 -0
  462. package/dist/widget-specifications/cf.platform.attributeHistory/_meta.json +11 -0
  463. package/dist/widget-specifications/cf.platform.attributeHistory/_overview.md +79 -0
  464. package/dist/widget-specifications/cf.platform.attributeHistory/_summary.md +1 -0
  465. package/dist/widget-specifications/cf.platform.attributes/_catalog-data.json +12 -0
  466. package/dist/widget-specifications/cf.platform.attributes/_meta.json +9 -0
  467. package/dist/widget-specifications/cf.platform.attributes/_overview.md +89 -0
  468. package/dist/widget-specifications/cf.platform.attributes/_summary.md +1 -0
  469. package/dist/widget-specifications/cf.platform.comments/_catalog-data.json +12 -0
  470. package/dist/widget-specifications/cf.platform.comments/_meta.json +9 -0
  471. package/dist/widget-specifications/cf.platform.comments/_overview.md +52 -0
  472. package/dist/widget-specifications/cf.platform.comments/_summary.md +1 -0
  473. package/dist/widget-specifications/cf.platform.connectedBarChart/_catalog-data.json +12 -0
  474. package/dist/widget-specifications/cf.platform.connectedBarChart/_implementation.md +10 -0
  475. package/dist/widget-specifications/cf.platform.connectedBarChart/_meta.json +11 -0
  476. package/dist/widget-specifications/cf.platform.connectedBarChart/_overview.md +70 -0
  477. package/dist/widget-specifications/cf.platform.connectedBarChart/_summary.md +1 -0
  478. package/dist/widget-specifications/cf.platform.connectedBarChart/search.md +15 -0
  479. package/dist/widget-specifications/cf.platform.connectedMatrix/_catalog-data.json +12 -0
  480. package/dist/widget-specifications/cf.platform.connectedMatrix/_meta.json +11 -0
  481. package/dist/widget-specifications/cf.platform.connectedMatrix/_overview.md +189 -0
  482. package/dist/widget-specifications/cf.platform.connectedMatrix/_summary.md +1 -0
  483. package/dist/widget-specifications/cf.platform.connectedPieChart/_catalog-data.json +12 -0
  484. package/dist/widget-specifications/cf.platform.connectedPieChart/_implementation.md +10 -0
  485. package/dist/widget-specifications/cf.platform.connectedPieChart/_meta.json +11 -0
  486. package/dist/widget-specifications/cf.platform.connectedPieChart/_overview.md +70 -0
  487. package/dist/widget-specifications/cf.platform.connectedPieChart/_summary.md +1 -0
  488. package/dist/widget-specifications/cf.platform.connectedPieChart/search.md +10 -0
  489. package/dist/widget-specifications/cf.platform.connectedSingleAttribute/_catalog-data.json +12 -0
  490. package/dist/widget-specifications/cf.platform.connectedSingleAttribute/_implementation.md +15 -0
  491. package/dist/widget-specifications/cf.platform.connectedSingleAttribute/_meta.json +10 -0
  492. package/dist/widget-specifications/cf.platform.connectedSingleAttribute/_overview.md +69 -0
  493. package/dist/widget-specifications/cf.platform.connectedSingleAttribute/_summary.md +1 -0
  494. package/dist/widget-specifications/cf.platform.connectedSingleAttribute/attributeName.md +10 -0
  495. package/dist/widget-specifications/cf.platform.connectedSingleAttribute/singleColumn.md +9 -0
  496. package/dist/widget-specifications/cf.platform.connectedSingleAttribute/singleSelectionWidgetId.md +3 -0
  497. package/dist/widget-specifications/cf.platform.connectedSingleAttribute/withLabel.md +11 -0
  498. package/dist/widget-specifications/cf.platform.connectedSingleAttribute/withValue.md +12 -0
  499. package/dist/widget-specifications/cf.platform.connectedTableFilter/_catalog-data.json +12 -0
  500. package/dist/widget-specifications/cf.platform.connectedTableFilter/_meta.json +10 -0
  501. package/dist/widget-specifications/cf.platform.connectedTableFilter/_overview.md +89 -0
  502. package/dist/widget-specifications/cf.platform.connectedTableFilter/_summary.md +1 -0
  503. package/dist/widget-specifications/cf.platform.customRichStringAttribute/_catalog-data.json +12 -0
  504. package/dist/widget-specifications/cf.platform.customRichStringAttribute/_meta.json +9 -0
  505. package/dist/widget-specifications/cf.platform.customRichStringAttribute/_overview.md +39 -0
  506. package/dist/widget-specifications/cf.platform.customRichStringAttribute/_summary.md +1 -0
  507. package/dist/widget-specifications/cf.platform.embeddedSearchAsList/_catalog-data.json +12 -0
  508. package/dist/widget-specifications/cf.platform.embeddedSearchAsList/_meta.json +10 -0
  509. package/dist/widget-specifications/cf.platform.embeddedSearchAsList/_overview.md +66 -0
  510. package/dist/widget-specifications/cf.platform.embeddedSearchAsList/_summary.md +1 -0
  511. package/dist/widget-specifications/cf.platform.embeddedSearchAsList/search.md +8 -0
  512. package/dist/widget-specifications/cf.platform.embeddedSearchAsTable/_catalog-data.json +12 -0
  513. package/dist/widget-specifications/cf.platform.embeddedSearchAsTable/_implementation.md +10 -0
  514. package/dist/widget-specifications/cf.platform.embeddedSearchAsTable/_meta.json +11 -0
  515. package/dist/widget-specifications/cf.platform.embeddedSearchAsTable/_overview.md +109 -0
  516. package/dist/widget-specifications/cf.platform.embeddedSearchAsTable/_summary.md +1 -0
  517. package/dist/widget-specifications/cf.platform.embeddedSearchAsTable/columns.md +14 -0
  518. package/dist/widget-specifications/cf.platform.embeddedSearchAsTable/multiSortColumns.md +16 -0
  519. package/dist/widget-specifications/cf.platform.embeddedSearchAsTable/search.md +8 -0
  520. package/dist/widget-specifications/cf.platform.files/_catalog-data.json +12 -0
  521. package/dist/widget-specifications/cf.platform.files/_meta.json +10 -0
  522. package/dist/widget-specifications/cf.platform.files/_overview.md +74 -0
  523. package/dist/widget-specifications/cf.platform.files/_summary.md +1 -0
  524. package/dist/widget-specifications/cf.platform.iframe/_catalog-data.json +12 -0
  525. package/dist/widget-specifications/cf.platform.iframe/_meta.json +9 -0
  526. package/dist/widget-specifications/cf.platform.iframe/_overview.md +77 -0
  527. package/dist/widget-specifications/cf.platform.iframe/_summary.md +1 -0
  528. package/dist/widget-specifications/cf.platform.incomingLinks/_catalog-data.json +12 -0
  529. package/dist/widget-specifications/cf.platform.incomingLinks/_meta.json +10 -0
  530. package/dist/widget-specifications/cf.platform.incomingLinks/_overview.md +83 -0
  531. package/dist/widget-specifications/cf.platform.incomingLinks/_summary.md +1 -0
  532. package/dist/widget-specifications/cf.platform.incomingReferences/_catalog-data.json +12 -0
  533. package/dist/widget-specifications/cf.platform.incomingReferences/_meta.json +10 -0
  534. package/dist/widget-specifications/cf.platform.incomingReferences/_overview.md +48 -0
  535. package/dist/widget-specifications/cf.platform.incomingReferences/_summary.md +1 -0
  536. package/dist/widget-specifications/cf.platform.makeover.attributes/_catalog-data.json +12 -0
  537. package/dist/widget-specifications/cf.platform.makeover.attributes/_meta.json +9 -0
  538. package/dist/widget-specifications/cf.platform.makeover.attributes/_overview.md +48 -0
  539. package/dist/widget-specifications/cf.platform.makeover.attributes/_summary.md +1 -0
  540. package/dist/widget-specifications/cf.platform.modificationInfo/_catalog-data.json +12 -0
  541. package/dist/widget-specifications/cf.platform.modificationInfo/_meta.json +9 -0
  542. package/dist/widget-specifications/cf.platform.modificationInfo/_overview.md +27 -0
  543. package/dist/widget-specifications/cf.platform.modificationInfo/_summary.md +1 -0
  544. package/dist/widget-specifications/cf.platform.myElements/_catalog-data.json +12 -0
  545. package/dist/widget-specifications/cf.platform.myElements/_meta.json +10 -0
  546. package/dist/widget-specifications/cf.platform.myElements/_overview.md +69 -0
  547. package/dist/widget-specifications/cf.platform.myElements/_summary.md +1 -0
  548. package/dist/widget-specifications/cf.platform.richString/_catalog-data.json +12 -0
  549. package/dist/widget-specifications/cf.platform.richString/_meta.json +10 -0
  550. package/dist/widget-specifications/cf.platform.richString/_overview.md +43 -0
  551. package/dist/widget-specifications/cf.platform.richString/_summary.md +1 -0
  552. package/dist/widget-specifications/cf.platform.singleAttribute/_catalog-data.json +12 -0
  553. package/dist/widget-specifications/cf.platform.singleAttribute/_implementation.md +18 -0
  554. package/dist/widget-specifications/cf.platform.singleAttribute/_meta.json +10 -0
  555. package/dist/widget-specifications/cf.platform.singleAttribute/_overview.md +83 -0
  556. package/dist/widget-specifications/cf.platform.singleAttribute/_summary.md +1 -0
  557. package/dist/widget-specifications/cf.platform.singleAttribute/cf.platform.entity.md +10 -0
  558. package/dist/widget-specifications/cf.platform.singleAttribute/cf.platform.quotedAttributeName.md +12 -0
  559. package/dist/widget-specifications/cf.platform.singleAttribute/cf.platform.singleColumn.md +9 -0
  560. package/dist/widget-specifications/cf.platform.singleAttribute/cf.platform.useParent.md +11 -0
  561. package/dist/widget-specifications/cf.platform.singleAttribute/cf.platform.withLabel.md +11 -0
  562. package/dist/widget-specifications/cf.platform.singleAttribute/cf.platform.withValue.md +12 -0
  563. package/dist/widget-specifications/cf.platform.tags/_catalog-data.json +12 -0
  564. package/dist/widget-specifications/cf.platform.tags/_meta.json +10 -0
  565. package/dist/widget-specifications/cf.platform.tags/_overview.md +49 -0
  566. package/dist/widget-specifications/cf.platform.tags/_summary.md +1 -0
  567. package/dist/widget-specifications/cf.platform.wiki/_catalog-data.json +12 -0
  568. package/dist/widget-specifications/cf.platform.wiki/_meta.json +9 -0
  569. package/dist/widget-specifications/cf.platform.wiki/_overview.md +32 -0
  570. package/dist/widget-specifications/cf.platform.wiki/_summary.md +1 -0
  571. package/dist/widget-specifications/cf.projektplanung.gantt/_catalog-data.json +12 -0
  572. package/dist/widget-specifications/cf.projektplanung.gantt/_meta.json +11 -0
  573. package/dist/widget-specifications/cf.projektplanung.gantt/_overview.md +61 -0
  574. package/dist/widget-specifications/cf.projektplanung.gantt/_summary.md +1 -0
  575. package/dist/widget-specifications/cf.projektplanung.ganttTaskDemo/_catalog-data.json +12 -0
  576. package/dist/widget-specifications/cf.projektplanung.ganttTaskDemo/_meta.json +10 -0
  577. package/dist/widget-specifications/cf.projektplanung.ganttTaskDemo/_overview.md +65 -0
  578. package/dist/widget-specifications/cf.projektplanung.ganttTaskDemo/_summary.md +1 -0
  579. package/dist/widget-specifications/cf.projektplanung.multiGantt/_catalog-data.json +12 -0
  580. package/dist/widget-specifications/cf.projektplanung.multiGantt/_meta.json +11 -0
  581. package/dist/widget-specifications/cf.projektplanung.multiGantt/_overview.md +73 -0
  582. package/dist/widget-specifications/cf.projektplanung.multiGantt/_summary.md +1 -0
  583. package/dist/widget-specifications/cf.projektplanung.scheduleTreeTable/_catalog-data.json +12 -0
  584. package/dist/widget-specifications/cf.projektplanung.scheduleTreeTable/_meta.json +10 -0
  585. package/dist/widget-specifications/cf.projektplanung.scheduleTreeTable/_overview.md +84 -0
  586. package/dist/widget-specifications/cf.projektplanung.scheduleTreeTable/_summary.md +1 -0
  587. package/dist/widget-specifications/cf.projektplanung.singleGantt/_catalog-data.json +12 -0
  588. package/dist/widget-specifications/cf.projektplanung.singleGantt/_meta.json +12 -0
  589. package/dist/widget-specifications/cf.projektplanung.singleGantt/_overview.md +27 -0
  590. package/dist/widget-specifications/cf.projektplanung.singleGantt/_summary.md +1 -0
  591. package/dist/widget-specifications/cf.projektplanung.singleGanttLink/_catalog-data.json +12 -0
  592. package/dist/widget-specifications/cf.projektplanung.singleGanttLink/_meta.json +10 -0
  593. package/dist/widget-specifications/cf.projektplanung.singleGanttLink/_overview.md +84 -0
  594. package/dist/widget-specifications/cf.projektplanung.singleGanttLink/_summary.md +1 -0
  595. package/dist/widget-specifications/de.2lforge.curves.widget/_catalog-data.json +12 -0
  596. package/dist/widget-specifications/de.2lforge.curves.widget/_meta.json +12 -0
  597. package/dist/widget-specifications/de.2lforge.curves.widget/_overview.md +73 -0
  598. package/dist/widget-specifications/de.2lforge.curves.widget/_summary.md +1 -0
  599. package/dist/widget-specifications/de.2lforge.toolbar.datePickerWidget/_catalog-data.json +12 -0
  600. package/dist/widget-specifications/de.2lforge.toolbar.datePickerWidget/_meta.json +9 -0
  601. package/dist/widget-specifications/de.2lforge.toolbar.datePickerWidget/_overview.md +67 -0
  602. package/dist/widget-specifications/de.2lforge.toolbar.datePickerWidget/_summary.md +1 -0
  603. package/dist/widget-specifications/de.2lforge.toolbar.dropDownWidget/_catalog-data.json +12 -0
  604. package/dist/widget-specifications/de.2lforge.toolbar.dropDownWidget/_meta.json +10 -0
  605. package/dist/widget-specifications/de.2lforge.toolbar.dropDownWidget/_overview.md +58 -0
  606. package/dist/widget-specifications/de.2lforge.toolbar.dropDownWidget/_summary.md +1 -0
  607. package/dist/widget-specifications/de.2lforge.toolbar.miscWidget/_catalog-data.json +12 -0
  608. package/dist/widget-specifications/de.2lforge.toolbar.miscWidget/_meta.json +8 -0
  609. package/dist/widget-specifications/de.2lforge.toolbar.miscWidget/_overview.md +43 -0
  610. package/dist/widget-specifications/de.2lforge.toolbar.miscWidget/_summary.md +1 -0
  611. package/dist/widget-specifications/de.visualistik.visualRoadmap.widget/_catalog-data.json +12 -0
  612. package/dist/widget-specifications/de.visualistik.visualRoadmap.widget/_meta.json +11 -0
  613. package/dist/widget-specifications/de.visualistik.visualRoadmap.widget/_overview.md +47 -0
  614. package/dist/widget-specifications/de.visualistik.visualRoadmap.widget/_summary.md +1 -0
  615. package/dist/widget-specifications/index.d.ts.map +1 -0
  616. package/dist/widget-specifications/index.js +55 -0
  617. package/dist/widget-specifications/index.js.map +1 -0
  618. package/dist/widget-specifications/msg.scripts.imagegallery.basic/_catalog-data.json +12 -0
  619. package/dist/widget-specifications/msg.scripts.imagegallery.basic/_meta.json +10 -0
  620. package/dist/widget-specifications/msg.scripts.imagegallery.basic/_overview.md +55 -0
  621. package/dist/widget-specifications/msg.scripts.imagegallery.basic/_summary.md +1 -0
  622. package/dist/widget-specifications/tag-registry.json +63 -0
  623. package/package.json +3 -2
@@ -0,0 +1,1094 @@
1
+ # Widget Research: cf.platform.singleAttribute
2
+
3
+ **Date**: 2026-01-16
4
+ **Widget ID**: `cf.platform.singleAttribute`
5
+ **Repository**: main
6
+ **Definition Class**: `cf.cplace.platform.frontend.widgets.SingleAttributeWidgetDefinition`
7
+
8
+ ---
9
+
10
+ ## Executive Summary
11
+
12
+ ### Widget Description
13
+
14
+ The Single Attribute Widget displays a single attribute (either custom or built-in) from a page with fine-grained control over label, value, and editing behavior. It provides flexible attribute presentation with optional in-place editing, alternative labels, and conditional visibility.
15
+
16
+ ### Primary Purpose
17
+
18
+ This widget enables precise control over individual attribute display by allowing users to choose exactly which attribute to show, customize its presentation (label, value, or both), enable in-place editing, and conditionally show/hide the attribute based on business logic. Unlike the full Attributes widget, this focuses on a single attribute with maximum configuration flexibility.
19
+
20
+ ---
21
+
22
+ ## Core Functionality
23
+
24
+ ### What This Widget Does
25
+
26
+ 1. **Single Attribute Display**: Shows one specific attribute from a page (custom or built-in)
27
+ 2. **Flexible Presentation**: Configurable to display label only, value only, or both
28
+ 3. **In-Place Editing**: Optional inline editing without form submission
29
+ 4. **Custom Labels**: Support for alternative/localized labels instead of default attribute names
30
+ 5. **Layout Control**: Single or two-column display modes
31
+ 6. **Conditional Visibility**: cplaceJS script support to show/hide attributes dynamically
32
+ 7. **Parent Navigation**: Can display attributes from the parent page in hierarchical structures
33
+
34
+ ### Key Characteristics
35
+
36
+ - **Attribute Selection**: Dynamic enumeration of available attributes (both custom and built-in) based on target entity type
37
+ - **Configuration Flexibility**: 11 configuration parameters providing extensive customization
38
+ - **Embedding Context**: Can be embedded directly on pages or within Attributes Group widgets
39
+ - **Frontend Duality**: Supports both legacy template rendering and new Angular component architecture
40
+ - **Migration Support**: Handles legacy configurations with unquoted attribute names
41
+
42
+ ---
43
+
44
+ ## Use Cases
45
+
46
+ ### Primary Use Cases
47
+
48
+ #### 1. Custom Attribute Layout
49
+
50
+ **Scenario**: Display specific attributes in a custom page layout without showing all attributes
51
+
52
+ **Example**: Create a summary section at the top of a page showing only critical attributes (status, priority, owner) while keeping detailed attributes in a separate section.
53
+
54
+ **Configuration**:
55
+ - `ATTRIBUTE_NAME`: `cf.cplace.solution.status` (or built-in like `name`)
56
+ - `WITH_LABEL`: `true`
57
+ - `WITH_VALUE`: `true`
58
+ - `IN_PLACE_EDITING`: `false`
59
+
60
+ **When to use**:
61
+ - Need precise control over which attributes appear where
62
+ - Building custom dashboards or summary views
63
+ - Creating multi-section page layouts
64
+
65
+ ---
66
+
67
+ #### 2. Read-Only Attribute Display with Alternative Labels
68
+
69
+ **Scenario**: Show attribute values with custom, user-friendly labels
70
+
71
+ **Example**: Display a technical attribute like `cf.cplace.solution.internalCode` with a friendlier label "Product Code" for business users.
72
+
73
+ **Configuration**:
74
+ - `ATTRIBUTE_NAME`: `cf.cplace.solution.internalCode`
75
+ - `LOCALIZED_ALTERNATIVE_LABEL`: {"en": "Product Code", "de": "Produktcode"}
76
+ - `WITH_LABEL`: `true`
77
+ - `WITH_VALUE`: `true`
78
+ - `IN_PLACE_EDITING`: `false`
79
+
80
+ **Benefits**:
81
+ - Improve UX with domain-specific terminology
82
+ - Support multiple languages with localized labels
83
+ - Hide technical attribute names from end users
84
+
85
+ ---
86
+
87
+ #### 3. Quick Edit Interface
88
+
89
+ **Scenario**: Enable rapid editing of specific attributes without opening full edit forms
90
+
91
+ **Example**: Allow users to quickly update task status or priority directly from a page view.
92
+
93
+ **Configuration**:
94
+ - `ATTRIBUTE_NAME`: `cf.cplace.solution.status`
95
+ - `WITH_LABEL`: `true`
96
+ - `WITH_VALUE`: `true`
97
+ - `IN_PLACE_EDITING`: `true`
98
+ - `RELOAD_AFTER_CHANGE`: `true` (if other widgets depend on this attribute)
99
+
100
+ **Benefits**:
101
+ - Reduce clicks and page transitions
102
+ - Improve user productivity for frequent updates
103
+ - Maintain context while editing
104
+
105
+ **Note**: The widget wraps the attribute in a `<span class="cplace-single-attribute">` with JavaScript handling for in-place editing.
106
+
107
+ ---
108
+
109
+ #### 4. Conditional Attribute Display
110
+
111
+ **Scenario**: Show/hide attributes based on dynamic conditions
112
+
113
+ **Example**: Display "Rejection Reason" only when a request's status is "Rejected", or show "Approval Date" only for approved items.
114
+
115
+ **Configuration**:
116
+ - `ATTRIBUTE_NAME`: `cf.cplace.solution.rejectionReason`
117
+ - `SHOW_ATTRIBUTE_SCRIPT`: cplaceJS script
118
+ - Script bindings: `targetEntity`, `embeddingPage`
119
+
120
+ ```javascript
121
+ // Example: Only show rejection reason if status is 'Rejected'
122
+ return targetEntity.get('cf.cplace.solution.status') === 'Rejected';
123
+ ```
124
+
125
+ **Benefits**:
126
+ - Reduce visual clutter by hiding irrelevant fields
127
+ - Implement state-dependent UIs
128
+ - Create dynamic forms that adapt to data
129
+
130
+ ---
131
+
132
+ #### 5. Parent Page Attribute Display
133
+
134
+ **Scenario**: Display attributes from a parent page in a hierarchical structure
135
+
136
+ **Example**: Show project-level attributes on task pages without duplicating data.
137
+
138
+ **Configuration**:
139
+ - `TARGET_ENTITY`: (leave empty)
140
+ - `USE_PARENT`: `true`
141
+ - `ATTRIBUTE_NAME`: `cf.cplace.solution.projectBudget`
142
+
143
+ **Use case**:
144
+ - Hierarchical page structures (projects → tasks → subtasks)
145
+ - Avoid data duplication
146
+ - Show contextual information from parent entities
147
+
148
+ ---
149
+
150
+ #### 6. Label-Only Display
151
+
152
+ **Scenario**: Show just the attribute label without its value
153
+
154
+ **Example**: Create headers or section labels using attribute names.
155
+
156
+ **Configuration**:
157
+ - `ATTRIBUTE_NAME`: `cf.cplace.solution.description`
158
+ - `WITH_LABEL`: `true`
159
+ - `WITH_VALUE`: `false`
160
+
161
+ **Note**: According to code validation (line 371-372), you cannot set both `WITH_LABEL` and `WITH_VALUE` to false - at least one must be enabled.
162
+
163
+ ---
164
+
165
+ #### 7. Value-Only Display (Clean Display)
166
+
167
+ **Scenario**: Show attribute values without labels in compact layouts
168
+
169
+ **Example**: Display status badges, icons, or values in dense UIs where labels would be redundant.
170
+
171
+ **Configuration**:
172
+ - `ATTRIBUTE_NAME`: `cf.cplace.solution.status`
173
+ - `WITH_LABEL`: `false`
174
+ - `WITH_VALUE`: `true`
175
+ - `IN_PLACE_EDITING`: `false`
176
+
177
+ **Behavior**: When embedded in a regular page (not DummyWidgetContainer), uses `getCleanValueRepresentation()` which renders:
178
+ - **References**: As clickable links
179
+ - **Enumerations**: With icons and colors
180
+ - **Attributes**: As plain values
181
+
182
+ ---
183
+
184
+ #### 8. Embedded in Attributes Group Widget
185
+
186
+ **Scenario**: Build custom forms by embedding multiple single attribute widgets in an Attributes Group layout
187
+
188
+ **Example**: Create a two-column form where left column shows general info and right column shows technical details.
189
+
190
+ **Configuration**:
191
+ - Embedded within `cf.cplace.platform.attributesGroup` widget
192
+ - `SINGLE_COLUMN` setting inherited from parent widget
193
+ - Multiple single attribute widgets arranged in rows and columns
194
+
195
+ **Benefits**:
196
+ - Maximum layout flexibility
197
+ - Mix different widget types (single attributes + other widgets)
198
+ - Responsive to parent widget settings
199
+
200
+ ---
201
+
202
+ ### When to Use This Widget
203
+
204
+ Choose `cf.platform.singleAttribute` when you need:
205
+
206
+ - **Specific Attribute Display**: Show one particular attribute, not all attributes
207
+ - **Custom Labels**: Alternative or localized labels instead of default names
208
+ - **In-Place Editing**: Quick editing without form submission
209
+ - **Conditional Visibility**: Show/hide based on business logic
210
+ - **Layout Precision**: Exact placement of individual attributes in custom layouts
211
+ - **Value-Only Display**: Clean rendering without labels
212
+ - **Parent Navigation**: Display attributes from parent pages
213
+
214
+ ---
215
+
216
+ ### When NOT to Use This Widget
217
+
218
+ Use alternatives when:
219
+
220
+ - **All Attributes Needed**: Use `cf.platform.attributes` (Attributes widget) for complete display
221
+ - **Multiple Attributes with Custom Layout**: Use `cf.cplace.platform.attributesGroup` (Attributes Group widget) for complex layouts
222
+ - **Table-Connected Display**: Use `cf.platform.connectedSingleAttribute` for displaying attributes from selected table rows
223
+ - **Simple Default Display**: Standard Attributes widget may be simpler for basic needs
224
+
225
+ ---
226
+
227
+ ## Configuration Concepts
228
+
229
+ ### Configuration Parameters Overview
230
+
231
+ The widget provides 11 configuration parameters grouped into several categories:
232
+
233
+ #### 1. Target Entity Selection
234
+
235
+ **1.1 TARGET_ENTITY** (Page Reference, optional)
236
+ - **Default**: Current embedding page
237
+ - **Purpose**: Specify which page's attribute to display
238
+ - **Type**: `SinglePageReferenceAttributeDef`
239
+ - **Constraint**: Links to any page type
240
+ - **Help**: "The page of which an attribute is shown. Leave empty for current page."
241
+
242
+ **1.2 USE_PARENT** (Boolean, default: false)
243
+ - **Purpose**: Display attribute from the parent page instead of the target entity
244
+ - **Use case**: Hierarchical structures where child pages need parent information
245
+ - **Behavior**: If enabled and target entity has a parent, uses parent entity
246
+
247
+ **Note**: When embedded in a DummyWidgetContainer (within Attributes Group), these parameters are hidden and inherited from the parent configuration.
248
+
249
+ ---
250
+
251
+ #### 2. Attribute Selection
252
+
253
+ **2.1 ATTRIBUTE_NAME** (String Enumeration, required)
254
+ - **Internal Name**: `cf.platform.quotedAttributeName`
255
+ - **Purpose**: Select which attribute to display
256
+ - **Type**: `SingleStringAttributeDef` with `DynamicStringEnumerationConstraint`
257
+ - **Provider**: `AttributeNameEnumerationProvider`
258
+ - **Options**: Dynamic list of available attributes from target entity type
259
+ - **Custom Attributes**: Names like `cf.cplace.solution.status` (quoted)
260
+ - **Built-in Attributes**: Feature names like `name`, `creator`, `created`
261
+ - **Sorting**: Alphabetically by localized display name
262
+ - **Migration**: Handles legacy unquoted names (deprecated `UNQUOTED_ATTRIBUTE_NAME`)
263
+
264
+ **Implementation Details**:
265
+ - The enumeration provider analyzes the target entity's type definition
266
+ - Lists all custom attributes from `getAttributeDefinitions()`
267
+ - Lists all built-in features from `getFeaturesInSearchIndexExceptDummyAttributes()`
268
+ - Options show localized names but store technical attribute names
269
+
270
+ ---
271
+
272
+ #### 3. Display Options
273
+
274
+ **3.1 WITH_LABEL** (Boolean, default: false)
275
+ - **Purpose**: Show the attribute name/label
276
+ - **When true**: Displays the attribute label (or alternative label if configured)
277
+ - **When false**: Hides the label, shows only value
278
+
279
+ **3.2 WITH_VALUE** (Boolean, default: true)
280
+ - **Purpose**: Show the attribute value
281
+ - **When true**: Displays the attribute's current value
282
+ - **When false**: Shows only the label
283
+ - **Help**: "Determines if the attribute value should be shown. If not, the parameter 'Show attribute name' has to be set, and only the localized display name of the attribute will be shown."
284
+
285
+ **Validation**: At least one of `WITH_LABEL` or `WITH_VALUE` must be `true` (validated in `isConfigurationComplete()` line 371-372).
286
+
287
+ **3.3 LOCALIZED_ALTERNATIVE_LABEL** (Localized String, optional)
288
+ - **Purpose**: Use a custom label instead of the attribute's default name
289
+ - **Type**: `SingleLocalizedStringAttributeDef`
290
+ - **Format**: Multi-language support (e.g., {"en": "Project Code", "de": "Projektcode"})
291
+ - **Behavior**: If empty, uses attribute's default localized name
292
+ - **Migration**: Replaces deprecated `ALTERNATIVE_LABEL` (plain string)
293
+
294
+ ---
295
+
296
+ #### 4. Editing Behavior
297
+
298
+ **4.1 IN_PLACE_EDITING** (Boolean, default: false)
299
+ - **Purpose**: Enable inline editing without form submission
300
+ - **When true**: Attribute becomes editable directly in the display
301
+ - **Implementation**: Uses `ShowControlSubstitution` with `NO_IN_PLACE_EDITING` parameter
302
+ - **Frontend**: Wrapped in `<span class="cplace-single-attribute">` with JavaScript handler
303
+
304
+ **4.2 RELOAD_AFTER_CHANGE** (Boolean, default: false)
305
+ - **Purpose**: Reload the parent grouped widget after attribute value changes
306
+ - **Use case**: When other widgets depend on this attribute's value
307
+ - **Behavior**: Triggers page/widget refresh after edit
308
+ - **State**: Passed to frontend as `reloadAfterChange` in widget state
309
+
310
+ ---
311
+
312
+ #### 5. Layout Control
313
+
314
+ **5.1 SINGLE_COLUMN** (Boolean, default: false)
315
+ - **Purpose**: Display attribute in single-column layout instead of two-column
316
+ - **Relevance**: Only effective when `WITH_LABEL` is `true`
317
+ - **Help**: "Only is relevant if the attribute name is also shown."
318
+ - **Inheritance**: When embedded in Attributes Group widget, inherited from parent's `SINGLE_COLUMN` setting
319
+ - **Implementation**: Passed to `ShowControlSubstitution` as `SHOW_IN_ONE_COLUMN` parameter
320
+
321
+ ---
322
+
323
+ #### 6. Conditional Visibility
324
+
325
+ **6.1 SHOW_ATTRIBUTE_SCRIPT** (cplaceJS Script, optional)
326
+ - **Purpose**: Dynamically determine if attribute should be shown
327
+ - **Type**: `SingleStringAttributeDef` with `ScriptConstraint`
328
+ - **Bindings**:
329
+ - `targetEntity`: The entity whose attribute is displayed
330
+ - `embeddingPage`: The page where the widget is embedded
331
+ - **Behavior**:
332
+ - If script is empty: Attribute always shown (if feature exists)
333
+ - If script evaluates to `false`: Attribute is hidden (returns empty string)
334
+ - If script evaluates to `true` or any truthy value: Attribute is shown
335
+ - **Evaluation**: Performed by `ConnectedSingleAttributeHandler.evaluateShowAttributeScript()`
336
+ - **Help**: "A cplaceJS script to determine if the attribute should be shown. If the provided script is not empty AND if it evaluates to false, the attribute will be hidden."
337
+
338
+ **Example Scripts**:
339
+
340
+ ```javascript
341
+ // Show only for specific status
342
+ return targetEntity.get('cf.cplace.solution.status') === 'In Progress';
343
+
344
+ // Show based on user permissions
345
+ return embeddingPage.get('cf.cplace.solution.owner') === cplace.session().user();
346
+
347
+ // Show if value is not empty
348
+ return targetEntity.get('cf.cplace.solution.description') !== null;
349
+ ```
350
+
351
+ ---
352
+
353
+ #### 7. Frontend Technology
354
+
355
+ **7.1 USE_NEW_FRONTEND** (Boolean, copied from WidgetTypes.FRONTEND_CONFIGURATION_MIXIN)
356
+ - **Purpose**: Toggle between legacy HTML template and new Angular component rendering
357
+ - **When true**: Uses `<cf-wc-bridge>` Angular component
358
+ - **When false**: Uses legacy `<span class="cplace-single-attribute">` with template rendering
359
+ - **State**: Different state objects passed to frontend based on this flag
360
+ - New: `SingleAttributeWidgetComponentInputs` wrapping `SingleAttributeWidgetState`
361
+ - Old: Simple JSON with `reloadAfterChange`, `attributeParameterName`, `widgetId`
362
+
363
+ ---
364
+
365
+ ### Configuration Type Definition
366
+
367
+ **TypeDef**: `CONFIGURATION.TYPE` (line 284-299)
368
+
369
+ Includes all configuration attributes:
370
+ ```java
371
+ public static final TypeDef TYPE = new TypeDef(
372
+ KIND,
373
+ TARGET_ENTITY, // Page selection
374
+ USE_PARENT, // Parent navigation
375
+ UNQUOTED_ATTRIBUTE_NAME, // Deprecated
376
+ ATTRIBUTE_NAME, // Current attribute selection
377
+ WITH_VALUE, // Display value
378
+ WITH_LABEL, // Display label
379
+ ALTERNATIVE_LABEL, // Deprecated
380
+ LOCALIZED_ALTERNATIVE_LABEL, // Alternative label
381
+ IN_PLACE_EDITING, // Editing
382
+ SINGLE_COLUMN, // Layout
383
+ RELOAD_AFTER_CHANGE, // Refresh behavior
384
+ SHOW_ATTRIBUTE_SCRIPT, // Conditional visibility
385
+ USE_NEW_FRONTEND // Technology toggle
386
+ );
387
+ ```
388
+
389
+ ---
390
+
391
+ ### Configuration Visibility Rules
392
+
393
+ **Conditional Display** (`showPropertyInEdit()`, line 432-451):
394
+
395
+ When embedded in `DummyWidgetContainer` (inside Attributes Group), the following properties are **hidden**:
396
+ - `TARGET_ENTITY`: Inherited from parent widget
397
+ - `USE_PARENT`: Inherited from parent widget
398
+ - `SINGLE_COLUMN`: Inherited from parent widget
399
+ - `USE_NEW_FRONTEND`: Inherited from parent widget
400
+
401
+ Always hidden (deprecated):
402
+ - `UNQUOTED_ATTRIBUTE_NAME`: Migrated to `ATTRIBUTE_NAME`
403
+ - `ALTERNATIVE_LABEL`: Migrated to `LOCALIZED_ALTERNATIVE_LABEL`
404
+
405
+ ---
406
+
407
+ ### Configuration Validation
408
+
409
+ **Completeness Check** (`isConfigurationComplete()`, line 360-392):
410
+
411
+ A configuration is complete when:
412
+
413
+ 1. **Base validation**: `super.isConfigurationComplete()` passes
414
+ 2. **Attribute selected**: `ATTRIBUTE_NAME` is not empty
415
+ 3. **Display option**: At least one of `WITH_LABEL` or `WITH_VALUE` is `true`
416
+ 4. **Attribute exists**: The selected attribute exists in at least one target type definition
417
+ - For custom attributes: Checks `getAttributeDefinitionByName()`
418
+ - For built-in attributes: Checks `getFeatureOrNull()`
419
+
420
+ If any check fails, configuration is incomplete and widget may show error message.
421
+
422
+ ---
423
+
424
+ ## Context and Related Widgets
425
+
426
+ ### Widget Family: Attribute Display Widgets
427
+
428
+ The cplace platform provides several widgets for displaying attributes, each serving different use cases:
429
+
430
+ | Widget | Purpose | Attributes Shown | Configuration Level | Primary Use Case |
431
+ |--------|---------|------------------|---------------------|------------------|
432
+ | **cf.platform.attributes** | Show all attributes | All (automatic) | None | Complete attribute overview, default forms |
433
+ | **cf.platform.singleAttribute** | Show one attribute | One (selected) | High (11 params) | Precise single attribute control with custom labels |
434
+ | **cf.cplace.platform.attributesGroup** | Show selected attributes | Multiple (manual layout) | Very High | Custom forms with complex layouts |
435
+ | **cf.platform.connectedSingleAttribute** | Show attribute from table row | One (from selection) | High + Connection | Dynamic attribute display based on table selection |
436
+
437
+ ---
438
+
439
+ ### Comparison: cf.platform.singleAttribute vs. Related Widgets
440
+
441
+ #### vs. cf.platform.attributes
442
+
443
+ | Aspect | cf.platform.singleAttribute | cf.platform.attributes |
444
+ |--------|----------------------------|------------------------|
445
+ | **Attributes Shown** | One (manually selected) | All (automatic) |
446
+ | **Configuration** | 11 parameters | None |
447
+ | **Label Customization** | Yes (alternative labels) | No |
448
+ | **Conditional Display** | Yes (cplaceJS script) | No |
449
+ | **In-place Editing** | Direct inline editing | Form-based editing |
450
+ | **Layout Control** | Single/double column | Fixed vertical list |
451
+ | **Use Case** | Precise control over one attribute | Quick display of all data |
452
+
453
+ #### vs. cf.cplace.platform.attributesGroup
454
+
455
+ | Aspect | cf.platform.singleAttribute | cf.cplace.platform.attributesGroup |
456
+ |--------|-----------------------------|-------------------------------------|
457
+ | **Scope** | Single attribute | Multiple attributes + widgets |
458
+ | **Layout** | Individual widget placement | Row/column grid system |
459
+ | **Embedding** | Standalone or within group | Standalone, contains other widgets |
460
+ | **Configuration** | Per-attribute settings | Layout + child widget configurations |
461
+ | **Complexity** | Simple | Complex |
462
+ | **Typical Usage** | Building block | Container/orchestrator |
463
+
464
+ **Relationship**: `cf.platform.singleAttribute` is designed to be embedded within `cf.cplace.platform.attributesGroup` widgets. The group widget provides the layout structure, while single attribute widgets populate individual cells.
465
+
466
+ **Implementation Note**: `canBeEmbeddedInsideWidgetOfType()` (line 792-794) returns `true` only for `AttributesGroupWidgetDefinition.class`.
467
+
468
+ #### vs. cf.platform.connectedSingleAttribute
469
+
470
+ | Aspect | cf.platform.singleAttribute | cf.platform.connectedSingleAttribute |
471
+ |--------|----------------------------|-------------------------------------|
472
+ | **Data Source** | Fixed page (embedding or selected) | Dynamic (from table selection) |
473
+ | **Selection Mode** | Static configuration | Dynamic user selection |
474
+ | **Update Behavior** | Static (page reload to change) | Real-time (selection changes) |
475
+ | **Use Case** | Fixed attribute display | Master-detail interfaces |
476
+ | **Configuration** | Similar parameters + target entity | Similar parameters + connection config |
477
+
478
+ **Key Difference**: The "connected" variant implements `ISingleEntitySelectionProducer` interface and reacts to entity selections from connected table widgets.
479
+
480
+ ---
481
+
482
+ ### Embedding Rules and Restrictions
483
+
484
+ #### Where This Widget Can Be Embedded
485
+
486
+ **Allowed**:
487
+ 1. **CustomEntity pages**: Standard entity pages with type definitions
488
+ 2. **Rich string content**: Can be embedded in rich text fields
489
+ 3. **Widget containers**: Specifically within `AttributesGroupWidgetDefinition`
490
+
491
+ **Validation**: `checkEmbeddableIn()` (line 336-338)
492
+ ```java
493
+ checkIsEmbeddedInRichStringOrInWidget(entity, embedding);
494
+ ```
495
+
496
+ This allows embedding:
497
+ - Directly on pages
498
+ - Inside rich text attributes
499
+ - Within compatible widget containers (Attributes Group)
500
+
501
+ #### Embedding Context Detection
502
+
503
+ The widget determines its embedding context in `init()` (line 544-583):
504
+
505
+ **Case 1: Embedded in DummyWidgetContainer** (inside Attributes Group)
506
+ - `embeddingEntity`: The page where the Attributes Group widget is embedded
507
+ - `singleColumn`: Inherited from parent widget's setting
508
+ - Configuration: Some parameters hidden in edit mode
509
+
510
+ **Case 2: Direct Embedding** (on page or rich string)
511
+ - `embeddingEntity`: The page itself
512
+ - `singleColumn`: Uses widget's own setting
513
+ - Configuration: All parameters visible in edit mode
514
+
515
+ ---
516
+
517
+ ### Template and Rendering
518
+
519
+ #### Template File
520
+
521
+ **Location**: `cf.cplace.platform/src/main/resources/cf/cplace/platform/frontend/widgets/singleAttributeWidgetDefinition.htm`
522
+
523
+ **Content** (line 1):
524
+ ```html
525
+ $[useNewFrontend$<cf-wc-bridge ng-cloak route="cplace-single-attribute-widget" name="cf-platform" remoteurl="$cfPlatformAppRemoteUrl()$" data="$singleAttributeWidgetState$"></cf-wc-bridge>$]useNewFrontend[$<span class="cplace-single-attribute" cplace-single-attribute="$state$" data-qa-element-name="$internalName$">$value$</span>$useNewFrontend]$
526
+ ```
527
+
528
+ **Structure**:
529
+ - **Conditional rendering** based on `useNewFrontend` flag
530
+ - **New Frontend**: Angular component via `<cf-wc-bridge>`
531
+ - Route: `cplace-single-attribute-widget`
532
+ - State: `singleAttributeWidgetState` (JSON)
533
+ - **Legacy Frontend**: HTML span with JavaScript directive
534
+ - Class: `cplace-single-attribute`
535
+ - Directive: `cplace-single-attribute="$state$"`
536
+ - Content: `$value$` (rendered attribute)
537
+ - QA Element: `data-qa-element-name="$internalName$"` for testing
538
+
539
+ #### Template Substitutions
540
+
541
+ **WidgetTemplateSubstitution** (`widgetSubstitution()`, line 523-719):
542
+
543
+ **Substitution Variables**:
544
+
545
+ 1. **useNewFrontend** (Conditional)
546
+ - Type: `ConditionalSubstitution`
547
+ - Purpose: Controls template branching
548
+
549
+ 2. **singleAttributeWidgetState** (New Frontend Only)
550
+ - Type: JSON string (HTML attribute escaped)
551
+ - Content: `SingleAttributeWidgetComponentInputs` wrapping `SingleAttributeWidgetState`
552
+ - Generated by: `getWidgetState()` method
553
+
554
+ 3. **state** (Legacy Frontend Only)
555
+ - Type: JSON string (HTML attribute escaped)
556
+ - Content: `{ reloadAfterChange, attributeParameterName, widgetId }`
557
+
558
+ 4. **value** (Legacy Frontend Only)
559
+ - Type: HTML content (no escaping)
560
+ - Generated by: `showAttribute()` method
561
+ - Uses: `threadLocalNestedPrintingContext` to prevent infinite recursion
562
+
563
+ 5. **internalName** (Legacy Frontend Only)
564
+ - Type: Attribute name (HTML attribute escaped)
565
+ - Purpose: Test automation and debugging
566
+
567
+ #### Attribute Rendering Methods
568
+
569
+ **showAttribute()** (line 621-694):
570
+
571
+ **Rendering Logic**:
572
+
573
+ 1. **Validation**:
574
+ - Check if `targetEntity` exists → Returns `entityNotFound` message
575
+ - Check if `feature` exists → Returns empty string
576
+ - Check if hidden by extension → Returns empty string
577
+ - Evaluate `SHOW_ATTRIBUTE_SCRIPT` → Returns empty string if should hide
578
+
579
+ 2. **Read Configuration**:
580
+ - `withValue`, `withLabel`, `inPlaceEditing` from widget config
581
+ - `localizedAlternativeLabel` from widget config (or empty)
582
+
583
+ 3. **Cycle Prevention**:
584
+ - Track `targetEntity.uid + '/' + attributeName` in thread-local set
585
+ - Prevent infinite recursion if attribute references create cycles
586
+ - Return `configurationError` message if cycle detected
587
+
588
+ 4. **Type Validation**:
589
+ - For custom attributes: Verify attribute exists in type definition
590
+ - Return `null` if attribute not found
591
+
592
+ 5. **Rendering Strategy** (three paths):
593
+
594
+ **Path A: Clean Value Representation** (no label, no editing, not in dummy)
595
+ - Uses: `getCleanValueRepresentation(feature)`
596
+ - Renders: Plain values, links for references, enumerations with icons
597
+
598
+ **Path B: Label Only** (no value, no editing)
599
+ - Uses: Alternative label or `feature.getLabelOrName().get()`
600
+ - Renders: Plain text label
601
+
602
+ **Path C: Standard Show Control** (default)
603
+ - Uses: `FunctionsHelper.proxy("show", feature, ...)`
604
+ - Parameters:
605
+ - `NO_VALUE`: Inverted `withValue`
606
+ - `NO_LABEL`: Inverted `withLabel`
607
+ - `NO_IN_PLACE_EDITING`: Inverted `inPlaceEditing`
608
+ - `ALTERNATIVE_LABEL`: Custom label text
609
+ - `SHOW_IN_ONE_COLUMN`: `singleColumn` setting
610
+ - `PARAMETER_HIDE_OVERRIDDEN`: Flag
611
+ - Renders: Full show control with label, value, and optional editing
612
+
613
+ **getCleanValueRepresentation()** (line 721-751):
614
+
615
+ Handles different feature types:
616
+
617
+ - **CustomAttribute**: Uses `ValuesWithConstraintSubstitutions` template
618
+ - **TypeLayoutAttribute / CustomTypeAttribute**: Renders as link
619
+ - **Regular Attribute**: Renders as plain value
620
+ - **OneReference**: Renders as link (handles `InheritRightsOnePersonReference`)
621
+ - **ManyReference**: Renders as comma-separated links (handles `InheritRightsManyReference`)
622
+
623
+ ---
624
+
625
+ ### Widget Title Generation
626
+
627
+ **getTitle()** (line 697-717):
628
+
629
+ **Logic**:
630
+ 1. Collect all possible attribute display names from target type definitions
631
+ 2. For custom attributes: Use `getLocalizedName()` from `AttributeDefinition`
632
+ 3. For built-in attributes: Use `getLabelOrName().get()` from `Feature`
633
+ 4. Sort alphabetically and join with `, ` separator
634
+ 5. Return as dynamic message
635
+
636
+ **Use case**: Displayed in widget chrome/frame or layout editors.
637
+
638
+ **Example**: If attribute exists in multiple type definitions with different names, shows all: "Status, State"
639
+
640
+ ---
641
+
642
+ ## Implementation Details
643
+
644
+ ### Widget Definition Properties
645
+
646
+ | Property | Value |
647
+ |----------|-------|
648
+ | **Widget Kind** | `cf.platform.singleAttribute` |
649
+ | **Definition Class** | `SingleAttributeWidgetDefinition` |
650
+ | **Package** | `cf.cplace.platform.frontend.widgets` |
651
+ | **Icon** | `fa-pen-square` |
652
+ | **App** | `PlatformPlugin.INSTANCE().platformApp` |
653
+ | **Configuration Type** | `CONFIGURATION.TYPE` (11 attributes) |
654
+ | **Template** | `singleAttributeWidgetDefinition.htm` |
655
+ | **Widget Name (EN)** | "Single Attribute of a page" |
656
+ | **Widget Name (DE)** | "Einzelnes Attribut einer Seite" |
657
+
658
+ ---
659
+
660
+ ### Migration and Backward Compatibility
661
+
662
+ #### Attribute Name Migration
663
+
664
+ **Original Implementation** (pre-4.36):
665
+ - Only custom attributes supported
666
+ - Names stored unquoted in `UNQUOTED_ATTRIBUTE_NAME`
667
+ - Format: Simple name (e.g., `status`)
668
+
669
+ **Current Implementation** (since 4.36):
670
+ - Both custom and built-in attributes supported
671
+ - Names stored quoted in `ATTRIBUTE_NAME`
672
+ - Format: Fully qualified name (e.g., `cf.cplace.solution.status` or `name`)
673
+
674
+ **Migration Process** (`migrateWidgetConfiguration()`, line 398-429):
675
+
676
+ 1. Check if `ATTRIBUTE_NAME` is empty
677
+ 2. If empty, read `UNQUOTED_ATTRIBUTE_NAME`
678
+ 3. If unquoted name exists:
679
+ - If already quoted: Use as-is
680
+ - If unquoted: Convert using `CustomAttribute.getNameFromSimpleName()`
681
+ 4. Set `ATTRIBUTE_NAME` with converted value
682
+ 5. Clear `UNQUOTED_ATTRIBUTE_NAME`
683
+ 6. Log migration event
684
+
685
+ **Backward Compatibility**: `getAttributeName()` helper (line 347-357) checks both attributes, preferring the new one.
686
+
687
+ #### Alternative Label Migration
688
+
689
+ **Original**: `ALTERNATIVE_LABEL` (plain string)
690
+ **Current**: `LOCALIZED_ALTERNATIVE_LABEL` (LocalizedString)
691
+
692
+ **Migration**: Handled by `migrateUnlocalizedStringToLocalizedString()` (line 423-428)
693
+
694
+ ---
695
+
696
+ ### Permission and Security
697
+
698
+ #### Entity-Level Permissions
699
+
700
+ **Read Permission**: Required to view the widget and attribute value
701
+
702
+ **Edit Permission**: Required for in-place editing (when `IN_PLACE_EDITING` is enabled)
703
+
704
+ **Attribute-Level Permissions**: Attributes may have additional read/write restrictions based on type definition
705
+
706
+ #### Attribute Hiding Extensions
707
+
708
+ **Pro-Code Extension Point**: `HideAttributeInGroupedAttributesWidget`
709
+
710
+ **Purpose**: Allow custom code to hide attributes based on business logic
711
+
712
+ **Evaluation Points**:
713
+ 1. In `showAttribute()` (line 626): During template rendering
714
+ 2. In `shouldShowAttributeValue()` (line 882-885): During state generation
715
+
716
+ **Implementation**:
717
+ ```java
718
+ if (HideAttributeInGroupedAttributesWidget.shouldHide(feature, embeddingEntity)) {
719
+ return "";
720
+ }
721
+ ```
722
+
723
+ ---
724
+
725
+ ### State Management
726
+
727
+ #### Widget State Object
728
+
729
+ **Class**: `SingleAttributeWidgetState` (DTO)
730
+
731
+ **Generated by**: `getWidgetState()` (line 803-864)
732
+
733
+ **State Properties**:
734
+ - `targetEntityUid`: UID of entity whose attribute is shown
735
+ - `embeddingEntityUid`: UID of page where widget is embedded
736
+ - `widgetId`: Unique widget identifier
737
+ - `attributeName`: Fully qualified attribute name
738
+ - `withValue`: Display value flag
739
+ - `withLabel`: Display label flag
740
+ - `alternativeLabel`: Custom label text (or null)
741
+ - `noInPlaceEditing`: Inverted `IN_PLACE_EDITING` flag
742
+ - `reload`: `RELOAD_AFTER_CHANGE` flag
743
+ - `singleColumn`: Layout mode
744
+ - `parentWidgetId`: ID of parent Attributes Group widget (or null)
745
+ - `invalidConfigurationMessage`: Error message if incomplete (or null)
746
+ - `showAttribute`: Result of visibility evaluation
747
+ - `attributeValue`: Reserved (currently null)
748
+
749
+ **Usage**:
750
+ - **New Frontend**: Wrapped in `SingleAttributeWidgetComponentInputs` and serialized to JSON
751
+ - **Legacy Frontend**: Partial state (only `reloadAfterChange`, `attributeParameterName`, `widgetId`) serialized to JSON
752
+
753
+ ---
754
+
755
+ ### Thread-Local Context
756
+
757
+ **Purpose**: Prevent infinite recursion when attributes reference each other
758
+
759
+ **Implementation**: `threadLocalNestedPrintingContext` (line 514-521)
760
+
761
+ **Context Class**: `NestedPrintingContext` with `Set<String> idsForCyclePrevention`
762
+
763
+ **Usage** (in `showAttribute()`):
764
+ 1. Build ID: `targetEntity.uid + '/' + attributeName`
765
+ 2. Check if ID already in set → Return error
766
+ 3. Add ID to set
767
+ 4. Render attribute
768
+ 5. Remove ID from set
769
+
770
+ **Example Cycle**:
771
+ - Task A displays project attribute
772
+ - Project widget displays "recent task" attribute
773
+ - Recent task is Task A
774
+ - Without cycle prevention: Infinite loop
775
+ - With cycle prevention: Returns `configurationError` message
776
+
777
+ ---
778
+
779
+ ### Dynamic Attribute Enumeration
780
+
781
+ #### AttributeNameEnumerationProvider
782
+
783
+ **Class**: `AttributeNameEnumerationProvider` (line 109-164)
784
+
785
+ **Extends**: `DynamicEnumerationProvider.DynamicStringEnumerationProvider`
786
+
787
+ **Purpose**: Populate attribute dropdown in widget configuration based on target entity type
788
+
789
+ **Method**: `getStringEnumOptions()` (line 113-127)
790
+
791
+ **Process**:
792
+ 1. Verify owner entity is a `WidgetConfiguration`
793
+ 2. Get target type definitions using `getTargetTypeDefinitions()`
794
+ 3. Collect custom attribute options
795
+ 4. Collect built-in attribute options
796
+ 5. Sort and return combined list
797
+
798
+ **Custom Attributes** (`getCustomStringEnumOptions()`, line 129-144):
799
+ - Iterate through type definition's attribute definitions
800
+ - Extract simple name from `_name().get()`
801
+ - Convert to fully qualified name using `CustomAttribute.getNameFromSimpleName()`
802
+ - Create option with name and localized display name
803
+ - Use `Set` to deduplicate across multiple type definitions
804
+
805
+ **Built-in Attributes** (`getBuiltinStringEnumOptions()`, line 146-157):
806
+ - Get prototype entity from type definition
807
+ - Iterate through `getFeaturesInSearchIndexExceptDummyAttributes()`
808
+ - Create option with feature name and localized label
809
+ - Use `Set` to deduplicate
810
+
811
+ **Sorting**: `sortOptions()` (line 159-163) sorts by display name using `DynamicEnumerationOption.SORT_BY_NAME`
812
+
813
+ ---
814
+
815
+ ## Code References
816
+
817
+ ### Core Files
818
+
819
+ | Component | Path | Line Range |
820
+ |-----------|------|------------|
821
+ | **Widget Definition** | `cf.cplace.platform/src/main/java/cf/cplace/platform/frontend/widgets/SingleAttributeWidgetDefinition.java` | 83-900 |
822
+ | **Template** | `cf.cplace.platform/src/main/resources/cf/cplace/platform/frontend/widgets/singleAttributeWidgetDefinition.htm` | 1-2 |
823
+ | **English Messages** | `cf.cplace.platform/src/main/resources/cf/cplace/platform/messages_en.properties` | 4306-4323 |
824
+ | **German Messages** | `cf.cplace.platform/src/main/resources/cf/cplace/platform/messages_de.properties` | 4306-4323 |
825
+
826
+ ### Key Classes and Methods
827
+
828
+ **Configuration**:
829
+ - `CONFIGURATION.TYPE`: Line 284-299
830
+ - `getConfigurationType()`: Line 324-327
831
+ - `showPropertyInEdit()`: Line 432-451
832
+ - `isConfigurationComplete()`: Line 360-392
833
+ - `migrateWidgetConfiguration()`: Line 398-429
834
+
835
+ **Rendering**:
836
+ - `getContentSubstitution()`: Line 330-333
837
+ - `widgetSubstitution()`: Line 527-719
838
+ - `putSubstitutions()`: Line 586-619
839
+ - `showAttribute()`: Line 621-694
840
+ - `getCleanValueRepresentation()`: Line 721-751
841
+
842
+ **Utility**:
843
+ - `getAttributeName()`: Line 347-357
844
+ - `getTarget()`: Line 454-469
845
+ - `getTargetTypeDefinitions()`: Line 480-507
846
+ - `AttributeNameEnumerationProvider`: Line 109-164
847
+
848
+ **State Management**:
849
+ - `getWidgetState()`: Line 803-864
850
+ - `shouldShowAttributeValue()`: Line 873-899
851
+
852
+ ---
853
+
854
+ ## Internationalization
855
+
856
+ ### English Translations
857
+
858
+ **Widget**:
859
+ - `name`: "Single Attribute of a page"
860
+
861
+ **Configuration Labels**:
862
+ - `entity_name`: "Page"
863
+ - `entity_shortHelp`: "The page of which an attribute is shown. Leave empty for current page."
864
+ - `attributeName_name`: "Attribute name"
865
+ - `withLabel_name`: "Show attribute name"
866
+ - `withValue_name`: "Show attribute value"
867
+ - `withValue_shortHelp`: "Determines if the attribute value should be shown. If not, the parameter 'Show attribute name' has to be set, and only the localized display name of the attribute will be shown."
868
+ - `inPlaceEditing_name`: "Allow in-place editing"
869
+ - `singleColumn_name`: "Show attribute in single column"
870
+ - `singleColumn_shortHelp`: "Only is relevant if the attribute name is also shown."
871
+ - `alternativeLabel_name`: "Alternative Attribute Label"
872
+ - `useParent_name`: "Use parent page"
873
+ - `reloadAfterChange_name`: "Reload grouped widget after attribute change"
874
+ - `showAttributeScript_name`: "Show attribute"
875
+ - `showAttributeScript_shortHelp`: "A cplaceJS script to determine if the attribute should be shown. If the provided script is not empty AND if it evaluates to false, the attribute will be hidden. Use 'targetEntity' to access the target entity and use 'embeddingPage' to access the current embedding entity."
876
+
877
+ **Messages**:
878
+ - `entityNotFound`: "No page selected"
879
+ - `configurationError`: "Configuration error"
880
+ - `configuration_error`: "Configuration error"
881
+
882
+ ### German Translations
883
+
884
+ **Widget**:
885
+ - `name`: "Einzelnes Attribut einer Seite"
886
+
887
+ **Configuration Labels**:
888
+ - `entity_name`: "Seite"
889
+ - `entity_shortHelp`: "Die Seite, deren Attribut angezeigt werden soll. Lassen Sie den Wert leer, um die aktuelle Seite zu verwenden."
890
+ - `attributeName_name`: "Attributname"
891
+ - `withLabel_name`: "Auch den Attributnamen anzeigen"
892
+ - `withValue_name`: "Attributwert anzeigen"
893
+ - `withValue_shortHelp`: "Bestimmt, ob der Wert des Attributs angezeigt werden soll. Wenn nein, muss die Option 'Auch den Attributnamen anzeigen' gesetzt sein, und es wird nur der Anzeigename des Attributs ausgegeben."
894
+ - `inPlaceEditing_name`: "Bearbeitung zulassen"
895
+ - `singleColumn_name`: "Attribut einspaltig anzeigen"
896
+ - `singleColumn_shortHelp`: "Attribut einspaltig anzeigen hat nur Auswirkungen wenn Attributname angezeigt wird."
897
+ - `alternativeLabel_name`: "Alternatives Attributlabel"
898
+ - `useParent_name`: "Übergeordnete Seite verwenden"
899
+ - `reloadAfterChange_name`: "Gruppierungswidget bei Wertänderung des Attributs neu laden"
900
+ - `showAttributeScript_name`: "Attribut anzeigen"
901
+ - `showAttributeScript_shortHelp`: "Ein cplaceJS Skript um zu bestimmen ob das Attribut angezeigt werden soll oder nicht. Wenn das angegebene Skript nicht leer ist UND wenn dessen Ergebnis false liefert, wird das Attribut versteckt. Über 'targetEntity' kann auf die aktuell ausgewählte Entität zugegriffen werden, und 'embeddingPage' kann verwendet werden, um auf die aktuelle Einbettungseinheit Entität."
902
+
903
+ ---
904
+
905
+ ## Architecture and Design Patterns
906
+
907
+ ### Design Philosophy
908
+
909
+ The `cf.platform.singleAttribute` widget embodies the "flexible building block" principle:
910
+
911
+ - **Composability**: Designed to be embedded within larger layouts (Attributes Group widgets)
912
+ - **Configurability**: Extensive parameters for precise control
913
+ - **Reusability**: Same widget serves multiple use cases through configuration
914
+ - **Separation of Concerns**: Rendering logic separated into template, state, and helper methods
915
+
916
+ ### Template Pattern Usage
917
+
918
+ The widget uses cplace's template system with substitution pattern:
919
+
920
+ ```
921
+ WidgetTemplateSubstitution
922
+ → putSubstitutions()
923
+ → Conditional: useNewFrontend
924
+ → PrintSubstitution: state / singleAttributeWidgetState
925
+ → PrintSubstitution: value (calls showAttribute())
926
+ → PrintSubstitution: internalName
927
+ ```
928
+
929
+ **showAttribute() Call Chain**:
930
+ ```
931
+ showAttribute()
932
+ → FunctionsHelper.proxy("show", feature, parameters)
933
+ → ShowControlSubstitution
934
+ → Template rendering of attribute control
935
+ ```
936
+
937
+ ### State Object Pattern
938
+
939
+ The widget implements a clear separation between configuration and runtime state:
940
+
941
+ **Configuration** (persisted):
942
+ - Stored in `WidgetConfiguration` entity
943
+ - 11 configuration attributes
944
+ - Editable by users with permissions
945
+
946
+ **Runtime State** (computed):
947
+ - Generated by `getWidgetState()` at render time
948
+ - Combines configuration, entity data, and evaluation results
949
+ - Passed to frontend as JSON
950
+
951
+ **Benefits**:
952
+ - Clean architecture
953
+ - Frontend can be stateless
954
+ - Easy to debug and test
955
+
956
+ ### Cycle Prevention Pattern
957
+
958
+ Uses thread-local storage to prevent infinite recursion:
959
+
960
+ ```java
961
+ ThreadLocalNestingContext<NestedPrintingContext>
962
+ → createContext() → new NestedPrintingContext()
963
+ → idsForCyclePrevention: Set<String>
964
+ ```
965
+
966
+ **Pattern**:
967
+ 1. Store currently rendering entity+attribute combinations in thread-local set
968
+ 2. Check before rendering each attribute
969
+ 3. Clean up after rendering
970
+
971
+ **Use case**: Prevents infinite loops when attributes reference each other in complex object graphs.
972
+
973
+ ### Dynamic Enumeration Pattern
974
+
975
+ **Challenge**: Attribute dropdown options depend on target entity type, which varies per widget instance
976
+
977
+ **Solution**: `DynamicEnumerationProvider` pattern
978
+ - Provider class registered in configuration
979
+ - Invoked at runtime when widget is configured
980
+ - Analyzes current context (widget configuration, embedding entity)
981
+ - Returns type-specific options
982
+
983
+ **Benefits**:
984
+ - Type-safe attribute selection
985
+ - Prevents configuration errors
986
+ - Better UX with searchable dropdowns
987
+
988
+ ---
989
+
990
+ ## Related Research Documents
991
+
992
+ - **AttributesWidgetDefinition**: `/Users/thomasbuechner/dev/repos/cplace-ga-products/specs/2026-01-16/cf-platform-attributes/research.md`
993
+ - **AttributesGroupWidgetDefinition**: `/Users/thomasbuechner/dev/repos/cplace-ga-products/specs/2026-01-16/cf-cplace-platform-attributesGroup/research.md`
994
+ - **ConnectedSingleAttributeWidgetDefinition**: `/Users/thomasbuechner/dev/repos/cplace-ga-products/specs/2026-01-16/cf-platform-connectedSingleAttribute/research.md`
995
+
996
+ ---
997
+
998
+ ## Key Takeaways
999
+
1000
+ 1. **Maximum Flexibility**: 11 configuration parameters provide fine-grained control over single attribute display
1001
+ 2. **Composable Design**: Intended to be embedded in Attributes Group widgets for complex layouts
1002
+ 3. **Conditional Logic**: cplaceJS script support enables dynamic, business-rule-driven UIs
1003
+ 4. **Migration Ready**: Handles legacy configurations and supports gradual frontend migration
1004
+ 5. **Type-Safe Configuration**: Dynamic enumeration ensures only valid attributes can be selected
1005
+ 6. **Edit Optimization**: In-place editing reduces user friction for frequent updates
1006
+ 7. **Multi-Language Support**: Localized alternative labels for international deployments
1007
+ 8. **Parent Navigation**: Hierarchical page structures supported via `USE_PARENT` flag
1008
+ 9. **Cycle Prevention**: Thread-local tracking prevents infinite recursion in complex object graphs
1009
+ 10. **Dual Frontend**: Supports both legacy and modern Angular architecture
1010
+
1011
+ ---
1012
+
1013
+ ## Recommendations for Documentation
1014
+
1015
+ ### Short Description
1016
+
1017
+ "Displays a single attribute from a page with flexible label, value, and editing options, including in-place editing and conditional visibility."
1018
+
1019
+ ### Use Case Summary
1020
+
1021
+ **Best suited for**:
1022
+ - Custom page layouts requiring precise attribute placement
1023
+ - In-place editing of specific attributes without form submission
1024
+ - Conditional attribute display based on business logic
1025
+ - Alternative or localized attribute labels
1026
+ - Building blocks within Attributes Group layouts
1027
+ - Parent page attribute display in hierarchical structures
1028
+
1029
+ **Consider alternatives when**:
1030
+ - All attributes need to be displayed → Use `cf.platform.attributes`
1031
+ - Complex multi-attribute layouts needed → Use `cf.cplace.platform.attributesGroup` (as container)
1032
+ - Table-connected dynamic display needed → Use `cf.platform.connectedSingleAttribute`
1033
+
1034
+ ### Configuration Guidance
1035
+
1036
+ **Essential Settings**:
1037
+ 1. **ATTRIBUTE_NAME** (required): Select which attribute to display
1038
+ 2. **WITH_LABEL** / **WITH_VALUE**: At least one must be enabled
1039
+
1040
+ **Common Configurations**:
1041
+
1042
+ **Standard Display**: Show label and value
1043
+ - `WITH_LABEL`: true
1044
+ - `WITH_VALUE`: true
1045
+ - `IN_PLACE_EDITING`: false
1046
+
1047
+ **Quick Edit**: Enable inline editing
1048
+ - `WITH_LABEL`: true
1049
+ - `WITH_VALUE`: true
1050
+ - `IN_PLACE_EDITING`: true
1051
+ - `RELOAD_AFTER_CHANGE`: true (if other widgets depend on this)
1052
+
1053
+ **Custom Label**: Use alternative label
1054
+ - `LOCALIZED_ALTERNATIVE_LABEL`: {"en": "Custom Name", "de": "Benutzerdefinierter Name"}
1055
+ - `WITH_LABEL`: true
1056
+ - `WITH_VALUE`: true
1057
+
1058
+ **Conditional Display**: Show/hide based on logic
1059
+ - `SHOW_ATTRIBUTE_SCRIPT`: cplaceJS code
1060
+ - Example: `return targetEntity.get('status') === 'Active';`
1061
+
1062
+ **Parent Navigation**: Display parent attribute
1063
+ - `USE_PARENT`: true
1064
+ - `ATTRIBUTE_NAME`: Attribute from parent entity
1065
+
1066
+ **Layout Options**:
1067
+ - `SINGLE_COLUMN`: true (full-width display when label is shown)
1068
+ - `SINGLE_COLUMN`: false (default two-column layout)
1069
+
1070
+ ---
1071
+
1072
+ ## Appendix: Configuration Matrix
1073
+
1074
+ ### All Configuration Parameters
1075
+
1076
+ | # | Parameter | Type | Default | Required | Description |
1077
+ |---|-----------|------|---------|----------|-------------|
1078
+ | 1 | `TARGET_ENTITY` | Page Reference | Current page | No | Page whose attribute is displayed |
1079
+ | 2 | `USE_PARENT` | Boolean | false | No | Use parent page instead of target |
1080
+ | 3 | `ATTRIBUTE_NAME` | String Enum | - | Yes | Attribute to display |
1081
+ | 4 | `WITH_LABEL` | Boolean | false | No* | Show attribute label |
1082
+ | 5 | `WITH_VALUE` | Boolean | true | No* | Show attribute value |
1083
+ | 6 | `LOCALIZED_ALTERNATIVE_LABEL` | Localized String | - | No | Custom label |
1084
+ | 7 | `IN_PLACE_EDITING` | Boolean | false | No | Enable inline editing |
1085
+ | 8 | `SINGLE_COLUMN` | Boolean | false | No | Full-width layout |
1086
+ | 9 | `RELOAD_AFTER_CHANGE` | Boolean | false | No | Reload parent widget after edit |
1087
+ | 10 | `SHOW_ATTRIBUTE_SCRIPT` | cplaceJS | - | No | Conditional visibility script |
1088
+ | 11 | `USE_NEW_FRONTEND` | Boolean | - | No | Use Angular component |
1089
+
1090
+ \* At least one of `WITH_LABEL` or `WITH_VALUE` must be true
1091
+
1092
+ ---
1093
+
1094
+ **End of Research Document**