create-docusaurus 2.0.0-beta.15 → 2.0.0-beta.18
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/bin/index.js +41 -31
- package/lib/index.d.ts +10 -1
- package/lib/index.js +169 -92
- package/package.json +15 -14
- package/templates/classic/package.json +7 -7
- package/templates/classic/src/components/{HomepageFeatures.js → HomepageFeatures/index.js} +5 -5
- package/templates/classic/src/components/{HomepageFeatures.module.css → HomepageFeatures/styles.module.css} +0 -0
- package/templates/classic/src/css/custom.css +2 -2
- package/templates/classic/src/pages/index.js +1 -1
- package/templates/classic/src/pages/index.module.css +1 -1
- package/templates/classic-typescript/package.json +10 -10
- package/templates/classic-typescript/src/components/{HomepageFeatures.tsx → HomepageFeatures/index.tsx} +7 -12
- package/templates/classic-typescript/src/pages/index.tsx +1 -1
- package/templates/facebook/package.json +14 -14
- package/templates/facebook/src/css/custom.css +1 -1
- package/templates/facebook/src/pages/styles.module.css +1 -1
- package/templates/shared/docs/tutorial-basics/create-a-document.md +3 -3
- package/templates/shared/static/img/undraw_docusaurus_mountain.svg +1 -0
- package/templates/shared/static/img/undraw_docusaurus_react.svg +1 -0
- package/templates/shared/static/img/undraw_docusaurus_tree.svg +40 -1
package/bin/index.js
CHANGED
|
@@ -8,12 +8,14 @@
|
|
|
8
8
|
|
|
9
9
|
// @ts-check
|
|
10
10
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
import logger from '@docusaurus/logger';
|
|
12
|
+
import semver from 'semver';
|
|
13
|
+
import path from 'path';
|
|
14
|
+
import {program} from 'commander';
|
|
15
|
+
import {createRequire} from 'module';
|
|
16
|
+
|
|
17
|
+
const packageJson = createRequire(import.meta.url)('../package.json');
|
|
18
|
+
const requiredVersion = packageJson.engines.node;
|
|
17
19
|
|
|
18
20
|
if (!semver.satisfies(process.version, requiredVersion)) {
|
|
19
21
|
logger.error('Minimum Node.js version not met :(');
|
|
@@ -21,46 +23,54 @@ if (!semver.satisfies(process.version, requiredVersion)) {
|
|
|
21
23
|
process.exit(1);
|
|
22
24
|
}
|
|
23
25
|
|
|
24
|
-
|
|
25
|
-
return (...args) =>
|
|
26
|
-
fn(...args).catch((err) => {
|
|
27
|
-
logger.error(err.stack);
|
|
28
|
-
process.exitCode = 1;
|
|
29
|
-
});
|
|
30
|
-
}
|
|
26
|
+
program.version(packageJson.version);
|
|
31
27
|
|
|
32
28
|
program
|
|
33
|
-
.
|
|
34
|
-
.
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
.option(
|
|
39
|
-
|
|
40
|
-
|
|
29
|
+
.arguments('[siteName] [template] [rootDir]')
|
|
30
|
+
.option(
|
|
31
|
+
'-p, --package-manager <manager>',
|
|
32
|
+
'The package manager used to install dependencies. One of yarn, npm, and pnpm.',
|
|
33
|
+
)
|
|
34
|
+
.option(
|
|
35
|
+
'-s, --skip-install',
|
|
36
|
+
'Do not run package manager immediately after scaffolding',
|
|
37
|
+
)
|
|
38
|
+
.option('-t, --typescript', 'Use the TypeScript template variant')
|
|
39
|
+
.option(
|
|
40
|
+
'-g, --git-strategy <strategy>',
|
|
41
|
+
`Only used if the template is a git repository.
|
|
42
|
+
\`deep\`: preserve full history
|
|
43
|
+
\`shallow\`: clone with --depth=1
|
|
44
|
+
\`copy\`: do a shallow clone, but do not create a git repo
|
|
45
|
+
\`custom\`: enter your custom git clone command. We will prompt you for it.`,
|
|
46
|
+
)
|
|
41
47
|
.description('Initialize website.')
|
|
42
48
|
.action(
|
|
43
49
|
(
|
|
44
50
|
siteName,
|
|
45
51
|
template,
|
|
46
52
|
rootDir = '.',
|
|
47
|
-
{
|
|
53
|
+
{packageManager, skipInstall, typescript, gitStrategy} = {},
|
|
48
54
|
) => {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
55
|
+
// See https://github.com/facebook/docusaurus/pull/6860
|
|
56
|
+
import('../lib/index.js').then(({default: init}) => {
|
|
57
|
+
init(path.resolve(rootDir), siteName, template, {
|
|
58
|
+
packageManager,
|
|
59
|
+
skipInstall,
|
|
60
|
+
typescript,
|
|
61
|
+
gitStrategy,
|
|
62
|
+
});
|
|
53
63
|
});
|
|
54
64
|
},
|
|
55
65
|
);
|
|
56
66
|
|
|
57
|
-
program.arguments('<command>').action((cmd) => {
|
|
58
|
-
program.outputHelp();
|
|
59
|
-
logger.error`Unknown command code=${cmd}.`;
|
|
60
|
-
});
|
|
61
|
-
|
|
62
67
|
program.parse(process.argv);
|
|
63
68
|
|
|
64
69
|
if (!process.argv.slice(1).length) {
|
|
65
70
|
program.outputHelp();
|
|
66
71
|
}
|
|
72
|
+
|
|
73
|
+
process.on('unhandledRejection', (err) => {
|
|
74
|
+
logger.error(err);
|
|
75
|
+
process.exit(1);
|
|
76
|
+
});
|
package/lib/index.d.ts
CHANGED
|
@@ -4,8 +4,17 @@
|
|
|
4
4
|
* This source code is licensed under the MIT license found in the
|
|
5
5
|
* LICENSE file in the root directory of this source tree.
|
|
6
6
|
*/
|
|
7
|
+
declare const SupportedPackageManagers: {
|
|
8
|
+
npm: string;
|
|
9
|
+
yarn: string;
|
|
10
|
+
pnpm: string;
|
|
11
|
+
};
|
|
12
|
+
declare type SupportedPackageManager = keyof typeof SupportedPackageManagers;
|
|
13
|
+
declare const gitStrategies: readonly ["deep", "shallow", "copy", "custom"];
|
|
7
14
|
export default function init(rootDir: string, siteName?: string, reqTemplate?: string, cliOptions?: Partial<{
|
|
8
|
-
|
|
15
|
+
packageManager: SupportedPackageManager;
|
|
9
16
|
skipInstall: boolean;
|
|
10
17
|
typescript: boolean;
|
|
18
|
+
gitStrategy: typeof gitStrategies[number];
|
|
11
19
|
}>): Promise<void>;
|
|
20
|
+
export {};
|
package/lib/index.js
CHANGED
|
@@ -1,49 +1,83 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
4
3
|
*
|
|
5
4
|
* This source code is licensed under the MIT license found in the
|
|
6
5
|
* LICENSE file in the root directory of this source tree.
|
|
7
6
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const lodash_1 = require("lodash");
|
|
17
|
-
const supports_color_1 = (0, tslib_1.__importDefault)(require("supports-color"));
|
|
7
|
+
import logger from '@docusaurus/logger';
|
|
8
|
+
import fs from 'fs-extra';
|
|
9
|
+
import prompts from 'prompts';
|
|
10
|
+
import path from 'path';
|
|
11
|
+
import shell from 'shelljs';
|
|
12
|
+
import _ from 'lodash';
|
|
13
|
+
import supportsColor from 'supports-color';
|
|
14
|
+
import { fileURLToPath } from 'url';
|
|
18
15
|
const RecommendedTemplate = 'classic';
|
|
19
16
|
const TypeScriptTemplateSuffix = '-typescript';
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
17
|
+
// Only used in the rare, rare case of running globally installed create +
|
|
18
|
+
// using --skip-install. We need a default name to show the tip text
|
|
19
|
+
const DefaultPackageManager = 'npm';
|
|
20
|
+
const SupportedPackageManagers = {
|
|
21
|
+
npm: 'package-lock.json',
|
|
22
|
+
yarn: 'yarn.lock',
|
|
23
|
+
pnpm: 'pnpm-lock.yaml',
|
|
24
|
+
};
|
|
25
|
+
const PackageManagersList = Object.keys(SupportedPackageManagers);
|
|
26
|
+
async function findPackageManagerFromLockFile() {
|
|
27
|
+
for (const packageManager of PackageManagersList) {
|
|
28
|
+
const lockFilePath = path.resolve(SupportedPackageManagers[packageManager]);
|
|
29
|
+
if (await fs.pathExists(lockFilePath)) {
|
|
30
|
+
return packageManager;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
function findPackageManagerFromUserAgent() {
|
|
36
|
+
return PackageManagersList.find((packageManager) => process.env.npm_config_user_agent?.startsWith(packageManager));
|
|
37
|
+
}
|
|
38
|
+
async function askForPackageManagerChoice() {
|
|
39
|
+
const hasYarn = shell.exec('yarn --version', { silent: true }).code === 0;
|
|
40
|
+
const hasPNPM = shell.exec('pnpm --version', { silent: true }).code === 0;
|
|
41
|
+
if (!hasYarn && !hasPNPM) {
|
|
42
|
+
return 'npm';
|
|
24
43
|
}
|
|
25
|
-
|
|
26
|
-
|
|
44
|
+
const choices = ['npm', hasYarn && 'yarn', hasPNPM && 'pnpm']
|
|
45
|
+
.filter((p) => Boolean(p))
|
|
46
|
+
.map((p) => ({ title: p, value: p }));
|
|
47
|
+
return (await prompts({
|
|
48
|
+
type: 'select',
|
|
49
|
+
name: 'packageManager',
|
|
50
|
+
message: 'Select a package manager...',
|
|
51
|
+
choices,
|
|
52
|
+
})).packageManager;
|
|
53
|
+
}
|
|
54
|
+
async function getPackageManager(packageManagerChoice, skipInstall = false) {
|
|
55
|
+
if (packageManagerChoice &&
|
|
56
|
+
!PackageManagersList.includes(packageManagerChoice)) {
|
|
57
|
+
throw new Error(`Invalid package manager choice ${packageManagerChoice}. Must be one of ${PackageManagersList.join(', ')}`);
|
|
27
58
|
}
|
|
59
|
+
return (packageManagerChoice ??
|
|
60
|
+
(await findPackageManagerFromLockFile()) ??
|
|
61
|
+
findPackageManagerFromUserAgent() ??
|
|
62
|
+
// This only happens if the user has a global installation in PATH
|
|
63
|
+
(skipInstall ? DefaultPackageManager : askForPackageManagerChoice()));
|
|
28
64
|
}
|
|
29
65
|
function isValidGitRepoUrl(gitRepoUrl) {
|
|
30
66
|
return ['https://', 'git@'].some((item) => gitRepoUrl.startsWith(item));
|
|
31
67
|
}
|
|
32
68
|
async function updatePkg(pkgPath, obj) {
|
|
33
|
-
const content = await
|
|
69
|
+
const content = await fs.readFile(pkgPath, 'utf-8');
|
|
34
70
|
const pkg = JSON.parse(content);
|
|
35
71
|
const newPkg = Object.assign(pkg, obj);
|
|
36
|
-
await
|
|
72
|
+
await fs.outputFile(pkgPath, `${JSON.stringify(newPkg, null, 2)}\n`);
|
|
37
73
|
}
|
|
38
|
-
function readTemplates(templatesDir) {
|
|
39
|
-
const templates =
|
|
40
|
-
.readdirSync(templatesDir)
|
|
41
|
-
.filter((d) => !d.startsWith('.') &&
|
|
74
|
+
async function readTemplates(templatesDir) {
|
|
75
|
+
const templates = (await fs.readdir(templatesDir)).filter((d) => !d.startsWith('.') &&
|
|
42
76
|
!d.startsWith('README') &&
|
|
43
77
|
!d.endsWith(TypeScriptTemplateSuffix) &&
|
|
44
78
|
d !== 'shared');
|
|
45
79
|
// Classic should be first in list!
|
|
46
|
-
return
|
|
80
|
+
return _.sortBy(templates, (t) => t !== RecommendedTemplate);
|
|
47
81
|
}
|
|
48
82
|
function createTemplateChoices(templates) {
|
|
49
83
|
function makeNameAndValueChoice(value) {
|
|
@@ -63,31 +97,51 @@ function getTypeScriptBaseTemplate(template) {
|
|
|
63
97
|
return undefined;
|
|
64
98
|
}
|
|
65
99
|
async function copyTemplate(templatesDir, template, dest) {
|
|
66
|
-
await
|
|
67
|
-
// TypeScript variants will copy duplicate resources like CSS & config from
|
|
100
|
+
await fs.copy(path.join(templatesDir, 'shared'), dest);
|
|
101
|
+
// TypeScript variants will copy duplicate resources like CSS & config from
|
|
102
|
+
// base template
|
|
68
103
|
const tsBaseTemplate = getTypeScriptBaseTemplate(template);
|
|
69
104
|
if (tsBaseTemplate) {
|
|
70
|
-
const tsBaseTemplatePath =
|
|
71
|
-
await
|
|
72
|
-
filter: (filePath) =>
|
|
73
|
-
|
|
74
|
-
|
|
105
|
+
const tsBaseTemplatePath = path.resolve(templatesDir, tsBaseTemplate);
|
|
106
|
+
await fs.copy(tsBaseTemplatePath, dest, {
|
|
107
|
+
filter: async (filePath) => (await fs.stat(filePath)).isDirectory() ||
|
|
108
|
+
path.extname(filePath) === '.css' ||
|
|
109
|
+
path.basename(filePath) === 'docusaurus.config.js',
|
|
75
110
|
});
|
|
76
111
|
}
|
|
77
|
-
await
|
|
78
|
-
// Symlinks don't exist in published NPM packages anymore, so this is only
|
|
79
|
-
|
|
112
|
+
await fs.copy(path.resolve(templatesDir, template), dest, {
|
|
113
|
+
// Symlinks don't exist in published NPM packages anymore, so this is only
|
|
114
|
+
// to prevent errors during local testing
|
|
115
|
+
filter: async (filePath) => !(await fs.lstat(filePath)).isSymbolicLink(),
|
|
80
116
|
});
|
|
81
117
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
118
|
+
const gitStrategies = ['deep', 'shallow', 'copy', 'custom'];
|
|
119
|
+
async function getGitCommand(gitStrategy) {
|
|
120
|
+
switch (gitStrategy) {
|
|
121
|
+
case 'shallow':
|
|
122
|
+
case 'copy':
|
|
123
|
+
return 'git clone --recursive --depth 1';
|
|
124
|
+
case 'custom': {
|
|
125
|
+
const { command } = await prompts({
|
|
126
|
+
type: 'text',
|
|
127
|
+
name: 'command',
|
|
128
|
+
message: 'Write your own git clone command. The repository URL and destination directory will be supplied. E.g. "git clone --depth 10"',
|
|
129
|
+
});
|
|
130
|
+
return command;
|
|
131
|
+
}
|
|
132
|
+
case 'deep':
|
|
133
|
+
default:
|
|
134
|
+
return 'git clone';
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
export default async function init(rootDir, siteName, reqTemplate, cliOptions = {}) {
|
|
138
|
+
const templatesDir = fileURLToPath(new URL('../templates', import.meta.url));
|
|
139
|
+
const templates = await readTemplates(templatesDir);
|
|
140
|
+
const hasTS = (templateName) => fs.pathExists(path.join(templatesDir, `${templateName}${TypeScriptTemplateSuffix}`));
|
|
87
141
|
let name = siteName;
|
|
88
142
|
// Prompt if siteName is not passed from CLI.
|
|
89
143
|
if (!name) {
|
|
90
|
-
const prompt = await (
|
|
144
|
+
const prompt = await prompts({
|
|
91
145
|
type: 'text',
|
|
92
146
|
name: 'name',
|
|
93
147
|
message: 'What should we name this site?',
|
|
@@ -96,27 +150,27 @@ async function init(rootDir, siteName, reqTemplate, cliOptions = {}) {
|
|
|
96
150
|
name = prompt.name;
|
|
97
151
|
}
|
|
98
152
|
if (!name) {
|
|
99
|
-
|
|
153
|
+
logger.error('A website name is required.');
|
|
100
154
|
process.exit(1);
|
|
101
155
|
}
|
|
102
|
-
const dest =
|
|
103
|
-
if (
|
|
104
|
-
|
|
156
|
+
const dest = path.resolve(rootDir, name);
|
|
157
|
+
if (await fs.pathExists(dest)) {
|
|
158
|
+
logger.error `Directory already exists at path=${dest}!`;
|
|
105
159
|
process.exit(1);
|
|
106
160
|
}
|
|
107
161
|
let template = reqTemplate;
|
|
108
162
|
let useTS = cliOptions.typescript;
|
|
109
163
|
// Prompt if template is not provided from CLI.
|
|
110
164
|
if (!template) {
|
|
111
|
-
const templatePrompt = await (
|
|
165
|
+
const templatePrompt = await prompts({
|
|
112
166
|
type: 'select',
|
|
113
167
|
name: 'template',
|
|
114
168
|
message: 'Select a template below...',
|
|
115
169
|
choices: createTemplateChoices(templates),
|
|
116
170
|
});
|
|
117
171
|
template = templatePrompt.template;
|
|
118
|
-
if (template && !useTS && hasTS(template)) {
|
|
119
|
-
const tsPrompt = await (
|
|
172
|
+
if (template && !useTS && (await hasTS(template))) {
|
|
173
|
+
const tsPrompt = await prompts({
|
|
120
174
|
type: 'confirm',
|
|
121
175
|
name: 'useTS',
|
|
122
176
|
message: 'This template is available in TypeScript. Do you want to use the TS variant?',
|
|
@@ -125,58 +179,80 @@ async function init(rootDir, siteName, reqTemplate, cliOptions = {}) {
|
|
|
125
179
|
useTS = tsPrompt.useTS;
|
|
126
180
|
}
|
|
127
181
|
}
|
|
182
|
+
let gitStrategy = cliOptions.gitStrategy ?? 'deep';
|
|
128
183
|
// If user choose Git repository, we'll prompt for the url.
|
|
129
184
|
if (template === 'Git repository') {
|
|
130
|
-
const repoPrompt = await (
|
|
185
|
+
const repoPrompt = await prompts({
|
|
131
186
|
type: 'text',
|
|
132
187
|
name: 'gitRepoUrl',
|
|
133
188
|
validate: (url) => {
|
|
134
189
|
if (url && isValidGitRepoUrl(url)) {
|
|
135
190
|
return true;
|
|
136
191
|
}
|
|
137
|
-
return
|
|
192
|
+
return logger.red('Invalid repository URL');
|
|
138
193
|
},
|
|
139
|
-
message:
|
|
194
|
+
message: logger.interpolate `Enter a repository URL from GitHub, Bitbucket, GitLab, or any other public repo.
|
|
140
195
|
(e.g: path=${'https://github.com/ownerName/repoName.git'})`,
|
|
141
196
|
});
|
|
197
|
+
({ gitStrategy } = await prompts({
|
|
198
|
+
type: 'select',
|
|
199
|
+
name: 'gitStrategy',
|
|
200
|
+
message: 'How should we clone this repo?',
|
|
201
|
+
choices: [
|
|
202
|
+
{ title: 'Deep clone: preserve full history', value: 'deep' },
|
|
203
|
+
{ title: 'Shallow clone: clone with --depth=1', value: 'shallow' },
|
|
204
|
+
{
|
|
205
|
+
title: 'Copy: do a shallow clone, but do not create a git repo',
|
|
206
|
+
value: 'copy',
|
|
207
|
+
},
|
|
208
|
+
{ title: 'Custom: enter your custom git clone command', value: 'custom' },
|
|
209
|
+
],
|
|
210
|
+
}));
|
|
142
211
|
template = repoPrompt.gitRepoUrl;
|
|
143
212
|
}
|
|
144
213
|
else if (template === 'Local template') {
|
|
145
|
-
const dirPrompt = await (
|
|
214
|
+
const dirPrompt = await prompts({
|
|
146
215
|
type: 'text',
|
|
147
216
|
name: 'templateDir',
|
|
148
|
-
validate: (dir) => {
|
|
217
|
+
validate: async (dir) => {
|
|
149
218
|
if (dir) {
|
|
150
|
-
const fullDir =
|
|
151
|
-
if (
|
|
219
|
+
const fullDir = path.resolve(dir);
|
|
220
|
+
if (await fs.pathExists(fullDir)) {
|
|
152
221
|
return true;
|
|
153
222
|
}
|
|
154
|
-
return
|
|
223
|
+
return logger.red(logger.interpolate `path=${fullDir} does not exist.`);
|
|
155
224
|
}
|
|
156
|
-
return
|
|
225
|
+
return logger.red('Please enter a valid path.');
|
|
157
226
|
},
|
|
158
227
|
message: 'Enter a local folder path, relative to the current working directory.',
|
|
159
228
|
});
|
|
160
229
|
template = dirPrompt.templateDir;
|
|
161
230
|
}
|
|
162
231
|
if (!template) {
|
|
163
|
-
|
|
232
|
+
logger.error('Template should not be empty');
|
|
164
233
|
process.exit(1);
|
|
165
234
|
}
|
|
166
|
-
|
|
235
|
+
logger.info('Creating new Docusaurus project...');
|
|
167
236
|
if (isValidGitRepoUrl(template)) {
|
|
168
|
-
|
|
169
|
-
if (
|
|
170
|
-
.
|
|
171
|
-
logger_1.default.error `Cloning Git template name=${template} failed!`;
|
|
237
|
+
logger.info `Cloning Git template path=${template}...`;
|
|
238
|
+
if (!gitStrategies.includes(gitStrategy)) {
|
|
239
|
+
logger.error `Invalid git strategy: name=${gitStrategy}. Value must be one of ${gitStrategies.join(', ')}.`;
|
|
172
240
|
process.exit(1);
|
|
173
241
|
}
|
|
242
|
+
const command = await getGitCommand(gitStrategy);
|
|
243
|
+
if (shell.exec(`${command} ${template} ${dest}`).code !== 0) {
|
|
244
|
+
logger.error `Cloning Git template name=${template} failed!`;
|
|
245
|
+
process.exit(1);
|
|
246
|
+
}
|
|
247
|
+
if (gitStrategy === 'copy') {
|
|
248
|
+
await fs.remove(path.join(dest, '.git'));
|
|
249
|
+
}
|
|
174
250
|
}
|
|
175
251
|
else if (templates.includes(template)) {
|
|
176
252
|
// Docusaurus templates.
|
|
177
253
|
if (useTS) {
|
|
178
|
-
if (!hasTS(template)) {
|
|
179
|
-
|
|
254
|
+
if (!(await hasTS(template))) {
|
|
255
|
+
logger.error `Template name=${template} doesn't provide the Typescript variant.`;
|
|
180
256
|
process.exit(1);
|
|
181
257
|
}
|
|
182
258
|
template = `${template}${TypeScriptTemplateSuffix}`;
|
|
@@ -185,75 +261,77 @@ async function init(rootDir, siteName, reqTemplate, cliOptions = {}) {
|
|
|
185
261
|
await copyTemplate(templatesDir, template, dest);
|
|
186
262
|
}
|
|
187
263
|
catch (err) {
|
|
188
|
-
|
|
264
|
+
logger.error `Copying Docusaurus template name=${template} failed!`;
|
|
189
265
|
throw err;
|
|
190
266
|
}
|
|
191
267
|
}
|
|
192
|
-
else if (
|
|
193
|
-
const templateDir =
|
|
268
|
+
else if (await fs.pathExists(path.resolve(template))) {
|
|
269
|
+
const templateDir = path.resolve(template);
|
|
194
270
|
try {
|
|
195
|
-
await
|
|
271
|
+
await fs.copy(templateDir, dest);
|
|
196
272
|
}
|
|
197
273
|
catch (err) {
|
|
198
|
-
|
|
274
|
+
logger.error `Copying local template path=${templateDir} failed!`;
|
|
199
275
|
throw err;
|
|
200
276
|
}
|
|
201
277
|
}
|
|
202
278
|
else {
|
|
203
|
-
|
|
279
|
+
logger.error('Invalid template.');
|
|
204
280
|
process.exit(1);
|
|
205
281
|
}
|
|
206
282
|
// Update package.json info.
|
|
207
283
|
try {
|
|
208
|
-
await updatePkg(
|
|
209
|
-
name:
|
|
284
|
+
await updatePkg(path.join(dest, 'package.json'), {
|
|
285
|
+
name: _.kebabCase(name),
|
|
210
286
|
version: '0.0.0',
|
|
211
287
|
private: true,
|
|
212
288
|
});
|
|
213
289
|
}
|
|
214
290
|
catch (err) {
|
|
215
|
-
|
|
291
|
+
logger.error('Failed to update package.json.');
|
|
216
292
|
throw err;
|
|
217
293
|
}
|
|
218
294
|
// We need to rename the gitignore file to .gitignore
|
|
219
|
-
if (!
|
|
220
|
-
|
|
221
|
-
await
|
|
295
|
+
if (!(await fs.pathExists(path.join(dest, '.gitignore'))) &&
|
|
296
|
+
(await fs.pathExists(path.join(dest, 'gitignore')))) {
|
|
297
|
+
await fs.move(path.join(dest, 'gitignore'), path.join(dest, '.gitignore'));
|
|
222
298
|
}
|
|
223
|
-
if (
|
|
224
|
-
|
|
299
|
+
if (await fs.pathExists(path.join(dest, 'gitignore'))) {
|
|
300
|
+
await fs.remove(path.join(dest, 'gitignore'));
|
|
225
301
|
}
|
|
226
|
-
const pkgManager = useYarn ? 'yarn' : 'npm';
|
|
227
302
|
// Display the most elegant way to cd.
|
|
228
|
-
const cdpath =
|
|
303
|
+
const cdpath = path.relative('.', dest);
|
|
304
|
+
const pkgManager = await getPackageManager(cliOptions.packageManager, cliOptions.skipInstall);
|
|
229
305
|
if (!cliOptions.skipInstall) {
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
if (
|
|
306
|
+
shell.cd(dest);
|
|
307
|
+
logger.info `Installing dependencies with name=${pkgManager}...`;
|
|
308
|
+
if (shell.exec(pkgManager === 'yarn' ? 'yarn' : `${pkgManager} install --color always`, {
|
|
233
309
|
env: {
|
|
234
310
|
...process.env,
|
|
235
|
-
// Force coloring the output, since the command is invoked
|
|
236
|
-
|
|
311
|
+
// Force coloring the output, since the command is invoked,
|
|
312
|
+
// by shelljs which is not the interactive shell
|
|
313
|
+
...(supportsColor.stdout ? { FORCE_COLOR: '1' } : {}),
|
|
237
314
|
},
|
|
238
315
|
}).code !== 0) {
|
|
239
|
-
|
|
240
|
-
|
|
316
|
+
logger.error('Dependency installation failed.');
|
|
317
|
+
logger.info `The site directory has already been created, and you can retry by typing:
|
|
241
318
|
|
|
242
319
|
code=${`cd ${cdpath}`}
|
|
243
320
|
code=${`${pkgManager} install`}`;
|
|
244
321
|
process.exit(0);
|
|
245
322
|
}
|
|
246
323
|
}
|
|
247
|
-
|
|
248
|
-
|
|
324
|
+
const useNpm = pkgManager === 'npm';
|
|
325
|
+
logger.success `Created path=${cdpath}.`;
|
|
326
|
+
logger.info `Inside that directory, you can run several commands:
|
|
249
327
|
|
|
250
328
|
code=${`${pkgManager} start`}
|
|
251
329
|
Starts the development server.
|
|
252
330
|
|
|
253
|
-
code=${`${pkgManager} ${
|
|
331
|
+
code=${`${pkgManager} ${useNpm ? 'run ' : ''}build`}
|
|
254
332
|
Bundles your website into static files for production.
|
|
255
333
|
|
|
256
|
-
code=${`${pkgManager} ${
|
|
334
|
+
code=${`${pkgManager} ${useNpm ? 'run ' : ''}serve`}
|
|
257
335
|
Serves the built website locally.
|
|
258
336
|
|
|
259
337
|
code=${`${pkgManager} deploy`}
|
|
@@ -267,4 +345,3 @@ We recommend that you begin by typing:
|
|
|
267
345
|
Happy building awesome websites!
|
|
268
346
|
`;
|
|
269
347
|
}
|
|
270
|
-
exports.default = init;
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-docusaurus",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.18",
|
|
4
4
|
"description": "Create Docusaurus apps easily.",
|
|
5
|
+
"type": "module",
|
|
5
6
|
"repository": {
|
|
6
7
|
"type": "git",
|
|
7
8
|
"url": "https://github.com/facebook/docusaurus.git",
|
|
@@ -12,8 +13,8 @@
|
|
|
12
13
|
},
|
|
13
14
|
"scripts": {
|
|
14
15
|
"create-docusaurus": "create-docusaurus",
|
|
15
|
-
"build": "tsc",
|
|
16
|
-
"watch": "tsc --watch"
|
|
16
|
+
"build": "tsc -p tsconfig.build.json",
|
|
17
|
+
"watch": "tsc -p tsconfig.build.json --watch"
|
|
17
18
|
},
|
|
18
19
|
"bin": "bin/index.js",
|
|
19
20
|
"publishConfig": {
|
|
@@ -21,21 +22,21 @@
|
|
|
21
22
|
},
|
|
22
23
|
"license": "MIT",
|
|
23
24
|
"dependencies": {
|
|
24
|
-
"@docusaurus/logger": "2.0.0-beta.
|
|
25
|
+
"@docusaurus/logger": "2.0.0-beta.18",
|
|
25
26
|
"commander": "^5.1.0",
|
|
26
|
-
"fs-extra": "^10.0.
|
|
27
|
-
"lodash": "^4.17.
|
|
28
|
-
"prompts": "^2.4.
|
|
29
|
-
"semver": "^7.3.
|
|
30
|
-
"shelljs": "^0.8.
|
|
31
|
-
"supports-color": "^
|
|
27
|
+
"fs-extra": "^10.0.1",
|
|
28
|
+
"lodash": "^4.17.21",
|
|
29
|
+
"prompts": "^2.4.2",
|
|
30
|
+
"semver": "^7.3.5",
|
|
31
|
+
"shelljs": "^0.8.5",
|
|
32
|
+
"supports-color": "^9.2.1",
|
|
32
33
|
"tslib": "^2.3.1"
|
|
33
34
|
},
|
|
34
|
-
"engines": {
|
|
35
|
-
"node": ">=14"
|
|
36
|
-
},
|
|
37
35
|
"devDependencies": {
|
|
38
36
|
"@types/supports-color": "^8.1.1"
|
|
39
37
|
},
|
|
40
|
-
"
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=14"
|
|
40
|
+
},
|
|
41
|
+
"gitHead": "1a945d06993d53376e61bed2c942799fe07dc336"
|
|
41
42
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "docusaurus-2-classic-template",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.18",
|
|
4
4
|
"private": true,
|
|
5
5
|
"scripts": {
|
|
6
6
|
"docusaurus": "docusaurus",
|
|
@@ -14,13 +14,13 @@
|
|
|
14
14
|
"write-heading-ids": "docusaurus write-heading-ids"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@docusaurus/core": "2.0.0-beta.
|
|
18
|
-
"@docusaurus/preset-classic": "2.0.0-beta.
|
|
19
|
-
"@mdx-js/react": "^1.6.
|
|
17
|
+
"@docusaurus/core": "2.0.0-beta.18",
|
|
18
|
+
"@docusaurus/preset-classic": "2.0.0-beta.18",
|
|
19
|
+
"@mdx-js/react": "^1.6.22",
|
|
20
20
|
"clsx": "^1.1.1",
|
|
21
|
-
"prism-react-renderer": "^1.
|
|
22
|
-
"react": "^17.0.
|
|
23
|
-
"react-dom": "^17.0.
|
|
21
|
+
"prism-react-renderer": "^1.3.1",
|
|
22
|
+
"react": "^17.0.2",
|
|
23
|
+
"react-dom": "^17.0.2"
|
|
24
24
|
},
|
|
25
25
|
"browserslist": {
|
|
26
26
|
"production": [
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
|
-
import styles from './
|
|
3
|
+
import styles from './styles.module.css';
|
|
4
4
|
|
|
5
5
|
const FeatureList = [
|
|
6
6
|
{
|
|
7
7
|
title: 'Easy to Use',
|
|
8
|
-
Svg: require('
|
|
8
|
+
Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default,
|
|
9
9
|
description: (
|
|
10
10
|
<>
|
|
11
11
|
Docusaurus was designed from the ground up to be easily installed and
|
|
@@ -15,7 +15,7 @@ const FeatureList = [
|
|
|
15
15
|
},
|
|
16
16
|
{
|
|
17
17
|
title: 'Focus on What Matters',
|
|
18
|
-
Svg: require('
|
|
18
|
+
Svg: require('@site/static/img/undraw_docusaurus_tree.svg').default,
|
|
19
19
|
description: (
|
|
20
20
|
<>
|
|
21
21
|
Docusaurus lets you focus on your docs, and we'll do the chores. Go
|
|
@@ -25,7 +25,7 @@ const FeatureList = [
|
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
title: 'Powered by React',
|
|
28
|
-
Svg: require('
|
|
28
|
+
Svg: require('@site/static/img/undraw_docusaurus_react.svg').default,
|
|
29
29
|
description: (
|
|
30
30
|
<>
|
|
31
31
|
Extend or customize your website layout by reusing React. Docusaurus can
|
|
@@ -39,7 +39,7 @@ function Feature({Svg, title, description}) {
|
|
|
39
39
|
return (
|
|
40
40
|
<div className={clsx('col col--4')}>
|
|
41
41
|
<div className="text--center">
|
|
42
|
-
<Svg className={styles.featureSvg}
|
|
42
|
+
<Svg className={styles.featureSvg} role="img" />
|
|
43
43
|
</div>
|
|
44
44
|
<div className="text--center padding-horiz--md">
|
|
45
45
|
<h3>{title}</h3>
|
|
File without changes
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
/* For readability concerns, you should choose a lighter palette in dark mode. */
|
|
20
|
-
|
|
20
|
+
[data-theme='dark'] {
|
|
21
21
|
--ifm-color-primary: #25c2a0;
|
|
22
22
|
--ifm-color-primary-dark: #21af90;
|
|
23
23
|
--ifm-color-primary-darker: #1fa588;
|
|
@@ -34,6 +34,6 @@ html[data-theme='dark'] {
|
|
|
34
34
|
padding: 0 var(--ifm-pre-padding);
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
|
|
37
|
+
[data-theme='dark'] .docusaurus-highlight-code-line {
|
|
38
38
|
background-color: rgba(0, 0, 0, 0.3);
|
|
39
39
|
}
|
|
@@ -4,7 +4,7 @@ import Layout from '@theme/Layout';
|
|
|
4
4
|
import Link from '@docusaurus/Link';
|
|
5
5
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
6
6
|
import styles from './index.module.css';
|
|
7
|
-
import HomepageFeatures from '
|
|
7
|
+
import HomepageFeatures from '@site/src/components/HomepageFeatures';
|
|
8
8
|
|
|
9
9
|
function HomepageHeader() {
|
|
10
10
|
const {siteConfig} = useDocusaurusContext();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "docusaurus-2-classic-typescript-template",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.18",
|
|
4
4
|
"private": true,
|
|
5
5
|
"scripts": {
|
|
6
6
|
"docusaurus": "docusaurus",
|
|
@@ -15,18 +15,18 @@
|
|
|
15
15
|
"typecheck": "tsc"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@docusaurus/core": "2.0.0-beta.
|
|
19
|
-
"@docusaurus/preset-classic": "2.0.0-beta.
|
|
20
|
-
"@mdx-js/react": "^1.6.
|
|
18
|
+
"@docusaurus/core": "2.0.0-beta.18",
|
|
19
|
+
"@docusaurus/preset-classic": "2.0.0-beta.18",
|
|
20
|
+
"@mdx-js/react": "^1.6.22",
|
|
21
21
|
"clsx": "^1.1.1",
|
|
22
|
-
"prism-react-renderer": "^1.
|
|
23
|
-
"react": "^17.0.
|
|
24
|
-
"react-dom": "^17.0.
|
|
22
|
+
"prism-react-renderer": "^1.3.1",
|
|
23
|
+
"react": "^17.0.2",
|
|
24
|
+
"react-dom": "^17.0.2"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@docusaurus/module-type-aliases": "2.0.0-beta.
|
|
28
|
-
"@tsconfig/docusaurus": "^1.0.
|
|
29
|
-
"typescript": "^4.
|
|
27
|
+
"@docusaurus/module-type-aliases": "2.0.0-beta.18",
|
|
28
|
+
"@tsconfig/docusaurus": "^1.0.5",
|
|
29
|
+
"typescript": "^4.6.3"
|
|
30
30
|
},
|
|
31
31
|
"browserslist": {
|
|
32
32
|
"production": [
|
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
import useBaseUrl from '@docusaurus/useBaseUrl';
|
|
2
1
|
import React from 'react';
|
|
3
2
|
import clsx from 'clsx';
|
|
4
|
-
import styles from './
|
|
3
|
+
import styles from './styles.module.css';
|
|
5
4
|
|
|
6
5
|
type FeatureItem = {
|
|
7
6
|
title: string;
|
|
8
|
-
|
|
7
|
+
Svg: React.ComponentType<React.ComponentProps<'svg'>>;
|
|
9
8
|
description: JSX.Element;
|
|
10
9
|
};
|
|
11
10
|
|
|
12
11
|
const FeatureList: FeatureItem[] = [
|
|
13
12
|
{
|
|
14
13
|
title: 'Easy to Use',
|
|
15
|
-
|
|
14
|
+
Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default,
|
|
16
15
|
description: (
|
|
17
16
|
<>
|
|
18
17
|
Docusaurus was designed from the ground up to be easily installed and
|
|
@@ -22,7 +21,7 @@ const FeatureList: FeatureItem[] = [
|
|
|
22
21
|
},
|
|
23
22
|
{
|
|
24
23
|
title: 'Focus on What Matters',
|
|
25
|
-
|
|
24
|
+
Svg: require('@site/static/img/undraw_docusaurus_tree.svg').default,
|
|
26
25
|
description: (
|
|
27
26
|
<>
|
|
28
27
|
Docusaurus lets you focus on your docs, and we'll do the chores. Go
|
|
@@ -32,7 +31,7 @@ const FeatureList: FeatureItem[] = [
|
|
|
32
31
|
},
|
|
33
32
|
{
|
|
34
33
|
title: 'Powered by React',
|
|
35
|
-
|
|
34
|
+
Svg: require('@site/static/img/undraw_docusaurus_react.svg').default,
|
|
36
35
|
description: (
|
|
37
36
|
<>
|
|
38
37
|
Extend or customize your website layout by reusing React. Docusaurus can
|
|
@@ -42,15 +41,11 @@ const FeatureList: FeatureItem[] = [
|
|
|
42
41
|
},
|
|
43
42
|
];
|
|
44
43
|
|
|
45
|
-
function Feature({title,
|
|
44
|
+
function Feature({title, Svg, description}: FeatureItem) {
|
|
46
45
|
return (
|
|
47
46
|
<div className={clsx('col col--4')}>
|
|
48
47
|
<div className="text--center">
|
|
49
|
-
<img
|
|
50
|
-
className={styles.featureSvg}
|
|
51
|
-
alt={title}
|
|
52
|
-
src={useBaseUrl(image)}
|
|
53
|
-
/>
|
|
48
|
+
<Svg className={styles.featureSvg} role="img" />
|
|
54
49
|
</div>
|
|
55
50
|
<div className="text--center padding-horiz--md">
|
|
56
51
|
<h3>{title}</h3>
|
|
@@ -4,7 +4,7 @@ import Layout from '@theme/Layout';
|
|
|
4
4
|
import Link from '@docusaurus/Link';
|
|
5
5
|
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
|
6
6
|
import styles from './index.module.css';
|
|
7
|
-
import HomepageFeatures from '
|
|
7
|
+
import HomepageFeatures from '@site/src/components/HomepageFeatures';
|
|
8
8
|
|
|
9
9
|
function HomepageHeader() {
|
|
10
10
|
const {siteConfig} = useDocusaurusContext();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "docusaurus-2-facebook-template",
|
|
3
|
-
"version": "2.0.0-beta.
|
|
3
|
+
"version": "2.0.0-beta.18",
|
|
4
4
|
"private": true,
|
|
5
5
|
"scripts": {
|
|
6
6
|
"docusaurus": "docusaurus",
|
|
@@ -18,25 +18,25 @@
|
|
|
18
18
|
"format:diff": "prettier --config .prettierrc --list-different \"**/*.{js,jsx,ts,tsx,md,mdx}\""
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@docusaurus/core": "2.0.0-beta.
|
|
22
|
-
"@docusaurus/preset-classic": "2.0.0-beta.
|
|
23
|
-
"@mdx-js/react": "^1.6.
|
|
21
|
+
"@docusaurus/core": "2.0.0-beta.18",
|
|
22
|
+
"@docusaurus/preset-classic": "2.0.0-beta.18",
|
|
23
|
+
"@mdx-js/react": "^1.6.22",
|
|
24
24
|
"clsx": "^1.1.1",
|
|
25
|
-
"react": "^17.0.
|
|
26
|
-
"react-dom": "^17.0.
|
|
25
|
+
"react": "^17.0.2",
|
|
26
|
+
"react-dom": "^17.0.2"
|
|
27
27
|
},
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@babel/eslint-parser": "^7.
|
|
30
|
-
"eslint": "^8.
|
|
31
|
-
"eslint-config-airbnb": "^19.0.
|
|
32
|
-
"eslint-config-prettier": "^8.
|
|
29
|
+
"@babel/eslint-parser": "^7.17.0",
|
|
30
|
+
"eslint": "^8.11.0",
|
|
31
|
+
"eslint-config-airbnb": "^19.0.4",
|
|
32
|
+
"eslint-config-prettier": "^8.5.0",
|
|
33
33
|
"eslint-plugin-header": "^3.1.1",
|
|
34
|
-
"eslint-plugin-import": "^2.25.
|
|
34
|
+
"eslint-plugin-import": "^2.25.4",
|
|
35
35
|
"eslint-plugin-jsx-a11y": "^6.5.1",
|
|
36
|
-
"eslint-plugin-react": "^7.
|
|
36
|
+
"eslint-plugin-react": "^7.29.4",
|
|
37
37
|
"eslint-plugin-react-hooks": "^4.3.0",
|
|
38
|
-
"prettier": "^2.
|
|
39
|
-
"stylelint": "^
|
|
38
|
+
"prettier": "^2.6.0",
|
|
39
|
+
"stylelint": "^14.6.0"
|
|
40
40
|
},
|
|
41
41
|
"browserslist": {
|
|
42
42
|
"production": [
|
|
@@ -41,14 +41,14 @@ This is my **first Docusaurus document**!
|
|
|
41
41
|
|
|
42
42
|
It is also possible to create your sidebar explicitly in `sidebars.js`:
|
|
43
43
|
|
|
44
|
-
```
|
|
44
|
+
```js title="sidebars.js"
|
|
45
45
|
module.exports = {
|
|
46
46
|
tutorialSidebar: [
|
|
47
47
|
{
|
|
48
48
|
type: 'category',
|
|
49
49
|
label: 'Tutorial',
|
|
50
|
-
-
|
|
51
|
-
|
|
50
|
+
// highlight-next-line
|
|
51
|
+
items: ['hello'],
|
|
52
52
|
},
|
|
53
53
|
],
|
|
54
54
|
};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" width="1088" height="687.962" viewBox="0 0 1088 687.962">
|
|
2
|
+
<title>Easy to Use</title>
|
|
2
3
|
<g id="Group_12" data-name="Group 12" transform="translate(-57 -56)">
|
|
3
4
|
<g id="Group_11" data-name="Group 11" transform="translate(57 56)">
|
|
4
5
|
<path id="Path_83" data-name="Path 83" d="M1017.81,560.461c-5.27,45.15-16.22,81.4-31.25,110.31-20,38.52-54.21,54.04-84.77,70.28a193.275,193.275,0,0,1-27.46,11.94c-55.61,19.3-117.85,14.18-166.74,3.99a657.282,657.282,0,0,0-104.09-13.16q-14.97-.675-29.97-.67c-15.42.02-293.07,5.29-360.67-131.57-16.69-33.76-28.13-75-32.24-125.27-11.63-142.12,52.29-235.46,134.74-296.47,155.97-115.41,369.76-110.57,523.43,7.88C941.15,276.621,1036.99,396.031,1017.81,560.461Z" transform="translate(-56 -106.019)" fill="#3f3d56"/>
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<svg xmlns="http://www.w3.org/2000/svg" width="1041.277" height="554.141" viewBox="0 0 1041.277 554.141">
|
|
2
|
+
<title>Powered by React</title>
|
|
2
3
|
<g id="Group_24" data-name="Group 24" transform="translate(-440 -263)">
|
|
3
4
|
<g id="Group_23" data-name="Group 23" transform="translate(439.989 262.965)">
|
|
4
5
|
<path id="Path_299" data-name="Path 299" d="M1040.82,611.12q-1.74,3.75-3.47,7.4-2.7,5.67-5.33,11.12c-.78,1.61-1.56,3.19-2.32,4.77-8.6,17.57-16.63,33.11-23.45,45.89A73.21,73.21,0,0,1,942.44,719l-151.65,1.65h-1.6l-13,.14-11.12.12-34.1.37h-1.38l-17.36.19h-.53l-107,1.16-95.51,1-11.11.12-69,.75H429l-44.75.48h-.48l-141.5,1.53-42.33.46a87.991,87.991,0,0,1-10.79-.54h0c-1.22-.14-2.44-.3-3.65-.49a87.38,87.38,0,0,1-51.29-27.54C116,678.37,102.75,655,93.85,629.64q-1.93-5.49-3.6-11.12C59.44,514.37,97,380,164.6,290.08q4.25-5.64,8.64-11l.07-.08c20.79-25.52,44.1-46.84,68.93-62,44-26.91,92.75-34.49,140.7-11.9,40.57,19.12,78.45,28.11,115.17,30.55,3.71.24,7.42.42,11.11.53,84.23,2.65,163.17-27.7,255.87-47.29,3.69-.78,7.39-1.55,11.12-2.28,66.13-13.16,139.49-20.1,226.73-5.51a189.089,189.089,0,0,1,26.76,6.4q5.77,1.86,11.12,4c41.64,16.94,64.35,48.24,74,87.46q1.37,5.46,2.37,11.11C1134.3,384.41,1084.19,518.23,1040.82,611.12Z" transform="translate(-79.34 -172.91)" fill="#f2f2f2"/>
|
|
@@ -1 +1,40 @@
|
|
|
1
|
-
<svg id="ac356da0-b129-4ca5-aecc-4700531dd101" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" width="1129" height="663" viewBox="0 0 1129 663"><title>docu_tree</title><circle cx="321" cy="321" r="321" fill="#f2f2f2"/><ellipse cx="559" cy="635.49998" rx="514" ry="27.50002" fill="#3f3d56"/><ellipse cx="558" cy="627" rx="460" ry="22" opacity="0.2"/><rect x="131" y="152.5" width="840" height="50" fill="#3f3d56"/><path d="M166.5,727.3299A21.67009,21.67009,0,0,0,188.1701,749H984.8299A21.67009,21.67009,0,0,0,1006.5,727.3299V296h-840Z" transform="translate(-35.5 -118.5)" fill="#3f3d56"/><path d="M984.8299,236H188.1701A21.67009,21.67009,0,0,0,166.5,257.6701V296h840V257.6701A21.67009,21.67009,0,0,0,984.8299,236Z" transform="translate(-35.5 -118.5)" fill="#3f3d56"/><path d="M984.8299,236H188.1701A21.67009,21.67009,0,0,0,166.5,257.6701V296h840V257.6701A21.67009,21.67009,0,0,0,984.8299,236Z" transform="translate(-35.5 -118.5)" opacity="0.2"/><circle cx="181" cy="147.5" r="13" fill="#3f3d56"/><circle cx="217" cy="147.5" r="13" fill="#3f3d56"/><circle cx="253" cy="147.5" r="13" fill="#3f3d56"/><rect x="168" y="213.5" width="337" height="386" rx="5.33505" fill="#606060"/><rect x="603" y="272.5" width="284" height="22" rx="5.47638" fill="#2e8555"/><rect x="537" y="352.5" width="416" height="15" rx="5.47638" fill="#2e8555"/><rect x="537" y="396.5" width="416" height="15" rx="5.47638" fill="#2e8555"/><rect x="537" y="440.5" width="416" height="15" rx="5.47638" fill="#2e8555"/><rect x="537" y="484.5" width="416" height="15" rx="5.47638" fill="#2e8555"/><rect x="865" y="552.5" width="88" height="26" rx="7.02756" fill="#3ecc5f"/><path d="M1088.60287,624.61594a30.11371,30.11371,0,0,0,3.98291-15.266c0-13.79652-8.54358-24.98081-19.08256-24.98081s-19.08256,11.18429-19.08256,24.98081a30.11411,30.11411,0,0,0,3.98291,15.266,31.248,31.248,0,0,0,0,30.53213,31.248,31.248,0,0,0,0,30.53208,31.248,31.248,0,0,0,0,30.53208,30.11408,30.11408,0,0,0-3.98291,15.266c0,13.79652,8.54353,24.98081,19.08256,24.98081s19.08256-11.18429,19.08256-24.98081a30.11368,30.11368,0,0,0-3.98291-15.266,31.248,31.248,0,0,0,0-30.53208,31.248,31.248,0,0,0,0-30.53208,31.248,31.248,0,0,0,0-30.53213Z" transform="translate(-35.5 -118.5)" fill="#3f3d56"/><ellipse cx="1038.00321" cy="460.31783" rx="19.08256" ry="24.9808" fill="#3f3d56"/><ellipse cx="1038.00321" cy="429.78574" rx="19.08256" ry="24.9808" fill="#3f3d56"/><path d="M1144.93871,339.34489a91.61081,91.61081,0,0,0,7.10658-10.46092l-50.141-8.23491,54.22885.4033a91.566,91.566,0,0,0,1.74556-72.42605l-72.75449,37.74139,67.09658-49.32086a91.41255,91.41255,0,1,0-150.971,102.29805,91.45842,91.45842,0,0,0-10.42451,16.66946l65.0866,33.81447-69.40046-23.292a91.46011,91.46011,0,0,0,14.73837,85.83669,91.40575,91.40575,0,1,0,143.68892,0,91.41808,91.41808,0,0,0,0-113.02862Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd"/><path d="M981.6885,395.8592a91.01343,91.01343,0,0,0,19.56129,56.51431,91.40575,91.40575,0,1,0,143.68892,0C1157.18982,436.82067,981.6885,385.60008,981.6885,395.8592Z" transform="translate(-35.5 -118.5)" opacity="0.1"/><path d="M365.62,461.43628H477.094v45.12043H365.62Z" transform="translate(-35.5 -118.5)" fill="#fff" fill-rule="evenodd"/><path d="M264.76252,608.74122a26.50931,26.50931,0,0,1-22.96231-13.27072,26.50976,26.50976,0,0,0,22.96231,39.81215H291.304V608.74122Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd"/><path d="M384.17242,468.57061l92.92155-5.80726V449.49263a26.54091,26.54091,0,0,0-26.54143-26.54143H331.1161l-3.31768-5.74622a3.83043,3.83043,0,0,0-6.63536,0l-3.31768,5.74622-3.31767-5.74622a3.83043,3.83043,0,0,0-6.63536,0l-3.31768,5.74622L301.257,417.205a3.83043,3.83043,0,0,0-6.63536,0L291.304,422.9512c-.02919,0-.05573.004-.08625.004l-5.49674-5.49541a3.8293,3.8293,0,0,0-6.4071,1.71723l-1.81676,6.77338L270.607,424.1031a3.82993,3.82993,0,0,0-4.6912,4.69253l1.84463,6.89148-6.77072,1.81411a3.8315,3.8315,0,0,0-1.71988,6.40975l5.49673,5.49673c0,.02787-.004.05574-.004.08493l-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74621,3.31768L259.0163,466.081a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31767a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31767a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31768a3.83042,3.83042,0,0,0,0,6.63535l5.74622,3.31768-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768L259.0163,558.976a3.83042,3.83042,0,0,0,0,6.63535l5.74622,3.31768-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31768a3.83042,3.83042,0,0,0,0,6.63535l5.74622,3.31768-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768A26.54091,26.54091,0,0,0,291.304,635.28265H450.55254A26.5409,26.5409,0,0,0,477.094,608.74122V502.5755l-92.92155-5.80727a14.12639,14.12639,0,0,1,0-28.19762" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd"/><path d="M424.01111,635.28265h39.81214V582.19979H424.01111Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd"/><path d="M490.36468,602.10586a6.60242,6.60242,0,0,0-.848.08493c-.05042-.19906-.09821-.39945-.15393-.59852A6.62668,6.62668,0,1,0,482.80568,590.21q-.2203-.22491-.44457-.44589a6.62391,6.62391,0,1,0-11.39689-6.56369c-.1964-.05575-.39414-.10218-.59056-.15262a6.63957,6.63957,0,1,0-13.10086,0c-.1964.05042-.39414.09687-.59056.15262a6.62767,6.62767,0,1,0-11.39688,6.56369,26.52754,26.52754,0,1,0,44.23127,25.52756,6.6211,6.6211,0,1,0,.848-13.18579" transform="translate(-35.5 -118.5)" fill="#44d860" fill-rule="evenodd"/><path d="M437.28182,555.65836H477.094V529.11693H437.28182Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd"/><path d="M490.36468,545.70532a3.31768,3.31768,0,0,0,0-6.63536,3.41133,3.41133,0,0,0-.42333.04247c-.02655-.09953-.04911-.19907-.077-.29859a3.319,3.319,0,0,0-1.278-6.37923,3.28174,3.28174,0,0,0-2.00122.68742q-.10947-.11346-.22294-.22295a3.282,3.282,0,0,0,.67149-1.98265,3.31768,3.31768,0,0,0-6.37-1.2992,13.27078,13.27078,0,1,0,0,25.54082,3.31768,3.31768,0,0,0,6.37-1.2992,3.282,3.282,0,0,0-.67149-1.98265q.11347-.10947.22294-.22294a3.28174,3.28174,0,0,0,2.00122.68742,3.31768,3.31768,0,0,0,1.278-6.37923c.02786-.0982.05042-.19907.077-.29859a3.41325,3.41325,0,0,0,.42333.04246" transform="translate(-35.5 -118.5)" fill="#44d860" fill-rule="evenodd"/><path d="M317.84538,466.081a3.31768,3.31768,0,0,1-3.31767-3.31768,9.953,9.953,0,1,0-19.90608,0,3.31768,3.31768,0,1,1-6.63535,0,16.58839,16.58839,0,1,1,33.17678,0,3.31768,3.31768,0,0,1-3.31768,3.31768" transform="translate(-35.5 -118.5)" fill-rule="evenodd"/><path d="M370.92825,635.28265h79.62429A26.5409,26.5409,0,0,0,477.094,608.74122v-92.895H397.46968a26.54091,26.54091,0,0,0-26.54143,26.54143Z" transform="translate(-35.5 -118.5)" fill="#ffff50" fill-rule="evenodd"/><path d="M457.21444,556.98543H390.80778a1.32707,1.32707,0,0,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414m0,26.54143H390.80778a1.32707,1.32707,0,1,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414m0,26.54143H390.80778a1.32707,1.32707,0,1,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414m0-66.10674H390.80778a1.32707,1.32707,0,0,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414m0,26.29459H390.80778a1.32707,1.32707,0,0,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414m0,26.54143H390.80778a1.32707,1.32707,0,0,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414M477.094,474.19076c-.01592,0-.0292-.008-.04512-.00663-4.10064.13934-6.04083,4.24132-7.75274,7.86024-1.78623,3.78215-3.16771,6.24122-5.43171,6.16691-2.50685-.09024-3.94007-2.92222-5.45825-5.91874-1.74377-3.44243-3.73438-7.34667-7.91333-7.20069-4.04227.138-5.98907,3.70784-7.70631,6.857-1.82738,3.35484-3.07084,5.39455-5.46887,5.30033-2.55727-.09289-3.91619-2.39536-5.48877-5.06013-1.75306-2.96733-3.77951-6.30359-7.8775-6.18946-3.97326.13669-5.92537,3.16507-7.64791,5.83912-1.82207,2.82666-3.09872,4.5492-5.52725,4.447-2.61832-.09289-3.9706-2.00388-5.53522-4.21611-1.757-2.4856-3.737-5.299-7.82308-5.16231-3.88567.13271-5.83779,2.61434-7.559,4.80135-1.635,2.07555-2.9116,3.71846-5.61218,3.615a1.32793,1.32793,0,1,0-.09555,2.65414c4.00377.134,6.03154-2.38873,7.79257-4.6275,1.562-1.9853,2.91027-3.69855,5.56441-3.78879,2.55594-.10882,3.75429,1.47968,5.56707,4.04093,1.7212,2.43385,3.67465,5.19416,7.60545,5.33616,4.11789.138,6.09921-2.93946,7.8536-5.66261,1.56861-2.43385,2.92221-4.53461,5.50734-4.62352,2.37944-.08892,3.67466,1.79154,5.50072,4.885,1.72121,2.91557,3.67069,6.21865,7.67977,6.36463,4.14709.14332,6.14965-3.47693,7.89475-6.68181,1.51155-2.77092,2.93814-5.38791,5.46621-5.4755,2.37944-.05573,3.62025,2.11668,5.45558,5.74622,1.71459,3.388,3.65875,7.22591,7.73019,7.37321l.22429.004c4.06614,0,5.99571-4.08074,7.70364-7.68905,1.51154-3.19825,2.94211-6.21069,5.3972-6.33411Z" transform="translate(-35.5 -118.5)" fill-rule="evenodd"/><path d="M344.38682,635.28265h53.08286V582.19979H344.38682Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd"/><path d="M424.01111,602.10586a6.60242,6.60242,0,0,0-.848.08493c-.05042-.19906-.09821-.39945-.15394-.59852A6.62667,6.62667,0,1,0,416.45211,590.21q-.2203-.22491-.44458-.44589a6.62391,6.62391,0,1,0-11.39689-6.56369c-.1964-.05575-.39413-.10218-.59054-.15262a6.63957,6.63957,0,1,0-13.10084,0c-.19641.05042-.39414.09687-.59055.15262a6.62767,6.62767,0,1,0-11.39689,6.56369,26.52755,26.52755,0,1,0,44.2313,25.52756,6.6211,6.6211,0,1,0,.848-13.18579" transform="translate(-35.5 -118.5)" fill="#44d860" fill-rule="evenodd"/><path d="M344.38682,555.65836h53.08286V529.11693H344.38682Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd"/><path d="M410.74039,545.70532a3.31768,3.31768,0,1,0,0-6.63536,3.41133,3.41133,0,0,0-.42333.04247c-.02655-.09953-.04911-.19907-.077-.29859a3.319,3.319,0,0,0-1.278-6.37923,3.28174,3.28174,0,0,0-2.00122.68742q-.10947-.11346-.22294-.22295a3.282,3.282,0,0,0,.67149-1.98265,3.31768,3.31768,0,0,0-6.37-1.2992,13.27078,13.27078,0,1,0,0,25.54082,3.31768,3.31768,0,0,0,6.37-1.2992,3.282,3.282,0,0,0-.67149-1.98265q.11347-.10947.22294-.22294a3.28174,3.28174,0,0,0,2.00122.68742,3.31768,3.31768,0,0,0,1.278-6.37923c.02786-.0982.05042-.19907.077-.29859a3.41325,3.41325,0,0,0,.42333.04246" transform="translate(-35.5 -118.5)" fill="#44d860" fill-rule="evenodd"/><path d="M424.01111,447.8338a3.60349,3.60349,0,0,1-.65028-.06636,3.34415,3.34415,0,0,1-.62372-.18579,3.44679,3.44679,0,0,1-.572-.30522,5.02708,5.02708,0,0,1-.50429-.4114,3.88726,3.88726,0,0,1-.41007-.50428,3.27532,3.27532,0,0,1-.55737-1.84463,3.60248,3.60248,0,0,1,.06636-.65027,3.82638,3.82638,0,0,1,.18447-.62373,3.48858,3.48858,0,0,1,.30656-.57064,3.197,3.197,0,0,1,.91436-.91568,3.44685,3.44685,0,0,1,.572-.30523,3.344,3.344,0,0,1,.62372-.18578,3.06907,3.06907,0,0,1,1.30053,0,3.22332,3.22332,0,0,1,1.19436.491,5.02835,5.02835,0,0,1,.50429.41139,4.8801,4.8801,0,0,1,.41139.50429,3.38246,3.38246,0,0,1,.30522.57064,3.47806,3.47806,0,0,1,.25215,1.274A3.36394,3.36394,0,0,1,426.36,446.865a5.02708,5.02708,0,0,1-.50429.4114,3.3057,3.3057,0,0,1-1.84463.55737m26.54143-1.65884a3.38754,3.38754,0,0,1-2.35024-.96877,5.04185,5.04185,0,0,1-.41007-.50428,3.27532,3.27532,0,0,1-.55737-1.84463,3.38659,3.38659,0,0,1,.96744-2.34892,5.02559,5.02559,0,0,1,.50429-.41139,3.44685,3.44685,0,0,1,.572-.30523,3.3432,3.3432,0,0,1,.62373-.18579,3.06952,3.06952,0,0,1,1.30052,0,3.22356,3.22356,0,0,1,1.19436.491,5.02559,5.02559,0,0,1,.50429.41139,3.38792,3.38792,0,0,1,.96876,2.34892,3.72635,3.72635,0,0,1-.06636.65026,3.37387,3.37387,0,0,1-.18579.62373,4.71469,4.71469,0,0,1-.30522.57064,4.8801,4.8801,0,0,1-.41139.50429,5.02559,5.02559,0,0,1-.50429.41139,3.30547,3.30547,0,0,1-1.84463.55737" transform="translate(-35.5 -118.5)" fill-rule="evenodd"/></svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1129" height="663" viewBox="0 0 1129 663">
|
|
2
|
+
<title>Focus on What Matters</title>
|
|
3
|
+
<circle cx="321" cy="321" r="321" fill="#f2f2f2" />
|
|
4
|
+
<ellipse cx="559" cy="635.49998" rx="514" ry="27.50002" fill="#3f3d56" />
|
|
5
|
+
<ellipse cx="558" cy="627" rx="460" ry="22" opacity="0.2" />
|
|
6
|
+
<rect x="131" y="152.5" width="840" height="50" fill="#3f3d56" />
|
|
7
|
+
<path d="M166.5,727.3299A21.67009,21.67009,0,0,0,188.1701,749H984.8299A21.67009,21.67009,0,0,0,1006.5,727.3299V296h-840Z" transform="translate(-35.5 -118.5)" fill="#3f3d56" />
|
|
8
|
+
<path d="M984.8299,236H188.1701A21.67009,21.67009,0,0,0,166.5,257.6701V296h840V257.6701A21.67009,21.67009,0,0,0,984.8299,236Z" transform="translate(-35.5 -118.5)" fill="#3f3d56" />
|
|
9
|
+
<path d="M984.8299,236H188.1701A21.67009,21.67009,0,0,0,166.5,257.6701V296h840V257.6701A21.67009,21.67009,0,0,0,984.8299,236Z" transform="translate(-35.5 -118.5)" opacity="0.2" />
|
|
10
|
+
<circle cx="181" cy="147.5" r="13" fill="#3f3d56" />
|
|
11
|
+
<circle cx="217" cy="147.5" r="13" fill="#3f3d56" />
|
|
12
|
+
<circle cx="253" cy="147.5" r="13" fill="#3f3d56" />
|
|
13
|
+
<rect x="168" y="213.5" width="337" height="386" rx="5.33505" fill="#606060" />
|
|
14
|
+
<rect x="603" y="272.5" width="284" height="22" rx="5.47638" fill="#2e8555" />
|
|
15
|
+
<rect x="537" y="352.5" width="416" height="15" rx="5.47638" fill="#2e8555" />
|
|
16
|
+
<rect x="537" y="396.5" width="416" height="15" rx="5.47638" fill="#2e8555" />
|
|
17
|
+
<rect x="537" y="440.5" width="416" height="15" rx="5.47638" fill="#2e8555" />
|
|
18
|
+
<rect x="537" y="484.5" width="416" height="15" rx="5.47638" fill="#2e8555" />
|
|
19
|
+
<rect x="865" y="552.5" width="88" height="26" rx="7.02756" fill="#3ecc5f" />
|
|
20
|
+
<path d="M1088.60287,624.61594a30.11371,30.11371,0,0,0,3.98291-15.266c0-13.79652-8.54358-24.98081-19.08256-24.98081s-19.08256,11.18429-19.08256,24.98081a30.11411,30.11411,0,0,0,3.98291,15.266,31.248,31.248,0,0,0,0,30.53213,31.248,31.248,0,0,0,0,30.53208,31.248,31.248,0,0,0,0,30.53208,30.11408,30.11408,0,0,0-3.98291,15.266c0,13.79652,8.54353,24.98081,19.08256,24.98081s19.08256-11.18429,19.08256-24.98081a30.11368,30.11368,0,0,0-3.98291-15.266,31.248,31.248,0,0,0,0-30.53208,31.248,31.248,0,0,0,0-30.53208,31.248,31.248,0,0,0,0-30.53213Z" transform="translate(-35.5 -118.5)" fill="#3f3d56" />
|
|
21
|
+
<ellipse cx="1038.00321" cy="460.31783" rx="19.08256" ry="24.9808" fill="#3f3d56" />
|
|
22
|
+
<ellipse cx="1038.00321" cy="429.78574" rx="19.08256" ry="24.9808" fill="#3f3d56" />
|
|
23
|
+
<path d="M1144.93871,339.34489a91.61081,91.61081,0,0,0,7.10658-10.46092l-50.141-8.23491,54.22885.4033a91.566,91.566,0,0,0,1.74556-72.42605l-72.75449,37.74139,67.09658-49.32086a91.41255,91.41255,0,1,0-150.971,102.29805,91.45842,91.45842,0,0,0-10.42451,16.66946l65.0866,33.81447-69.40046-23.292a91.46011,91.46011,0,0,0,14.73837,85.83669,91.40575,91.40575,0,1,0,143.68892,0,91.41808,91.41808,0,0,0,0-113.02862Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd" />
|
|
24
|
+
<path d="M981.6885,395.8592a91.01343,91.01343,0,0,0,19.56129,56.51431,91.40575,91.40575,0,1,0,143.68892,0C1157.18982,436.82067,981.6885,385.60008,981.6885,395.8592Z" transform="translate(-35.5 -118.5)" opacity="0.1" />
|
|
25
|
+
<path d="M365.62,461.43628H477.094v45.12043H365.62Z" transform="translate(-35.5 -118.5)" fill="#fff" fill-rule="evenodd" />
|
|
26
|
+
<path d="M264.76252,608.74122a26.50931,26.50931,0,0,1-22.96231-13.27072,26.50976,26.50976,0,0,0,22.96231,39.81215H291.304V608.74122Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd" />
|
|
27
|
+
<path d="M384.17242,468.57061l92.92155-5.80726V449.49263a26.54091,26.54091,0,0,0-26.54143-26.54143H331.1161l-3.31768-5.74622a3.83043,3.83043,0,0,0-6.63536,0l-3.31768,5.74622-3.31767-5.74622a3.83043,3.83043,0,0,0-6.63536,0l-3.31768,5.74622L301.257,417.205a3.83043,3.83043,0,0,0-6.63536,0L291.304,422.9512c-.02919,0-.05573.004-.08625.004l-5.49674-5.49541a3.8293,3.8293,0,0,0-6.4071,1.71723l-1.81676,6.77338L270.607,424.1031a3.82993,3.82993,0,0,0-4.6912,4.69253l1.84463,6.89148-6.77072,1.81411a3.8315,3.8315,0,0,0-1.71988,6.40975l5.49673,5.49673c0,.02787-.004.05574-.004.08493l-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74621,3.31768L259.0163,466.081a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31767a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31767a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31768a3.83042,3.83042,0,0,0,0,6.63535l5.74622,3.31768-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768L259.0163,558.976a3.83042,3.83042,0,0,0,0,6.63535l5.74622,3.31768-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768-5.74622,3.31768a3.83042,3.83042,0,0,0,0,6.63535l5.74622,3.31768-5.74622,3.31768a3.83043,3.83043,0,0,0,0,6.63536l5.74622,3.31768A26.54091,26.54091,0,0,0,291.304,635.28265H450.55254A26.5409,26.5409,0,0,0,477.094,608.74122V502.5755l-92.92155-5.80727a14.12639,14.12639,0,0,1,0-28.19762" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd" />
|
|
28
|
+
<path d="M424.01111,635.28265h39.81214V582.19979H424.01111Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd" />
|
|
29
|
+
<path d="M490.36468,602.10586a6.60242,6.60242,0,0,0-.848.08493c-.05042-.19906-.09821-.39945-.15393-.59852A6.62668,6.62668,0,1,0,482.80568,590.21q-.2203-.22491-.44457-.44589a6.62391,6.62391,0,1,0-11.39689-6.56369c-.1964-.05575-.39414-.10218-.59056-.15262a6.63957,6.63957,0,1,0-13.10086,0c-.1964.05042-.39414.09687-.59056.15262a6.62767,6.62767,0,1,0-11.39688,6.56369,26.52754,26.52754,0,1,0,44.23127,25.52756,6.6211,6.6211,0,1,0,.848-13.18579" transform="translate(-35.5 -118.5)" fill="#44d860" fill-rule="evenodd" />
|
|
30
|
+
<path d="M437.28182,555.65836H477.094V529.11693H437.28182Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd" />
|
|
31
|
+
<path d="M490.36468,545.70532a3.31768,3.31768,0,0,0,0-6.63536,3.41133,3.41133,0,0,0-.42333.04247c-.02655-.09953-.04911-.19907-.077-.29859a3.319,3.319,0,0,0-1.278-6.37923,3.28174,3.28174,0,0,0-2.00122.68742q-.10947-.11346-.22294-.22295a3.282,3.282,0,0,0,.67149-1.98265,3.31768,3.31768,0,0,0-6.37-1.2992,13.27078,13.27078,0,1,0,0,25.54082,3.31768,3.31768,0,0,0,6.37-1.2992,3.282,3.282,0,0,0-.67149-1.98265q.11347-.10947.22294-.22294a3.28174,3.28174,0,0,0,2.00122.68742,3.31768,3.31768,0,0,0,1.278-6.37923c.02786-.0982.05042-.19907.077-.29859a3.41325,3.41325,0,0,0,.42333.04246" transform="translate(-35.5 -118.5)" fill="#44d860" fill-rule="evenodd" />
|
|
32
|
+
<path d="M317.84538,466.081a3.31768,3.31768,0,0,1-3.31767-3.31768,9.953,9.953,0,1,0-19.90608,0,3.31768,3.31768,0,1,1-6.63535,0,16.58839,16.58839,0,1,1,33.17678,0,3.31768,3.31768,0,0,1-3.31768,3.31768" transform="translate(-35.5 -118.5)" fill-rule="evenodd" />
|
|
33
|
+
<path d="M370.92825,635.28265h79.62429A26.5409,26.5409,0,0,0,477.094,608.74122v-92.895H397.46968a26.54091,26.54091,0,0,0-26.54143,26.54143Z" transform="translate(-35.5 -118.5)" fill="#ffff50" fill-rule="evenodd" />
|
|
34
|
+
<path d="M457.21444,556.98543H390.80778a1.32707,1.32707,0,0,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414m0,26.54143H390.80778a1.32707,1.32707,0,1,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414m0,26.54143H390.80778a1.32707,1.32707,0,1,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414m0-66.10674H390.80778a1.32707,1.32707,0,0,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414m0,26.29459H390.80778a1.32707,1.32707,0,0,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414m0,26.54143H390.80778a1.32707,1.32707,0,0,1,0-2.65414h66.40666a1.32707,1.32707,0,0,1,0,2.65414M477.094,474.19076c-.01592,0-.0292-.008-.04512-.00663-4.10064.13934-6.04083,4.24132-7.75274,7.86024-1.78623,3.78215-3.16771,6.24122-5.43171,6.16691-2.50685-.09024-3.94007-2.92222-5.45825-5.91874-1.74377-3.44243-3.73438-7.34667-7.91333-7.20069-4.04227.138-5.98907,3.70784-7.70631,6.857-1.82738,3.35484-3.07084,5.39455-5.46887,5.30033-2.55727-.09289-3.91619-2.39536-5.48877-5.06013-1.75306-2.96733-3.77951-6.30359-7.8775-6.18946-3.97326.13669-5.92537,3.16507-7.64791,5.83912-1.82207,2.82666-3.09872,4.5492-5.52725,4.447-2.61832-.09289-3.9706-2.00388-5.53522-4.21611-1.757-2.4856-3.737-5.299-7.82308-5.16231-3.88567.13271-5.83779,2.61434-7.559,4.80135-1.635,2.07555-2.9116,3.71846-5.61218,3.615a1.32793,1.32793,0,1,0-.09555,2.65414c4.00377.134,6.03154-2.38873,7.79257-4.6275,1.562-1.9853,2.91027-3.69855,5.56441-3.78879,2.55594-.10882,3.75429,1.47968,5.56707,4.04093,1.7212,2.43385,3.67465,5.19416,7.60545,5.33616,4.11789.138,6.09921-2.93946,7.8536-5.66261,1.56861-2.43385,2.92221-4.53461,5.50734-4.62352,2.37944-.08892,3.67466,1.79154,5.50072,4.885,1.72121,2.91557,3.67069,6.21865,7.67977,6.36463,4.14709.14332,6.14965-3.47693,7.89475-6.68181,1.51155-2.77092,2.93814-5.38791,5.46621-5.4755,2.37944-.05573,3.62025,2.11668,5.45558,5.74622,1.71459,3.388,3.65875,7.22591,7.73019,7.37321l.22429.004c4.06614,0,5.99571-4.08074,7.70364-7.68905,1.51154-3.19825,2.94211-6.21069,5.3972-6.33411Z" transform="translate(-35.5 -118.5)" fill-rule="evenodd" />
|
|
35
|
+
<path d="M344.38682,635.28265h53.08286V582.19979H344.38682Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd" />
|
|
36
|
+
<path d="M424.01111,602.10586a6.60242,6.60242,0,0,0-.848.08493c-.05042-.19906-.09821-.39945-.15394-.59852A6.62667,6.62667,0,1,0,416.45211,590.21q-.2203-.22491-.44458-.44589a6.62391,6.62391,0,1,0-11.39689-6.56369c-.1964-.05575-.39413-.10218-.59054-.15262a6.63957,6.63957,0,1,0-13.10084,0c-.19641.05042-.39414.09687-.59055.15262a6.62767,6.62767,0,1,0-11.39689,6.56369,26.52755,26.52755,0,1,0,44.2313,25.52756,6.6211,6.6211,0,1,0,.848-13.18579" transform="translate(-35.5 -118.5)" fill="#44d860" fill-rule="evenodd" />
|
|
37
|
+
<path d="M344.38682,555.65836h53.08286V529.11693H344.38682Z" transform="translate(-35.5 -118.5)" fill="#3ecc5f" fill-rule="evenodd" />
|
|
38
|
+
<path d="M410.74039,545.70532a3.31768,3.31768,0,1,0,0-6.63536,3.41133,3.41133,0,0,0-.42333.04247c-.02655-.09953-.04911-.19907-.077-.29859a3.319,3.319,0,0,0-1.278-6.37923,3.28174,3.28174,0,0,0-2.00122.68742q-.10947-.11346-.22294-.22295a3.282,3.282,0,0,0,.67149-1.98265,3.31768,3.31768,0,0,0-6.37-1.2992,13.27078,13.27078,0,1,0,0,25.54082,3.31768,3.31768,0,0,0,6.37-1.2992,3.282,3.282,0,0,0-.67149-1.98265q.11347-.10947.22294-.22294a3.28174,3.28174,0,0,0,2.00122.68742,3.31768,3.31768,0,0,0,1.278-6.37923c.02786-.0982.05042-.19907.077-.29859a3.41325,3.41325,0,0,0,.42333.04246" transform="translate(-35.5 -118.5)" fill="#44d860" fill-rule="evenodd" />
|
|
39
|
+
<path d="M424.01111,447.8338a3.60349,3.60349,0,0,1-.65028-.06636,3.34415,3.34415,0,0,1-.62372-.18579,3.44679,3.44679,0,0,1-.572-.30522,5.02708,5.02708,0,0,1-.50429-.4114,3.88726,3.88726,0,0,1-.41007-.50428,3.27532,3.27532,0,0,1-.55737-1.84463,3.60248,3.60248,0,0,1,.06636-.65027,3.82638,3.82638,0,0,1,.18447-.62373,3.48858,3.48858,0,0,1,.30656-.57064,3.197,3.197,0,0,1,.91436-.91568,3.44685,3.44685,0,0,1,.572-.30523,3.344,3.344,0,0,1,.62372-.18578,3.06907,3.06907,0,0,1,1.30053,0,3.22332,3.22332,0,0,1,1.19436.491,5.02835,5.02835,0,0,1,.50429.41139,4.8801,4.8801,0,0,1,.41139.50429,3.38246,3.38246,0,0,1,.30522.57064,3.47806,3.47806,0,0,1,.25215,1.274A3.36394,3.36394,0,0,1,426.36,446.865a5.02708,5.02708,0,0,1-.50429.4114,3.3057,3.3057,0,0,1-1.84463.55737m26.54143-1.65884a3.38754,3.38754,0,0,1-2.35024-.96877,5.04185,5.04185,0,0,1-.41007-.50428,3.27532,3.27532,0,0,1-.55737-1.84463,3.38659,3.38659,0,0,1,.96744-2.34892,5.02559,5.02559,0,0,1,.50429-.41139,3.44685,3.44685,0,0,1,.572-.30523,3.3432,3.3432,0,0,1,.62373-.18579,3.06952,3.06952,0,0,1,1.30052,0,3.22356,3.22356,0,0,1,1.19436.491,5.02559,5.02559,0,0,1,.50429.41139,3.38792,3.38792,0,0,1,.96876,2.34892,3.72635,3.72635,0,0,1-.06636.65026,3.37387,3.37387,0,0,1-.18579.62373,4.71469,4.71469,0,0,1-.30522.57064,4.8801,4.8801,0,0,1-.41139.50429,5.02559,5.02559,0,0,1-.50429.41139,3.30547,3.30547,0,0,1-1.84463.55737" transform="translate(-35.5 -118.5)" fill-rule="evenodd" />
|
|
40
|
+
</svg>
|