@cratis/scene.blueprint.contracts 0.0.0-stage → 4.78.3

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 (132) hide show
  1. package/README.md +69 -2
  2. package/blueprint.ts +16 -0
  3. package/blueprintCatalog.json +107 -0
  4. package/contractsApplication.ts +28 -0
  5. package/contractsParts.ts +58 -0
  6. package/contractsQueries.ts +56 -0
  7. package/contractsScreenSet.ts +21 -0
  8. package/dist/cjs/blueprint.js +19 -0
  9. package/dist/cjs/blueprint.js.map +1 -0
  10. package/dist/cjs/contractsApplication.js +49 -0
  11. package/dist/cjs/contractsApplication.js.map +1 -0
  12. package/dist/cjs/contractsParts.js +151 -0
  13. package/dist/cjs/contractsParts.js.map +1 -0
  14. package/dist/cjs/contractsQueries.js +64 -0
  15. package/dist/cjs/contractsQueries.js.map +1 -0
  16. package/dist/cjs/contractsScreenSet.js +40 -0
  17. package/dist/cjs/contractsScreenSet.js.map +1 -0
  18. package/dist/cjs/index.js +68 -0
  19. package/dist/cjs/index.js.map +1 -0
  20. package/dist/cjs/manifest.js +88 -0
  21. package/dist/cjs/manifest.js.map +1 -0
  22. package/dist/cjs/navigation.js +109 -0
  23. package/dist/cjs/navigation.js.map +1 -0
  24. package/dist/cjs/package.json +3 -0
  25. package/dist/cjs/packageName.js +8 -0
  26. package/dist/cjs/packageName.js.map +1 -0
  27. package/dist/cjs/screens/index.js +22 -0
  28. package/dist/cjs/screens/index.js.map +1 -0
  29. package/dist/cjs/templateProvenance.js +24 -0
  30. package/dist/cjs/templateProvenance.js.map +1 -0
  31. package/dist/cjs/templates/formTemplates.js +50 -0
  32. package/dist/cjs/templates/formTemplates.js.map +1 -0
  33. package/dist/cjs/templates/inboxTemplate.js +55 -0
  34. package/dist/cjs/templates/inboxTemplate.js.map +1 -0
  35. package/dist/cjs/templates/index.js +25 -0
  36. package/dist/cjs/templates/index.js.map +1 -0
  37. package/dist/cjs/templates/listTemplates.js +145 -0
  38. package/dist/cjs/templates/listTemplates.js.map +1 -0
  39. package/dist/cjs/templates/recordTemplates.js +135 -0
  40. package/dist/cjs/templates/recordTemplates.js.map +1 -0
  41. package/dist/cjs/templates/timelineTemplate.js +85 -0
  42. package/dist/cjs/templates/timelineTemplate.js.map +1 -0
  43. package/dist/esm/blueprint.d.ts +3 -0
  44. package/dist/esm/blueprint.d.ts.map +1 -0
  45. package/dist/esm/blueprint.js +17 -0
  46. package/dist/esm/blueprint.js.map +1 -0
  47. package/dist/esm/contractsApplication.d.ts +10 -0
  48. package/dist/esm/contractsApplication.d.ts.map +1 -0
  49. package/dist/esm/contractsApplication.js +44 -0
  50. package/dist/esm/contractsApplication.js.map +1 -0
  51. package/dist/esm/contractsParts.d.ts +16 -0
  52. package/dist/esm/contractsParts.d.ts.map +1 -0
  53. package/dist/esm/contractsParts.js +133 -0
  54. package/dist/esm/contractsParts.js.map +1 -0
  55. package/dist/esm/contractsQueries.d.ts +38 -0
  56. package/dist/esm/contractsQueries.d.ts.map +1 -0
  57. package/dist/esm/contractsQueries.js +56 -0
  58. package/dist/esm/contractsQueries.js.map +1 -0
  59. package/dist/esm/contractsScreenSet.d.ts +7 -0
  60. package/dist/esm/contractsScreenSet.d.ts.map +1 -0
  61. package/dist/esm/contractsScreenSet.js +38 -0
  62. package/dist/esm/contractsScreenSet.js.map +1 -0
  63. package/dist/esm/index.d.ts +12 -0
  64. package/dist/esm/index.d.ts.map +1 -0
  65. package/dist/esm/index.js +18 -0
  66. package/dist/esm/index.js.map +1 -0
  67. package/dist/esm/manifest.d.ts +3 -0
  68. package/dist/esm/manifest.d.ts.map +1 -0
  69. package/dist/esm/manifest.js +86 -0
  70. package/dist/esm/manifest.js.map +1 -0
  71. package/dist/esm/navigation.d.ts +5 -0
  72. package/dist/esm/navigation.d.ts.map +1 -0
  73. package/dist/esm/navigation.js +105 -0
  74. package/dist/esm/navigation.js.map +1 -0
  75. package/dist/esm/package.json +3 -0
  76. package/dist/esm/packageName.d.ts +2 -0
  77. package/dist/esm/packageName.d.ts.map +1 -0
  78. package/dist/esm/packageName.js +6 -0
  79. package/dist/esm/packageName.js.map +1 -0
  80. package/dist/esm/screens/index.d.ts +3 -0
  81. package/dist/esm/screens/index.d.ts.map +1 -0
  82. package/dist/esm/screens/index.js +20 -0
  83. package/dist/esm/screens/index.js.map +1 -0
  84. package/dist/esm/templateProvenance.d.ts +3 -0
  85. package/dist/esm/templateProvenance.d.ts.map +1 -0
  86. package/dist/esm/templateProvenance.js +22 -0
  87. package/dist/esm/templateProvenance.js.map +1 -0
  88. package/dist/esm/templates/formTemplates.d.ts +3 -0
  89. package/dist/esm/templates/formTemplates.d.ts.map +1 -0
  90. package/dist/esm/templates/formTemplates.js +48 -0
  91. package/dist/esm/templates/formTemplates.js.map +1 -0
  92. package/dist/esm/templates/inboxTemplate.d.ts +3 -0
  93. package/dist/esm/templates/inboxTemplate.d.ts.map +1 -0
  94. package/dist/esm/templates/inboxTemplate.js +53 -0
  95. package/dist/esm/templates/inboxTemplate.js.map +1 -0
  96. package/dist/esm/templates/index.d.ts +8 -0
  97. package/dist/esm/templates/index.d.ts.map +1 -0
  98. package/dist/esm/templates/index.js +17 -0
  99. package/dist/esm/templates/index.js.map +1 -0
  100. package/dist/esm/templates/listTemplates.d.ts +3 -0
  101. package/dist/esm/templates/listTemplates.d.ts.map +1 -0
  102. package/dist/esm/templates/listTemplates.js +143 -0
  103. package/dist/esm/templates/listTemplates.js.map +1 -0
  104. package/dist/esm/templates/recordTemplates.d.ts +3 -0
  105. package/dist/esm/templates/recordTemplates.d.ts.map +1 -0
  106. package/dist/esm/templates/recordTemplates.js +133 -0
  107. package/dist/esm/templates/recordTemplates.js.map +1 -0
  108. package/dist/esm/templates/timelineTemplate.d.ts +3 -0
  109. package/dist/esm/templates/timelineTemplate.d.ts.map +1 -0
  110. package/dist/esm/templates/timelineTemplate.js +83 -0
  111. package/dist/esm/templates/timelineTemplate.js.map +1 -0
  112. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  113. package/index.ts +14 -0
  114. package/manifest.ts +41 -0
  115. package/navigation.ts +53 -0
  116. package/package.json +78 -4
  117. package/packageName.ts +5 -0
  118. package/sampleData/contracts-en.json +892 -0
  119. package/screens/index.ts +20 -0
  120. package/templateProvenance.ts +15 -0
  121. package/templates/formTemplates.ts +33 -0
  122. package/templates/inboxTemplate.ts +24 -0
  123. package/templates/index.ts +18 -0
  124. package/templates/listTemplates.ts +96 -0
  125. package/templates/recordTemplates.ts +78 -0
  126. package/templates/timelineTemplate.ts +54 -0
  127. package/thumbnails/ContractPage.svg +17 -0
  128. package/thumbnails/ContractsList.svg +29 -0
  129. package/thumbnails/ContractsQuickCreateContract.svg +12 -0
  130. package/thumbnails/ContractsReview.svg +19 -0
  131. package/thumbnails/ContractsTimeline.svg +11 -0
  132. package/thumbnails/contracts.svg +14 -0
