@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.
- package/ComponentName.ts +9 -0
- package/defaultBlueprint.ts +1 -0
- package/defaultBlueprintComponents.ts +4 -1
- package/dist/cjs/ComponentName.js +3 -0
- package/dist/cjs/ComponentName.js.map +1 -1
- package/dist/cjs/defaultBlueprint.js +20 -1
- package/dist/cjs/defaultBlueprint.js.map +1 -1
- package/dist/cjs/defaultBlueprintComponentMetadata.js +11 -0
- package/dist/cjs/defaultBlueprintComponentMetadata.js.map +1 -1
- package/dist/cjs/defaultBlueprintComponents.js +17 -0
- package/dist/cjs/defaultBlueprintComponents.js.map +1 -1
- package/dist/cjs/foundation/ActionButton.js.map +1 -1
- package/dist/cjs/foundation/ActionButtonControl.js +46 -0
- package/dist/cjs/foundation/ActionButtonControl.js.map +1 -0
- package/dist/cjs/foundation/DialogFrame.js +196 -0
- package/dist/cjs/foundation/DialogFrame.js.map +1 -0
- package/dist/cjs/foundation/FormScreenBody.js +13 -3
- package/dist/cjs/foundation/FormScreenBody.js.map +1 -1
- package/dist/cjs/foundation/Notice.js +51 -0
- package/dist/cjs/foundation/Notice.js.map +1 -0
- package/dist/cjs/foundation/formModel.js +1 -0
- package/dist/cjs/foundation/formModel.js.map +1 -1
- package/dist/cjs/foundation/foundationComponentMetadata.js +22 -0
- package/dist/cjs/foundation/foundationComponentMetadata.js.map +1 -1
- package/dist/cjs/foundation/foundationDescriptors.js +89 -0
- package/dist/cjs/foundation/foundationDescriptors.js.map +1 -1
- package/dist/cjs/foundation/foundationSamples.js +29 -0
- package/dist/cjs/foundation/foundationSamples.js.map +1 -1
- package/dist/cjs/foundation/foundationStrings.js +3 -1
- package/dist/cjs/foundation/foundationStrings.js.map +1 -1
- package/dist/cjs/foundation/templates/boardScreenTemplate.js +76 -0
- package/dist/cjs/foundation/templates/boardScreenTemplate.js.map +1 -0
- package/dist/cjs/foundation/templates/dashboardScreenTemplate.js +128 -0
- package/dist/cjs/foundation/templates/dashboardScreenTemplate.js.map +1 -0
- package/dist/cjs/foundation/templates/dialogTemplates.js +254 -0
- package/dist/cjs/foundation/templates/dialogTemplates.js.map +1 -0
- package/dist/cjs/foundation/templates/formScreenTemplate.js +71 -0
- package/dist/cjs/foundation/templates/formScreenTemplate.js.map +1 -0
- package/dist/cjs/foundation/templates/index.js +57 -0
- package/dist/cjs/foundation/templates/index.js.map +1 -0
- package/dist/cjs/foundation/templates/listScreenTemplate.js +124 -0
- package/dist/cjs/foundation/templates/listScreenTemplate.js.map +1 -0
- package/dist/cjs/foundation/templates/masterDetailScreenTemplate.js +79 -0
- package/dist/cjs/foundation/templates/masterDetailScreenTemplate.js.map +1 -0
- package/dist/cjs/foundation/templates/recordPageTemplate.js +137 -0
- package/dist/cjs/foundation/templates/recordPageTemplate.js.map +1 -0
- package/dist/cjs/foundation/templates/stateScreenTemplates.js +252 -0
- package/dist/cjs/foundation/templates/stateScreenTemplates.js.map +1 -0
- package/dist/cjs/foundation/templates/templateParts.js +38 -0
- package/dist/cjs/foundation/templates/templateParts.js.map +1 -0
- package/dist/cjs/foundation/templates/wizardScreenTemplate.js +95 -0
- package/dist/cjs/foundation/templates/wizardScreenTemplate.js.map +1 -0
- package/dist/cjs/foundation/templates/workspaceScreenTemplate.js +62 -0
- package/dist/cjs/foundation/templates/workspaceScreenTemplate.js.map +1 -0
- package/dist/cjs/gallery/GalleryDialogPreview.js +62 -0
- package/dist/cjs/gallery/GalleryDialogPreview.js.map +1 -0
- package/dist/cjs/gallery/GalleryScreenPreview.js +78 -4
- package/dist/cjs/gallery/GalleryScreenPreview.js.map +1 -1
- package/dist/cjs/gallery/applicationChrome.js +18 -1
- package/dist/cjs/gallery/applicationChrome.js.map +1 -1
- package/dist/cjs/gallery/composeScreen.js +5 -3
- package/dist/cjs/gallery/composeScreen.js.map +1 -1
- package/dist/cjs/gallery/dialogTemplates.js +41 -36
- package/dist/cjs/gallery/dialogTemplates.js.map +1 -1
- package/dist/cjs/gallery/screens.js +87 -3
- package/dist/cjs/gallery/screens.js.map +1 -1
- package/dist/cjs/index.js +61 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/ComponentName.d.ts +3 -0
- package/dist/esm/ComponentName.d.ts.map +1 -1
- package/dist/esm/ComponentName.js +3 -0
- package/dist/esm/ComponentName.js.map +1 -1
- package/dist/esm/defaultBlueprint.d.ts.map +1 -1
- package/dist/esm/defaultBlueprint.js +20 -1
- package/dist/esm/defaultBlueprint.js.map +1 -1
- package/dist/esm/defaultBlueprintComponentMetadata.js +11 -0
- package/dist/esm/defaultBlueprintComponentMetadata.js.map +1 -1
- package/dist/esm/defaultBlueprintComponents.d.ts.map +1 -1
- package/dist/esm/defaultBlueprintComponents.js +17 -0
- package/dist/esm/defaultBlueprintComponents.js.map +1 -1
- package/dist/esm/foundation/ActionButton.d.ts +1 -1
- package/dist/esm/foundation/ActionButton.d.ts.map +1 -1
- package/dist/esm/foundation/ActionButton.js.map +1 -1
- package/dist/esm/foundation/ActionButtonControl.d.ts +3 -0
- package/dist/esm/foundation/ActionButtonControl.d.ts.map +1 -0
- package/dist/esm/foundation/ActionButtonControl.js +44 -0
- package/dist/esm/foundation/ActionButtonControl.js.map +1 -0
- package/dist/esm/foundation/DialogFrame.d.ts +14 -0
- package/dist/esm/foundation/DialogFrame.d.ts.map +1 -0
- package/dist/esm/foundation/DialogFrame.js +190 -0
- package/dist/esm/foundation/DialogFrame.js.map +1 -0
- package/dist/esm/foundation/FormScreenBody.d.ts.map +1 -1
- package/dist/esm/foundation/FormScreenBody.js +13 -3
- package/dist/esm/foundation/FormScreenBody.js.map +1 -1
- package/dist/esm/foundation/Notice.d.ts +3 -0
- package/dist/esm/foundation/Notice.d.ts.map +1 -0
- package/dist/esm/foundation/Notice.js +49 -0
- package/dist/esm/foundation/Notice.js.map +1 -0
- package/dist/esm/foundation/formModel.d.ts +2 -1
- package/dist/esm/foundation/formModel.d.ts.map +1 -1
- package/dist/esm/foundation/formModel.js +1 -0
- package/dist/esm/foundation/formModel.js.map +1 -1
- package/dist/esm/foundation/foundationComponentMetadata.d.ts.map +1 -1
- package/dist/esm/foundation/foundationComponentMetadata.js +22 -0
- package/dist/esm/foundation/foundationComponentMetadata.js.map +1 -1
- package/dist/esm/foundation/foundationDescriptors.d.ts.map +1 -1
- package/dist/esm/foundation/foundationDescriptors.js +89 -0
- package/dist/esm/foundation/foundationDescriptors.js.map +1 -1
- package/dist/esm/foundation/foundationSamples.d.ts.map +1 -1
- package/dist/esm/foundation/foundationSamples.js +29 -0
- package/dist/esm/foundation/foundationSamples.js.map +1 -1
- package/dist/esm/foundation/foundationStrings.d.ts +2 -0
- package/dist/esm/foundation/foundationStrings.d.ts.map +1 -1
- package/dist/esm/foundation/foundationStrings.js +3 -1
- package/dist/esm/foundation/foundationStrings.js.map +1 -1
- package/dist/esm/foundation/index.d.ts +4 -0
- package/dist/esm/foundation/index.d.ts.map +1 -1
- package/dist/esm/foundation/index.js +4 -0
- package/dist/esm/foundation/index.js.map +1 -1
- package/dist/esm/foundation/templates/boardScreenTemplate.d.ts +3 -0
- package/dist/esm/foundation/templates/boardScreenTemplate.d.ts.map +1 -0
- package/dist/esm/foundation/templates/boardScreenTemplate.js +74 -0
- package/dist/esm/foundation/templates/boardScreenTemplate.js.map +1 -0
- package/dist/esm/foundation/templates/dashboardScreenTemplate.d.ts +3 -0
- package/dist/esm/foundation/templates/dashboardScreenTemplate.d.ts.map +1 -0
- package/dist/esm/foundation/templates/dashboardScreenTemplate.js +126 -0
- package/dist/esm/foundation/templates/dashboardScreenTemplate.js.map +1 -0
- package/dist/esm/foundation/templates/dialogTemplates.d.ts +20 -0
- package/dist/esm/foundation/templates/dialogTemplates.d.ts.map +1 -0
- package/dist/esm/foundation/templates/dialogTemplates.js +243 -0
- package/dist/esm/foundation/templates/dialogTemplates.js.map +1 -0
- package/dist/esm/foundation/templates/formScreenTemplate.d.ts +3 -0
- package/dist/esm/foundation/templates/formScreenTemplate.d.ts.map +1 -0
- package/dist/esm/foundation/templates/formScreenTemplate.js +69 -0
- package/dist/esm/foundation/templates/formScreenTemplate.js.map +1 -0
- package/dist/esm/foundation/templates/index.d.ts +13 -0
- package/dist/esm/foundation/templates/index.d.ts.map +1 -0
- package/dist/esm/foundation/templates/index.js +27 -0
- package/dist/esm/foundation/templates/index.js.map +1 -0
- package/dist/esm/foundation/templates/listScreenTemplate.d.ts +3 -0
- package/dist/esm/foundation/templates/listScreenTemplate.d.ts.map +1 -0
- package/dist/esm/foundation/templates/listScreenTemplate.js +122 -0
- package/dist/esm/foundation/templates/listScreenTemplate.js.map +1 -0
- package/dist/esm/foundation/templates/masterDetailScreenTemplate.d.ts +3 -0
- package/dist/esm/foundation/templates/masterDetailScreenTemplate.d.ts.map +1 -0
- package/dist/esm/foundation/templates/masterDetailScreenTemplate.js +77 -0
- package/dist/esm/foundation/templates/masterDetailScreenTemplate.js.map +1 -0
- package/dist/esm/foundation/templates/recordPageTemplate.d.ts +3 -0
- package/dist/esm/foundation/templates/recordPageTemplate.d.ts.map +1 -0
- package/dist/esm/foundation/templates/recordPageTemplate.js +135 -0
- package/dist/esm/foundation/templates/recordPageTemplate.js.map +1 -0
- package/dist/esm/foundation/templates/stateScreenTemplates.d.ts +8 -0
- package/dist/esm/foundation/templates/stateScreenTemplates.d.ts.map +1 -0
- package/dist/esm/foundation/templates/stateScreenTemplates.js +245 -0
- package/dist/esm/foundation/templates/stateScreenTemplates.js.map +1 -0
- package/dist/esm/foundation/templates/templateParts.d.ts +6 -0
- package/dist/esm/foundation/templates/templateParts.d.ts.map +1 -0
- package/dist/esm/foundation/templates/templateParts.js +33 -0
- package/dist/esm/foundation/templates/templateParts.js.map +1 -0
- package/dist/esm/foundation/templates/wizardScreenTemplate.d.ts +3 -0
- package/dist/esm/foundation/templates/wizardScreenTemplate.d.ts.map +1 -0
- package/dist/esm/foundation/templates/wizardScreenTemplate.js +93 -0
- package/dist/esm/foundation/templates/wizardScreenTemplate.js.map +1 -0
- package/dist/esm/foundation/templates/workspaceScreenTemplate.d.ts +3 -0
- package/dist/esm/foundation/templates/workspaceScreenTemplate.d.ts.map +1 -0
- package/dist/esm/foundation/templates/workspaceScreenTemplate.js +60 -0
- package/dist/esm/foundation/templates/workspaceScreenTemplate.js.map +1 -0
- package/dist/esm/gallery/FoundationDialogs.stories.d.ts +35 -0
- package/dist/esm/gallery/FoundationDialogs.stories.d.ts.map +1 -0
- package/dist/esm/gallery/FoundationDialogs.stories.js +38 -0
- package/dist/esm/gallery/FoundationDialogs.stories.js.map +1 -0
- package/dist/esm/gallery/GalleryDialogPreview.d.ts +17 -0
- package/dist/esm/gallery/GalleryDialogPreview.d.ts.map +1 -0
- package/dist/esm/gallery/GalleryDialogPreview.js +59 -0
- package/dist/esm/gallery/GalleryDialogPreview.js.map +1 -0
- package/dist/esm/gallery/GalleryScreenPreview.d.ts +13 -2
- package/dist/esm/gallery/GalleryScreenPreview.d.ts.map +1 -1
- package/dist/esm/gallery/GalleryScreenPreview.js +77 -5
- package/dist/esm/gallery/GalleryScreenPreview.js.map +1 -1
- package/dist/esm/gallery/applicationChrome.d.ts.map +1 -1
- package/dist/esm/gallery/applicationChrome.js +18 -1
- package/dist/esm/gallery/applicationChrome.js.map +1 -1
- package/dist/esm/gallery/composeScreen.d.ts.map +1 -1
- package/dist/esm/gallery/composeScreen.js +5 -3
- package/dist/esm/gallery/composeScreen.js.map +1 -1
- package/dist/esm/gallery/dialogTemplates.d.ts.map +1 -1
- package/dist/esm/gallery/dialogTemplates.js +42 -37
- package/dist/esm/gallery/dialogTemplates.js.map +1 -1
- package/dist/esm/gallery/index.d.ts +1 -0
- package/dist/esm/gallery/index.d.ts.map +1 -1
- package/dist/esm/gallery/index.js +1 -0
- package/dist/esm/gallery/index.js.map +1 -1
- package/dist/esm/gallery/screens.d.ts.map +1 -1
- package/dist/esm/gallery/screens.js +87 -3
- package/dist/esm/gallery/screens.js.map +1 -1
- package/dist/esm/index.js +17 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/foundation/ActionButton.tsx +1 -1
- package/foundation/ActionButtonControl.tsx +37 -0
- package/foundation/DialogFrame.tsx +138 -0
- package/foundation/FormScreenBody.tsx +6 -3
- package/foundation/Notice.tsx +33 -0
- package/foundation/formModel.ts +1 -0
- package/foundation/foundationComponentMetadata.ts +3 -0
- package/foundation/foundationDescriptors.ts +41 -0
- package/foundation/foundationSamples.ts +3 -0
- package/foundation/foundationStrings.ts +2 -0
- package/foundation/index.ts +4 -0
- package/foundation/templates/boardScreenTemplate.ts +28 -0
- package/foundation/templates/dashboardScreenTemplate.ts +37 -0
- package/foundation/templates/dialogTemplates.ts +114 -0
- package/foundation/templates/formScreenTemplate.ts +28 -0
- package/foundation/templates/index.ts +28 -0
- package/foundation/templates/listScreenTemplate.ts +37 -0
- package/foundation/templates/masterDetailScreenTemplate.ts +28 -0
- package/foundation/templates/recordPageTemplate.ts +36 -0
- package/foundation/templates/stateScreenTemplates.ts +107 -0
- package/foundation/templates/templateParts.ts +30 -0
- package/foundation/templates/wizardScreenTemplate.ts +33 -0
- package/foundation/templates/workspaceScreenTemplate.ts +27 -0
- package/gallery/FoundationDialogs.stories.tsx +74 -0
- package/gallery/GalleryDialogPreview.tsx +68 -0
- package/gallery/GalleryScreenPreview.tsx +64 -5
- package/gallery/applicationChrome.ts +6 -1
- package/gallery/composeScreen.ts +4 -2
- package/gallery/dialogTemplates.ts +22 -17
- package/gallery/index.ts +1 -0
- package/gallery/screens.ts +18 -2
- package/package.json +10 -8
- package/sampleData/foundation-en.json +661 -0
- package/shell/layout.css +219 -0
- package/thumbnails/BoardScreen.svg +15 -0
- package/thumbnails/ConfirmDialog.svg +12 -0
- package/thumbnails/DashboardScreen.svg +18 -0
- package/thumbnails/DetailDialog.svg +11 -0
- package/thumbnails/ErrorScreen.svg +11 -0
- package/thumbnails/FilterDialog.svg +16 -0
- package/thumbnails/ForbiddenScreen.svg +10 -0
- package/thumbnails/FormDialog.svg +12 -0
- package/thumbnails/FormScreen.svg +14 -0
- package/thumbnails/ListScreen.svg +16 -0
- package/thumbnails/LoginScreen.svg +12 -0
- package/thumbnails/LookupDialog.svg +13 -0
- package/thumbnails/MasterDetailScreen.svg +22 -0
- package/thumbnails/NotFoundScreen.svg +9 -0
- package/thumbnails/QuickCreateDialog.svg +12 -0
- package/thumbnails/RecordPage.svg +17 -0
- package/thumbnails/SideSheet.svg +13 -0
- package/thumbnails/WizardScreen.svg +16 -0
- 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":";;;;;;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;AAAU,SAAA;AAAG,QAAA;YAAEA,IAAAA,EAAM;AAAO,SAAA;AAAG,QAAA;YAAEA,IAAAA,EAAM;AAAO,SAAA;AAAG,QAAA;YAAEA,IAAAA,EAAM;AAAU,SAAA;AAAG,QAAA;YAAEA,IAAAA,EAAM;AAAW,SAAA;AAAG,QAAA;YAAEA,IAAAA,EAAM;AAAQ;AAAE,KAAA;IAClJG,WAAAA,EAAa;AACTC,QAAAA,IAAAA,EAAMC,mBAAAA,CAAO;YAACC,qBAAAA,CAAS,QAAA,CAAA;YAAWA,qBAAAA,CAAS,SAAA,CAAA;YAAYC,iBAAAA,CAAK;gBAACF,mBAAAA,CAAO;oBAACC,qBAAAA,CAAS,MAAA,CAAA;oBAASA,qBAAAA,CAAS,MAAA,CAAA;oBAASA,qBAAAA,CAAS,SAAA,CAAA;oBAAYA,qBAAAA,CAAS,UAAA;AAAY,iBAAA,EAAE,EAAA,EAAI;oBAAEE,IAAAA,EAAM;AAAE,iBAAA,CAAA;gBAAIF,qBAAAA,CAAS,OAAA;AAAS,aAAA,EAAE,CAAA,EAAG,EAAA;SAAI,EAAE,EAAA,CAAA;QACpMG,SAAAA,EAAW;AAAC,YAAA;AAAEC,gBAAAA,KAAAA,EAAOC,2BAAeC,OAAO;AAAER,gBAAAA,IAAAA,EAAMC,mBAAAA,CAAO;oBAACC,qBAAAA,CAAS,QAAA,CAAA;oBAAWA,qBAAAA,CAAS,SAAA,CAAA;oBAAYA,qBAAAA,CAAS,MAAA,CAAA;oBAASA,qBAAAA,CAAS,MAAA,CAAA;oBAASA,qBAAAA,CAAS,SAAA,CAAA;oBAAYA,qBAAAA,CAAS,UAAA,CAAA;oBAAaA,qBAAAA,CAAS,OAAA;iBAAS,EAAE,EAAA;AAAI;AAAE;AACjN,KAAA;IACAO,OAAAA,EAAS;QACLC,MAAAA,EAAQ;AAACC,YAAAA,uBAAAA,CAAU,iBAAiB,YAAA,EAAc;AAAEC,gBAAAA,KAAAA,EAAOC,wBAAU,cAAA,EAAgB,QAAA,CAAA;gBAAWC,QAAAA,EAAU;AAAU,aAAA;AAAG,SAAA;QACvHC,OAAAA,EAAS;AACLJ,YAAAA,uBAAAA,CAAU,gBAAgB,UAAA,EAAY;gBAAEK,KAAAA,EAAO,gBAAA;AAAkBC,gBAAAA,KAAAA,EAAOJ,wBAAU,MAAA,EAAQ,SAAA,CAAA;gBAAYK,MAAAA,EAAQ,UAAA;gBAAYC,QAAAA,EAAU;AAAM,aAAA,CAAA;AAC1IR,YAAAA,uBAAAA,CAAU,iBAAiB,YAAA,EAAc;AAAES,gBAAAA,MAAAA,EAAQP,wBAAU,OAAA,EAAS,UAAA,CAAA;gBAAaQ,IAAAA,EAAM;AAAO,aAAA,CAAA;AAChGV,YAAAA,uBAAAA,CAAU,iBAAiB,aAAA,EAAe;AAAEW,gBAAAA,MAAAA,EAAQT,uBAAAA,CAAU,QAAA;AAAU,aAAA;AAC3E,SAAA;QACDU,IAAAA,EAAM;AAACZ,YAAAA,uBAAAA,CAAU,eAAe,QAAA,EAAU;AAAEY,gBAAAA,IAAAA,EAAMV,uBAAAA,CAAU,YAAA,CAAA;gBAAeW,MAAAA,EAAQ,KAAA;gBAAOR,KAAAA,EAAO;AAAkB,aAAA;AAAG,SAAA;QACtHS,IAAAA,EAAM;AAACd,YAAAA,uBAAAA,CAAU,eAAe,gBAAA,EAAkB;gBAAEe,IAAAA,EAAM,UAAA;AAAYC,gBAAAA,QAAAA,EAAUd,uBAAAA,CAAU,gBAAA,CAAA;AAAmBe,gBAAAA,MAAAA,EAAQf,wBAAU,cAAA,EAAgB,GAAA;AAAK,aAAA;AAAG,SAAA;QACvJgB,OAAAA,EAAS;AAAClB,YAAAA,uBAAAA,CAAU,kBAAkB,UAAA,EAAY;gBAAEK,KAAAA,EAAO,eAAA;AAAiBc,gBAAAA,IAAAA,EAAMjB,uBAAAA,CAAU,OAAA,CAAA;AAAUkB,gBAAAA,OAAAA,EAASlB,uBAAAA,CAAU,aAAA,CAAA;gBAAgBmB,UAAAA,EAAY,MAAA;gBAAQC,QAAAA,EAAU;AAAE,aAAA;AAAG,SAAA;QAC5KC,QAAAA,EAAU;AAACvB,YAAAA,uBAAAA,CAAU,mBAAmB,cAAA,EAAgB;gBAAEK,KAAAA,EAAO,SAAA;AAAWmB,gBAAAA,OAAAA,EAAStB,uBAAAA,CAAU,UAAA;AAAY,aAAA;AAAG,SAAA;QAC9GuB,KAAAA,EAAO;AAACzB,YAAAA,uBAAAA,CAAU,oBAAoB,kBAAA,EAAoB;AAAEgB,gBAAAA,QAAAA,EAAUd,uBAAAA,CAAU,WAAA;AAAa,aAAA;AAAG;AACpG,KAAA;IACAwB,WAAAA,EAAa,aAAA;IACbC,WAAAA,EAAa,0EAAA;IACbC,QAAAA,EAAU;AAAE,QAAA,GAAGC,0CAA4B;QAAEC,IAAAA,EAAM,QAAA;QAAUC,QAAAA,EAAU,qBAAA;AAAuBC,QAAAA,SAAAA,EAAWC,yBAAAA,CAAY,YAAA;AAAc;AACvI;;"}
|