@cratis/scene.blueprint.default 4.40.0 → 4.42.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 (251) hide show
  1. package/ComponentName.ts +9 -0
  2. package/defaultBlueprint.ts +1 -0
  3. package/defaultBlueprintComponents.ts +4 -1
  4. package/dist/cjs/ComponentName.js +3 -0
  5. package/dist/cjs/ComponentName.js.map +1 -1
  6. package/dist/cjs/defaultBlueprint.js +20 -1
  7. package/dist/cjs/defaultBlueprint.js.map +1 -1
  8. package/dist/cjs/defaultBlueprintComponentMetadata.js +11 -0
  9. package/dist/cjs/defaultBlueprintComponentMetadata.js.map +1 -1
  10. package/dist/cjs/defaultBlueprintComponents.js +17 -0
  11. package/dist/cjs/defaultBlueprintComponents.js.map +1 -1
  12. package/dist/cjs/foundation/ActionButton.js.map +1 -1
  13. package/dist/cjs/foundation/ActionButtonControl.js +46 -0
  14. package/dist/cjs/foundation/ActionButtonControl.js.map +1 -0
  15. package/dist/cjs/foundation/DialogFrame.js +196 -0
  16. package/dist/cjs/foundation/DialogFrame.js.map +1 -0
  17. package/dist/cjs/foundation/FormScreenBody.js +13 -3
  18. package/dist/cjs/foundation/FormScreenBody.js.map +1 -1
  19. package/dist/cjs/foundation/Notice.js +51 -0
  20. package/dist/cjs/foundation/Notice.js.map +1 -0
  21. package/dist/cjs/foundation/formModel.js +1 -0
  22. package/dist/cjs/foundation/formModel.js.map +1 -1
  23. package/dist/cjs/foundation/foundationComponentMetadata.js +22 -0
  24. package/dist/cjs/foundation/foundationComponentMetadata.js.map +1 -1
  25. package/dist/cjs/foundation/foundationDescriptors.js +89 -0
  26. package/dist/cjs/foundation/foundationDescriptors.js.map +1 -1
  27. package/dist/cjs/foundation/foundationSamples.js +29 -0
  28. package/dist/cjs/foundation/foundationSamples.js.map +1 -1
  29. package/dist/cjs/foundation/foundationStrings.js +3 -1
  30. package/dist/cjs/foundation/foundationStrings.js.map +1 -1
  31. package/dist/cjs/foundation/templates/boardScreenTemplate.js +76 -0
  32. package/dist/cjs/foundation/templates/boardScreenTemplate.js.map +1 -0
  33. package/dist/cjs/foundation/templates/dashboardScreenTemplate.js +128 -0
  34. package/dist/cjs/foundation/templates/dashboardScreenTemplate.js.map +1 -0
  35. package/dist/cjs/foundation/templates/dialogTemplates.js +254 -0
  36. package/dist/cjs/foundation/templates/dialogTemplates.js.map +1 -0
  37. package/dist/cjs/foundation/templates/formScreenTemplate.js +71 -0
  38. package/dist/cjs/foundation/templates/formScreenTemplate.js.map +1 -0
  39. package/dist/cjs/foundation/templates/index.js +57 -0
  40. package/dist/cjs/foundation/templates/index.js.map +1 -0
  41. package/dist/cjs/foundation/templates/listScreenTemplate.js +124 -0
  42. package/dist/cjs/foundation/templates/listScreenTemplate.js.map +1 -0
  43. package/dist/cjs/foundation/templates/masterDetailScreenTemplate.js +79 -0
  44. package/dist/cjs/foundation/templates/masterDetailScreenTemplate.js.map +1 -0
  45. package/dist/cjs/foundation/templates/recordPageTemplate.js +137 -0
  46. package/dist/cjs/foundation/templates/recordPageTemplate.js.map +1 -0
  47. package/dist/cjs/foundation/templates/stateScreenTemplates.js +252 -0
  48. package/dist/cjs/foundation/templates/stateScreenTemplates.js.map +1 -0
  49. package/dist/cjs/foundation/templates/templateParts.js +38 -0
  50. package/dist/cjs/foundation/templates/templateParts.js.map +1 -0
  51. package/dist/cjs/foundation/templates/wizardScreenTemplate.js +95 -0
  52. package/dist/cjs/foundation/templates/wizardScreenTemplate.js.map +1 -0
  53. package/dist/cjs/foundation/templates/workspaceScreenTemplate.js +62 -0
  54. package/dist/cjs/foundation/templates/workspaceScreenTemplate.js.map +1 -0
  55. package/dist/cjs/gallery/GalleryDialogPreview.js +62 -0
  56. package/dist/cjs/gallery/GalleryDialogPreview.js.map +1 -0
  57. package/dist/cjs/gallery/GalleryScreenPreview.js +78 -4
  58. package/dist/cjs/gallery/GalleryScreenPreview.js.map +1 -1
  59. package/dist/cjs/gallery/applicationChrome.js +18 -1
  60. package/dist/cjs/gallery/applicationChrome.js.map +1 -1
  61. package/dist/cjs/gallery/composeScreen.js +5 -3
  62. package/dist/cjs/gallery/composeScreen.js.map +1 -1
  63. package/dist/cjs/gallery/dialogTemplates.js +41 -36
  64. package/dist/cjs/gallery/dialogTemplates.js.map +1 -1
  65. package/dist/cjs/gallery/screens.js +87 -3
  66. package/dist/cjs/gallery/screens.js.map +1 -1
  67. package/dist/cjs/index.js +61 -5
  68. package/dist/cjs/index.js.map +1 -1
  69. package/dist/esm/ComponentName.d.ts +3 -0
  70. package/dist/esm/ComponentName.d.ts.map +1 -1
  71. package/dist/esm/ComponentName.js +3 -0
  72. package/dist/esm/ComponentName.js.map +1 -1
  73. package/dist/esm/defaultBlueprint.d.ts.map +1 -1
  74. package/dist/esm/defaultBlueprint.js +20 -1
  75. package/dist/esm/defaultBlueprint.js.map +1 -1
  76. package/dist/esm/defaultBlueprintComponentMetadata.js +11 -0
  77. package/dist/esm/defaultBlueprintComponentMetadata.js.map +1 -1
  78. package/dist/esm/defaultBlueprintComponents.d.ts.map +1 -1
  79. package/dist/esm/defaultBlueprintComponents.js +17 -0
  80. package/dist/esm/defaultBlueprintComponents.js.map +1 -1
  81. package/dist/esm/foundation/ActionButton.d.ts +1 -1
  82. package/dist/esm/foundation/ActionButton.d.ts.map +1 -1
  83. package/dist/esm/foundation/ActionButton.js.map +1 -1
  84. package/dist/esm/foundation/ActionButtonControl.d.ts +3 -0
  85. package/dist/esm/foundation/ActionButtonControl.d.ts.map +1 -0
  86. package/dist/esm/foundation/ActionButtonControl.js +44 -0
  87. package/dist/esm/foundation/ActionButtonControl.js.map +1 -0
  88. package/dist/esm/foundation/DialogFrame.d.ts +14 -0
  89. package/dist/esm/foundation/DialogFrame.d.ts.map +1 -0
  90. package/dist/esm/foundation/DialogFrame.js +190 -0
  91. package/dist/esm/foundation/DialogFrame.js.map +1 -0
  92. package/dist/esm/foundation/FormScreenBody.d.ts.map +1 -1
  93. package/dist/esm/foundation/FormScreenBody.js +13 -3
  94. package/dist/esm/foundation/FormScreenBody.js.map +1 -1
  95. package/dist/esm/foundation/Notice.d.ts +3 -0
  96. package/dist/esm/foundation/Notice.d.ts.map +1 -0
  97. package/dist/esm/foundation/Notice.js +49 -0
  98. package/dist/esm/foundation/Notice.js.map +1 -0
  99. package/dist/esm/foundation/formModel.d.ts +2 -1
  100. package/dist/esm/foundation/formModel.d.ts.map +1 -1
  101. package/dist/esm/foundation/formModel.js +1 -0
  102. package/dist/esm/foundation/formModel.js.map +1 -1
  103. package/dist/esm/foundation/foundationComponentMetadata.d.ts.map +1 -1
  104. package/dist/esm/foundation/foundationComponentMetadata.js +22 -0
  105. package/dist/esm/foundation/foundationComponentMetadata.js.map +1 -1
  106. package/dist/esm/foundation/foundationDescriptors.d.ts.map +1 -1
  107. package/dist/esm/foundation/foundationDescriptors.js +89 -0
  108. package/dist/esm/foundation/foundationDescriptors.js.map +1 -1
  109. package/dist/esm/foundation/foundationSamples.d.ts.map +1 -1
  110. package/dist/esm/foundation/foundationSamples.js +29 -0
  111. package/dist/esm/foundation/foundationSamples.js.map +1 -1
  112. package/dist/esm/foundation/foundationStrings.d.ts +2 -0
  113. package/dist/esm/foundation/foundationStrings.d.ts.map +1 -1
  114. package/dist/esm/foundation/foundationStrings.js +3 -1
  115. package/dist/esm/foundation/foundationStrings.js.map +1 -1
  116. package/dist/esm/foundation/index.d.ts +4 -0
  117. package/dist/esm/foundation/index.d.ts.map +1 -1
  118. package/dist/esm/foundation/index.js +4 -0
  119. package/dist/esm/foundation/index.js.map +1 -1
  120. package/dist/esm/foundation/templates/boardScreenTemplate.d.ts +3 -0
  121. package/dist/esm/foundation/templates/boardScreenTemplate.d.ts.map +1 -0
  122. package/dist/esm/foundation/templates/boardScreenTemplate.js +74 -0
  123. package/dist/esm/foundation/templates/boardScreenTemplate.js.map +1 -0
  124. package/dist/esm/foundation/templates/dashboardScreenTemplate.d.ts +3 -0
  125. package/dist/esm/foundation/templates/dashboardScreenTemplate.d.ts.map +1 -0
  126. package/dist/esm/foundation/templates/dashboardScreenTemplate.js +126 -0
  127. package/dist/esm/foundation/templates/dashboardScreenTemplate.js.map +1 -0
  128. package/dist/esm/foundation/templates/dialogTemplates.d.ts +20 -0
  129. package/dist/esm/foundation/templates/dialogTemplates.d.ts.map +1 -0
  130. package/dist/esm/foundation/templates/dialogTemplates.js +243 -0
  131. package/dist/esm/foundation/templates/dialogTemplates.js.map +1 -0
  132. package/dist/esm/foundation/templates/formScreenTemplate.d.ts +3 -0
  133. package/dist/esm/foundation/templates/formScreenTemplate.d.ts.map +1 -0
  134. package/dist/esm/foundation/templates/formScreenTemplate.js +69 -0
  135. package/dist/esm/foundation/templates/formScreenTemplate.js.map +1 -0
  136. package/dist/esm/foundation/templates/index.d.ts +13 -0
  137. package/dist/esm/foundation/templates/index.d.ts.map +1 -0
  138. package/dist/esm/foundation/templates/index.js +27 -0
  139. package/dist/esm/foundation/templates/index.js.map +1 -0
  140. package/dist/esm/foundation/templates/listScreenTemplate.d.ts +3 -0
  141. package/dist/esm/foundation/templates/listScreenTemplate.d.ts.map +1 -0
  142. package/dist/esm/foundation/templates/listScreenTemplate.js +122 -0
  143. package/dist/esm/foundation/templates/listScreenTemplate.js.map +1 -0
  144. package/dist/esm/foundation/templates/masterDetailScreenTemplate.d.ts +3 -0
  145. package/dist/esm/foundation/templates/masterDetailScreenTemplate.d.ts.map +1 -0
  146. package/dist/esm/foundation/templates/masterDetailScreenTemplate.js +77 -0
  147. package/dist/esm/foundation/templates/masterDetailScreenTemplate.js.map +1 -0
  148. package/dist/esm/foundation/templates/recordPageTemplate.d.ts +3 -0
  149. package/dist/esm/foundation/templates/recordPageTemplate.d.ts.map +1 -0
  150. package/dist/esm/foundation/templates/recordPageTemplate.js +135 -0
  151. package/dist/esm/foundation/templates/recordPageTemplate.js.map +1 -0
  152. package/dist/esm/foundation/templates/stateScreenTemplates.d.ts +8 -0
  153. package/dist/esm/foundation/templates/stateScreenTemplates.d.ts.map +1 -0
  154. package/dist/esm/foundation/templates/stateScreenTemplates.js +245 -0
  155. package/dist/esm/foundation/templates/stateScreenTemplates.js.map +1 -0
  156. package/dist/esm/foundation/templates/templateParts.d.ts +6 -0
  157. package/dist/esm/foundation/templates/templateParts.d.ts.map +1 -0
  158. package/dist/esm/foundation/templates/templateParts.js +33 -0
  159. package/dist/esm/foundation/templates/templateParts.js.map +1 -0
  160. package/dist/esm/foundation/templates/wizardScreenTemplate.d.ts +3 -0
  161. package/dist/esm/foundation/templates/wizardScreenTemplate.d.ts.map +1 -0
  162. package/dist/esm/foundation/templates/wizardScreenTemplate.js +93 -0
  163. package/dist/esm/foundation/templates/wizardScreenTemplate.js.map +1 -0
  164. package/dist/esm/foundation/templates/workspaceScreenTemplate.d.ts +3 -0
  165. package/dist/esm/foundation/templates/workspaceScreenTemplate.d.ts.map +1 -0
  166. package/dist/esm/foundation/templates/workspaceScreenTemplate.js +60 -0
  167. package/dist/esm/foundation/templates/workspaceScreenTemplate.js.map +1 -0
  168. package/dist/esm/gallery/FoundationDialogs.stories.d.ts +35 -0
  169. package/dist/esm/gallery/FoundationDialogs.stories.d.ts.map +1 -0
  170. package/dist/esm/gallery/FoundationDialogs.stories.js +38 -0
  171. package/dist/esm/gallery/FoundationDialogs.stories.js.map +1 -0
  172. package/dist/esm/gallery/GalleryDialogPreview.d.ts +17 -0
  173. package/dist/esm/gallery/GalleryDialogPreview.d.ts.map +1 -0
  174. package/dist/esm/gallery/GalleryDialogPreview.js +59 -0
  175. package/dist/esm/gallery/GalleryDialogPreview.js.map +1 -0
  176. package/dist/esm/gallery/GalleryScreenPreview.d.ts +13 -2
  177. package/dist/esm/gallery/GalleryScreenPreview.d.ts.map +1 -1
  178. package/dist/esm/gallery/GalleryScreenPreview.js +77 -5
  179. package/dist/esm/gallery/GalleryScreenPreview.js.map +1 -1
  180. package/dist/esm/gallery/applicationChrome.d.ts.map +1 -1
  181. package/dist/esm/gallery/applicationChrome.js +18 -1
  182. package/dist/esm/gallery/applicationChrome.js.map +1 -1
  183. package/dist/esm/gallery/composeScreen.d.ts.map +1 -1
  184. package/dist/esm/gallery/composeScreen.js +5 -3
  185. package/dist/esm/gallery/composeScreen.js.map +1 -1
  186. package/dist/esm/gallery/dialogTemplates.d.ts.map +1 -1
  187. package/dist/esm/gallery/dialogTemplates.js +42 -37
  188. package/dist/esm/gallery/dialogTemplates.js.map +1 -1
  189. package/dist/esm/gallery/index.d.ts +1 -0
  190. package/dist/esm/gallery/index.d.ts.map +1 -1
  191. package/dist/esm/gallery/index.js +1 -0
  192. package/dist/esm/gallery/index.js.map +1 -1
  193. package/dist/esm/gallery/screens.d.ts.map +1 -1
  194. package/dist/esm/gallery/screens.js +87 -3
  195. package/dist/esm/gallery/screens.js.map +1 -1
  196. package/dist/esm/index.js +17 -1
  197. package/dist/esm/index.js.map +1 -1
  198. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  199. package/foundation/ActionButton.tsx +1 -1
  200. package/foundation/ActionButtonControl.tsx +37 -0
  201. package/foundation/DialogFrame.tsx +138 -0
  202. package/foundation/FormScreenBody.tsx +6 -3
  203. package/foundation/Notice.tsx +33 -0
  204. package/foundation/formModel.ts +1 -0
  205. package/foundation/foundationComponentMetadata.ts +3 -0
  206. package/foundation/foundationDescriptors.ts +41 -0
  207. package/foundation/foundationSamples.ts +3 -0
  208. package/foundation/foundationStrings.ts +2 -0
  209. package/foundation/index.ts +4 -0
  210. package/foundation/templates/boardScreenTemplate.ts +28 -0
  211. package/foundation/templates/dashboardScreenTemplate.ts +37 -0
  212. package/foundation/templates/dialogTemplates.ts +114 -0
  213. package/foundation/templates/formScreenTemplate.ts +28 -0
  214. package/foundation/templates/index.ts +28 -0
  215. package/foundation/templates/listScreenTemplate.ts +37 -0
  216. package/foundation/templates/masterDetailScreenTemplate.ts +28 -0
  217. package/foundation/templates/recordPageTemplate.ts +36 -0
  218. package/foundation/templates/stateScreenTemplates.ts +107 -0
  219. package/foundation/templates/templateParts.ts +30 -0
  220. package/foundation/templates/wizardScreenTemplate.ts +33 -0
  221. package/foundation/templates/workspaceScreenTemplate.ts +27 -0
  222. package/gallery/FoundationDialogs.stories.tsx +74 -0
  223. package/gallery/GalleryDialogPreview.tsx +68 -0
  224. package/gallery/GalleryScreenPreview.tsx +64 -5
  225. package/gallery/applicationChrome.ts +6 -1
  226. package/gallery/composeScreen.ts +4 -2
  227. package/gallery/dialogTemplates.ts +22 -17
  228. package/gallery/index.ts +1 -0
  229. package/gallery/screens.ts +18 -2
  230. package/package.json +10 -8
  231. package/sampleData/foundation-en.json +661 -0
  232. package/shell/layout.css +219 -0
  233. package/thumbnails/BoardScreen.svg +15 -0
  234. package/thumbnails/ConfirmDialog.svg +12 -0
  235. package/thumbnails/DashboardScreen.svg +18 -0
  236. package/thumbnails/DetailDialog.svg +11 -0
  237. package/thumbnails/ErrorScreen.svg +11 -0
  238. package/thumbnails/FilterDialog.svg +16 -0
  239. package/thumbnails/ForbiddenScreen.svg +10 -0
  240. package/thumbnails/FormDialog.svg +12 -0
  241. package/thumbnails/FormScreen.svg +14 -0
  242. package/thumbnails/ListScreen.svg +16 -0
  243. package/thumbnails/LoginScreen.svg +12 -0
  244. package/thumbnails/LookupDialog.svg +13 -0
  245. package/thumbnails/MasterDetailScreen.svg +22 -0
  246. package/thumbnails/NotFoundScreen.svg +9 -0
  247. package/thumbnails/QuickCreateDialog.svg +12 -0
  248. package/thumbnails/RecordPage.svg +17 -0
  249. package/thumbnails/SideSheet.svg +13 -0
  250. package/thumbnails/WizardScreen.svg +16 -0
  251. package/thumbnails/WorkspaceScreen.svg +12 -0
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ var scene_model = require('@cratis/scene.model');
4
+ var flowBuilders = require('../../layouts/flowBuilders.js');
5
+ var templateParts = require('./templateParts.js');
6
+
7
+ // Copyright (c) Cratis. All rights reserved.
8
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
9
+ /**
10
+ * The form: titled sections of fields in a one-to-three column grid, validated, with Save, Save and new and Cancel. One template serves create, edit, read-only
11
+ * and settings (a save for each section) by its mode, and warns before unsaved changes are lost.
12
+ */ const formScreenTemplate = {
13
+ name: 'FormScreen',
14
+ fitsSlot: 'content',
15
+ slots: [
16
+ {
17
+ name: 'header'
18
+ },
19
+ {
20
+ name: 'body'
21
+ },
22
+ {
23
+ name: 'actions'
24
+ }
25
+ ],
26
+ arrangement: {
27
+ root: flowBuilders.column([
28
+ flowBuilders.slotLeaf('header'),
29
+ flowBuilders.slotLeaf('body'),
30
+ flowBuilders.slotLeaf('actions')
31
+ ], 16),
32
+ overrides: [
33
+ {
34
+ width: scene_model.WidthSizeClass.Compact,
35
+ root: flowBuilders.column([
36
+ flowBuilders.slotLeaf('header'),
37
+ flowBuilders.slotLeaf('body'),
38
+ flowBuilders.slotLeaf('actions')
39
+ ], 16)
40
+ }
41
+ ]
42
+ },
43
+ content: {
44
+ header: [
45
+ templateParts.component('form-header', 'pageHeader', {
46
+ title: 'New account',
47
+ subtitle: 'Fields marked * are required'
48
+ })
49
+ ],
50
+ body: [
51
+ templateParts.component('form-body', 'formScreenBody', {
52
+ mode: 'create',
53
+ sections: templateParts.fromQuery('RecordSections'),
54
+ values: templateParts.fromQuery('RecordValues', '0'),
55
+ errors: templateParts.fromQuery('FormErrors', '0')
56
+ })
57
+ ],
58
+ actions: []
59
+ },
60
+ displayName: 'Form',
61
+ description: 'Sections of validated fields with Save, Save and new, Cancel and an unsaved-changes guard.',
62
+ metadata: {
63
+ ...templateParts.foundationTemplateProvenance,
64
+ type: 'Form',
65
+ category: 'Foundation / Form',
66
+ thumbnail: templateParts.thumbnailOf('FormScreen')
67
+ }
68
+ };
69
+
70
+ exports.formScreenTemplate = formScreenTemplate;
71
+ //# sourceMappingURL=formScreenTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formScreenTemplate.js","sources":["../../../../foundation/templates/formScreenTemplate.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ScreenTemplate, WidthSizeClass } from '@cratis/scene.model';\nimport { column, grid, row, slotLeaf } from '../../layouts/flowBuilders';\nimport { component, foundationTemplateProvenance, fromQuery, thumbnailOf } from './templateParts';\n\n/**\n * The form: titled sections of fields in a one-to-three column grid, validated, with Save, Save and new and Cancel. One template serves create, edit, read-only\n * and settings (a save for each section) by its mode, and warns before unsaved changes are lost.\n */\nexport const formScreenTemplate: ScreenTemplate = {\n name: 'FormScreen',\n fitsSlot: 'content',\n slots: [{ name: 'header' }, { name: 'body' }, { name: 'actions' }],\n arrangement: {\n root: column([slotLeaf('header'), slotLeaf('body'), slotLeaf('actions')], 16),\n overrides: [{ width: WidthSizeClass.Compact, root: column([slotLeaf('header'), slotLeaf('body'), slotLeaf('actions')], 16) }],\n },\n content: {\n header: [component('form-header', 'pageHeader', { title: 'New account', subtitle: 'Fields marked * are required' })],\n body: [component('form-body', 'formScreenBody', { mode: 'create', sections: fromQuery('RecordSections'), values: fromQuery('RecordValues', '0'), errors: fromQuery('FormErrors', '0') })],\n actions: [],\n },\n displayName: 'Form',\n description: 'Sections of validated fields with Save, Save and new, Cancel and an unsaved-changes guard.',\n metadata: { ...foundationTemplateProvenance, type: 'Form', category: 'Foundation / Form', thumbnail: thumbnailOf('FormScreen') },\n};\n"],"names":["formScreenTemplate","name","fitsSlot","slots","arrangement","root","column","slotLeaf","overrides","width","WidthSizeClass","Compact","content","header","component","title","subtitle","body","mode","sections","fromQuery","values","errors","actions","displayName","description","metadata","foundationTemplateProvenance","type","category","thumbnail","thumbnailOf"],"mappings":";;;;;;AAAA;AACA;AAMA;;;UAIaA,kBAAAA,GAAqC;IAC9CC,IAAAA,EAAM,YAAA;IACNC,QAAAA,EAAU,SAAA;IACVC,KAAAA,EAAO;AAAC,QAAA;YAAEF,IAAAA,EAAM;AAAS,SAAA;AAAG,QAAA;YAAEA,IAAAA,EAAM;AAAO,SAAA;AAAG,QAAA;YAAEA,IAAAA,EAAM;AAAU;AAAE,KAAA;IAClEG,WAAAA,EAAa;AACTC,QAAAA,IAAAA,EAAMC,mBAAAA,CAAO;YAACC,qBAAAA,CAAS,QAAA,CAAA;YAAWA,qBAAAA,CAAS,MAAA,CAAA;YAASA,qBAAAA,CAAS,SAAA;SAAW,EAAE,EAAA,CAAA;QAC1EC,SAAAA,EAAW;AAAC,YAAA;AAAEC,gBAAAA,KAAAA,EAAOC,2BAAeC,OAAO;AAAEN,gBAAAA,IAAAA,EAAMC,mBAAAA,CAAO;oBAACC,qBAAAA,CAAS,QAAA,CAAA;oBAAWA,qBAAAA,CAAS,MAAA,CAAA;oBAASA,qBAAAA,CAAS,SAAA;iBAAW,EAAE,EAAA;AAAI;AAAE;AACjI,KAAA;IACAK,OAAAA,EAAS;QACLC,MAAAA,EAAQ;AAACC,YAAAA,uBAAAA,CAAU,eAAe,YAAA,EAAc;gBAAEC,KAAAA,EAAO,aAAA;gBAAeC,QAAAA,EAAU;AAA+B,aAAA;AAAG,SAAA;QACpHC,IAAAA,EAAM;AAACH,YAAAA,uBAAAA,CAAU,aAAa,gBAAA,EAAkB;gBAAEI,IAAAA,EAAM,QAAA;AAAUC,gBAAAA,QAAAA,EAAUC,uBAAAA,CAAU,gBAAA,CAAA;AAAmBC,gBAAAA,MAAAA,EAAQD,wBAAU,cAAA,EAAgB,GAAA,CAAA;AAAME,gBAAAA,MAAAA,EAAQF,wBAAU,YAAA,EAAc,GAAA;AAAK,aAAA;AAAG,SAAA;AACzLG,QAAAA,OAAAA,EAAS;AACb,KAAA;IACAC,WAAAA,EAAa,MAAA;IACbC,WAAAA,EAAa,4FAAA;IACbC,QAAAA,EAAU;AAAE,QAAA,GAAGC,0CAA4B;QAAEC,IAAAA,EAAM,MAAA;QAAQC,QAAAA,EAAU,mBAAA;AAAqBC,QAAAA,SAAAA,EAAWC,yBAAAA,CAAY,YAAA;AAAc;AACnI;;"}
@@ -0,0 +1,57 @@
1
+ 'use strict';
2
+
3
+ var boardScreenTemplate = require('./boardScreenTemplate.js');
4
+ var dashboardScreenTemplate = require('./dashboardScreenTemplate.js');
5
+ var formScreenTemplate = require('./formScreenTemplate.js');
6
+ var listScreenTemplate = require('./listScreenTemplate.js');
7
+ var masterDetailScreenTemplate = require('./masterDetailScreenTemplate.js');
8
+ var recordPageTemplate = require('./recordPageTemplate.js');
9
+ var wizardScreenTemplate = require('./wizardScreenTemplate.js');
10
+ var workspaceScreenTemplate = require('./workspaceScreenTemplate.js');
11
+ var templateParts = require('./templateParts.js');
12
+ var dialogTemplates = require('./dialogTemplates.js');
13
+ var stateScreenTemplates = require('./stateScreenTemplates.js');
14
+
15
+ // Copyright (c) Cratis. All rights reserved.
16
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
17
+ /** The foundation screen templates, in the order the manifest lists them. The workspace comes first: it is the container the master/detail nests in. */ const foundationScreenTemplates = [
18
+ workspaceScreenTemplate.workspaceScreenTemplate,
19
+ dashboardScreenTemplate.dashboardScreenTemplate,
20
+ listScreenTemplate.listScreenTemplate,
21
+ boardScreenTemplate.boardScreenTemplate,
22
+ masterDetailScreenTemplate.masterDetailScreenTemplate,
23
+ recordPageTemplate.recordPageTemplate,
24
+ formScreenTemplate.formScreenTemplate,
25
+ wizardScreenTemplate.wizardScreenTemplate
26
+ ];
27
+
28
+ exports.boardScreenTemplate = boardScreenTemplate.boardScreenTemplate;
29
+ exports.dashboardScreenTemplate = dashboardScreenTemplate.dashboardScreenTemplate;
30
+ exports.formScreenTemplate = formScreenTemplate.formScreenTemplate;
31
+ exports.listScreenTemplate = listScreenTemplate.listScreenTemplate;
32
+ exports.masterDetailScreenTemplate = masterDetailScreenTemplate.masterDetailScreenTemplate;
33
+ exports.recordPageTemplate = recordPageTemplate.recordPageTemplate;
34
+ exports.wizardScreenTemplate = wizardScreenTemplate.wizardScreenTemplate;
35
+ exports.workspaceScreenTemplate = workspaceScreenTemplate.workspaceScreenTemplate;
36
+ exports.component = templateParts.component;
37
+ exports.foundationTemplateProvenance = templateParts.foundationTemplateProvenance;
38
+ exports.fromQuery = templateParts.fromQuery;
39
+ exports.thumbnailOf = templateParts.thumbnailOf;
40
+ exports.actionButton = dialogTemplates.actionButton;
41
+ exports.closeDialogBehaviors = dialogTemplates.closeDialogBehaviors;
42
+ exports.closingDialog = dialogTemplates.closingDialog;
43
+ exports.dialogActions = dialogTemplates.dialogActions;
44
+ exports.dialogMetadata = dialogTemplates.dialogMetadata;
45
+ exports.filterDialogTemplate = dialogTemplates.filterDialogTemplate;
46
+ exports.foundationDialogTemplates = dialogTemplates.foundationDialogTemplates;
47
+ exports.lookupDialogTemplate = dialogTemplates.lookupDialogTemplate;
48
+ exports.quickCreateDialogTemplate = dialogTemplates.quickCreateDialogTemplate;
49
+ exports.sideSheetTemplate = dialogTemplates.sideSheetTemplate;
50
+ exports.errorScreenTemplate = stateScreenTemplates.errorScreenTemplate;
51
+ exports.forbiddenScreenTemplate = stateScreenTemplates.forbiddenScreenTemplate;
52
+ exports.foundationTemplateAliases = stateScreenTemplates.foundationTemplateAliases;
53
+ exports.loginScreenTemplate = stateScreenTemplates.loginScreenTemplate;
54
+ exports.notFoundScreenTemplate = stateScreenTemplates.notFoundScreenTemplate;
55
+ exports.stateScreenTemplates = stateScreenTemplates.stateScreenTemplates;
56
+ exports.foundationScreenTemplates = foundationScreenTemplates;
57
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../foundation/templates/index.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { boardScreenTemplate } from './boardScreenTemplate';\nimport { dashboardScreenTemplate } from './dashboardScreenTemplate';\nimport { formScreenTemplate } from './formScreenTemplate';\nimport { listScreenTemplate } from './listScreenTemplate';\nimport { masterDetailScreenTemplate } from './masterDetailScreenTemplate';\nimport { recordPageTemplate } from './recordPageTemplate';\nimport { wizardScreenTemplate } from './wizardScreenTemplate';\nimport { workspaceScreenTemplate } from './workspaceScreenTemplate';\n\nexport * from './templateParts';\nexport * from './dialogTemplates';\nexport * from './stateScreenTemplates';\nexport * from './boardScreenTemplate';\nexport * from './dashboardScreenTemplate';\nexport * from './formScreenTemplate';\nexport * from './listScreenTemplate';\nexport * from './masterDetailScreenTemplate';\nexport * from './recordPageTemplate';\nexport * from './wizardScreenTemplate';\nexport * from './workspaceScreenTemplate';\n\n/** The foundation screen templates, in the order the manifest lists them. The workspace comes first: it is the container the master/detail nests in. */\nexport const foundationScreenTemplates = [\n workspaceScreenTemplate, dashboardScreenTemplate, listScreenTemplate, boardScreenTemplate, masterDetailScreenTemplate, recordPageTemplate, formScreenTemplate, wizardScreenTemplate,\n];\n"],"names":["foundationScreenTemplates","workspaceScreenTemplate","dashboardScreenTemplate","listScreenTemplate","boardScreenTemplate","masterDetailScreenTemplate","recordPageTemplate","formScreenTemplate","wizardScreenTemplate"],"mappings":";;;;;;;;;;;;;;AAAA;AACA;AAuBA,yJACO,MAAMA,yBAAAA,GAA4B;AACrCC,IAAAA,+CAAAA;AAAyBC,IAAAA,+CAAAA;AAAyBC,IAAAA,qCAAAA;AAAoBC,IAAAA,uCAAAA;AAAqBC,IAAAA,qDAAAA;AAA4BC,IAAAA,qCAAAA;AAAoBC,IAAAA,qCAAAA;AAAoBC,IAAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,124 @@
1
+ 'use strict';
2
+
3
+ var scene_model = require('@cratis/scene.model');
4
+ var flowBuilders = require('../../layouts/flowBuilders.js');
5
+ var templateParts = require('./templateParts.js');
6
+
7
+ // Copyright (c) Cratis. All rights reserved.
8
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
9
+ /**
10
+ * The collection screen: search, filters, a list that is a table, grouped, or cards, a bar that appears when rows are selected, and a footer for paging.
11
+ * Search, sort, page and selection live in the address, so a link shares the list as it is. On a phone the table becomes cards.
12
+ */ const listScreenTemplate = {
13
+ name: 'ListScreen',
14
+ fitsSlot: 'content',
15
+ slots: [
16
+ {
17
+ name: 'header'
18
+ },
19
+ {
20
+ name: 'toolbar'
21
+ },
22
+ {
23
+ name: 'filters'
24
+ },
25
+ {
26
+ name: 'list'
27
+ },
28
+ {
29
+ name: 'bulkBar'
30
+ },
31
+ {
32
+ name: 'footer'
33
+ }
34
+ ],
35
+ arrangement: {
36
+ root: flowBuilders.column([
37
+ flowBuilders.slotLeaf('header'),
38
+ flowBuilders.row([
39
+ flowBuilders.slotLeaf('toolbar')
40
+ ], 8),
41
+ flowBuilders.slotLeaf('filters'),
42
+ flowBuilders.slotLeaf('bulkBar'),
43
+ flowBuilders.slotLeaf('list'),
44
+ flowBuilders.slotLeaf('footer')
45
+ ], 12),
46
+ overrides: [
47
+ {
48
+ width: scene_model.WidthSizeClass.Compact,
49
+ root: flowBuilders.column([
50
+ flowBuilders.slotLeaf('header'),
51
+ flowBuilders.slotLeaf('toolbar'),
52
+ flowBuilders.slotLeaf('filters'),
53
+ flowBuilders.slotLeaf('bulkBar'),
54
+ flowBuilders.slotLeaf('list'),
55
+ flowBuilders.slotLeaf('footer')
56
+ ], 16)
57
+ }
58
+ ]
59
+ },
60
+ content: {
61
+ header: [
62
+ templateParts.component('list-header', 'pageHeader', {
63
+ title: 'Deals',
64
+ subtitle: 'Every open and closed deal'
65
+ })
66
+ ],
67
+ toolbar: [
68
+ templateParts.component('list-search', 'globalSearch', {
69
+ placeholder: 'Search deals',
70
+ label: 'Search deals',
71
+ urlKey: 'dealsq'
72
+ }),
73
+ templateParts.component('list-views', 'savedViewsMenu', {
74
+ views: templateParts.fromQuery('DealViews'),
75
+ savePermission: 'enabled',
76
+ managePermission: 'enabled'
77
+ }),
78
+ templateParts.component('list-columns', 'columnChooser', {
79
+ columns: templateParts.fromQuery('DealColumnChoices')
80
+ })
81
+ ],
82
+ filters: [
83
+ templateParts.component('list-filter', 'filterBuilder', {
84
+ fields: templateParts.fromQuery('DealFilterFields')
85
+ })
86
+ ],
87
+ list: [
88
+ templateParts.component('list-records', 'dataList', {
89
+ label: 'Deals',
90
+ rows: templateParts.fromQuery('Deals'),
91
+ columns: templateParts.fromQuery('DealColumns'),
92
+ titleField: 'name',
93
+ selectionMode: 'multiple',
94
+ pageSize: 10,
95
+ rowActions: [
96
+ 'Open',
97
+ 'Archive'
98
+ ],
99
+ urlKey: 'deals'
100
+ })
101
+ ],
102
+ bulkBar: [
103
+ templateParts.component('list-bulk', 'bulkBar', {
104
+ selection: templateParts.fromQuery('DealSelection'),
105
+ actions: [
106
+ 'Assign',
107
+ 'Archive'
108
+ ]
109
+ })
110
+ ],
111
+ footer: []
112
+ },
113
+ displayName: 'List',
114
+ description: 'A searchable, filterable collection that is a table, grouped or cards, with a bulk bar for selected rows.',
115
+ metadata: {
116
+ ...templateParts.foundationTemplateProvenance,
117
+ type: 'List',
118
+ category: 'Foundation / List',
119
+ thumbnail: templateParts.thumbnailOf('ListScreen')
120
+ }
121
+ };
122
+
123
+ exports.listScreenTemplate = listScreenTemplate;
124
+ //# sourceMappingURL=listScreenTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listScreenTemplate.js","sources":["../../../../foundation/templates/listScreenTemplate.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ScreenTemplate, WidthSizeClass } from '@cratis/scene.model';\nimport { column, grid, row, slotLeaf } from '../../layouts/flowBuilders';\nimport { component, foundationTemplateProvenance, fromQuery, thumbnailOf } from './templateParts';\n\n/**\n * The collection screen: search, filters, a list that is a table, grouped, or cards, a bar that appears when rows are selected, and a footer for paging.\n * Search, sort, page and selection live in the address, so a link shares the list as it is. On a phone the table becomes cards.\n */\nexport const listScreenTemplate: ScreenTemplate = {\n name: 'ListScreen',\n fitsSlot: 'content',\n slots: [{ name: 'header' }, { name: 'toolbar' }, { name: 'filters' }, { name: 'list' }, { name: 'bulkBar' }, { name: 'footer' }],\n arrangement: {\n root: column([slotLeaf('header'), row([slotLeaf('toolbar')], 8), slotLeaf('filters'), slotLeaf('bulkBar'), slotLeaf('list'), slotLeaf('footer')], 12),\n overrides: [{ width: WidthSizeClass.Compact, root: column([slotLeaf('header'), slotLeaf('toolbar'), slotLeaf('filters'), slotLeaf('bulkBar'), slotLeaf('list'), slotLeaf('footer')], 16) }],\n },\n content: {\n header: [component('list-header', 'pageHeader', { title: 'Deals', subtitle: 'Every open and closed deal' })],\n toolbar: [\n component('list-search', 'globalSearch', { placeholder: 'Search deals', label: 'Search deals', urlKey: 'dealsq' }),\n component('list-views', 'savedViewsMenu', { views: fromQuery('DealViews'), savePermission: 'enabled', managePermission: 'enabled' }),\n component('list-columns', 'columnChooser', { columns: fromQuery('DealColumnChoices') }),\n ],\n filters: [component('list-filter', 'filterBuilder', { fields: fromQuery('DealFilterFields') })],\n list: [component('list-records', 'dataList', {\n label: 'Deals', rows: fromQuery('Deals'), columns: fromQuery('DealColumns'), titleField: 'name', selectionMode: 'multiple', pageSize: 10, rowActions: ['Open', 'Archive'], urlKey: 'deals',\n })],\n bulkBar: [component('list-bulk', 'bulkBar', { selection: fromQuery('DealSelection'), actions: ['Assign', 'Archive'] })],\n footer: [],\n },\n displayName: 'List',\n description: 'A searchable, filterable collection that is a table, grouped or cards, with a bulk bar for selected rows.',\n metadata: { ...foundationTemplateProvenance, type: 'List', category: 'Foundation / List', thumbnail: thumbnailOf('ListScreen') },\n};\n"],"names":["listScreenTemplate","name","fitsSlot","slots","arrangement","root","column","slotLeaf","row","overrides","width","WidthSizeClass","Compact","content","header","component","title","subtitle","toolbar","placeholder","label","urlKey","views","fromQuery","savePermission","managePermission","columns","filters","fields","list","rows","titleField","selectionMode","pageSize","rowActions","bulkBar","selection","actions","footer","displayName","description","metadata","foundationTemplateProvenance","type","category","thumbnail","thumbnailOf"],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ 'use strict';
2
+
3
+ var scene_model = require('@cratis/scene.model');
4
+ var flowBuilders = require('../../layouts/flowBuilders.js');
5
+ var templateParts = require('./templateParts.js');
6
+
7
+ // Copyright (c) Cratis. All rights reserved.
8
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
9
+ /**
10
+ * The master/detail: a list beside the selected record. The selection lives in the address, so a link opens a record and the back button returns to the
11
+ * list; on a phone the two become a navigation stack - the list, then the record with a way back. It lives in a module workspace's `moduleContent`.
12
+ */ const masterDetailScreenTemplate = {
13
+ name: 'MasterDetailScreen',
14
+ fitsSlot: 'WorkspaceScreen.moduleContent',
15
+ slots: [
16
+ {
17
+ name: 'list'
18
+ },
19
+ {
20
+ name: 'details'
21
+ }
22
+ ],
23
+ arrangement: {
24
+ root: flowBuilders.grid([
25
+ flowBuilders.slotLeaf('list'),
26
+ flowBuilders.slotLeaf('details', {
27
+ span: 2
28
+ })
29
+ ], 3, 16),
30
+ overrides: [
31
+ {
32
+ width: scene_model.WidthSizeClass.Compact,
33
+ root: flowBuilders.column([
34
+ flowBuilders.slotLeaf('list'),
35
+ flowBuilders.slotLeaf('details')
36
+ ], 16)
37
+ }
38
+ ]
39
+ },
40
+ content: {
41
+ list: [
42
+ templateParts.component('md-list', 'dataList', {
43
+ label: 'Accounts',
44
+ rows: templateParts.fromQuery('Deals'),
45
+ columns: templateParts.fromQuery('DealColumns'),
46
+ titleField: 'name',
47
+ selectionMode: 'single',
48
+ urlKey: 'md'
49
+ })
50
+ ],
51
+ details: [
52
+ templateParts.component('md-detail', 'tabSet', {
53
+ tabs: templateParts.fromQuery('RecordTabs'),
54
+ urlKey: 'mdtab',
55
+ label: 'Account'
56
+ })
57
+ ]
58
+ },
59
+ displayName: 'Master/detail with address selection',
60
+ description: 'A list beside the selected record that stacks into a navigation stack on a phone.',
61
+ outlets: [
62
+ {
63
+ name: 'master-detail.detail',
64
+ description: 'The selected record.',
65
+ accepts: [
66
+ 'Detail'
67
+ ]
68
+ }
69
+ ],
70
+ metadata: {
71
+ ...templateParts.foundationTemplateProvenance,
72
+ type: 'Workspace',
73
+ category: 'Foundation / Workspace',
74
+ thumbnail: templateParts.thumbnailOf('MasterDetailScreen')
75
+ }
76
+ };
77
+
78
+ exports.masterDetailScreenTemplate = masterDetailScreenTemplate;
79
+ //# sourceMappingURL=masterDetailScreenTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masterDetailScreenTemplate.js","sources":["../../../../foundation/templates/masterDetailScreenTemplate.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ScreenTemplate, WidthSizeClass } from '@cratis/scene.model';\nimport { column, grid, row, slotLeaf } from '../../layouts/flowBuilders';\nimport { component, foundationTemplateProvenance, fromQuery, thumbnailOf } from './templateParts';\n\n/**\n * The master/detail: a list beside the selected record. The selection lives in the address, so a link opens a record and the back button returns to the\n * list; on a phone the two become a navigation stack - the list, then the record with a way back. It lives in a module workspace's `moduleContent`.\n */\nexport const masterDetailScreenTemplate: ScreenTemplate = {\n name: 'MasterDetailScreen',\n fitsSlot: 'WorkspaceScreen.moduleContent',\n slots: [{ name: 'list' }, { name: 'details' }],\n arrangement: {\n root: grid([slotLeaf('list'), slotLeaf('details', { span: 2 })], 3, 16),\n overrides: [{ width: WidthSizeClass.Compact, root: column([slotLeaf('list'), slotLeaf('details')], 16) }],\n },\n content: {\n list: [component('md-list', 'dataList', { label: 'Accounts', rows: fromQuery('Deals'), columns: fromQuery('DealColumns'), titleField: 'name', selectionMode: 'single', urlKey: 'md' })],\n details: [component('md-detail', 'tabSet', { tabs: fromQuery('RecordTabs'), urlKey: 'mdtab', label: 'Account' })],\n },\n displayName: 'Master/detail with address selection',\n description: 'A list beside the selected record that stacks into a navigation stack on a phone.',\n outlets: [{ name: 'master-detail.detail', description: 'The selected record.', accepts: ['Detail'] }],\n metadata: { ...foundationTemplateProvenance, type: 'Workspace', category: 'Foundation / Workspace', thumbnail: thumbnailOf('MasterDetailScreen') },\n};\n"],"names":["masterDetailScreenTemplate","name","fitsSlot","slots","arrangement","root","grid","slotLeaf","span","overrides","width","WidthSizeClass","Compact","column","content","list","component","label","rows","fromQuery","columns","titleField","selectionMode","urlKey","details","tabs","displayName","description","outlets","accepts","metadata","foundationTemplateProvenance","type","category","thumbnail","thumbnailOf"],"mappings":";;;;;;AAAA;AACA;AAMA;;;UAIaA,0BAAAA,GAA6C;IACtDC,IAAAA,EAAM,oBAAA;IACNC,QAAAA,EAAU,+BAAA;IACVC,KAAAA,EAAO;AAAC,QAAA;YAAEF,IAAAA,EAAM;AAAO,SAAA;AAAG,QAAA;YAAEA,IAAAA,EAAM;AAAU;AAAE,KAAA;IAC9CG,WAAAA,EAAa;AACTC,QAAAA,IAAAA,EAAMC,iBAAAA,CAAK;YAACC,qBAAAA,CAAS,MAAA,CAAA;AAASA,YAAAA,qBAAAA,CAAS,SAAA,EAAW;gBAAEC,IAAAA,EAAM;AAAE,aAAA;AAAG,SAAA,EAAE,CAAA,EAAG,EAAA,CAAA;QACpEC,SAAAA,EAAW;AAAC,YAAA;AAAEC,gBAAAA,KAAAA,EAAOC,2BAAeC,OAAO;AAAEP,gBAAAA,IAAAA,EAAMQ,mBAAAA,CAAO;oBAACN,qBAAAA,CAAS,MAAA,CAAA;oBAASA,qBAAAA,CAAS,SAAA;iBAAW,EAAE,EAAA;AAAI;AAAE;AAC7G,KAAA;IACAO,OAAAA,EAAS;QACLC,IAAAA,EAAM;AAACC,YAAAA,uBAAAA,CAAU,WAAW,UAAA,EAAY;gBAAEC,KAAAA,EAAO,UAAA;AAAYC,gBAAAA,IAAAA,EAAMC,uBAAAA,CAAU,OAAA,CAAA;AAAUC,gBAAAA,OAAAA,EAASD,uBAAAA,CAAU,aAAA,CAAA;gBAAgBE,UAAAA,EAAY,MAAA;gBAAQC,aAAAA,EAAe,QAAA;gBAAUC,MAAAA,EAAQ;AAAK,aAAA;AAAG,SAAA;QACvLC,OAAAA,EAAS;AAACR,YAAAA,uBAAAA,CAAU,aAAa,QAAA,EAAU;AAAES,gBAAAA,IAAAA,EAAMN,uBAAAA,CAAU,YAAA,CAAA;gBAAeI,MAAAA,EAAQ,OAAA;gBAASN,KAAAA,EAAO;AAAU,aAAA;AAAG;AACrH,KAAA;IACAS,WAAAA,EAAa,sCAAA;IACbC,WAAAA,EAAa,mFAAA;IACbC,OAAAA,EAAS;AAAC,QAAA;YAAE3B,IAAAA,EAAM,sBAAA;YAAwB0B,WAAAA,EAAa,sBAAA;YAAwBE,OAAAA,EAAS;AAAC,gBAAA;AAAS;AAAC;AAAE,KAAA;IACrGC,QAAAA,EAAU;AAAE,QAAA,GAAGC,0CAA4B;QAAEC,IAAAA,EAAM,WAAA;QAAaC,QAAAA,EAAU,wBAAA;AAA0BC,QAAAA,SAAAA,EAAWC,yBAAAA,CAAY,oBAAA;AAAsB;AACrJ;;"}
@@ -0,0 +1,137 @@
1
+ 'use strict';
2
+
3
+ var scene_model = require('@cratis/scene.model');
4
+ var flowBuilders = require('../../layouts/flowBuilders.js');
5
+ var templateParts = require('./templateParts.js');
6
+
7
+ // Copyright (c) Cratis. All rights reserved.
8
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
9
+ /**
10
+ * The record page: a header, the key facts, then tabs (overview, related, files, history) with the record's main content, its related records and its
11
+ * activity, and an aside. The tabs are configurable by changing one property.
12
+ */ const recordPageTemplate = {
13
+ name: 'RecordPage',
14
+ fitsSlot: 'content',
15
+ slots: [
16
+ {
17
+ name: 'header'
18
+ },
19
+ {
20
+ name: 'summary'
21
+ },
22
+ {
23
+ name: 'tabs'
24
+ },
25
+ {
26
+ name: 'main'
27
+ },
28
+ {
29
+ name: 'related'
30
+ },
31
+ {
32
+ name: 'activity'
33
+ },
34
+ {
35
+ name: 'aside'
36
+ }
37
+ ],
38
+ arrangement: {
39
+ root: flowBuilders.column([
40
+ flowBuilders.slotLeaf('header'),
41
+ flowBuilders.slotLeaf('summary'),
42
+ flowBuilders.grid([
43
+ flowBuilders.column([
44
+ flowBuilders.slotLeaf('tabs'),
45
+ flowBuilders.slotLeaf('main'),
46
+ flowBuilders.slotLeaf('related'),
47
+ flowBuilders.slotLeaf('activity')
48
+ ], 16, {
49
+ span: 2
50
+ }),
51
+ flowBuilders.slotLeaf('aside')
52
+ ], 3, 16)
53
+ ], 16),
54
+ overrides: [
55
+ {
56
+ width: scene_model.WidthSizeClass.Compact,
57
+ root: flowBuilders.column([
58
+ flowBuilders.slotLeaf('header'),
59
+ flowBuilders.slotLeaf('summary'),
60
+ flowBuilders.slotLeaf('tabs'),
61
+ flowBuilders.slotLeaf('main'),
62
+ flowBuilders.slotLeaf('related'),
63
+ flowBuilders.slotLeaf('activity'),
64
+ flowBuilders.slotLeaf('aside')
65
+ ], 16)
66
+ }
67
+ ]
68
+ },
69
+ content: {
70
+ header: [
71
+ templateParts.component('record-header', 'pageHeader', {
72
+ title: templateParts.fromQuery('RecordValues', '0.name'),
73
+ subtitle: 'Account'
74
+ })
75
+ ],
76
+ summary: [
77
+ templateParts.component('record-value', 'statCard', {
78
+ label: 'Lifetime value',
79
+ value: templateParts.fromQuery('Kpis', '0.value'),
80
+ format: 'currency',
81
+ currency: 'USD'
82
+ }),
83
+ templateParts.component('record-status', 'statusChip', {
84
+ status: templateParts.fromQuery('Deals', '0.status'),
85
+ tone: 'info'
86
+ }),
87
+ templateParts.component('record-people', 'avatarStack', {
88
+ people: templateParts.fromQuery('People')
89
+ })
90
+ ],
91
+ tabs: [
92
+ templateParts.component('record-tabs', 'tabSet', {
93
+ tabs: templateParts.fromQuery('RecordTabs'),
94
+ urlKey: 'tab',
95
+ label: 'Record sections'
96
+ })
97
+ ],
98
+ main: [
99
+ templateParts.component('record-form', 'formScreenBody', {
100
+ mode: 'readOnly',
101
+ sections: templateParts.fromQuery('RecordSections'),
102
+ values: templateParts.fromQuery('RecordValues', '0')
103
+ })
104
+ ],
105
+ related: [
106
+ templateParts.component('record-related', 'dataList', {
107
+ label: 'Related deals',
108
+ rows: templateParts.fromQuery('Deals'),
109
+ columns: templateParts.fromQuery('DealColumns'),
110
+ titleField: 'name',
111
+ pageSize: 5
112
+ })
113
+ ],
114
+ activity: [
115
+ templateParts.component('record-activity', 'activityFeed', {
116
+ label: 'History',
117
+ entries: templateParts.fromQuery('Activity')
118
+ })
119
+ ],
120
+ aside: [
121
+ templateParts.component('record-checklist', 'checklistSection', {
122
+ sections: templateParts.fromQuery('Checklist')
123
+ })
124
+ ]
125
+ },
126
+ displayName: 'Record page',
127
+ description: 'One record: its key facts, tabbed sections, related records and history.',
128
+ metadata: {
129
+ ...templateParts.foundationTemplateProvenance,
130
+ type: 'Detail',
131
+ category: 'Foundation / Detail',
132
+ thumbnail: templateParts.thumbnailOf('RecordPage')
133
+ }
134
+ };
135
+
136
+ exports.recordPageTemplate = recordPageTemplate;
137
+ //# sourceMappingURL=recordPageTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordPageTemplate.js","sources":["../../../../foundation/templates/recordPageTemplate.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { ScreenTemplate, WidthSizeClass } from '@cratis/scene.model';\nimport { column, grid, row, slotLeaf } from '../../layouts/flowBuilders';\nimport { component, foundationTemplateProvenance, fromQuery, thumbnailOf } from './templateParts';\n\n/**\n * The record page: a header, the key facts, then tabs (overview, related, files, history) with the record's main content, its related records and its\n * activity, and an aside. The tabs are configurable by changing one property.\n */\nexport const recordPageTemplate: ScreenTemplate = {\n name: 'RecordPage',\n fitsSlot: 'content',\n slots: [{ name: 'header' }, { name: 'summary' }, { name: 'tabs' }, { name: 'main' }, { name: 'related' }, { name: 'activity' }, { name: 'aside' }],\n arrangement: {\n root: column([slotLeaf('header'), slotLeaf('summary'), grid([column([slotLeaf('tabs'), slotLeaf('main'), slotLeaf('related'), slotLeaf('activity')], 16, { span: 2 }), slotLeaf('aside')], 3, 16)], 16),\n overrides: [{ width: WidthSizeClass.Compact, root: column([slotLeaf('header'), slotLeaf('summary'), slotLeaf('tabs'), slotLeaf('main'), slotLeaf('related'), slotLeaf('activity'), slotLeaf('aside')], 16) }],\n },\n content: {\n header: [component('record-header', 'pageHeader', { title: fromQuery('RecordValues', '0.name'), subtitle: 'Account' })],\n summary: [\n component('record-value', 'statCard', { label: 'Lifetime value', value: fromQuery('Kpis', '0.value'), format: 'currency', currency: 'USD' }),\n component('record-status', 'statusChip', { status: fromQuery('Deals', '0.status'), tone: 'info' }),\n component('record-people', 'avatarStack', { people: fromQuery('People') }),\n ],\n tabs: [component('record-tabs', 'tabSet', { tabs: fromQuery('RecordTabs'), urlKey: 'tab', label: 'Record sections' })],\n main: [component('record-form', 'formScreenBody', { mode: 'readOnly', sections: fromQuery('RecordSections'), values: fromQuery('RecordValues', '0') })],\n related: [component('record-related', 'dataList', { label: 'Related deals', rows: fromQuery('Deals'), columns: fromQuery('DealColumns'), titleField: 'name', pageSize: 5 })],\n activity: [component('record-activity', 'activityFeed', { label: 'History', entries: fromQuery('Activity') })],\n aside: [component('record-checklist', 'checklistSection', { sections: fromQuery('Checklist') })],\n },\n displayName: 'Record page',\n description: 'One record: its key facts, tabbed sections, related records and history.',\n metadata: { ...foundationTemplateProvenance, type: 'Detail', category: 'Foundation / Detail', thumbnail: thumbnailOf('RecordPage') },\n};\n"],"names":["recordPageTemplate","name","fitsSlot","slots","arrangement","root","column","slotLeaf","grid","span","overrides","width","WidthSizeClass","Compact","content","header","component","title","fromQuery","subtitle","summary","label","value","format","currency","status","tone","people","tabs","urlKey","main","mode","sections","values","related","rows","columns","titleField","pageSize","activity","entries","aside","displayName","description","metadata","foundationTemplateProvenance","type","category","thumbnail","thumbnailOf"],"mappings":"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"}