@cratis/scene.blueprint.hr 0.0.0-stage → 4.53.1

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 (129) hide show
  1. package/README.md +66 -2
  2. package/blueprint.ts +16 -0
  3. package/blueprintCatalog.json +164 -0
  4. package/dist/cjs/blueprint.js +19 -0
  5. package/dist/cjs/blueprint.js.map +1 -0
  6. package/dist/cjs/hrApplication.js +49 -0
  7. package/dist/cjs/hrApplication.js.map +1 -0
  8. package/dist/cjs/hrParts.js +131 -0
  9. package/dist/cjs/hrParts.js.map +1 -0
  10. package/dist/cjs/hrQueries.js +67 -0
  11. package/dist/cjs/hrQueries.js.map +1 -0
  12. package/dist/cjs/hrScreenSet.js +61 -0
  13. package/dist/cjs/hrScreenSet.js.map +1 -0
  14. package/dist/cjs/index.js +69 -0
  15. package/dist/cjs/index.js.map +1 -0
  16. package/dist/cjs/manifest.js +65 -0
  17. package/dist/cjs/manifest.js.map +1 -0
  18. package/dist/cjs/navigation.js +135 -0
  19. package/dist/cjs/navigation.js.map +1 -0
  20. package/dist/cjs/package.json +3 -0
  21. package/dist/cjs/packageName.js +8 -0
  22. package/dist/cjs/packageName.js.map +1 -0
  23. package/dist/cjs/screens/index.js +22 -0
  24. package/dist/cjs/screens/index.js.map +1 -0
  25. package/dist/cjs/templateProvenance.js +24 -0
  26. package/dist/cjs/templateProvenance.js.map +1 -0
  27. package/dist/cjs/templates/formTemplates.js +51 -0
  28. package/dist/cjs/templates/formTemplates.js.map +1 -0
  29. package/dist/cjs/templates/index.js +30 -0
  30. package/dist/cjs/templates/index.js.map +1 -0
  31. package/dist/cjs/templates/listTemplates.js +210 -0
  32. package/dist/cjs/templates/listTemplates.js.map +1 -0
  33. package/dist/cjs/templates/orgChartTemplate.js +63 -0
  34. package/dist/cjs/templates/orgChartTemplate.js.map +1 -0
  35. package/dist/cjs/templates/recordTemplates.js +181 -0
  36. package/dist/cjs/templates/recordTemplates.js.map +1 -0
  37. package/dist/esm/blueprint.d.ts +3 -0
  38. package/dist/esm/blueprint.d.ts.map +1 -0
  39. package/dist/esm/blueprint.js +17 -0
  40. package/dist/esm/blueprint.js.map +1 -0
  41. package/dist/esm/hrApplication.d.ts +10 -0
  42. package/dist/esm/hrApplication.d.ts.map +1 -0
  43. package/dist/esm/hrApplication.js +44 -0
  44. package/dist/esm/hrApplication.js.map +1 -0
  45. package/dist/esm/hrParts.d.ts +15 -0
  46. package/dist/esm/hrParts.d.ts.map +1 -0
  47. package/dist/esm/hrParts.js +114 -0
  48. package/dist/esm/hrParts.js.map +1 -0
  49. package/dist/esm/hrQueries.d.ts +38 -0
  50. package/dist/esm/hrQueries.d.ts.map +1 -0
  51. package/dist/esm/hrQueries.js +59 -0
  52. package/dist/esm/hrQueries.js.map +1 -0
  53. package/dist/esm/hrScreenSet.d.ts +7 -0
  54. package/dist/esm/hrScreenSet.d.ts.map +1 -0
  55. package/dist/esm/hrScreenSet.js +59 -0
  56. package/dist/esm/hrScreenSet.js.map +1 -0
  57. package/dist/esm/index.d.ts +12 -0
  58. package/dist/esm/index.d.ts.map +1 -0
  59. package/dist/esm/index.js +17 -0
  60. package/dist/esm/index.js.map +1 -0
  61. package/dist/esm/manifest.d.ts +3 -0
  62. package/dist/esm/manifest.d.ts.map +1 -0
  63. package/dist/esm/manifest.js +63 -0
  64. package/dist/esm/manifest.js.map +1 -0
  65. package/dist/esm/navigation.d.ts +5 -0
  66. package/dist/esm/navigation.d.ts.map +1 -0
  67. package/dist/esm/navigation.js +131 -0
  68. package/dist/esm/navigation.js.map +1 -0
  69. package/dist/esm/package.json +3 -0
  70. package/dist/esm/packageName.d.ts +2 -0
  71. package/dist/esm/packageName.d.ts.map +1 -0
  72. package/dist/esm/packageName.js +6 -0
  73. package/dist/esm/packageName.js.map +1 -0
  74. package/dist/esm/screens/index.d.ts +3 -0
  75. package/dist/esm/screens/index.d.ts.map +1 -0
  76. package/dist/esm/screens/index.js +20 -0
  77. package/dist/esm/screens/index.js.map +1 -0
  78. package/dist/esm/templateProvenance.d.ts +3 -0
  79. package/dist/esm/templateProvenance.d.ts.map +1 -0
  80. package/dist/esm/templateProvenance.js +22 -0
  81. package/dist/esm/templateProvenance.js.map +1 -0
  82. package/dist/esm/templates/formTemplates.d.ts +3 -0
  83. package/dist/esm/templates/formTemplates.d.ts.map +1 -0
  84. package/dist/esm/templates/formTemplates.js +49 -0
  85. package/dist/esm/templates/formTemplates.js.map +1 -0
  86. package/dist/esm/templates/index.d.ts +7 -0
  87. package/dist/esm/templates/index.d.ts.map +1 -0
  88. package/dist/esm/templates/index.js +19 -0
  89. package/dist/esm/templates/index.js.map +1 -0
  90. package/dist/esm/templates/listTemplates.d.ts +6 -0
  91. package/dist/esm/templates/listTemplates.d.ts.map +1 -0
  92. package/dist/esm/templates/listTemplates.js +205 -0
  93. package/dist/esm/templates/listTemplates.js.map +1 -0
  94. package/dist/esm/templates/orgChartTemplate.d.ts +3 -0
  95. package/dist/esm/templates/orgChartTemplate.d.ts.map +1 -0
  96. package/dist/esm/templates/orgChartTemplate.js +61 -0
  97. package/dist/esm/templates/orgChartTemplate.js.map +1 -0
  98. package/dist/esm/templates/recordTemplates.d.ts +4 -0
  99. package/dist/esm/templates/recordTemplates.d.ts.map +1 -0
  100. package/dist/esm/templates/recordTemplates.js +178 -0
  101. package/dist/esm/templates/recordTemplates.js.map +1 -0
  102. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  103. package/hrApplication.ts +28 -0
  104. package/hrParts.ts +52 -0
  105. package/hrQueries.ts +59 -0
  106. package/hrScreenSet.ts +24 -0
  107. package/index.ts +14 -0
  108. package/manifest.ts +41 -0
  109. package/navigation.ts +59 -0
  110. package/package.json +78 -4
  111. package/packageName.ts +5 -0
  112. package/sampleData/hr-nordic.json +1659 -0
  113. package/screens/index.ts +20 -0
  114. package/templateProvenance.ts +15 -0
  115. package/templates/formTemplates.ts +34 -0
  116. package/templates/index.ts +21 -0
  117. package/templates/listTemplates.ts +109 -0
  118. package/templates/orgChartTemplate.ts +27 -0
  119. package/templates/recordTemplates.ts +75 -0
  120. package/thumbnails/HrEmployeeDirectory.svg +29 -0
  121. package/thumbnails/HrEmployeePage.svg +18 -0
  122. package/thumbnails/HrOnboardingChecklist.svg +18 -0
  123. package/thumbnails/HrOnboardingList.svg +13 -0
  124. package/thumbnails/HrOrgChart.svg +20 -0
  125. package/thumbnails/HrQuickCreateEmployee.svg +12 -0
  126. package/thumbnails/HrRequestTimeOff.svg +12 -0
  127. package/thumbnails/HrTimeOffBalanceList.svg +13 -0
  128. package/thumbnails/HrTimeOffList.svg +13 -0
  129. package/thumbnails/hr.svg +14 -0
