@strapi/admin 5.21.0 → 5.23.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/dist/admin/admin/src/StrapiApp.js +38 -8
- package/dist/admin/admin/src/StrapiApp.js.map +1 -1
- package/dist/admin/admin/src/StrapiApp.mjs +36 -6
- package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.js +23 -8
- package/dist/admin/admin/src/components/GuidedTour/Context.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Context.mjs +23 -8
- package/dist/admin/admin/src/components/GuidedTour/Context.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.js +7 -5
- package/dist/admin/admin/src/components/GuidedTour/Overview.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs +7 -5
- package/dist/admin/admin/src/components/GuidedTour/Overview.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.js +156 -0
- package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.js.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.mjs +154 -0
- package/dist/admin/admin/src/components/GuidedTour/Steps/ApiTokensSteps.mjs.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.js +221 -0
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.js.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.mjs +219 -0
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentManagerSteps.mjs.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js +219 -0
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.js.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs +217 -0
- package/dist/admin/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.mjs.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/{Step.js → Steps/Step.js} +116 -71
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.js.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/{Step.mjs → Steps/Step.mjs} +117 -74
- package/dist/admin/admin/src/components/GuidedTour/Steps/Step.mjs.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/Tours.js +47 -322
- package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +48 -324
- package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
- package/dist/admin/admin/src/components/GuidedTour/utils/constants.js +19 -0
- package/dist/admin/admin/src/components/GuidedTour/utils/constants.js.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/utils/constants.mjs +17 -0
- package/dist/admin/admin/src/components/GuidedTour/utils/constants.mjs.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js +31 -0
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.js.map +1 -0
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs +29 -0
- package/dist/admin/admin/src/components/GuidedTour/utils/migrations.mjs.map +1 -0
- package/dist/admin/admin/src/components/SubNav.js +3 -1
- package/dist/admin/admin/src/components/SubNav.js.map +1 -1
- package/dist/admin/admin/src/components/SubNav.mjs +3 -1
- package/dist/admin/admin/src/components/SubNav.mjs.map +1 -1
- package/dist/admin/admin/src/components/Widgets.js +27 -9
- package/dist/admin/admin/src/components/Widgets.js.map +1 -1
- package/dist/admin/admin/src/components/Widgets.mjs +28 -10
- package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
- package/dist/admin/admin/src/features/Tracking.js.map +1 -1
- package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.js +40 -33
- package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
- package/dist/admin/admin/src/pages/Home/HomePage.mjs +41 -34
- package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js +17 -14
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs +17 -14
- package/dist/admin/admin/src/pages/Settings/components/Tokens/FormHead.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js +31 -6
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs +12 -6
- package/dist/admin/admin/src/pages/Settings/components/Tokens/Table.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js +28 -24
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs +28 -24
- package/dist/admin/admin/src/pages/Settings/components/Tokens/TokenBox.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/EditView/EditViewPage.mjs.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js +56 -57
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.js.map +1 -1
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs +57 -58
- package/dist/admin/admin/src/pages/Settings/pages/ApiTokens/ListView.mjs.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.js +0 -1
- package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
- package/dist/admin/admin/src/services/apiTokens.mjs +0 -1
- package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
- package/dist/admin/admin/src/translations/en.json.js +35 -21
- package/dist/admin/admin/src/translations/en.json.js.map +1 -1
- package/dist/admin/admin/src/translations/en.json.mjs +35 -21
- package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js +131 -0
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -0
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs +129 -0
- package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs.map +1 -0
- package/dist/admin/ee/admin/src/constants.js +3 -1
- package/dist/admin/ee/admin/src/constants.js.map +1 -1
- package/dist/admin/ee/admin/src/constants.mjs +3 -2
- package/dist/admin/ee/admin/src/constants.mjs.map +1 -1
- package/dist/admin/index.js +6 -2
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +2 -0
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/components/GuidedTour/Context.d.ts +26 -9
- package/dist/admin/src/components/GuidedTour/Steps/ApiTokensSteps.d.ts +20 -0
- package/dist/admin/src/components/GuidedTour/Steps/ContentManagerSteps.d.ts +21 -0
- package/dist/admin/src/components/GuidedTour/Steps/ContentTypeBuilderSteps.d.ts +30 -0
- package/dist/admin/src/components/GuidedTour/{Step.d.ts → Steps/Step.d.ts} +25 -6
- package/dist/admin/src/components/GuidedTour/Tours.d.ts +53 -14
- package/dist/admin/src/components/GuidedTour/utils/constants.d.ts +15 -0
- package/dist/admin/src/components/GuidedTour/utils/migrations.d.ts +6 -0
- package/dist/admin/src/features/Tracking.d.ts +20 -2
- package/dist/admin/src/index.d.ts +5 -0
- package/dist/admin/src/pages/Home/HomePage.d.ts +2 -2
- package/dist/ee/admin/src/components/AuditLogs/Widgets.d.ts +2 -0
- package/dist/ee/admin/src/constants.d.ts +1 -0
- package/dist/server/server/src/controllers/admin.js +2 -5
- package/dist/server/server/src/controllers/admin.js.map +1 -1
- package/dist/server/server/src/controllers/admin.mjs +2 -5
- package/dist/server/server/src/controllers/admin.mjs.map +1 -1
- package/dist/server/server/src/services/index.js +0 -2
- package/dist/server/server/src/services/index.js.map +1 -1
- package/dist/server/server/src/services/index.mjs +0 -2
- package/dist/server/server/src/services/index.mjs.map +1 -1
- package/dist/server/src/controllers/admin.d.ts +1 -1
- package/dist/server/src/controllers/admin.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +1 -1
- package/dist/server/src/index.d.ts +1 -6
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/services/constants.d.ts +1 -0
- package/dist/server/src/services/guided-tour.d.ts +2 -3
- package/dist/server/src/services/guided-tour.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +0 -5
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/shared/contracts/admin.d.ts +2 -2
- package/dist/shared/contracts/admin.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/admin/admin/src/components/GuidedTour/Step.js.map +0 -1
- package/dist/admin/admin/src/components/GuidedTour/Step.mjs.map +0 -1
- package/dist/server/server/src/services/guided-tour.js +0 -61
- package/dist/server/server/src/services/guided-tour.js.map +0 -1
- package/dist/server/server/src/services/guided-tour.mjs +0 -59
- package/dist/server/server/src/services/guided-tour.mjs.map +0 -1
|
@@ -1,327 +1,27 @@
|
|
|
1
1
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { Box, Portal, Popover
|
|
4
|
-
import { FormattedMessage } from 'react-intl';
|
|
3
|
+
import { Box, Portal, Popover } from '@strapi/design-system';
|
|
5
4
|
import { styled } from 'styled-components';
|
|
6
5
|
import { useGetGuidedTourMetaQuery } from '../../services/admin.mjs';
|
|
7
6
|
import { useGuidedTour } from './Context.mjs';
|
|
8
|
-
import {
|
|
7
|
+
import { apiTokensSteps } from './Steps/ApiTokensSteps.mjs';
|
|
8
|
+
import { contentManagerSteps } from './Steps/ContentManagerSteps.mjs';
|
|
9
|
+
import { contentTypeBuilderSteps } from './Steps/ContentTypeBuilderSteps.mjs';
|
|
10
|
+
import { createStepComponents } from './Steps/Step.mjs';
|
|
11
|
+
import { GUIDED_TOUR_REQUIRED_ACTIONS } from './utils/constants.mjs';
|
|
9
12
|
|
|
10
13
|
/* -------------------------------------------------------------------------------------------------
|
|
11
14
|
* Tours
|
|
12
|
-
* -----------------------------------------------------------------------------------------------*/ const
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
id: "tours.gotIt",
|
|
17
|
-
defaultMessage: "Got it"
|
|
18
|
-
})
|
|
19
|
-
});
|
|
20
|
-
};
|
|
21
|
-
const tours = {
|
|
22
|
-
contentTypeBuilder: createTour('contentTypeBuilder', [
|
|
23
|
-
{
|
|
24
|
-
name: 'Introduction',
|
|
25
|
-
content: (Step)=>/*#__PURE__*/ jsxs(Step.Root, {
|
|
26
|
-
side: "bottom",
|
|
27
|
-
withArrow: false,
|
|
28
|
-
children: [
|
|
29
|
-
/*#__PURE__*/ jsx(Step.Title, {
|
|
30
|
-
id: "tours.contentTypeBuilder.Introduction.title",
|
|
31
|
-
defaultMessage: "Content-Type Builder"
|
|
32
|
-
}),
|
|
33
|
-
/*#__PURE__*/ jsx(Step.Content, {
|
|
34
|
-
id: "tours.contentTypeBuilder.Introduction.content",
|
|
35
|
-
defaultMessage: "Create and manage your content structure with collection types, single types and components."
|
|
36
|
-
}),
|
|
37
|
-
/*#__PURE__*/ jsx(Step.Actions, {
|
|
38
|
-
showSkip: true
|
|
39
|
-
})
|
|
40
|
-
]
|
|
41
|
-
})
|
|
42
|
-
},
|
|
43
|
-
{
|
|
44
|
-
name: 'CollectionTypes',
|
|
45
|
-
content: (Step)=>/*#__PURE__*/ jsxs(Step.Root, {
|
|
46
|
-
side: "right",
|
|
47
|
-
sideOffset: 16,
|
|
48
|
-
children: [
|
|
49
|
-
/*#__PURE__*/ jsx(Step.Title, {
|
|
50
|
-
id: "tours.contentTypeBuilder.CollectionTypes.title",
|
|
51
|
-
defaultMessage: "Collection Types"
|
|
52
|
-
}),
|
|
53
|
-
/*#__PURE__*/ jsx(Step.Content, {
|
|
54
|
-
id: "tours.contentTypeBuilder.CollectionTypes.content",
|
|
55
|
-
defaultMessage: "A content structure that can manage multiple entries, such as articles or products."
|
|
56
|
-
}),
|
|
57
|
-
/*#__PURE__*/ jsx(Step.Actions, {})
|
|
58
|
-
]
|
|
59
|
-
})
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
name: 'SingleTypes',
|
|
63
|
-
content: (Step)=>/*#__PURE__*/ jsxs(Step.Root, {
|
|
64
|
-
side: "right",
|
|
65
|
-
sideOffset: 16,
|
|
66
|
-
children: [
|
|
67
|
-
/*#__PURE__*/ jsx(Step.Title, {
|
|
68
|
-
id: "tours.contentTypeBuilder.SingleTypes.title",
|
|
69
|
-
defaultMessage: "Single Types"
|
|
70
|
-
}),
|
|
71
|
-
/*#__PURE__*/ jsx(Step.Content, {
|
|
72
|
-
id: "tours.contentTypeBuilder.SingleTypes.content",
|
|
73
|
-
defaultMessage: "A content structure that can manage a single entry, such as a homepage or a header."
|
|
74
|
-
}),
|
|
75
|
-
/*#__PURE__*/ jsx(Step.Actions, {})
|
|
76
|
-
]
|
|
77
|
-
})
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
name: 'Components',
|
|
81
|
-
content: (Step, { dispatch })=>/*#__PURE__*/ jsxs(Step.Root, {
|
|
82
|
-
side: "right",
|
|
83
|
-
sideOffset: 16,
|
|
84
|
-
children: [
|
|
85
|
-
/*#__PURE__*/ jsx(Step.Title, {
|
|
86
|
-
id: "tours.contentTypeBuilder.Components.title",
|
|
87
|
-
defaultMessage: "Components"
|
|
88
|
-
}),
|
|
89
|
-
/*#__PURE__*/ jsx(Step.Content, {
|
|
90
|
-
id: "tours.contentTypeBuilder.Components.content",
|
|
91
|
-
defaultMessage: "A reusable content structure that can be used across multiple content types, such as buttons, sliders or cards."
|
|
92
|
-
}),
|
|
93
|
-
/*#__PURE__*/ jsxs(Step.Actions, {
|
|
94
|
-
children: [
|
|
95
|
-
/*#__PURE__*/ jsx(StepCount, {
|
|
96
|
-
tourName: "contentTypeBuilder"
|
|
97
|
-
}),
|
|
98
|
-
/*#__PURE__*/ jsx(GotItAction, {
|
|
99
|
-
onClick: ()=>dispatch({
|
|
100
|
-
type: 'next_step',
|
|
101
|
-
payload: 'contentTypeBuilder'
|
|
102
|
-
})
|
|
103
|
-
})
|
|
104
|
-
]
|
|
105
|
-
})
|
|
106
|
-
]
|
|
107
|
-
})
|
|
108
|
-
},
|
|
109
|
-
{
|
|
110
|
-
name: 'Finish',
|
|
111
|
-
content: (Step)=>/*#__PURE__*/ jsxs(Step.Root, {
|
|
112
|
-
side: "right",
|
|
113
|
-
children: [
|
|
114
|
-
/*#__PURE__*/ jsx(Step.Title, {
|
|
115
|
-
id: "tours.contentTypeBuilder.Finish.title",
|
|
116
|
-
defaultMessage: "It's time to create content!"
|
|
117
|
-
}),
|
|
118
|
-
/*#__PURE__*/ jsx(Step.Content, {
|
|
119
|
-
id: "tours.contentTypeBuilder.Finish.content",
|
|
120
|
-
defaultMessage: "Now that you created content types, you'll be able to create content in the content manager."
|
|
121
|
-
}),
|
|
122
|
-
/*#__PURE__*/ jsx(Step.Actions, {
|
|
123
|
-
showStepCount: false,
|
|
124
|
-
to: "/content-manager"
|
|
125
|
-
})
|
|
126
|
-
]
|
|
127
|
-
}),
|
|
128
|
-
when: (completedActions)=>completedActions.includes('didCreateContentTypeSchema')
|
|
129
|
-
}
|
|
130
|
-
]),
|
|
131
|
-
contentManager: createTour('contentManager', [
|
|
132
|
-
{
|
|
133
|
-
name: 'Introduction',
|
|
134
|
-
when: (completedActions)=>completedActions.includes('didCreateContentTypeSchema'),
|
|
135
|
-
content: (Step)=>/*#__PURE__*/ jsxs(Step.Root, {
|
|
136
|
-
side: "top",
|
|
137
|
-
withArrow: false,
|
|
138
|
-
children: [
|
|
139
|
-
/*#__PURE__*/ jsx(Step.Title, {
|
|
140
|
-
id: "tours.contentManager.Introduction.title",
|
|
141
|
-
defaultMessage: "Content manager"
|
|
142
|
-
}),
|
|
143
|
-
/*#__PURE__*/ jsx(Step.Content, {
|
|
144
|
-
id: "tours.contentManager.Introduction.content",
|
|
145
|
-
defaultMessage: "Create and manage content from your collection types and single types."
|
|
146
|
-
}),
|
|
147
|
-
/*#__PURE__*/ jsx(Step.Actions, {
|
|
148
|
-
showSkip: true
|
|
149
|
-
})
|
|
150
|
-
]
|
|
151
|
-
})
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
name: 'Fields',
|
|
155
|
-
content: (Step)=>/*#__PURE__*/ jsxs(Step.Root, {
|
|
156
|
-
sideOffset: -12,
|
|
157
|
-
children: [
|
|
158
|
-
/*#__PURE__*/ jsx(Step.Title, {
|
|
159
|
-
id: "tours.contentManager.Fields.title",
|
|
160
|
-
defaultMessage: "Fields"
|
|
161
|
-
}),
|
|
162
|
-
/*#__PURE__*/ jsx(Step.Content, {
|
|
163
|
-
id: "tours.contentManager.Fields.content",
|
|
164
|
-
defaultMessage: "Add content to the fields created in the Content-Type Builder."
|
|
165
|
-
}),
|
|
166
|
-
/*#__PURE__*/ jsx(Step.Actions, {})
|
|
167
|
-
]
|
|
168
|
-
})
|
|
169
|
-
},
|
|
170
|
-
{
|
|
171
|
-
name: 'Publish',
|
|
172
|
-
content: (Step, { dispatch })=>/*#__PURE__*/ jsxs(Step.Root, {
|
|
173
|
-
side: "left",
|
|
174
|
-
align: "center",
|
|
175
|
-
children: [
|
|
176
|
-
/*#__PURE__*/ jsx(Step.Title, {
|
|
177
|
-
id: "tours.contentManager.Publish.title",
|
|
178
|
-
defaultMessage: "Publish"
|
|
179
|
-
}),
|
|
180
|
-
/*#__PURE__*/ jsx(Step.Content, {
|
|
181
|
-
id: "tours.contentManager.Publish.content",
|
|
182
|
-
defaultMessage: "Publish entries to make their content available through the Document Service API."
|
|
183
|
-
}),
|
|
184
|
-
/*#__PURE__*/ jsxs(Step.Actions, {
|
|
185
|
-
children: [
|
|
186
|
-
/*#__PURE__*/ jsx(StepCount, {
|
|
187
|
-
tourName: "contentManager"
|
|
188
|
-
}),
|
|
189
|
-
/*#__PURE__*/ jsx(GotItAction, {
|
|
190
|
-
onClick: ()=>dispatch({
|
|
191
|
-
type: 'next_step',
|
|
192
|
-
payload: 'contentManager'
|
|
193
|
-
})
|
|
194
|
-
})
|
|
195
|
-
]
|
|
196
|
-
})
|
|
197
|
-
]
|
|
198
|
-
})
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
name: 'Finish',
|
|
202
|
-
content: (Step)=>/*#__PURE__*/ jsxs(Step.Root, {
|
|
203
|
-
side: "right",
|
|
204
|
-
children: [
|
|
205
|
-
/*#__PURE__*/ jsx(Step.Title, {
|
|
206
|
-
id: "tours.contentManager.FinalStep.title",
|
|
207
|
-
defaultMessage: "It's time to create API Tokens!"
|
|
208
|
-
}),
|
|
209
|
-
/*#__PURE__*/ jsx(Step.Content, {
|
|
210
|
-
id: "tours.contentManager.FinalStep.content",
|
|
211
|
-
defaultMessage: "Now that you've created and published content, time to create API tokens and set up permissions."
|
|
212
|
-
}),
|
|
213
|
-
/*#__PURE__*/ jsx(Step.Actions, {
|
|
214
|
-
showStepCount: false,
|
|
215
|
-
to: "/settings/api-tokens"
|
|
216
|
-
})
|
|
217
|
-
]
|
|
218
|
-
}),
|
|
219
|
-
when: (completedActions)=>completedActions.includes('didCreateContent')
|
|
220
|
-
}
|
|
221
|
-
]),
|
|
222
|
-
apiTokens: createTour('apiTokens', [
|
|
223
|
-
{
|
|
224
|
-
name: 'Introduction',
|
|
225
|
-
content: (Step)=>/*#__PURE__*/ jsxs(Step.Root, {
|
|
226
|
-
sideOffset: -36,
|
|
227
|
-
withArrow: false,
|
|
228
|
-
children: [
|
|
229
|
-
/*#__PURE__*/ jsx(Step.Title, {
|
|
230
|
-
id: "tours.apiTokens.Introduction.title",
|
|
231
|
-
defaultMessage: "API tokens"
|
|
232
|
-
}),
|
|
233
|
-
/*#__PURE__*/ jsx(Step.Content, {
|
|
234
|
-
id: "tours.apiTokens.Introduction.content",
|
|
235
|
-
defaultMessage: "Create and manage API tokens with highly customizable permissions."
|
|
236
|
-
}),
|
|
237
|
-
/*#__PURE__*/ jsx(Step.Actions, {
|
|
238
|
-
showSkip: true
|
|
239
|
-
})
|
|
240
|
-
]
|
|
241
|
-
})
|
|
242
|
-
},
|
|
243
|
-
{
|
|
244
|
-
name: 'CreateAnAPIToken',
|
|
245
|
-
content: (Step)=>/*#__PURE__*/ jsxs(Step.Root, {
|
|
246
|
-
side: "bottom",
|
|
247
|
-
align: "end",
|
|
248
|
-
sideOffset: -10,
|
|
249
|
-
children: [
|
|
250
|
-
/*#__PURE__*/ jsx(Step.Title, {
|
|
251
|
-
id: "tours.apiTokens.CreateAnAPIToken.title",
|
|
252
|
-
defaultMessage: "Create an API token"
|
|
253
|
-
}),
|
|
254
|
-
/*#__PURE__*/ jsx(Step.Content, {
|
|
255
|
-
id: "tours.apiTokens.CreateAnAPIToken.content",
|
|
256
|
-
defaultMessage: "Create a new API token. Choose a name, duration and type."
|
|
257
|
-
}),
|
|
258
|
-
/*#__PURE__*/ jsx(Step.Actions, {})
|
|
259
|
-
]
|
|
260
|
-
})
|
|
261
|
-
},
|
|
262
|
-
{
|
|
263
|
-
name: 'CopyAPIToken',
|
|
264
|
-
content: (Step, { dispatch })=>/*#__PURE__*/ jsxs(Step.Root, {
|
|
265
|
-
side: "bottom",
|
|
266
|
-
align: "start",
|
|
267
|
-
sideOffset: -5,
|
|
268
|
-
children: [
|
|
269
|
-
/*#__PURE__*/ jsx(Step.Title, {
|
|
270
|
-
id: "tours.apiTokens.CopyAPIToken.title",
|
|
271
|
-
defaultMessage: "Copy your new API token"
|
|
272
|
-
}),
|
|
273
|
-
/*#__PURE__*/ jsx(Step.Content, {
|
|
274
|
-
id: "tours.apiTokens.CopyAPIToken.content",
|
|
275
|
-
defaultMessage: "Make sure to do it now, you won’t be able to see it again. You’ll need to generate a new one if you lose it."
|
|
276
|
-
}),
|
|
277
|
-
/*#__PURE__*/ jsxs(Step.Actions, {
|
|
278
|
-
children: [
|
|
279
|
-
/*#__PURE__*/ jsx(StepCount, {
|
|
280
|
-
tourName: "apiTokens"
|
|
281
|
-
}),
|
|
282
|
-
/*#__PURE__*/ jsx(GotItAction, {
|
|
283
|
-
onClick: ()=>dispatch({
|
|
284
|
-
type: 'next_step',
|
|
285
|
-
payload: 'apiTokens'
|
|
286
|
-
})
|
|
287
|
-
})
|
|
288
|
-
]
|
|
289
|
-
})
|
|
290
|
-
]
|
|
291
|
-
}),
|
|
292
|
-
when: (completedActions)=>completedActions.includes('didCreateApiToken')
|
|
293
|
-
},
|
|
294
|
-
{
|
|
295
|
-
name: 'Finish',
|
|
296
|
-
content: (Step)=>/*#__PURE__*/ jsxs(Step.Root, {
|
|
297
|
-
side: "right",
|
|
298
|
-
align: "start",
|
|
299
|
-
children: [
|
|
300
|
-
/*#__PURE__*/ jsx(Step.Title, {
|
|
301
|
-
id: "tours.apiTokens.FinalStep.title",
|
|
302
|
-
defaultMessage: "It's time to deploy your application!"
|
|
303
|
-
}),
|
|
304
|
-
/*#__PURE__*/ jsx(Step.Content, {
|
|
305
|
-
id: "tours.apiTokens.FinalStep.content",
|
|
306
|
-
defaultMessage: "Your application is ready to be deployed and its content to be shared with the world!"
|
|
307
|
-
}),
|
|
308
|
-
/*#__PURE__*/ jsx(Step.Actions, {
|
|
309
|
-
showStepCount: false,
|
|
310
|
-
to: "/"
|
|
311
|
-
})
|
|
312
|
-
]
|
|
313
|
-
}),
|
|
314
|
-
when: (completedActions)=>completedActions.includes('didCopyApiToken')
|
|
315
|
-
}
|
|
316
|
-
]),
|
|
15
|
+
* -----------------------------------------------------------------------------------------------*/ const tours = {
|
|
16
|
+
contentTypeBuilder: createTour('contentTypeBuilder', contentTypeBuilderSteps),
|
|
17
|
+
contentManager: createTour('contentManager', contentManagerSteps),
|
|
18
|
+
apiTokens: createTour('apiTokens', apiTokensSteps),
|
|
317
19
|
strapiCloud: createTour('strapiCloud', [])
|
|
318
20
|
};
|
|
319
21
|
const GuidedTourTooltip = ({ children, ...props })=>{
|
|
320
22
|
const state = useGuidedTour('TooltipWrapper', (s)=>s.state);
|
|
321
23
|
if (!state.enabled) {
|
|
322
|
-
return
|
|
323
|
-
children: children
|
|
324
|
-
});
|
|
24
|
+
return children;
|
|
325
25
|
}
|
|
326
26
|
return /*#__PURE__*/ jsx(GuidedTourTooltipImpl, {
|
|
327
27
|
...props,
|
|
@@ -355,17 +55,30 @@ const GuidedTourTooltipImpl = ({ children, content, tourName, step, when })=>{
|
|
|
355
55
|
}, [
|
|
356
56
|
isPopoverOpen
|
|
357
57
|
]);
|
|
358
|
-
|
|
58
|
+
const Step = React.useMemo(()=>createStepComponents(tourName), [
|
|
59
|
+
tourName
|
|
60
|
+
]);
|
|
61
|
+
const hasApiSchema = Object.keys(guidedTourMeta?.data?.schemas ?? {}).filter((key)=>key.startsWith('api::')).length > 0;
|
|
359
62
|
React.useEffect(()=>{
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
63
|
+
if (hasApiSchema) {
|
|
64
|
+
/**
|
|
65
|
+
* Fallback sync:
|
|
66
|
+
*
|
|
67
|
+
* When the user already has a schema (ie started project from template with seeded data),
|
|
68
|
+
* allow them to proceed to the content manager tour.
|
|
69
|
+
*
|
|
70
|
+
* When the CTB fails to restart after saving a schema (as it often does)
|
|
71
|
+
*/ dispatch({
|
|
72
|
+
type: 'set_completed_actions',
|
|
73
|
+
payload: [
|
|
74
|
+
GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema
|
|
75
|
+
]
|
|
76
|
+
});
|
|
77
|
+
}
|
|
364
78
|
}, [
|
|
365
79
|
dispatch,
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
const Step = React.useMemo(()=>createStepComponents(tourName), [
|
|
80
|
+
hasApiSchema,
|
|
81
|
+
step,
|
|
369
82
|
tourName
|
|
370
83
|
]);
|
|
371
84
|
return /*#__PURE__*/ jsxs(Fragment, {
|
|
@@ -379,7 +92,8 @@ const GuidedTourTooltipImpl = ({ children, content, tourName, step, when })=>{
|
|
|
379
92
|
/*#__PURE__*/ jsx(Popover.Anchor, {
|
|
380
93
|
children: children
|
|
381
94
|
}),
|
|
382
|
-
content(
|
|
95
|
+
content({
|
|
96
|
+
Step,
|
|
383
97
|
state,
|
|
384
98
|
dispatch
|
|
385
99
|
})
|
|
@@ -390,10 +104,11 @@ const GuidedTourTooltipImpl = ({ children, content, tourName, step, when })=>{
|
|
|
390
104
|
};
|
|
391
105
|
function createTour(tourName, steps) {
|
|
392
106
|
const tour = steps.reduce((acc, step, index)=>{
|
|
393
|
-
|
|
107
|
+
const name = step.name;
|
|
108
|
+
if (name in acc) {
|
|
394
109
|
throw Error(`The tour: ${tourName} with step: ${step.name} has already been registered`);
|
|
395
110
|
}
|
|
396
|
-
acc[
|
|
111
|
+
acc[name] = ({ children })=>{
|
|
397
112
|
return /*#__PURE__*/ jsx(GuidedTourTooltip, {
|
|
398
113
|
tourName: tourName,
|
|
399
114
|
step: index,
|
|
@@ -402,10 +117,19 @@ function createTour(tourName, steps) {
|
|
|
402
117
|
children: children
|
|
403
118
|
});
|
|
404
119
|
};
|
|
120
|
+
if (step.excludeFromStepCount) {
|
|
121
|
+
// Subtract all steps registered to be excluded from the step count
|
|
122
|
+
acc._meta.displayedStepCount--;
|
|
123
|
+
}
|
|
405
124
|
return acc;
|
|
406
|
-
}, {
|
|
125
|
+
}, {
|
|
126
|
+
_meta: {
|
|
127
|
+
totalStepCount: steps.length,
|
|
128
|
+
displayedStepCount: steps.length
|
|
129
|
+
}
|
|
130
|
+
});
|
|
407
131
|
return tour;
|
|
408
132
|
}
|
|
409
133
|
|
|
410
|
-
export { tours };
|
|
134
|
+
export { createTour, tours };
|
|
411
135
|
//# sourceMappingURL=Tours.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tours.mjs","sources":["../../../../../../admin/src/components/GuidedTour/Tours.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Popover, Portal, Button } from '@strapi/design-system';\nimport { FormattedMessage } from 'react-intl';\nimport { styled } from 'styled-components';\n\nimport { useGetGuidedTourMetaQuery } from '../../services/admin';\n\nimport {\n type State,\n type Action,\n useGuidedTour,\n ValidTourName,\n ExtendedCompletedActions,\n} from './Context';\nimport { Step, StepCount, createStepComponents } from './Step';\n\n/* -------------------------------------------------------------------------------------------------\n * Tours\n * -----------------------------------------------------------------------------------------------*/\n\nconst GotItAction = ({ onClick }: { onClick: () => void }) => {\n return (\n <Button onClick={onClick}>\n <FormattedMessage id=\"tours.gotIt\" defaultMessage=\"Got it\" />\n </Button>\n );\n};\n\nconst tours = {\n contentTypeBuilder: createTour('contentTypeBuilder', [\n {\n name: 'Introduction',\n content: (Step) => (\n <Step.Root side=\"bottom\" withArrow={false}>\n <Step.Title\n id=\"tours.contentTypeBuilder.Introduction.title\"\n defaultMessage=\"Content-Type Builder\"\n />\n <Step.Content\n id=\"tours.contentTypeBuilder.Introduction.content\"\n defaultMessage=\"Create and manage your content structure with collection types, single types and components.\"\n />\n <Step.Actions showSkip />\n </Step.Root>\n ),\n },\n {\n name: 'CollectionTypes',\n content: (Step) => (\n <Step.Root side=\"right\" sideOffset={16}>\n <Step.Title\n id=\"tours.contentTypeBuilder.CollectionTypes.title\"\n defaultMessage=\"Collection Types\"\n />\n <Step.Content\n id=\"tours.contentTypeBuilder.CollectionTypes.content\"\n defaultMessage=\"A content structure that can manage multiple entries, such as articles or products.\"\n />\n <Step.Actions />\n </Step.Root>\n ),\n },\n {\n name: 'SingleTypes',\n content: (Step) => (\n <Step.Root side=\"right\" sideOffset={16}>\n <Step.Title\n id=\"tours.contentTypeBuilder.SingleTypes.title\"\n defaultMessage=\"Single Types\"\n />\n <Step.Content\n id=\"tours.contentTypeBuilder.SingleTypes.content\"\n defaultMessage=\"A content structure that can manage a single entry, such as a homepage or a header.\"\n />\n <Step.Actions />\n </Step.Root>\n ),\n },\n {\n name: 'Components',\n content: (Step, { dispatch }) => (\n <Step.Root side=\"right\" sideOffset={16}>\n <Step.Title id=\"tours.contentTypeBuilder.Components.title\" defaultMessage=\"Components\" />\n <Step.Content\n id=\"tours.contentTypeBuilder.Components.content\"\n defaultMessage=\"A reusable content structure that can be used across multiple content types, such as buttons, sliders or cards.\"\n />\n <Step.Actions>\n <StepCount tourName=\"contentTypeBuilder\" />\n <GotItAction\n onClick={() => dispatch({ type: 'next_step', payload: 'contentTypeBuilder' })}\n />\n </Step.Actions>\n </Step.Root>\n ),\n },\n {\n name: 'Finish',\n content: (Step) => (\n <Step.Root side=\"right\">\n <Step.Title\n id=\"tours.contentTypeBuilder.Finish.title\"\n defaultMessage=\"It's time to create content!\"\n />\n <Step.Content\n id=\"tours.contentTypeBuilder.Finish.content\"\n defaultMessage=\"Now that you created content types, you'll be able to create content in the content manager.\"\n />\n <Step.Actions showStepCount={false} to=\"/content-manager\" />\n </Step.Root>\n ),\n when: (completedActions) => completedActions.includes('didCreateContentTypeSchema'),\n },\n ]),\n contentManager: createTour('contentManager', [\n {\n name: 'Introduction',\n when: (completedActions) => completedActions.includes('didCreateContentTypeSchema'),\n content: (Step) => (\n <Step.Root side=\"top\" withArrow={false}>\n <Step.Title\n id=\"tours.contentManager.Introduction.title\"\n defaultMessage=\"Content manager\"\n />\n <Step.Content\n id=\"tours.contentManager.Introduction.content\"\n defaultMessage=\"Create and manage content from your collection types and single types.\"\n />\n <Step.Actions showSkip />\n </Step.Root>\n ),\n },\n {\n name: 'Fields',\n content: (Step) => (\n <Step.Root sideOffset={-12}>\n <Step.Title id=\"tours.contentManager.Fields.title\" defaultMessage=\"Fields\" />\n <Step.Content\n id=\"tours.contentManager.Fields.content\"\n defaultMessage=\"Add content to the fields created in the Content-Type Builder.\"\n />\n <Step.Actions />\n </Step.Root>\n ),\n },\n {\n name: 'Publish',\n content: (Step, { dispatch }) => (\n <Step.Root side=\"left\" align=\"center\">\n <Step.Title id=\"tours.contentManager.Publish.title\" defaultMessage=\"Publish\" />\n <Step.Content\n id=\"tours.contentManager.Publish.content\"\n defaultMessage=\"Publish entries to make their content available through the Document Service API.\"\n />\n <Step.Actions>\n <StepCount tourName=\"contentManager\" />\n <GotItAction\n onClick={() => dispatch({ type: 'next_step', payload: 'contentManager' })}\n />\n </Step.Actions>\n </Step.Root>\n ),\n },\n {\n name: 'Finish',\n content: (Step) => (\n <Step.Root side=\"right\">\n <Step.Title\n id=\"tours.contentManager.FinalStep.title\"\n defaultMessage=\"It's time to create API Tokens!\"\n />\n <Step.Content\n id=\"tours.contentManager.FinalStep.content\"\n defaultMessage=\"Now that you've created and published content, time to create API tokens and set up permissions.\"\n />\n <Step.Actions showStepCount={false} to=\"/settings/api-tokens\" />\n </Step.Root>\n ),\n when: (completedActions) => completedActions.includes('didCreateContent'),\n },\n ]),\n apiTokens: createTour('apiTokens', [\n {\n name: 'Introduction',\n content: (Step) => (\n <Step.Root sideOffset={-36} withArrow={false}>\n <Step.Title id=\"tours.apiTokens.Introduction.title\" defaultMessage=\"API tokens\" />\n <Step.Content\n id=\"tours.apiTokens.Introduction.content\"\n defaultMessage=\"Create and manage API tokens with highly customizable permissions.\"\n />\n <Step.Actions showSkip />\n </Step.Root>\n ),\n },\n {\n name: 'CreateAnAPIToken',\n content: (Step) => (\n <Step.Root side=\"bottom\" align=\"end\" sideOffset={-10}>\n <Step.Title\n id=\"tours.apiTokens.CreateAnAPIToken.title\"\n defaultMessage=\"Create an API token\"\n />\n <Step.Content\n id=\"tours.apiTokens.CreateAnAPIToken.content\"\n defaultMessage=\"Create a new API token. Choose a name, duration and type.\"\n />\n <Step.Actions />\n </Step.Root>\n ),\n },\n {\n name: 'CopyAPIToken',\n content: (Step, { dispatch }) => (\n <Step.Root side=\"bottom\" align=\"start\" sideOffset={-5}>\n <Step.Title\n id=\"tours.apiTokens.CopyAPIToken.title\"\n defaultMessage=\"Copy your new API token\"\n />\n <Step.Content\n id=\"tours.apiTokens.CopyAPIToken.content\"\n defaultMessage=\"Make sure to do it now, you won’t be able to see it again. You’ll need to generate a new one if you lose it.\"\n />\n <Step.Actions>\n <StepCount tourName=\"apiTokens\" />\n <GotItAction onClick={() => dispatch({ type: 'next_step', payload: 'apiTokens' })} />\n </Step.Actions>\n </Step.Root>\n ),\n when: (completedActions) => completedActions.includes('didCreateApiToken'),\n },\n {\n name: 'Finish',\n content: (Step) => (\n <Step.Root side=\"right\" align=\"start\">\n <Step.Title\n id=\"tours.apiTokens.FinalStep.title\"\n defaultMessage=\"It's time to deploy your application!\"\n />\n <Step.Content\n id=\"tours.apiTokens.FinalStep.content\"\n defaultMessage=\"Your application is ready to be deployed and its content to be shared with the world!\"\n />\n <Step.Actions showStepCount={false} to=\"/\" />\n </Step.Root>\n ),\n when: (completedActions) => completedActions.includes('didCopyApiToken'),\n },\n ]),\n strapiCloud: createTour('strapiCloud', []),\n} as const;\n\ntype Tours = typeof tours;\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourTooltip\n * -----------------------------------------------------------------------------------------------*/\n\ntype Content = (\n Step: Step,\n {\n state,\n dispatch,\n }: {\n state: State;\n dispatch: React.Dispatch<Action>;\n }\n) => React.ReactNode;\n\ntype GuidedTourTooltipProps = {\n children: React.ReactNode;\n content: Content;\n tourName: ValidTourName;\n step: number;\n when?: (completedActions: ExtendedCompletedActions) => boolean;\n};\n\nconst GuidedTourTooltip = ({ children, ...props }: GuidedTourTooltipProps) => {\n const state = useGuidedTour('TooltipWrapper', (s) => s.state);\n\n if (!state.enabled) {\n return <>{children}</>;\n }\n\n return <GuidedTourTooltipImpl {...props}>{children}</GuidedTourTooltipImpl>;\n};\n\nconst GuidedTourOverlay = styled(Box)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(50, 50, 77, 0.2);\n z-index: 10;\n`;\n\nconst GuidedTourTooltipImpl = ({\n children,\n content,\n tourName,\n step,\n when,\n}: GuidedTourTooltipProps) => {\n const { data: guidedTourMeta } = useGetGuidedTourMetaQuery();\n\n const state = useGuidedTour('GuidedTourTooltip', (s) => s.state);\n const dispatch = useGuidedTour('GuidedTourTooltip', (s) => s.dispatch);\n\n const isCurrentStep = state.tours[tourName].currentStep === step;\n const isStepConditionMet = when ? when(state.completedActions) : true;\n const isPopoverOpen =\n guidedTourMeta?.data?.isFirstSuperAdminUser &&\n !state.tours[tourName].isCompleted &&\n isCurrentStep &&\n isStepConditionMet;\n\n // Lock the scroll\n React.useEffect(() => {\n if (!isPopoverOpen) return;\n\n const originalStyle = window.getComputedStyle(document.body).overflow;\n document.body.style.overflow = 'hidden';\n\n return () => {\n document.body.style.overflow = originalStyle;\n };\n }, [isPopoverOpen]);\n\n // TODO: This isn't great but the only solution for syncing the completed actions\n React.useEffect(() => {\n dispatch({\n type: 'set_completed_actions',\n payload: guidedTourMeta?.data?.completedActions ?? [],\n });\n }, [dispatch, guidedTourMeta?.data?.completedActions]);\n\n const Step = React.useMemo(() => createStepComponents(tourName), [tourName]);\n\n return (\n <>\n {isPopoverOpen && (\n <Portal>\n <GuidedTourOverlay />\n </Portal>\n )}\n <Popover.Root open={isPopoverOpen}>\n <Popover.Anchor>{children}</Popover.Anchor>\n {content(Step, { state, dispatch })}\n </Popover.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Tour factory\n * -----------------------------------------------------------------------------------------------*/\n\ntype TourStep<P extends string> = {\n name: P;\n content: Content;\n when?: (completedActions: ExtendedCompletedActions) => boolean;\n};\n\nfunction createTour<const T extends ReadonlyArray<TourStep<string>>>(tourName: string, steps: T) {\n type Components = {\n [K in T[number]['name']]: React.ComponentType<{ children: React.ReactNode }>;\n };\n\n const tour = steps.reduce((acc, step, index) => {\n if (step.name in acc) {\n throw Error(`The tour: ${tourName} with step: ${step.name} has already been registered`);\n }\n\n acc[step.name as keyof Components] = ({ children }: { children: React.ReactNode }) => {\n return (\n <GuidedTourTooltip\n tourName={tourName as ValidTourName}\n step={index}\n content={step.content}\n when={step.when}\n >\n {children}\n </GuidedTourTooltip>\n );\n };\n\n return acc;\n }, {} as Components);\n\n return tour;\n}\n\nexport type { Content, Tours };\nexport { tours };\n"],"names":["GotItAction","onClick","_jsx","Button","FormattedMessage","id","defaultMessage","tours","contentTypeBuilder","createTour","name","content","Step","_jsxs","Root","side","withArrow","Title","Content","Actions","showSkip","sideOffset","dispatch","StepCount","tourName","type","payload","showStepCount","to","when","completedActions","includes","contentManager","align","apiTokens","strapiCloud","GuidedTourTooltip","children","props","state","useGuidedTour","s","enabled","_Fragment","GuidedTourTooltipImpl","GuidedTourOverlay","styled","Box","step","data","guidedTourMeta","useGetGuidedTourMetaQuery","isCurrentStep","currentStep","isStepConditionMet","isPopoverOpen","isFirstSuperAdminUser","isCompleted","React","useEffect","originalStyle","window","getComputedStyle","document","body","overflow","style","useMemo","createStepComponents","Portal","Popover","open","Anchor","steps","tour","reduce","acc","index","Error"],"mappings":";;;;;;;;;AAiBA;;AAEkG,qGAElG,MAAMA,WAAAA,GAAc,CAAC,EAAEC,OAAO,EAA2B,GAAA;AACvD,IAAA,qBACEC,GAACC,CAAAA,MAAAA,EAAAA;QAAOF,OAASA,EAAAA,OAAAA;AACf,QAAA,QAAA,gBAAAC,GAACE,CAAAA,gBAAAA,EAAAA;YAAiBC,EAAG,EAAA,aAAA;YAAcC,cAAe,EAAA;;;AAGxD,CAAA;AAEA,MAAMC,KAAQ,GAAA;AACZC,IAAAA,kBAAAA,EAAoBC,WAAW,oBAAsB,EAAA;AACnD,QAAA;YACEC,IAAM,EAAA,cAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,IAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,QAAA;oBAASC,SAAW,EAAA,KAAA;;AAClC,sCAAAd,GAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,6CAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,+CAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKO,OAAO,EAAA;4BAACC,QAAQ,EAAA;;;;AAG5B,SAAA;AACA,QAAA;YACEV,IAAM,EAAA,iBAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,IAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,OAAA;oBAAQM,UAAY,EAAA,EAAA;;AAClC,sCAAAnB,GAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,gDAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,kDAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKO,OAAO,EAAA,EAAA;;;AAGnB,SAAA;AACA,QAAA;YACET,IAAM,EAAA,aAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,IAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,OAAA;oBAAQM,UAAY,EAAA,EAAA;;AAClC,sCAAAnB,GAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,4CAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,8CAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKO,OAAO,EAAA,EAAA;;;AAGnB,SAAA;AACA,QAAA;YACET,IAAM,EAAA,YAAA;YACNC,OAAS,EAAA,CAACC,MAAM,EAAEU,QAAQ,EAAE,iBAC1BT,IAAA,CAACD,KAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,OAAA;oBAAQM,UAAY,EAAA,EAAA;;AAClC,sCAAAnB,GAAA,CAACU,KAAKK,KAAK,EAAA;4BAACZ,EAAG,EAAA,2CAAA;4BAA4CC,cAAe,EAAA;;AAC1E,sCAAAJ,GAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,6CAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAO,IAAA,CAACD,KAAKO,OAAO,EAAA;;8CACXjB,GAACqB,CAAAA,SAAAA,EAAAA;oCAAUC,QAAS,EAAA;;8CACpBtB,GAACF,CAAAA,WAAAA,EAAAA;AACCC,oCAAAA,OAAAA,EAAS,IAAMqB,QAAS,CAAA;4CAAEG,IAAM,EAAA,WAAA;4CAAaC,OAAS,EAAA;AAAqB,yCAAA;;;;;;AAKrF,SAAA;AACA,QAAA;YACEhB,IAAM,EAAA,QAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,IAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,OAAA;;AACd,sCAAAb,GAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,uCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,yCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKO,OAAO,EAAA;4BAACQ,aAAe,EAAA,KAAA;4BAAOC,EAAG,EAAA;;;;AAG3CC,YAAAA,IAAAA,EAAM,CAACC,gBAAAA,GAAqBA,gBAAiBC,CAAAA,QAAQ,CAAC,4BAAA;AACxD;AACD,KAAA,CAAA;AACDC,IAAAA,cAAAA,EAAgBvB,WAAW,gBAAkB,EAAA;AAC3C,QAAA;YACEC,IAAM,EAAA,cAAA;AACNmB,YAAAA,IAAAA,EAAM,CAACC,gBAAAA,GAAqBA,gBAAiBC,CAAAA,QAAQ,CAAC,4BAAA,CAAA;AACtDpB,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,IAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,KAAA;oBAAMC,SAAW,EAAA,KAAA;;AAC/B,sCAAAd,GAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,yCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,2CAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKO,OAAO,EAAA;4BAACC,QAAQ,EAAA;;;;AAG5B,SAAA;AACA,QAAA;YACEV,IAAM,EAAA,QAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,IAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;AAACO,oBAAAA,UAAAA,EAAY,CAAC,EAAA;;AACtB,sCAAAnB,GAAA,CAACU,KAAKK,KAAK,EAAA;4BAACZ,EAAG,EAAA,mCAAA;4BAAoCC,cAAe,EAAA;;AAClE,sCAAAJ,GAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,qCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKO,OAAO,EAAA,EAAA;;;AAGnB,SAAA;AACA,QAAA;YACET,IAAM,EAAA,SAAA;YACNC,OAAS,EAAA,CAACC,MAAM,EAAEU,QAAQ,EAAE,iBAC1BT,IAAA,CAACD,KAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,MAAA;oBAAOkB,KAAM,EAAA,QAAA;;AAC3B,sCAAA/B,GAAA,CAACU,KAAKK,KAAK,EAAA;4BAACZ,EAAG,EAAA,oCAAA;4BAAqCC,cAAe,EAAA;;AACnE,sCAAAJ,GAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,sCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAO,IAAA,CAACD,KAAKO,OAAO,EAAA;;8CACXjB,GAACqB,CAAAA,SAAAA,EAAAA;oCAAUC,QAAS,EAAA;;8CACpBtB,GAACF,CAAAA,WAAAA,EAAAA;AACCC,oCAAAA,OAAAA,EAAS,IAAMqB,QAAS,CAAA;4CAAEG,IAAM,EAAA,WAAA;4CAAaC,OAAS,EAAA;AAAiB,yCAAA;;;;;;AAKjF,SAAA;AACA,QAAA;YACEhB,IAAM,EAAA,QAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,IAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,OAAA;;AACd,sCAAAb,GAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,sCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,wCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKO,OAAO,EAAA;4BAACQ,aAAe,EAAA,KAAA;4BAAOC,EAAG,EAAA;;;;AAG3CC,YAAAA,IAAAA,EAAM,CAACC,gBAAAA,GAAqBA,gBAAiBC,CAAAA,QAAQ,CAAC,kBAAA;AACxD;AACD,KAAA,CAAA;AACDG,IAAAA,SAAAA,EAAWzB,WAAW,WAAa,EAAA;AACjC,QAAA;YACEC,IAAM,EAAA,cAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,IAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;AAACO,oBAAAA,UAAAA,EAAY,CAAC,EAAA;oBAAIL,SAAW,EAAA,KAAA;;AACrC,sCAAAd,GAAA,CAACU,KAAKK,KAAK,EAAA;4BAACZ,EAAG,EAAA,oCAAA;4BAAqCC,cAAe,EAAA;;AACnE,sCAAAJ,GAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,sCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKO,OAAO,EAAA;4BAACC,QAAQ,EAAA;;;;AAG5B,SAAA;AACA,QAAA;YACEV,IAAM,EAAA,kBAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,IAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,QAAA;oBAASkB,KAAM,EAAA,KAAA;AAAMZ,oBAAAA,UAAAA,EAAY,CAAC,EAAA;;AAChD,sCAAAnB,GAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,wCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,0CAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKO,OAAO,EAAA,EAAA;;;AAGnB,SAAA;AACA,QAAA;YACET,IAAM,EAAA,cAAA;YACNC,OAAS,EAAA,CAACC,MAAM,EAAEU,QAAQ,EAAE,iBAC1BT,IAAA,CAACD,KAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,QAAA;oBAASkB,KAAM,EAAA,OAAA;AAAQZ,oBAAAA,UAAAA,EAAY,CAAC,CAAA;;AAClD,sCAAAnB,GAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,oCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,sCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAO,IAAA,CAACD,KAAKO,OAAO,EAAA;;8CACXjB,GAACqB,CAAAA,SAAAA,EAAAA;oCAAUC,QAAS,EAAA;;8CACpBtB,GAACF,CAAAA,WAAAA,EAAAA;AAAYC,oCAAAA,OAAAA,EAAS,IAAMqB,QAAS,CAAA;4CAAEG,IAAM,EAAA,WAAA;4CAAaC,OAAS,EAAA;AAAY,yCAAA;;;;;;AAIrFG,YAAAA,IAAAA,EAAM,CAACC,gBAAAA,GAAqBA,gBAAiBC,CAAAA,QAAQ,CAAC,mBAAA;AACxD,SAAA;AACA,QAAA;YACErB,IAAM,EAAA,QAAA;AACNC,YAAAA,OAAAA,EAAS,CAACC,IAAAA,iBACRC,IAACD,CAAAA,IAAAA,CAAKE,IAAI,EAAA;oBAACC,IAAK,EAAA,OAAA;oBAAQkB,KAAM,EAAA,OAAA;;AAC5B,sCAAA/B,GAAA,CAACU,KAAKK,KAAK,EAAA;4BACTZ,EAAG,EAAA,iCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKM,OAAO,EAAA;4BACXb,EAAG,EAAA,mCAAA;4BACHC,cAAe,EAAA;;AAEjB,sCAAAJ,GAAA,CAACU,KAAKO,OAAO,EAAA;4BAACQ,aAAe,EAAA,KAAA;4BAAOC,EAAG,EAAA;;;;AAG3CC,YAAAA,IAAAA,EAAM,CAACC,gBAAAA,GAAqBA,gBAAiBC,CAAAA,QAAQ,CAAC,iBAAA;AACxD;AACD,KAAA,CAAA;IACDI,WAAa1B,EAAAA,UAAAA,CAAW,eAAe,EAAE;AAC3C;AA2BA,MAAM2B,oBAAoB,CAAC,EAAEC,QAAQ,EAAE,GAAGC,KAA+B,EAAA,GAAA;AACvE,IAAA,MAAMC,QAAQC,aAAc,CAAA,gBAAA,EAAkB,CAACC,CAAAA,GAAMA,EAAEF,KAAK,CAAA;IAE5D,IAAI,CAACA,KAAMG,CAAAA,OAAO,EAAE;QAClB,qBAAOxC,GAAA,CAAAyC,QAAA,EAAA;AAAGN,YAAAA,QAAAA,EAAAA;;AACZ;AAEA,IAAA,qBAAOnC,GAAC0C,CAAAA,qBAAAA,EAAAA;AAAuB,QAAA,GAAGN,KAAK;AAAGD,QAAAA,QAAAA,EAAAA;;AAC5C,CAAA;AAEA,MAAMQ,iBAAAA,GAAoBC,MAAOC,CAAAA,GAAAA,CAAI;;;;;;;;AAQrC,CAAC;AAED,MAAMH,qBAAwB,GAAA,CAAC,EAC7BP,QAAQ,EACR1B,OAAO,EACPa,QAAQ,EACRwB,IAAI,EACJnB,IAAI,EACmB,GAAA;AACvB,IAAA,MAAM,EAAEoB,IAAAA,EAAMC,cAAc,EAAE,GAAGC,yBAAAA,EAAAA;AAEjC,IAAA,MAAMZ,QAAQC,aAAc,CAAA,mBAAA,EAAqB,CAACC,CAAAA,GAAMA,EAAEF,KAAK,CAAA;AAC/D,IAAA,MAAMjB,WAAWkB,aAAc,CAAA,mBAAA,EAAqB,CAACC,CAAAA,GAAMA,EAAEnB,QAAQ,CAAA;AAErE,IAAA,MAAM8B,gBAAgBb,KAAMhC,CAAAA,KAAK,CAACiB,QAAS,CAAA,CAAC6B,WAAW,KAAKL,IAAAA;AAC5D,IAAA,MAAMM,kBAAqBzB,GAAAA,IAAAA,GAAOA,IAAKU,CAAAA,KAAAA,CAAMT,gBAAgB,CAAI,GAAA,IAAA;AACjE,IAAA,MAAMyB,aACJL,GAAAA,cAAAA,EAAgBD,IAAMO,EAAAA,qBAAAA,IACtB,CAACjB,KAAAA,CAAMhC,KAAK,CAACiB,QAAS,CAAA,CAACiC,WAAW,IAClCL,aACAE,IAAAA,kBAAAA;;AAGFI,IAAAA,KAAAA,CAAMC,SAAS,CAAC,IAAA;AACd,QAAA,IAAI,CAACJ,aAAe,EAAA;AAEpB,QAAA,MAAMK,gBAAgBC,MAAOC,CAAAA,gBAAgB,CAACC,QAASC,CAAAA,IAAI,EAAEC,QAAQ;AACrEF,QAAAA,QAAAA,CAASC,IAAI,CAACE,KAAK,CAACD,QAAQ,GAAG,QAAA;QAE/B,OAAO,IAAA;AACLF,YAAAA,QAAAA,CAASC,IAAI,CAACE,KAAK,CAACD,QAAQ,GAAGL,aAAAA;AACjC,SAAA;KACC,EAAA;AAACL,QAAAA;AAAc,KAAA,CAAA;;AAGlBG,IAAAA,KAAAA,CAAMC,SAAS,CAAC,IAAA;QACdrC,QAAS,CAAA;YACPG,IAAM,EAAA,uBAAA;YACNC,OAASwB,EAAAA,cAAAA,EAAgBD,IAAMnB,EAAAA,gBAAAA,IAAoB;AACrD,SAAA,CAAA;KACC,EAAA;AAACR,QAAAA,QAAAA;AAAU4B,QAAAA,cAAAA,EAAgBD,IAAMnB,EAAAA;AAAiB,KAAA,CAAA;AAErD,IAAA,MAAMlB,OAAO8C,KAAMS,CAAAA,OAAO,CAAC,IAAMC,qBAAqB5C,QAAW,CAAA,EAAA;AAACA,QAAAA;AAAS,KAAA,CAAA;IAE3E,qBACEX,IAAA,CAAA8B,QAAA,EAAA;;AACGY,YAAAA,aAAAA,kBACCrD,GAACmE,CAAAA,MAAAA,EAAAA;AACC,gBAAA,QAAA,gBAAAnE,GAAC2C,CAAAA,iBAAAA,EAAAA,EAAAA;;AAGL,0BAAAhC,IAAA,CAACyD,QAAQxD,IAAI,EAAA;gBAACyD,IAAMhB,EAAAA,aAAAA;;AAClB,kCAAArD,GAAA,CAACoE,QAAQE,MAAM,EAAA;AAAEnC,wBAAAA,QAAAA,EAAAA;;AAChB1B,oBAAAA,OAAAA,CAAQC,IAAM,EAAA;AAAE2B,wBAAAA,KAAAA;AAAOjB,wBAAAA;AAAS,qBAAA;;;;;AAIzC,CAAA;AAYA,SAASb,UAAAA,CAA4De,QAAgB,EAAEiD,KAAQ,EAAA;AAK7F,IAAA,MAAMC,OAAOD,KAAME,CAAAA,MAAM,CAAC,CAACC,KAAK5B,IAAM6B,EAAAA,KAAAA,GAAAA;QACpC,IAAI7B,IAAAA,CAAKtC,IAAI,IAAIkE,GAAK,EAAA;YACpB,MAAME,KAAAA,CAAM,CAAC,UAAU,EAAEtD,QAAAA,CAAS,YAAY,EAAEwB,IAAKtC,CAAAA,IAAI,CAAC,4BAA4B,CAAC,CAAA;AACzF;QAEAkE,GAAG,CAAC5B,KAAKtC,IAAI,CAAqB,GAAG,CAAC,EAAE2B,QAAQ,EAAiC,GAAA;AAC/E,YAAA,qBACEnC,GAACkC,CAAAA,iBAAAA,EAAAA;gBACCZ,QAAUA,EAAAA,QAAAA;gBACVwB,IAAM6B,EAAAA,KAAAA;AACNlE,gBAAAA,OAAAA,EAASqC,KAAKrC,OAAO;AACrBkB,gBAAAA,IAAAA,EAAMmB,KAAKnB,IAAI;AAEdQ,gBAAAA,QAAAA,EAAAA;;AAGP,SAAA;QAEA,OAAOuC,GAAAA;AACT,KAAA,EAAG,EAAC,CAAA;IAEJ,OAAOF,IAAAA;AACT;;;;"}
|
|
1
|
+
{"version":3,"file":"Tours.mjs","sources":["../../../../../../admin/src/components/GuidedTour/Tours.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Box, Popover, Portal } from '@strapi/design-system';\nimport { styled } from 'styled-components';\n\nimport { useGetGuidedTourMetaQuery } from '../../services/admin';\n\nimport { type State, type Action, useGuidedTour, ValidTourName, CompletedActions } from './Context';\nimport { apiTokensSteps } from './Steps/ApiTokensSteps';\nimport { contentManagerSteps } from './Steps/ContentManagerSteps';\nimport { contentTypeBuilderSteps } from './Steps/ContentTypeBuilderSteps';\nimport { type Step, createStepComponents } from './Steps/Step';\nimport { GUIDED_TOUR_REQUIRED_ACTIONS } from './utils/constants';\n\n/* -------------------------------------------------------------------------------------------------\n * Tours\n * -----------------------------------------------------------------------------------------------*/\n\nconst tours = {\n contentTypeBuilder: createTour('contentTypeBuilder', contentTypeBuilderSteps),\n contentManager: createTour('contentManager', contentManagerSteps),\n apiTokens: createTour('apiTokens', apiTokensSteps),\n strapiCloud: createTour('strapiCloud', []),\n} as const;\n\ntype Tours = typeof tours;\n\n/* -------------------------------------------------------------------------------------------------\n * GuidedTourTooltip\n * -----------------------------------------------------------------------------------------------*/\n\nexport type StepContentProps = {\n Step: Step;\n state: State;\n dispatch: React.Dispatch<Action>;\n};\ntype Content = (props: StepContentProps) => React.ReactNode;\n\ntype GuidedTourTooltipProps = {\n children: React.ReactNode;\n content: Content;\n tourName: ValidTourName;\n step: number;\n when?: (completedActions: CompletedActions) => boolean;\n};\n\nconst GuidedTourTooltip = ({ children, ...props }: GuidedTourTooltipProps) => {\n const state = useGuidedTour('TooltipWrapper', (s) => s.state);\n\n if (!state.enabled) {\n return children;\n }\n\n return <GuidedTourTooltipImpl {...props}>{children}</GuidedTourTooltipImpl>;\n};\n\nconst GuidedTourOverlay = styled(Box)`\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(50, 50, 77, 0.2);\n z-index: 10;\n`;\n\nconst GuidedTourTooltipImpl = ({\n children,\n content,\n tourName,\n step,\n when,\n}: GuidedTourTooltipProps) => {\n const { data: guidedTourMeta } = useGetGuidedTourMetaQuery();\n\n const state = useGuidedTour('GuidedTourTooltip', (s) => s.state);\n const dispatch = useGuidedTour('GuidedTourTooltip', (s) => s.dispatch);\n\n const isCurrentStep = state.tours[tourName].currentStep === step;\n const isStepConditionMet = when ? when(state.completedActions) : true;\n const isPopoverOpen =\n guidedTourMeta?.data?.isFirstSuperAdminUser &&\n !state.tours[tourName].isCompleted &&\n isCurrentStep &&\n isStepConditionMet;\n\n // Lock the scroll\n React.useEffect(() => {\n if (!isPopoverOpen) return;\n\n const originalStyle = window.getComputedStyle(document.body).overflow;\n document.body.style.overflow = 'hidden';\n\n return () => {\n document.body.style.overflow = originalStyle;\n };\n }, [isPopoverOpen]);\n\n const Step = React.useMemo(() => createStepComponents(tourName), [tourName]);\n\n const hasApiSchema =\n Object.keys(guidedTourMeta?.data?.schemas ?? {}).filter((key) => key.startsWith('api::'))\n .length > 0;\n\n React.useEffect(() => {\n if (hasApiSchema) {\n /**\n * Fallback sync:\n *\n * When the user already has a schema (ie started project from template with seeded data),\n * allow them to proceed to the content manager tour.\n *\n * When the CTB fails to restart after saving a schema (as it often does)\n */\n dispatch({\n type: 'set_completed_actions',\n payload: [GUIDED_TOUR_REQUIRED_ACTIONS.contentTypeBuilder.createSchema],\n });\n }\n }, [dispatch, hasApiSchema, step, tourName]);\n\n return (\n <>\n {isPopoverOpen && (\n <Portal>\n <GuidedTourOverlay />\n </Portal>\n )}\n <Popover.Root open={isPopoverOpen}>\n <Popover.Anchor>{children}</Popover.Anchor>\n {content({ Step, state, dispatch })}\n </Popover.Root>\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * Tour factory\n * -----------------------------------------------------------------------------------------------*/\n\nexport type TourStep<P extends string> = {\n name: P;\n content: Content;\n when?: (completedActions: CompletedActions) => boolean;\n excludeFromStepCount?: boolean;\n};\n\nexport function createTour<const T extends ReadonlyArray<TourStep<string>>>(\n tourName: string,\n steps: T\n) {\n type Components = {\n [K in T[number]['name']]: React.ComponentType<{ children: React.ReactNode }>;\n };\n\n const tour = steps.reduce(\n (acc, step, index) => {\n const name = step.name as keyof Components;\n\n if (name in acc) {\n throw Error(`The tour: ${tourName} with step: ${step.name} has already been registered`);\n }\n\n (acc as Components)[name] = ({ children }: { children: React.ReactNode }) => {\n return (\n <GuidedTourTooltip\n tourName={tourName as ValidTourName}\n step={index}\n content={step.content}\n when={step.when}\n >\n {children}\n </GuidedTourTooltip>\n );\n };\n\n if (step.excludeFromStepCount) {\n // Subtract all steps registered to be excluded from the step count\n acc._meta.displayedStepCount--;\n }\n\n return acc;\n },\n { _meta: { totalStepCount: steps.length, displayedStepCount: steps.length } } as Components & {\n _meta: { totalStepCount: number; displayedStepCount: number };\n }\n );\n\n return tour;\n}\n\nexport type { Content, Tours };\nexport { tours };\n"],"names":["tours","contentTypeBuilder","createTour","contentTypeBuilderSteps","contentManager","contentManagerSteps","apiTokens","apiTokensSteps","strapiCloud","GuidedTourTooltip","children","props","state","useGuidedTour","s","enabled","_jsx","GuidedTourTooltipImpl","GuidedTourOverlay","styled","Box","content","tourName","step","when","data","guidedTourMeta","useGetGuidedTourMetaQuery","dispatch","isCurrentStep","currentStep","isStepConditionMet","completedActions","isPopoverOpen","isFirstSuperAdminUser","isCompleted","React","useEffect","originalStyle","window","getComputedStyle","document","body","overflow","style","Step","useMemo","createStepComponents","hasApiSchema","Object","keys","schemas","filter","key","startsWith","length","type","payload","GUIDED_TOUR_REQUIRED_ACTIONS","createSchema","_jsxs","_Fragment","Portal","Popover","Root","open","Anchor","steps","tour","reduce","acc","index","name","Error","excludeFromStepCount","_meta","displayedStepCount","totalStepCount"],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const GUIDED_TOUR_REQUIRED_ACTIONS = {
|
|
4
|
+
contentTypeBuilder: {
|
|
5
|
+
createSchema: 'didCreateContentTypeSchema',
|
|
6
|
+
addField: 'didAddFieldToSchema'
|
|
7
|
+
},
|
|
8
|
+
contentManager: {
|
|
9
|
+
createContent: 'didCreateContent'
|
|
10
|
+
},
|
|
11
|
+
apiTokens: {
|
|
12
|
+
createToken: 'didCreateApiToken',
|
|
13
|
+
copyToken: 'didCopyApiToken'
|
|
14
|
+
},
|
|
15
|
+
strapiCloud: {}
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
exports.GUIDED_TOUR_REQUIRED_ACTIONS = GUIDED_TOUR_REQUIRED_ACTIONS;
|
|
19
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../../../../../../admin/src/components/GuidedTour/utils/constants.ts"],"sourcesContent":["const GUIDED_TOUR_REQUIRED_ACTIONS = {\n contentTypeBuilder: {\n createSchema: 'didCreateContentTypeSchema',\n addField: 'didAddFieldToSchema',\n },\n contentManager: {\n createContent: 'didCreateContent',\n },\n apiTokens: {\n createToken: 'didCreateApiToken',\n copyToken: 'didCopyApiToken',\n },\n strapiCloud: {},\n} as const;\n\nexport { GUIDED_TOUR_REQUIRED_ACTIONS };\n"],"names":["GUIDED_TOUR_REQUIRED_ACTIONS","contentTypeBuilder","createSchema","addField","contentManager","createContent","apiTokens","createToken","copyToken","strapiCloud"],"mappings":";;AAAA,MAAMA,4BAA+B,GAAA;IACnCC,kBAAoB,EAAA;QAClBC,YAAc,EAAA,4BAAA;QACdC,QAAU,EAAA;AACZ,KAAA;IACAC,cAAgB,EAAA;QACdC,aAAe,EAAA;AACjB,KAAA;IACAC,SAAW,EAAA;QACTC,WAAa,EAAA,mBAAA;QACbC,SAAW,EAAA;AACb,KAAA;AACAC,IAAAA,WAAAA,EAAa;AACf;;;;"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
const GUIDED_TOUR_REQUIRED_ACTIONS = {
|
|
2
|
+
contentTypeBuilder: {
|
|
3
|
+
createSchema: 'didCreateContentTypeSchema',
|
|
4
|
+
addField: 'didAddFieldToSchema'
|
|
5
|
+
},
|
|
6
|
+
contentManager: {
|
|
7
|
+
createContent: 'didCreateContent'
|
|
8
|
+
},
|
|
9
|
+
apiTokens: {
|
|
10
|
+
createToken: 'didCreateApiToken',
|
|
11
|
+
copyToken: 'didCopyApiToken'
|
|
12
|
+
},
|
|
13
|
+
strapiCloud: {}
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export { GUIDED_TOUR_REQUIRED_ACTIONS };
|
|
17
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","sources":["../../../../../../../admin/src/components/GuidedTour/utils/constants.ts"],"sourcesContent":["const GUIDED_TOUR_REQUIRED_ACTIONS = {\n contentTypeBuilder: {\n createSchema: 'didCreateContentTypeSchema',\n addField: 'didAddFieldToSchema',\n },\n contentManager: {\n createContent: 'didCreateContent',\n },\n apiTokens: {\n createToken: 'didCreateApiToken',\n copyToken: 'didCopyApiToken',\n },\n strapiCloud: {},\n} as const;\n\nexport { GUIDED_TOUR_REQUIRED_ACTIONS };\n"],"names":["GUIDED_TOUR_REQUIRED_ACTIONS","contentTypeBuilder","createSchema","addField","contentManager","createContent","apiTokens","createToken","copyToken","strapiCloud"],"mappings":"AAAA,MAAMA,4BAA+B,GAAA;IACnCC,kBAAoB,EAAA;QAClBC,YAAc,EAAA,4BAAA;QACdC,QAAU,EAAA;AACZ,KAAA;IACAC,cAAgB,EAAA;QACdC,aAAe,EAAA;AACjB,KAAA;IACAC,SAAW,EAAA;QACTC,WAAa,EAAA,mBAAA;QACbC,SAAW,EAAA;AACb,KAAA;AACAC,IAAAA,WAAAA,EAAa;AACf;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var immer = require('immer');
|
|
4
|
+
var Tours = require('../Tours.js');
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Migrates tours added or removed from the tours object
|
|
8
|
+
*/ const migrateTours = (storedTourState)=>{
|
|
9
|
+
const storedTourNames = Object.keys(storedTourState.tours);
|
|
10
|
+
const currentTourNames = Object.keys(Tours.tours);
|
|
11
|
+
return immer.produce(storedTourState, (draft)=>{
|
|
12
|
+
// Add new tours that don't exist in stored state
|
|
13
|
+
currentTourNames.forEach((tourName)=>{
|
|
14
|
+
if (!storedTourNames.includes(tourName)) {
|
|
15
|
+
draft.tours[tourName] = {
|
|
16
|
+
currentStep: 0,
|
|
17
|
+
isCompleted: false
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
// Remove tours that no longer exist in current tours
|
|
22
|
+
storedTourNames.forEach((tourName)=>{
|
|
23
|
+
if (!currentTourNames.includes(tourName)) {
|
|
24
|
+
delete draft.tours[tourName];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
exports.migrateTours = migrateTours;
|
|
31
|
+
//# sourceMappingURL=migrations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.js","sources":["../../../../../../../admin/src/components/GuidedTour/utils/migrations.ts"],"sourcesContent":["import { produce } from 'immer';\n\nimport { tours } from '../Tours';\n\nimport type { State, ValidTourName } from '../Context';\n\n/**\n * Migrates tours added or removed from the tours object\n */\nconst migrateTours = (storedTourState: State) => {\n const storedTourNames = Object.keys(storedTourState.tours) as ValidTourName[];\n const currentTourNames = Object.keys(tours) as ValidTourName[];\n\n return produce(storedTourState, (draft) => {\n // Add new tours that don't exist in stored state\n currentTourNames.forEach((tourName) => {\n if (!storedTourNames.includes(tourName)) {\n draft.tours[tourName] = {\n currentStep: 0,\n isCompleted: false,\n };\n }\n });\n\n // Remove tours that no longer exist in current tours\n storedTourNames.forEach((tourName) => {\n if (!currentTourNames.includes(tourName)) {\n delete draft.tours[tourName];\n }\n });\n });\n};\n\nexport { migrateTours };\n"],"names":["migrateTours","storedTourState","storedTourNames","Object","keys","tours","currentTourNames","produce","draft","forEach","tourName","includes","currentStep","isCompleted"],"mappings":";;;;;AAMA;;IAGA,MAAMA,eAAe,CAACC,eAAAA,GAAAA;AACpB,IAAA,MAAMC,eAAkBC,GAAAA,MAAAA,CAAOC,IAAI,CAACH,gBAAgBI,KAAK,CAAA;IACzD,MAAMC,gBAAAA,GAAmBH,MAAOC,CAAAA,IAAI,CAACC,WAAAA,CAAAA;IAErC,OAAOE,aAAAA,CAAQN,iBAAiB,CAACO,KAAAA,GAAAA;;QAE/BF,gBAAiBG,CAAAA,OAAO,CAAC,CAACC,QAAAA,GAAAA;AACxB,YAAA,IAAI,CAACR,eAAAA,CAAgBS,QAAQ,CAACD,QAAW,CAAA,EAAA;gBACvCF,KAAMH,CAAAA,KAAK,CAACK,QAAAA,CAAS,GAAG;oBACtBE,WAAa,EAAA,CAAA;oBACbC,WAAa,EAAA;AACf,iBAAA;AACF;AACF,SAAA,CAAA;;QAGAX,eAAgBO,CAAAA,OAAO,CAAC,CAACC,QAAAA,GAAAA;AACvB,YAAA,IAAI,CAACJ,gBAAAA,CAAiBK,QAAQ,CAACD,QAAW,CAAA,EAAA;gBACxC,OAAOF,KAAAA,CAAMH,KAAK,CAACK,QAAS,CAAA;AAC9B;AACF,SAAA,CAAA;AACF,KAAA,CAAA;AACF;;;;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { produce } from 'immer';
|
|
2
|
+
import { tours } from '../Tours.mjs';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Migrates tours added or removed from the tours object
|
|
6
|
+
*/ const migrateTours = (storedTourState)=>{
|
|
7
|
+
const storedTourNames = Object.keys(storedTourState.tours);
|
|
8
|
+
const currentTourNames = Object.keys(tours);
|
|
9
|
+
return produce(storedTourState, (draft)=>{
|
|
10
|
+
// Add new tours that don't exist in stored state
|
|
11
|
+
currentTourNames.forEach((tourName)=>{
|
|
12
|
+
if (!storedTourNames.includes(tourName)) {
|
|
13
|
+
draft.tours[tourName] = {
|
|
14
|
+
currentStep: 0,
|
|
15
|
+
isCompleted: false
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
// Remove tours that no longer exist in current tours
|
|
20
|
+
storedTourNames.forEach((tourName)=>{
|
|
21
|
+
if (!currentTourNames.includes(tourName)) {
|
|
22
|
+
delete draft.tours[tourName];
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export { migrateTours };
|
|
29
|
+
//# sourceMappingURL=migrations.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrations.mjs","sources":["../../../../../../../admin/src/components/GuidedTour/utils/migrations.ts"],"sourcesContent":["import { produce } from 'immer';\n\nimport { tours } from '../Tours';\n\nimport type { State, ValidTourName } from '../Context';\n\n/**\n * Migrates tours added or removed from the tours object\n */\nconst migrateTours = (storedTourState: State) => {\n const storedTourNames = Object.keys(storedTourState.tours) as ValidTourName[];\n const currentTourNames = Object.keys(tours) as ValidTourName[];\n\n return produce(storedTourState, (draft) => {\n // Add new tours that don't exist in stored state\n currentTourNames.forEach((tourName) => {\n if (!storedTourNames.includes(tourName)) {\n draft.tours[tourName] = {\n currentStep: 0,\n isCompleted: false,\n };\n }\n });\n\n // Remove tours that no longer exist in current tours\n storedTourNames.forEach((tourName) => {\n if (!currentTourNames.includes(tourName)) {\n delete draft.tours[tourName];\n }\n });\n });\n};\n\nexport { migrateTours };\n"],"names":["migrateTours","storedTourState","storedTourNames","Object","keys","tours","currentTourNames","produce","draft","forEach","tourName","includes","currentStep","isCompleted"],"mappings":";;;AAMA;;IAGA,MAAMA,eAAe,CAACC,eAAAA,GAAAA;AACpB,IAAA,MAAMC,eAAkBC,GAAAA,MAAAA,CAAOC,IAAI,CAACH,gBAAgBI,KAAK,CAAA;IACzD,MAAMC,gBAAAA,GAAmBH,MAAOC,CAAAA,IAAI,CAACC,KAAAA,CAAAA;IAErC,OAAOE,OAAAA,CAAQN,iBAAiB,CAACO,KAAAA,GAAAA;;QAE/BF,gBAAiBG,CAAAA,OAAO,CAAC,CAACC,QAAAA,GAAAA;AACxB,YAAA,IAAI,CAACR,eAAAA,CAAgBS,QAAQ,CAACD,QAAW,CAAA,EAAA;gBACvCF,KAAMH,CAAAA,KAAK,CAACK,QAAAA,CAAS,GAAG;oBACtBE,WAAa,EAAA,CAAA;oBACbC,WAAa,EAAA;AACf,iBAAA;AACF;AACF,SAAA,CAAA;;QAGAX,eAAgBO,CAAAA,OAAO,CAAC,CAACC,QAAAA,GAAAA;AACvB,YAAA,IAAI,CAACJ,gBAAAA,CAAiBK,QAAQ,CAACD,QAAW,CAAA,EAAA;gBACxC,OAAOF,KAAAA,CAAMH,KAAK,CAACK,QAAS,CAAA;AAC9B;AACF,SAAA,CAAA;AACF,KAAA,CAAA;AACF;;;;"}
|
|
@@ -132,7 +132,9 @@ const Sections = ({ children, ...props })=>{
|
|
|
132
132
|
switch(sectionId){
|
|
133
133
|
case 'models':
|
|
134
134
|
return /*#__PURE__*/ jsxRuntime.jsx(Tours.tours.contentTypeBuilder.CollectionTypes, {
|
|
135
|
-
children:
|
|
135
|
+
children: /*#__PURE__*/ jsxRuntime.jsx(Tours.tours.contentTypeBuilder.YourTurn, {
|
|
136
|
+
children: children
|
|
137
|
+
})
|
|
136
138
|
});
|
|
137
139
|
case 'singleTypes':
|
|
138
140
|
return /*#__PURE__*/ jsxRuntime.jsx(Tours.tours.contentTypeBuilder.SingleTypes, {
|