@@ -0,0 +1,20 @@
1
+ import { LayoutName } from '@cratis/scene.blueprint.default';
2
+ import { contractsScreenDefinitions } from '../contractsScreenSet.js';
3
+
4
+ // Copyright (c) Cratis. All rights reserved.
5
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
6
+ /**
7
+ * The ready-to-use screens: real `Screen` instances, one for each entry of the manifest's `blueprint.screenSet`, each filling the screen template it names in
8
+ * the foundation's application shell. A new application that adopts the blueprint gets these, wired into its navigation (`contractsNavigation`).
9
+ */ const contractsScreens = contractsScreenDefinitions.map((definition)=>({
10
+ name: definition.name,
11
+ layout: LayoutName.AppShell,
12
+ screenTemplate: definition.template,
13
+ slotContent: {},
14
+ forms: [],
15
+ contributions: [],
16
+ path: definition.name.split('.')
17
+ }));
18
+
19
+ export { contractsScreens };
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../screens/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 { Screen } from '@cratis/scene.model';\nimport { LayoutName } from '@cratis/scene.blueprint.default';\nimport { contractsScreenDefinitions } from '../contractsScreenSet';\n\n/**\n * The ready-to-use screens: real `Screen` instances, one for each entry of the manifest's `blueprint.screenSet`, each filling the screen template it names in\n * the foundation's application shell. A new application that adopts the blueprint gets these, wired into its navigation (`contractsNavigation`).\n */\nexport const contractsScreens: Screen[] = contractsScreenDefinitions.map(definition => ({\n name: definition.name,\n layout: LayoutName.AppShell,\n screenTemplate: definition.template,\n slotContent: {},\n forms: [],\n contributions: [],\n path: definition.name.split('.'),\n}));\n"],"names":["contractsScreens","contractsScreenDefinitions","map","definition","name","layout","LayoutName","AppShell","screenTemplate","template","slotContent","forms","contributions","path","split"],"mappings":";;;AAAA;AACA;AAMA;;;UAIaA,gBAAAA,GAA6BC,0BAAAA,CAA2BC,GAAG,CAACC,CAAAA,cAAe;AACpFC,QAAAA,IAAAA,EAAMD,WAAWC,IAAI;AACrBC,QAAAA,MAAAA,EAAQC,WAAWC,QAAQ;AAC3BC,QAAAA,cAAAA,EAAgBL,WAAWM,QAAQ;AACnCC,QAAAA,WAAAA,EAAa,EAAC;AACdC,QAAAA,KAAAA,EAAO,EAAE;AACTC,QAAAA,aAAAA,EAAe,EAAE;AACjBC,QAAAA,IAAAA,EAAMV,UAAAA,CAAWC,IAAI,CAACU,KAAK,CAAC,GAAA;AAChC,KAAA,CAAA;;"}
@@ -0,0 +1,3 @@
1
+ import { TemplateMetadata } from '@cratis/scene.model';
2
+ export declare const contractsTemplateProvenance: Pick<TemplateMetadata, 'compatibility' | 'attribution' | 'license' | 'licenseUrl'>;
3
+ //# sourceMappingURL=templateProvenance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateProvenance.d.ts","sourceRoot":"","sources":["../../templateProvenance.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAGvD,eAAO,MAAM,2BAA2B,EAAE,IAAI,CAAC,gBAAgB,EAAE,eAAe,GAAG,aAAa,GAAG,SAAS,GAAG,YAAY,CAQ1H,CAAC"}
@@ -0,0 +1,22 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ /** The compatibility, attribution and license metadata every template this blueprint ships carries. */ const contractsTemplateProvenance = {
4
+ compatibility: {
5
+ scene: '^4.13.0',
6
+ packages: [
7
+ {
8
+ name: 'Cratis.Blueprint.Default',
9
+ versionRange: '^1.0.0'
10
+ }
11
+ ]
12
+ },
13
+ attribution: {
14
+ author: 'Cratis',
15
+ url: 'https://github.com/Cratis/Scene/tree/main/Source/JavaScript/blueprint.contracts'
16
+ },
17
+ license: 'MIT',
18
+ licenseUrl: 'https://github.com/Cratis/Scene/blob/main/LICENSE'
19
+ };
20
+
21
+ export { contractsTemplateProvenance };
22
+ //# sourceMappingURL=templateProvenance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templateProvenance.js","sources":["../../templateProvenance.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 { TemplateMetadata } from '@cratis/scene.model';\n\n/** The compatibility, attribution and license metadata every template this blueprint ships carries. */\nexport const contractsTemplateProvenance: Pick<TemplateMetadata, 'compatibility' | 'attribution' | 'license' | 'licenseUrl'> = {\n compatibility: {\n scene: '^4.13.0',\n packages: [{ name: 'Cratis.Blueprint.Default', versionRange: '^1.0.0' }],\n },\n attribution: { author: 'Cratis', url: 'https://github.com/Cratis/Scene/tree/main/Source/JavaScript/blueprint.contracts' },\n license: 'MIT',\n licenseUrl: 'https://github.com/Cratis/Scene/blob/main/LICENSE',\n};\n"],"names":["contractsTemplateProvenance","compatibility","scene","packages","name","versionRange","attribution","author","url","license","licenseUrl"],"mappings":"AAAA;AACA;AAIA,wGACO,MAAMA,2BAAAA,GAAkH;IAC3HC,aAAAA,EAAe;QACXC,KAAAA,EAAO,SAAA;QACPC,QAAAA,EAAU;AAAC,YAAA;gBAAEC,IAAAA,EAAM,0BAAA;gBAA4BC,YAAAA,EAAc;AAAS;AAAE;AAC5E,KAAA;IACAC,WAAAA,EAAa;QAAEC,MAAAA,EAAQ,QAAA;QAAUC,GAAAA,EAAK;AAAkF,KAAA;IACxHC,OAAAA,EAAS,KAAA;IACTC,UAAAA,EAAY;AAChB;;"}
@@ -0,0 +1,3 @@
1
+ import { DialogTemplate } from '@cratis/scene.model';
2
+ export declare const contractsDialogs: DialogTemplate[];
3
+ //# sourceMappingURL=formTemplates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formTemplates.d.ts","sourceRoot":"","sources":["../../../templates/formTemplates.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAiB,MAAM,qBAAqB,CAAC;AA2BpE,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAE5C,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { TemplateScope } from '@cratis/scene.model';
2
+ import { quickCreateDialogTemplate, component } from '@cratis/scene.blueprint.default';
3
+ import { localeOfData, fromQuery, ContractsQuery } from '../contractsQueries.js';
4
+ import { contractsMetadata, withBehaviors, closesDialog } from '../contractsParts.js';
5
+
6
+ // Copyright (c) Cratis. All rights reserved.
7
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
8
+ /**
9
+ * One quick-create dialog: the foundation `QuickCreateDialog` - a short form opened from a page to make one record without leaving it - with the fields
10
+ * that thing needs to get started.
11
+ */ function quickCreateOf(name, title, sections, noun, submit) {
12
+ return {
13
+ name,
14
+ slots: quickCreateDialogTemplate.slots,
15
+ content: {
16
+ header: [
17
+ component(`${name}-frame`, 'dialogFrame', {
18
+ title,
19
+ subtitle: 'Only what is needed to get started'
20
+ })
21
+ ],
22
+ body: [
23
+ withBehaviors(component(`${name}-form`, 'formScreenBody', {
24
+ mode: 'create',
25
+ saveAndNew: false,
26
+ strings: {
27
+ formSave: submit
28
+ },
29
+ sections: fromQuery(sections),
30
+ errors: fromQuery(ContractsQuery.FormErrors, '0'),
31
+ ...localeOfData
32
+ }), closesDialog())
33
+ ],
34
+ actions: []
35
+ },
36
+ displayName: `Contracts quick create ${noun}`,
37
+ description: `A short form that creates one ${noun} without leaving the page.`,
38
+ metadata: contractsMetadata(name, 'Dialog', [
39
+ TemplateScope.Slice
40
+ ])
41
+ };
42
+ }
43
+ /** The quick dialogs of the blueprint. */ const contractsDialogs = [
44
+ quickCreateOf('ContractsQuickCreateContract', 'New contract', 'ContractQuickSections', 'contract', 'Create')
45
+ ];
46
+
47
+ export { contractsDialogs };
48
+ //# sourceMappingURL=formTemplates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formTemplates.js","sources":["../../../templates/formTemplates.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 { DialogTemplate, TemplateScope } from '@cratis/scene.model';\nimport { quickCreateDialogTemplate } from '@cratis/scene.blueprint.default';\nimport { ContractsQuery, fromQuery, localeOfData } from '../contractsQueries';\nimport { closesDialog, component, contractsMetadata, withBehaviors } from '../contractsParts';\n\n/**\n * One quick-create dialog: the foundation `QuickCreateDialog` - a short form opened from a page to make one record without leaving it - with the fields\n * that thing needs to get started.\n */\nfunction quickCreateOf(name: string, title: string, sections: string, noun: string, submit: string): DialogTemplate {\n return {\n name,\n slots: quickCreateDialogTemplate.slots,\n content: {\n header: [component(`${name}-frame`, 'dialogFrame', { title, subtitle: 'Only what is needed to get started' })],\n body: [withBehaviors(component(`${name}-form`, 'formScreenBody', {\n mode: 'create', saveAndNew: false, strings: { formSave: submit }, sections: fromQuery(sections), errors: fromQuery(ContractsQuery.FormErrors, '0'), ...localeOfData,\n }), closesDialog())],\n actions: [],\n },\n displayName: `Contracts quick create ${noun}`,\n description: `A short form that creates one ${noun} without leaving the page.`,\n metadata: contractsMetadata(name, 'Dialog', [TemplateScope.Slice]),\n };\n}\n\n/** The quick dialogs of the blueprint. */\nexport const contractsDialogs: DialogTemplate[] = [\n quickCreateOf('ContractsQuickCreateContract', 'New contract', 'ContractQuickSections', 'contract', 'Create'),\n];\n"],"names":["quickCreateOf","name","title","sections","noun","submit","slots","quickCreateDialogTemplate","content","header","component","subtitle","body","withBehaviors","mode","saveAndNew","strings","formSave","fromQuery","errors","ContractsQuery","FormErrors","localeOfData","closesDialog","actions","displayName","description","metadata","contractsMetadata","TemplateScope","Slice","contractsDialogs"],"mappings":";;;;;AAAA;AACA;AAOA;;;IAIA,SAASA,aAAAA,CAAcC,IAAY,EAAEC,KAAa,EAAEC,QAAgB,EAAEC,IAAY,EAAEC,MAAc,EAAA;IAC9F,OAAO;AACHJ,QAAAA,IAAAA;AACAK,QAAAA,KAAAA,EAAOC,0BAA0BD,KAAK;QACtCE,OAAAA,EAAS;YACLC,MAAAA,EAAQ;AAACC,gBAAAA,SAAAA,CAAU,CAAA,EAAGT,IAAAA,CAAK,MAAM,CAAC,EAAE,aAAA,EAAe;AAAEC,oBAAAA,KAAAA;oBAAOS,QAAAA,EAAU;AAAqC,iBAAA;AAAG,aAAA;YAC9GC,IAAAA,EAAM;AAACC,gBAAAA,aAAAA,CAAcH,UAAU,CAAA,EAAGT,IAAAA,CAAK,KAAK,CAAC,EAAE,gBAAA,EAAkB;oBAC7Da,IAAAA,EAAM,QAAA;oBAAUC,UAAAA,EAAY,KAAA;oBAAOC,OAAAA,EAAS;wBAAEC,QAAAA,EAAUZ;AAAO,qBAAA;AAAGF,oBAAAA,QAAAA,EAAUe,SAAAA,CAAUf,QAAAA,CAAAA;oBAAWgB,MAAAA,EAAQD,SAAAA,CAAUE,cAAAA,CAAeC,UAAU,EAAE,GAAA,CAAA;AAAM,oBAAA,GAAGC;iBAC3J,CAAA,EAAIC,YAAAA,EAAAA;AAAgB,aAAA;AACpBC,YAAAA,OAAAA,EAAS;AACb,SAAA;QACAC,WAAAA,EAAa,CAAC,uBAAuB,EAAErB,IAAAA,CAAAA,CAAM;AAC7CsB,QAAAA,WAAAA,EAAa,CAAC,8BAA8B,EAAEtB,IAAAA,CAAK,0BAA0B,CAAC;QAC9EuB,QAAAA,EAAUC,iBAAAA,CAAkB3B,MAAM,QAAA,EAAU;AAAC4B,YAAAA,aAAAA,CAAcC;AAAM,SAAA;AACrE,KAAA;AACJ;AAEA,2CACO,MAAMC,gBAAAA,GAAqC;IAC9C/B,aAAAA,CAAc,8BAAA,EAAgC,cAAA,EAAgB,uBAAA,EAAyB,UAAA,EAAY,QAAA;;;"}
@@ -0,0 +1,3 @@
1
+ import { ScreenTemplate } from '@cratis/scene.model';
2
+ export declare const contractsReviewTemplate: ScreenTemplate;
3
+ //# sourceMappingURL=inboxTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inboxTemplate.d.ts","sourceRoot":"","sources":["../../../templates/inboxTemplate.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAiB,MAAM,qBAAqB,CAAC;AAMpE,eAAO,MAAM,uBAAuB,EAAE,cAcrC,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { TemplateScope } from '@cratis/scene.model';
2
+ import { component, inboxScreenTemplate } from '@cratis/scene.blueprint.default';
3
+ import { localeOfData, fromQuery, ContractsQuery } from '../contractsQueries.js';
4
+ import { contractsMetadata } from '../contractsParts.js';
5
+
6
+ // Copyright (c) Cratis. All rights reserved.
7
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
8
+ /** The review inbox: the contracts that need a review, a signature or a renewal decision, the open message beside them and its history beneath. */ const contractsReviewTemplate = {
9
+ name: 'ContractsReview',
10
+ fitsSlot: 'content',
11
+ slots: inboxScreenTemplate.slots,
12
+ arrangement: inboxScreenTemplate.arrangement,
13
+ content: {
14
+ header: [
15
+ component('ContractsReview-header', 'pageHeader', {
16
+ title: 'Needs attention',
17
+ subtitle: 'Review, sign or renew'
18
+ })
19
+ ],
20
+ queue: [
21
+ component('ContractsReview-queue', 'inboxList', {
22
+ label: 'Needs attention',
23
+ messages: fromQuery(ContractsQuery.ContractMessages),
24
+ urlKey: 'msg',
25
+ ...localeOfData
26
+ })
27
+ ],
28
+ message: [
29
+ component('ContractsReview-message', 'formScreenBody', {
30
+ mode: 'readOnly',
31
+ sections: fromQuery(ContractsQuery.ContractMessageSections),
32
+ values: fromQuery(ContractsQuery.ContractMessageValues, '0'),
33
+ ...localeOfData
34
+ })
35
+ ],
36
+ history: [
37
+ component('ContractsReview-history', 'activityFeed', {
38
+ label: 'History',
39
+ entries: fromQuery(ContractsQuery.ContractMessageHistory),
40
+ ...localeOfData
41
+ })
42
+ ]
43
+ },
44
+ displayName: 'Contracts review inbox',
45
+ description: 'What needs review, signature or a renewal decision: the queue grouped by day with unread told in words, the open message and its history.',
46
+ metadata: contractsMetadata('ContractsReview', 'Inbox', [
47
+ TemplateScope.Module,
48
+ TemplateScope.Feature
49
+ ])
50
+ };
51
+
52
+ export { contractsReviewTemplate };
53
+ //# sourceMappingURL=inboxTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inboxTemplate.js","sources":["../../../templates/inboxTemplate.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, TemplateScope } from '@cratis/scene.model';\nimport { inboxScreenTemplate } from '@cratis/scene.blueprint.default';\nimport { ContractsQuery, fromQuery, localeOfData } from '../contractsQueries';\nimport { contractsMetadata, component } from '../contractsParts';\n\n/** The review inbox: the contracts that need a review, a signature or a renewal decision, the open message beside them and its history beneath. */\nexport const contractsReviewTemplate: ScreenTemplate = {\n name: 'ContractsReview',\n fitsSlot: 'content',\n slots: inboxScreenTemplate.slots,\n arrangement: inboxScreenTemplate.arrangement,\n content: {\n header: [component('ContractsReview-header', 'pageHeader', { title: 'Needs attention', subtitle: 'Review, sign or renew' })],\n queue: [component('ContractsReview-queue', 'inboxList', { label: 'Needs attention', messages: fromQuery(ContractsQuery.ContractMessages), urlKey: 'msg', ...localeOfData })],\n message: [component('ContractsReview-message', 'formScreenBody', { mode: 'readOnly', sections: fromQuery(ContractsQuery.ContractMessageSections), values: fromQuery(ContractsQuery.ContractMessageValues, '0'), ...localeOfData })],\n history: [component('ContractsReview-history', 'activityFeed', { label: 'History', entries: fromQuery(ContractsQuery.ContractMessageHistory), ...localeOfData })],\n },\n displayName: 'Contracts review inbox',\n description: 'What needs review, signature or a renewal decision: the queue grouped by day with unread told in words, the open message and its history.',\n metadata: contractsMetadata('ContractsReview', 'Inbox', [TemplateScope.Module, TemplateScope.Feature]),\n};\n"],"names":["contractsReviewTemplate","name","fitsSlot","slots","inboxScreenTemplate","arrangement","content","header","component","title","subtitle","queue","label","messages","fromQuery","ContractsQuery","ContractMessages","urlKey","localeOfData","message","mode","sections","ContractMessageSections","values","ContractMessageValues","history","entries","ContractMessageHistory","displayName","description","metadata","contractsMetadata","TemplateScope","Module","Feature"],"mappings":";;;;;AAAA;AACA;AAOA,oJACO,MAAMA,uBAAAA,GAA0C;IACnDC,IAAAA,EAAM,iBAAA;IACNC,QAAAA,EAAU,SAAA;AACVC,IAAAA,KAAAA,EAAOC,oBAAoBD,KAAK;AAChCE,IAAAA,WAAAA,EAAaD,oBAAoBC,WAAW;IAC5CC,OAAAA,EAAS;QACLC,MAAAA,EAAQ;AAACC,YAAAA,SAAAA,CAAU,0BAA0B,YAAA,EAAc;gBAAEC,KAAAA,EAAO,iBAAA;gBAAmBC,QAAAA,EAAU;AAAwB,aAAA;AAAG,SAAA;QAC5HC,KAAAA,EAAO;AAACH,YAAAA,SAAAA,CAAU,yBAAyB,WAAA,EAAa;gBAAEI,KAAAA,EAAO,iBAAA;gBAAmBC,QAAAA,EAAUC,SAAAA,CAAUC,eAAeC,gBAAgB,CAAA;gBAAGC,MAAAA,EAAQ,KAAA;AAAO,gBAAA,GAAGC;AAAa,aAAA;AAAG,SAAA;QAC5KC,OAAAA,EAAS;AAACX,YAAAA,SAAAA,CAAU,2BAA2B,gBAAA,EAAkB;gBAAEY,IAAAA,EAAM,UAAA;gBAAYC,QAAAA,EAAUP,SAAAA,CAAUC,eAAeO,uBAAuB,CAAA;gBAAGC,MAAAA,EAAQT,SAAAA,CAAUC,cAAAA,CAAeS,qBAAqB,EAAE,GAAA,CAAA;AAAM,gBAAA,GAAGN;AAAa,aAAA;AAAG,SAAA;QACnOO,OAAAA,EAAS;AAACjB,YAAAA,SAAAA,CAAU,2BAA2B,cAAA,EAAgB;gBAAEI,KAAAA,EAAO,SAAA;gBAAWc,OAAAA,EAASZ,SAAAA,CAAUC,eAAeY,sBAAsB,CAAA;AAAG,gBAAA,GAAGT;AAAa,aAAA;AAAG;AACrK,KAAA;IACAU,WAAAA,EAAa,wBAAA;IACbC,WAAAA,EAAa,2IAAA;IACbC,QAAAA,EAAUC,iBAAAA,CAAkB,mBAAmB,OAAA,EAAS;AAACC,QAAAA,aAAAA,CAAcC,MAAM;AAAED,QAAAA,aAAAA,CAAcE;AAAQ,KAAA;AACzG;;"}
@@ -0,0 +1,8 @@
1
+ export * from './listTemplates';
2
+ export * from './recordTemplates';
3
+ export * from './timelineTemplate';
4
+ export * from './inboxTemplate';
5
+ export * from './formTemplates';
6
+ export declare const contractsScreenTemplates: import("@cratis/scene.model/screens").ScreenTemplate[];
7
+ export { contractsDialogs as contractsDialogTemplates } from './formTemplates';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../templates/index.ts"],"names":[],"mappings":"AAQA,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAGhC,eAAO,MAAM,wBAAwB,wDAAoG,CAAC;AAE1I,OAAO,EAAE,gBAAgB,IAAI,wBAAwB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { contractsListTemplate } from './listTemplates.js';
2
+ import { contractPageTemplate } from './recordTemplates.js';
3
+ import { contractsTimelineTemplate } from './timelineTemplate.js';
4
+ import { contractsReviewTemplate } from './inboxTemplate.js';
5
+ export { contractsDialogs as contractsDialogTemplates, contractsDialogs } from './formTemplates.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
+ /** Every screen template this blueprint provides, in the order the manifest lists them. */ const contractsScreenTemplates = [
10
+ contractsListTemplate,
11
+ contractPageTemplate,
12
+ contractsTimelineTemplate,
13
+ contractsReviewTemplate
14
+ ];
15
+
16
+ export { contractPageTemplate, contractsListTemplate, contractsReviewTemplate, contractsScreenTemplates, contractsTimelineTemplate };
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../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 { contractsListTemplate } from './listTemplates';\nimport { contractPageTemplate } from './recordTemplates';\nimport { contractsTimelineTemplate } from './timelineTemplate';\nimport { contractsReviewTemplate } from './inboxTemplate';\n\nexport * from './listTemplates';\nexport * from './recordTemplates';\nexport * from './timelineTemplate';\nexport * from './inboxTemplate';\nexport * from './formTemplates';\n\n/** Every screen template this blueprint provides, in the order the manifest lists them. */\nexport const contractsScreenTemplates = [contractsListTemplate, contractPageTemplate, contractsTimelineTemplate, contractsReviewTemplate];\n\nexport { contractsDialogs as contractsDialogTemplates } from './formTemplates';\n"],"names":["contractsScreenTemplates","contractsListTemplate","contractPageTemplate","contractsTimelineTemplate","contractsReviewTemplate"],"mappings":";;;;;;AAAA;AACA;AAaA,4FACO,MAAMA,wBAAAA,GAA2B;AAACC,IAAAA,qBAAAA;AAAuBC,IAAAA,oBAAAA;AAAsBC,IAAAA,yBAAAA;AAA2BC,IAAAA;;;"}
@@ -0,0 +1,3 @@
1
+ import { ScreenTemplate } from '@cratis/scene.model';
2
+ export declare const contractsListTemplate: ScreenTemplate;
3
+ //# sourceMappingURL=listTemplates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listTemplates.d.ts","sourceRoot":"","sources":["../../../templates/listTemplates.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkF,cAAc,EAAiB,MAAM,qBAAqB,CAAC;AAsFpJ,eAAO,MAAM,qBAAqB,gBAMhC,CAAC"}
@@ -0,0 +1,143 @@
1
+ import { TemplateScope, NotificationLevel, InteractionActionKind, InteractionTriggerKind } from '@cratis/scene.model';
2
+ import { component, listScreenTemplate } from '@cratis/scene.blueprint.default';
3
+ import { localeOfData, fromQuery, contractsQueriesOf, ContractsEntityKind } from '../contractsQueries.js';
4
+ import { withBehaviors, opensDialog, goesTo, actionButton, contractsMetadata, opensRecordOnSelect, opensDialogOnSelect } from '../contractsParts.js';
5
+
6
+ // Copyright (c) Cratis. All rights reserved.
7
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
8
+ const listScopes = [
9
+ TemplateScope.Module,
10
+ TemplateScope.Feature
11
+ ];
12
+ /** The Export button: it tells the user the export has started, which is what the shell does for a long-running action it does not wait on. */ const exportAction = (id)=>withBehaviors(actionButton(id, 'Export', 'secondary'), [
13
+ {
14
+ bindings: [
15
+ {
16
+ trigger: {
17
+ kind: InteractionTriggerKind.Click
18
+ },
19
+ actions: [
20
+ {
21
+ kind: InteractionActionKind.Notify,
22
+ level: NotificationLevel.Info,
23
+ message: {
24
+ text: 'The export has started.'
25
+ }
26
+ }
27
+ ]
28
+ }
29
+ ]
30
+ }
31
+ ]);
32
+ /**
33
+ * One list: the foundation `ListScreen` with its header, toolbar, filters, list and bulk bar filled for an entity. The slots, arrangement and
34
+ * every behavior - sort, search, paging and selection in the address, the table collapsing to cards on a phone - are the foundation's.
35
+ */ function listTemplateOf(options) {
36
+ const queries = contractsQueriesOf(options.entity);
37
+ const id = options.name;
38
+ const listId = `${id}-records`;
39
+ const primary = withBehaviors(actionButton(`${id}-primary`, options.primary.label, 'primary'), options.primary.dialog ? opensDialog(options.primary.dialog) : goesTo(options.primary.screen));
40
+ const list = component(listId, 'dataList', {
41
+ label: options.title,
42
+ rows: fromQuery(queries.rows),
43
+ columns: fromQuery(queries.columns),
44
+ titleField: options.titleField,
45
+ pageSize: options.cards ? 12 : 10,
46
+ urlKey: options.urlKey,
47
+ ...localeOfData,
48
+ rowActions: options.rowActions,
49
+ ...options.readOnly ? {} : {
50
+ selectionMode: options.recordScreen || options.recordDialog ? 'single' : 'multiple'
51
+ },
52
+ ...options.cards ? {
53
+ variant: 'cards',
54
+ ...options.cards.imageField ? {
55
+ imageField: options.cards.imageField
56
+ } : {}
57
+ } : {},
58
+ ...options.grouped ? {
59
+ variant: 'grouped',
60
+ groupBy: options.grouped.groupBy
61
+ } : {},
62
+ ...options.toneField ? {
63
+ toneField: options.toneField
64
+ } : {}
65
+ });
66
+ return {
67
+ name: options.name,
68
+ fitsSlot: 'content',
69
+ slots: listScreenTemplate.slots,
70
+ arrangement: listScreenTemplate.arrangement,
71
+ content: {
72
+ header: [
73
+ component(`${id}-header`, 'pageHeader', {
74
+ title: options.title,
75
+ subtitle: options.subtitle
76
+ }, {
77
+ actions: [
78
+ exportAction(`${id}-export`),
79
+ primary
80
+ ]
81
+ })
82
+ ],
83
+ toolbar: [
84
+ component(`${id}-search`, 'globalSearch', {
85
+ placeholder: options.searchLabel,
86
+ label: options.searchLabel,
87
+ urlKey: `${options.urlKey}q`
88
+ }),
89
+ component(`${id}-views`, 'savedViewsMenu', {
90
+ views: fromQuery(queries.views),
91
+ savePermission: 'enabled',
92
+ managePermission: 'enabled'
93
+ }),
94
+ component(`${id}-columns`, 'columnChooser', {
95
+ columns: fromQuery(queries.columnChoices)
96
+ })
97
+ ],
98
+ filters: [
99
+ component(`${id}-filter`, 'filterBuilder', {
100
+ fields: fromQuery(queries.filterFields),
101
+ ...localeOfData
102
+ })
103
+ ],
104
+ list: [
105
+ options.recordScreen ? withBehaviors(list, opensRecordOnSelect(listId, options.recordScreen)) : options.recordDialog ? withBehaviors(list, opensDialogOnSelect(options.recordDialog)) : list
106
+ ],
107
+ bulkBar: options.recordScreen || options.recordDialog || options.readOnly ? [] : [
108
+ component(`${id}-bulk`, 'bulkBar', {
109
+ selection: fromQuery(queries.selection),
110
+ actions: options.bulkActions
111
+ })
112
+ ],
113
+ footer: []
114
+ },
115
+ displayName: options.displayName,
116
+ description: options.description,
117
+ metadata: contractsMetadata(options.name, 'List', listScopes)
118
+ };
119
+ }
120
+ /** The contracts: every contract with its counterparty, type, end date, value and status. Choosing a contract opens it. */ const contractsListTemplate = listTemplateOf({
121
+ name: 'ContractsList',
122
+ entity: ContractsEntityKind.Contract,
123
+ displayName: 'Contracts list',
124
+ description: 'Every contract with its counterparty, type, end date, value and status, filtered by status, type, owner and date.',
125
+ title: 'Contracts',
126
+ subtitle: 'Every agreement you are bound by',
127
+ searchLabel: 'Search contracts',
128
+ urlKey: 'contracts',
129
+ primary: {
130
+ label: 'New contract',
131
+ dialog: 'ContractsQuickCreateContract'
132
+ },
133
+ rowActions: [
134
+ 'Open',
135
+ 'Start renewal'
136
+ ],
137
+ bulkActions: [],
138
+ titleField: 'title',
139
+ recordScreen: 'contracts.record'
140
+ });
141
+
142
+ export { contractsListTemplate };
143
+ //# sourceMappingURL=listTemplates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listTemplates.js","sources":["../../../templates/listTemplates.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 { InteractionActionKind, InteractionTriggerKind, NotificationLevel, NotifyAction, ScreenTemplate, TemplateScope } from '@cratis/scene.model';\nimport { listScreenTemplate } from '@cratis/scene.blueprint.default';\nimport { ContractsEntityKind, fromQuery, contractsQueriesOf, localeOfData } from '../contractsQueries';\nimport { actionButton, component, goesTo, contractsMetadata, opensDialog, opensDialogOnSelect, opensRecordOnSelect, withBehaviors } from '../contractsParts';\n\nconst listScopes = [TemplateScope.Module, TemplateScope.Feature];\n\n/** The Export button: it tells the user the export has started, which is what the shell does for a long-running action it does not wait on. */\nconst exportAction = (id: string) => withBehaviors(actionButton(id, 'Export', 'secondary'), [{\n bindings: [{\n trigger: { kind: InteractionTriggerKind.Click },\n actions: [{ kind: InteractionActionKind.Notify, level: NotificationLevel.Info, message: { text: 'The export has started.' } } as unknown as NotifyAction],\n }],\n}]);\n\ninterface ListOptions {\n name: string;\n entity: ContractsEntityKind;\n displayName: string;\n description: string;\n title: string;\n subtitle: string;\n searchLabel: string;\n urlKey: string;\n /** The primary action of the header: a quick-create dialog to open, or a screen to go to. */\n primary: { label: string; dialog?: string; screen?: string };\n rowActions: string[];\n bulkActions: string[];\n titleField: string;\n /** The screen a chosen row opens; the list then selects one row at a time. Absent, rows are selected many at a time for the bulk bar. */\n recordScreen?: string;\n /** The side sheet a chosen row opens instead of a record page; the list then selects one row at a time. */\n recordDialog?: string;\n /** Group the rows (`variant: grouped`) by this field. */\n grouped?: { groupBy: string };\n /** Rows are not selectable at all: a record of what happened, which nobody edits. */\n readOnly?: boolean;\n /** Show the records as cards, each with the picture its `imageField` names. */\n cards?: { imageField?: string };\n /** Tint a row by the tone in this field (always beside a status column that says the same in words). */\n toneField?: string;\n}\n\n/**\n * One list: the foundation `ListScreen` with its header, toolbar, filters, list and bulk bar filled for an entity. The slots, arrangement and\n * every behavior - sort, search, paging and selection in the address, the table collapsing to cards on a phone - are the foundation's.\n */\nfunction listTemplateOf(options: ListOptions): ScreenTemplate {\n const queries = contractsQueriesOf(options.entity);\n const id = options.name;\n const listId = `${id}-records`;\n const primary = withBehaviors(actionButton(`${id}-primary`, options.primary.label, 'primary'), options.primary.dialog ? opensDialog(options.primary.dialog) : goesTo(options.primary.screen!));\n const list = component(listId, 'dataList', {\n label: options.title, rows: fromQuery(queries.rows), columns: fromQuery(queries.columns), titleField: options.titleField, pageSize: options.cards ? 12 : 10, urlKey: options.urlKey, ...localeOfData,\n rowActions: options.rowActions,\n ...(options.readOnly ? {} : { selectionMode: options.recordScreen || options.recordDialog ? 'single' : 'multiple' }),\n ...(options.cards ? { variant: 'cards', ...(options.cards.imageField ? { imageField: options.cards.imageField } : {}) } : {}),\n ...(options.grouped ? { variant: 'grouped', groupBy: options.grouped.groupBy } : {}),\n ...(options.toneField ? { toneField: options.toneField } : {}),\n });\n\n return {\n name: options.name,\n fitsSlot: 'content',\n slots: listScreenTemplate.slots,\n arrangement: listScreenTemplate.arrangement,\n content: {\n header: [component(`${id}-header`, 'pageHeader', { title: options.title, subtitle: options.subtitle }, { actions: [exportAction(`${id}-export`), primary] })],\n toolbar: [\n component(`${id}-search`, 'globalSearch', { placeholder: options.searchLabel, label: options.searchLabel, urlKey: `${options.urlKey}q` }),\n component(`${id}-views`, 'savedViewsMenu', { views: fromQuery(queries.views), savePermission: 'enabled', managePermission: 'enabled' }),\n component(`${id}-columns`, 'columnChooser', { columns: fromQuery(queries.columnChoices) }),\n ],\n filters: [component(`${id}-filter`, 'filterBuilder', { fields: fromQuery(queries.filterFields), ...localeOfData })],\n list: [options.recordScreen ? withBehaviors(list, opensRecordOnSelect(listId, options.recordScreen)) : options.recordDialog ? withBehaviors(list, opensDialogOnSelect(options.recordDialog)) : list],\n bulkBar: options.recordScreen || options.recordDialog || options.readOnly ? [] : [component(`${id}-bulk`, 'bulkBar', { selection: fromQuery(queries.selection), actions: options.bulkActions })],\n footer: [],\n },\n displayName: options.displayName,\n description: options.description,\n metadata: contractsMetadata(options.name, 'List', listScopes),\n };\n}\n\n\n/** The contracts: every contract with its counterparty, type, end date, value and status. Choosing a contract opens it. */\nexport const contractsListTemplate = listTemplateOf({\n name: 'ContractsList',\n entity: ContractsEntityKind.Contract, displayName: 'Contracts list', description: 'Every contract with its counterparty, type, end date, value and status, filtered by status, type, owner and date.', title: 'Contracts', subtitle: 'Every agreement you are bound by', searchLabel: 'Search contracts', urlKey: 'contracts',\n primary: { label: 'New contract', dialog: 'ContractsQuickCreateContract' },\n rowActions: ['Open', 'Start renewal'], bulkActions: [],\n titleField: 'title', recordScreen: 'contracts.record'\n});\n"],"names":["listScopes","TemplateScope","Module","Feature","exportAction","id","withBehaviors","actionButton","bindings","trigger","kind","InteractionTriggerKind","Click","actions","InteractionActionKind","Notify","level","NotificationLevel","Info","message","text","listTemplateOf","options","queries","contractsQueriesOf","entity","name","listId","primary","label","dialog","opensDialog","goesTo","screen","list","component","title","rows","fromQuery","columns","titleField","pageSize","cards","urlKey","localeOfData","rowActions","readOnly","selectionMode","recordScreen","recordDialog","variant","imageField","grouped","groupBy","toneField","fitsSlot","slots","listScreenTemplate","arrangement","content","header","subtitle","toolbar","placeholder","searchLabel","views","savePermission","managePermission","columnChoices","filters","fields","filterFields","opensRecordOnSelect","opensDialogOnSelect","bulkBar","selection","bulkActions","footer","displayName","description","metadata","contractsMetadata","contractsListTemplate","ContractsEntityKind","Contract"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ScreenTemplate } from '@cratis/scene.model';
2
+ export declare const contractPageTemplate: ScreenTemplate;
3
+ //# sourceMappingURL=recordTemplates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordTemplates.d.ts","sourceRoot":"","sources":["../../../templates/recordTemplates.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAiB,MAAM,qBAAqB,CAAC;AAiEpE,eAAO,MAAM,oBAAoB,gBAS/B,CAAC"}
@@ -0,0 +1,133 @@
1
+ import { TemplateScope } from '@cratis/scene.model';
2
+ import { recordPageTemplate, component } from '@cratis/scene.blueprint.default';
3
+ import { localeOfData, fromQuery, currencyOfData, contractsQueriesOf, ContractsEntityKind } from '../contractsQueries.js';
4
+ import { contractsMetadata, withBehaviors, goesTo, actionButton, opensDialog } from '../contractsParts.js';
5
+
6
+ // Copyright (c) Cratis. All rights reserved.
7
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
8
+ /**
9
+ * One record page: the foundation `RecordPage` with the record's own title, its status and key facts at the top, its fields and the lists that belong to it in the
10
+ * main region, and the activity beside it. What it shows is the record the list handed it the id of.
11
+ */ function recordPageOf(options) {
12
+ const queries = contractsQueriesOf(options.entity);
13
+ const id = options.name;
14
+ return {
15
+ name: options.name,
16
+ fitsSlot: 'content',
17
+ slots: recordPageTemplate.slots,
18
+ arrangement: recordPageTemplate.arrangement,
19
+ content: {
20
+ header: [
21
+ component(`${id}-header`, 'pageHeader', {
22
+ title: fromQuery(queries.record, `0.${options.titleField}`),
23
+ subtitle: fromQuery(queries.record, '0.summary')
24
+ }, {
25
+ actions: [
26
+ withBehaviors(actionButton(`${id}-back`, options.backLabel, 'secondary'), goesTo(options.backScreen)),
27
+ ...options.actions.map((action)=>withBehaviors(actionButton(`${id}-${action.id}`, action.label, action.emphasis), action.dialog ? opensDialog(action.dialog) : goesTo(action.screen)))
28
+ ]
29
+ })
30
+ ],
31
+ summary: [
32
+ component(`${id}-status`, 'statusChip', {
33
+ status: fromQuery(queries.summary, '0.status'),
34
+ tone: fromQuery(queries.summary, '0.tone')
35
+ }),
36
+ ...options.facts.map((fact)=>component(`${id}-${fact.id}`, 'statCard', {
37
+ label: fact.label,
38
+ value: fromQuery(queries.summary, `0.${fact.field}`),
39
+ ...fact.format ? {
40
+ format: fact.format
41
+ } : {},
42
+ ...currencyOfData
43
+ }))
44
+ ],
45
+ tabs: [
46
+ component(`${id}-tabs`, 'tabSet', {
47
+ tabs: fromQuery(queries.tabs),
48
+ urlKey: 'tab',
49
+ label: `${options.displayName} sections`
50
+ })
51
+ ],
52
+ main: [
53
+ component(`${id}-form`, 'formScreenBody', {
54
+ mode: 'readOnly',
55
+ sections: fromQuery(queries.sections),
56
+ values: fromQuery(queries.record, '0'),
57
+ ...currencyOfData
58
+ }),
59
+ ...options.extras.map((extra)=>component(`${id}-${extra.key.toLowerCase()}`, 'dataList', {
60
+ label: extra.label,
61
+ rows: fromQuery(`${options.entity}${extra.key}`),
62
+ columns: fromQuery(`${options.entity}${extra.key}Columns`),
63
+ titleField: extra.titleField,
64
+ pageSize: extra.pageSize ?? 8,
65
+ ...currencyOfData
66
+ }))
67
+ ],
68
+ related: [],
69
+ activity: [
70
+ component(`${id}-activity`, 'activityFeed', {
71
+ label: 'Activity',
72
+ entries: fromQuery(queries.activity),
73
+ ...localeOfData
74
+ })
75
+ ],
76
+ aside: []
77
+ },
78
+ displayName: options.displayName,
79
+ description: options.description,
80
+ metadata: contractsMetadata(options.name, 'Detail', [
81
+ TemplateScope.Feature,
82
+ TemplateScope.Subfeature
83
+ ])
84
+ };
85
+ }
86
+ /** The contract page: the contract number as its title, its status, value, days to its end and notice period at the top, its details, parties, obligations and amendments in the main region, and the activity beside it. */ const contractPageTemplate = recordPageOf({
87
+ name: 'ContractPage',
88
+ entity: ContractsEntityKind.Contract,
89
+ displayName: 'Contract page',
90
+ description: 'One contract: status, value, days to its end and notice period, its details, parties, obligations and amendments, and its activity.',
91
+ titleField: 'number',
92
+ backScreen: 'contracts.list',
93
+ backLabel: 'Back to contracts',
94
+ facts: [
95
+ {
96
+ id: 'value',
97
+ label: 'Contract value',
98
+ field: 'value',
99
+ format: 'currency'
100
+ },
101
+ {
102
+ id: 'days',
103
+ label: 'Days to end',
104
+ field: 'daysToEnd'
105
+ },
106
+ {
107
+ id: 'notice',
108
+ label: 'Notice (days)',
109
+ field: 'noticeDays'
110
+ }
111
+ ],
112
+ extras: [
113
+ {
114
+ key: 'Parties',
115
+ label: 'Parties',
116
+ titleField: 'name'
117
+ },
118
+ {
119
+ key: 'Obligations',
120
+ label: 'Obligations',
121
+ titleField: 'summary'
122
+ },
123
+ {
124
+ key: 'Amendments',
125
+ label: 'Amendments',
126
+ titleField: 'number'
127
+ }
128
+ ],
129
+ actions: []
130
+ });
131
+
132
+ export { contractPageTemplate };
133
+ //# sourceMappingURL=recordTemplates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recordTemplates.js","sources":["../../../templates/recordTemplates.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, TemplateScope } from '@cratis/scene.model';\nimport { recordPageTemplate } from '@cratis/scene.blueprint.default';\nimport { ContractsEntityKind, currencyOfData, fromQuery, localeOfData, contractsQueriesOf } from '../contractsQueries';\nimport { actionButton, component, goesTo, contractsMetadata, opensDialog, withBehaviors } from '../contractsParts';\n\ninterface Fact { id: string; label: string; field: string; format?: 'currency' | 'percent' }\ninterface Extra { key: string; label: string; titleField: string; pageSize?: number }\ninterface Action { id: string; label: string; emphasis: 'primary' | 'secondary' | 'quiet' | 'danger'; dialog?: string; screen?: string }\n\ninterface RecordOptions {\n name: string;\n entity: ContractsEntityKind;\n displayName: string;\n description: string;\n titleField: string;\n backScreen: string;\n backLabel: string;\n facts: Fact[];\n extras: Extra[];\n actions: Action[];\n}\n\n/**\n * One record page: the foundation `RecordPage` with the record's own title, its status and key facts at the top, its fields and the lists that belong to it in the\n * main region, and the activity beside it. What it shows is the record the list handed it the id of.\n */\nfunction recordPageOf(options: RecordOptions): ScreenTemplate {\n const queries = contractsQueriesOf(options.entity);\n const id = options.name;\n return {\n name: options.name,\n fitsSlot: 'content',\n slots: recordPageTemplate.slots,\n arrangement: recordPageTemplate.arrangement,\n content: {\n header: [component(`${id}-header`, 'pageHeader', { title: fromQuery(queries.record, `0.${options.titleField}`), subtitle: fromQuery(queries.record, '0.summary') }, {\n actions: [\n withBehaviors(actionButton(`${id}-back`, options.backLabel, 'secondary'), goesTo(options.backScreen)),\n ...options.actions.map(action => withBehaviors(actionButton(`${id}-${action.id}`, action.label, action.emphasis), action.dialog ? opensDialog(action.dialog) : goesTo(action.screen!))),\n ],\n })],\n summary: [\n component(`${id}-status`, 'statusChip', { status: fromQuery(queries.summary, '0.status'), tone: fromQuery(queries.summary, '0.tone') }),\n ...options.facts.map(fact => component(`${id}-${fact.id}`, 'statCard', {\n label: fact.label, value: fromQuery(queries.summary, `0.${fact.field}`), ...(fact.format ? { format: fact.format } : {}), ...currencyOfData,\n })),\n ],\n tabs: [component(`${id}-tabs`, 'tabSet', { tabs: fromQuery(queries.tabs), urlKey: 'tab', label: `${options.displayName} sections` })],\n main: [\n component(`${id}-form`, 'formScreenBody', { mode: 'readOnly', sections: fromQuery(queries.sections), values: fromQuery(queries.record, '0'), ...currencyOfData }),\n ...options.extras.map(extra => component(`${id}-${extra.key.toLowerCase()}`, 'dataList', {\n label: extra.label, rows: fromQuery(`${options.entity}${extra.key}`), columns: fromQuery(`${options.entity}${extra.key}Columns`), titleField: extra.titleField, pageSize: extra.pageSize ?? 8, ...currencyOfData,\n })),\n ],\n related: [],\n activity: [component(`${id}-activity`, 'activityFeed', { label: 'Activity', entries: fromQuery(queries.activity), ...localeOfData })],\n aside: [],\n },\n displayName: options.displayName,\n description: options.description,\n metadata: contractsMetadata(options.name, 'Detail', [TemplateScope.Feature, TemplateScope.Subfeature]),\n };\n}\n\n/** The contract page: the contract number as its title, its status, value, days to its end and notice period at the top, its details, parties, obligations and amendments in the main region, and the activity beside it. */\nexport const contractPageTemplate = recordPageOf({\n name: 'ContractPage', entity: ContractsEntityKind.Contract, displayName: 'Contract page', description: 'One contract: status, value, days to its end and notice period, its details, parties, obligations and amendments, and its activity.', titleField: 'number', backScreen: 'contracts.list', backLabel: 'Back to contracts',\n facts: [\n { id: 'value', label: 'Contract value', field: 'value', format: 'currency' },\n { id: 'days', label: 'Days to end', field: 'daysToEnd' },\n { id: 'notice', label: 'Notice (days)', field: 'noticeDays' },\n ],\n extras: [{ key: 'Parties', label: 'Parties', titleField: 'name' }, { key: 'Obligations', label: 'Obligations', titleField: 'summary' }, { key: 'Amendments', label: 'Amendments', titleField: 'number' }],\n actions: [],\n});\n"],"names":["recordPageOf","options","queries","contractsQueriesOf","entity","id","name","fitsSlot","slots","recordPageTemplate","arrangement","content","header","component","title","fromQuery","record","titleField","subtitle","actions","withBehaviors","actionButton","backLabel","goesTo","backScreen","map","action","label","emphasis","dialog","opensDialog","screen","summary","status","tone","facts","fact","value","field","format","currencyOfData","tabs","urlKey","displayName","main","mode","sections","values","extras","extra","key","toLowerCase","rows","columns","pageSize","related","activity","entries","localeOfData","aside","description","metadata","contractsMetadata","TemplateScope","Feature","Subfeature","contractPageTemplate","ContractsEntityKind","Contract"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { ScreenTemplate } from '@cratis/scene.model';
2
+ export declare const contractsTimelineTemplate: ScreenTemplate;
3
+ //# sourceMappingURL=timelineTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timelineTemplate.d.ts","sourceRoot":"","sources":["../../../templates/timelineTemplate.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAiB,MAAM,qBAAqB,CAAC;AA+CpE,eAAO,MAAM,yBAAyB,gBAGpC,CAAC"}