@@ -0,0 +1,178 @@
1
+ import { TemplateScope } from '@cratis/scene.model';
2
+ import { component, recordPageTemplate } from '@cratis/scene.blueprint.default';
3
+ import { localeOfData, fromQuery, hrQueriesOf, HrEntityKind, HrQuery } from '../hrQueries.js';
4
+ import { hrMetadata, withBehaviors, opensDialog, actionButton } from '../hrParts.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 employee = hrQueriesOf(HrEntityKind.Employee);
9
+ const onboarding = hrQueriesOf(HrEntityKind.Onboarding);
10
+ /**
11
+ * The employee page: the foundation `RecordPage` with the employee's name as its title, the time-off balance as key facts under it, the personal and job
12
+ * information as the record, the employee's documents and time-off requests as related lists, their history and the open tasks beside it.
13
+ */ const hrEmployeePageTemplate = {
14
+ name: 'HrEmployeePage',
15
+ fitsSlot: 'content',
16
+ slots: recordPageTemplate.slots,
17
+ arrangement: recordPageTemplate.arrangement,
18
+ content: {
19
+ header: [
20
+ component('HrEmployeePage-header', 'pageHeader', {
21
+ title: fromQuery(employee.record, '0.name'),
22
+ subtitle: fromQuery(employee.record, '0.title')
23
+ }, {
24
+ actions: [
25
+ withBehaviors(actionButton('HrEmployeePage-timeoff', 'Request time off', 'primary'), opensDialog('HrRequestTimeOff'))
26
+ ]
27
+ })
28
+ ],
29
+ summary: [
30
+ component('HrEmployeePage-status', 'statusChip', {
31
+ status: fromQuery(employee.summary, '0.status'),
32
+ tone: fromQuery(employee.summary, '0.tone')
33
+ }),
34
+ component('HrEmployeePage-left', 'statCard', {
35
+ label: 'Leave left (days)',
36
+ value: fromQuery(employee.summary, '0.leaveLeft'),
37
+ ...localeOfData
38
+ }),
39
+ component('HrEmployeePage-taken', 'statCard', {
40
+ label: 'Leave taken (days)',
41
+ value: fromQuery(employee.summary, '0.leaveTaken'),
42
+ ...localeOfData
43
+ }),
44
+ component('HrEmployeePage-service', 'statCard', {
45
+ label: 'Years of service',
46
+ value: fromQuery(employee.summary, '0.years'),
47
+ ...localeOfData
48
+ }),
49
+ component('HrEmployeePage-team', 'avatarStack', {
50
+ people: fromQuery(employee.summary, '0.people')
51
+ })
52
+ ],
53
+ tabs: [
54
+ component('HrEmployeePage-tabs', 'tabSet', {
55
+ tabs: fromQuery(HrQuery.RecordTabs),
56
+ urlKey: 'tab',
57
+ label: 'Employee sections'
58
+ })
59
+ ],
60
+ main: [
61
+ component('HrEmployeePage-form', 'formScreenBody', {
62
+ mode: 'readOnly',
63
+ sections: fromQuery(employee.sections),
64
+ values: fromQuery(employee.record, '0'),
65
+ ...localeOfData
66
+ })
67
+ ],
68
+ related: [
69
+ component('HrEmployeePage-documents', 'dataList', {
70
+ label: 'Documents',
71
+ rows: fromQuery(employee.documents),
72
+ columns: fromQuery('DocumentColumns'),
73
+ titleField: 'name',
74
+ pageSize: 5,
75
+ ...localeOfData
76
+ }),
77
+ component('HrEmployeePage-requests', 'dataList', {
78
+ label: 'Time off',
79
+ rows: fromQuery('EmployeeTimeOff'),
80
+ columns: fromQuery(hrQueriesOf(HrEntityKind.TimeOff).columns),
81
+ titleField: 'employee',
82
+ pageSize: 5,
83
+ ...localeOfData
84
+ })
85
+ ],
86
+ activity: [
87
+ component('HrEmployeePage-activity', 'activityFeed', {
88
+ label: 'History',
89
+ entries: fromQuery(employee.activity),
90
+ ...localeOfData
91
+ })
92
+ ],
93
+ aside: [
94
+ component('HrEmployeePage-tasks', 'checklistSection', {
95
+ label: 'Open tasks',
96
+ sections: fromQuery(employee.tasks),
97
+ ...localeOfData
98
+ })
99
+ ]
100
+ },
101
+ displayName: 'HR employee page',
102
+ description: 'One employee: personal and job information, documents and time-off balance.',
103
+ metadata: hrMetadata('HrEmployeePage', 'Detail', [
104
+ TemplateScope.Feature,
105
+ TemplateScope.Subfeature
106
+ ])
107
+ };
108
+ /**
109
+ * The onboarding checklist: a `RecordPage` variant for one new hire. Where an ordinary record page leads with the record's fields, this one leads with the checklist -
110
+ * sections of tasks (before the first day, the first week, the first month), each task with an owner and a due date and a way to tick it off - and keeps the
111
+ * key facts of the hire (start date, manager, buddy, equipment) beside it.
112
+ */ const hrOnboardingChecklistTemplate = {
113
+ name: 'HrOnboardingChecklist',
114
+ fitsSlot: 'content',
115
+ slots: recordPageTemplate.slots,
116
+ arrangement: recordPageTemplate.arrangement,
117
+ content: {
118
+ header: [
119
+ component('HrOnboardingChecklist-header', 'pageHeader', {
120
+ title: fromQuery(onboarding.record, '0.name'),
121
+ subtitle: 'Onboarding checklist'
122
+ })
123
+ ],
124
+ summary: [
125
+ component('HrOnboardingChecklist-status', 'statusChip', {
126
+ status: fromQuery(onboarding.summary, '0.status'),
127
+ tone: fromQuery(onboarding.summary, '0.tone')
128
+ }),
129
+ component('HrOnboardingChecklist-done', 'statCard', {
130
+ label: 'Tasks done',
131
+ value: fromQuery(onboarding.summary, '0.done'),
132
+ ...localeOfData
133
+ }),
134
+ component('HrOnboardingChecklist-open', 'statCard', {
135
+ label: 'Tasks open',
136
+ value: fromQuery(onboarding.summary, '0.open'),
137
+ ...localeOfData
138
+ }),
139
+ component('HrOnboardingChecklist-owners', 'avatarStack', {
140
+ people: fromQuery(onboarding.summary, '0.people')
141
+ })
142
+ ],
143
+ tabs: [],
144
+ main: [
145
+ component('HrOnboardingChecklist-tasks', 'checklistSection', {
146
+ label: 'Onboarding tasks',
147
+ sections: fromQuery(onboarding.tasks),
148
+ editPermission: 'enabled',
149
+ ...localeOfData
150
+ })
151
+ ],
152
+ related: [],
153
+ activity: [
154
+ component('HrOnboardingChecklist-activity', 'activityFeed', {
155
+ label: 'History',
156
+ entries: fromQuery(onboarding.activity),
157
+ ...localeOfData
158
+ })
159
+ ],
160
+ aside: [
161
+ component('HrOnboardingChecklist-facts', 'formScreenBody', {
162
+ mode: 'readOnly',
163
+ sections: fromQuery(onboarding.sections),
164
+ values: fromQuery(onboarding.record, '0'),
165
+ ...localeOfData
166
+ })
167
+ ]
168
+ },
169
+ displayName: 'HR onboarding checklist',
170
+ description: 'One new hire\'s onboarding: checklist sections with an owner and a due date for each task, and the key facts of the hire.',
171
+ metadata: hrMetadata('HrOnboardingChecklist', 'Detail', [
172
+ TemplateScope.Feature,
173
+ TemplateScope.Subfeature
174
+ ])
175
+ };
176
+
177
+ export { hrEmployeePageTemplate, hrOnboardingChecklistTemplate };
178
+ //# 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 { HrEntityKind, HrQuery, fromQuery, hrQueriesOf, localeOfData } from '../hrQueries';\nimport { actionButton, component, hrMetadata, opensDialog, withBehaviors } from '../hrParts';\n\nconst employee = hrQueriesOf(HrEntityKind.Employee);\nconst onboarding = hrQueriesOf(HrEntityKind.Onboarding);\n\n/**\n * The employee page: the foundation `RecordPage` with the employee's name as its title, the time-off balance as key facts under it, the personal and job\n * information as the record, the employee's documents and time-off requests as related lists, their history and the open tasks beside it.\n */\nexport const hrEmployeePageTemplate: ScreenTemplate = {\n name: 'HrEmployeePage',\n fitsSlot: 'content',\n slots: recordPageTemplate.slots,\n arrangement: recordPageTemplate.arrangement,\n content: {\n header: [component('HrEmployeePage-header', 'pageHeader', { title: fromQuery(employee.record, '0.name'), subtitle: fromQuery(employee.record, '0.title') }, {\n actions: [withBehaviors(actionButton('HrEmployeePage-timeoff', 'Request time off', 'primary'), opensDialog('HrRequestTimeOff'))],\n })],\n summary: [\n component('HrEmployeePage-status', 'statusChip', { status: fromQuery(employee.summary, '0.status'), tone: fromQuery(employee.summary, '0.tone') }),\n component('HrEmployeePage-left', 'statCard', { label: 'Leave left (days)', value: fromQuery(employee.summary, '0.leaveLeft'), ...localeOfData }),\n component('HrEmployeePage-taken', 'statCard', { label: 'Leave taken (days)', value: fromQuery(employee.summary, '0.leaveTaken'), ...localeOfData }),\n component('HrEmployeePage-service', 'statCard', { label: 'Years of service', value: fromQuery(employee.summary, '0.years'), ...localeOfData }),\n component('HrEmployeePage-team', 'avatarStack', { people: fromQuery(employee.summary, '0.people') }),\n ],\n tabs: [component('HrEmployeePage-tabs', 'tabSet', { tabs: fromQuery(HrQuery.RecordTabs), urlKey: 'tab', label: 'Employee sections' })],\n main: [component('HrEmployeePage-form', 'formScreenBody', { mode: 'readOnly', sections: fromQuery(employee.sections), values: fromQuery(employee.record, '0'), ...localeOfData })],\n related: [\n component('HrEmployeePage-documents', 'dataList', { label: 'Documents', rows: fromQuery(employee.documents), columns: fromQuery('DocumentColumns'), titleField: 'name', pageSize: 5, ...localeOfData }),\n component('HrEmployeePage-requests', 'dataList', {\n label: 'Time off', rows: fromQuery('EmployeeTimeOff'), columns: fromQuery(hrQueriesOf(HrEntityKind.TimeOff).columns), titleField: 'employee', pageSize: 5, ...localeOfData,\n }),\n ],\n activity: [component('HrEmployeePage-activity', 'activityFeed', { label: 'History', entries: fromQuery(employee.activity), ...localeOfData })],\n aside: [component('HrEmployeePage-tasks', 'checklistSection', { label: 'Open tasks', sections: fromQuery(employee.tasks), ...localeOfData })],\n },\n displayName: 'HR employee page',\n description: 'One employee: personal and job information, documents and time-off balance.',\n metadata: hrMetadata('HrEmployeePage', 'Detail', [TemplateScope.Feature, TemplateScope.Subfeature]),\n};\n\n/**\n * The onboarding checklist: a `RecordPage` variant for one new hire. Where an ordinary record page leads with the record's fields, this one leads with the checklist -\n * sections of tasks (before the first day, the first week, the first month), each task with an owner and a due date and a way to tick it off - and keeps the\n * key facts of the hire (start date, manager, buddy, equipment) beside it.\n */\nexport const hrOnboardingChecklistTemplate: ScreenTemplate = {\n name: 'HrOnboardingChecklist',\n fitsSlot: 'content',\n slots: recordPageTemplate.slots,\n arrangement: recordPageTemplate.arrangement,\n content: {\n header: [component('HrOnboardingChecklist-header', 'pageHeader', { title: fromQuery(onboarding.record, '0.name'), subtitle: 'Onboarding checklist' })],\n summary: [\n component('HrOnboardingChecklist-status', 'statusChip', { status: fromQuery(onboarding.summary, '0.status'), tone: fromQuery(onboarding.summary, '0.tone') }),\n component('HrOnboardingChecklist-done', 'statCard', { label: 'Tasks done', value: fromQuery(onboarding.summary, '0.done'), ...localeOfData }),\n component('HrOnboardingChecklist-open', 'statCard', { label: 'Tasks open', value: fromQuery(onboarding.summary, '0.open'), ...localeOfData }),\n component('HrOnboardingChecklist-owners', 'avatarStack', { people: fromQuery(onboarding.summary, '0.people') }),\n ],\n tabs: [],\n main: [component('HrOnboardingChecklist-tasks', 'checklistSection', { label: 'Onboarding tasks', sections: fromQuery(onboarding.tasks), editPermission: 'enabled', ...localeOfData })],\n related: [],\n activity: [component('HrOnboardingChecklist-activity', 'activityFeed', { label: 'History', entries: fromQuery(onboarding.activity), ...localeOfData })],\n aside: [component('HrOnboardingChecklist-facts', 'formScreenBody', { mode: 'readOnly', sections: fromQuery(onboarding.sections), values: fromQuery(onboarding.record, '0'), ...localeOfData })],\n },\n displayName: 'HR onboarding checklist',\n description: 'One new hire\\'s onboarding: checklist sections with an owner and a due date for each task, and the key facts of the hire.',\n metadata: hrMetadata('HrOnboardingChecklist', 'Detail', [TemplateScope.Feature, TemplateScope.Subfeature]),\n};\n"],"names":["employee","hrQueriesOf","HrEntityKind","Employee","onboarding","Onboarding","hrEmployeePageTemplate","name","fitsSlot","slots","recordPageTemplate","arrangement","content","header","component","title","fromQuery","record","subtitle","actions","withBehaviors","actionButton","opensDialog","summary","status","tone","label","value","localeOfData","people","tabs","HrQuery","RecordTabs","urlKey","main","mode","sections","values","related","rows","documents","columns","titleField","pageSize","TimeOff","activity","entries","aside","tasks","displayName","description","metadata","hrMetadata","TemplateScope","Feature","Subfeature","hrOnboardingChecklistTemplate","editPermission"],"mappings":"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"}