diff options
-rw-r--r-- | docs/integration.md | 31 | ||||
-rw-r--r-- | scripts/create.js | 70 | ||||
-rw-r--r-- | scripts/package-lock.json | 22 | ||||
-rw-r--r-- | scripts/package.json | 4 | ||||
-rw-r--r-- | scripts/sample_recipe/README.md | 2 | ||||
-rw-r--r-- | scripts/sample_recipe/icon.png | bin | 0 -> 40460 bytes | |||
-rw-r--r-- | scripts/sample_recipe/icon.svg | 105 | ||||
-rw-r--r-- | scripts/sample_recipe/index.js | 2 | ||||
-rw-r--r-- | scripts/sample_recipe/package.json | 12 | ||||
-rw-r--r-- | scripts/sample_recipe/service.css | 1 | ||||
-rw-r--r-- | scripts/sample_recipe/webview.js | 15 |
11 files changed, 254 insertions, 10 deletions
diff --git a/docs/integration.md b/docs/integration.md index 21d1399..d186704 100644 --- a/docs/integration.md +++ b/docs/integration.md | |||
@@ -13,7 +13,8 @@ A Ferdi recipe is basically nothing else than a node module and is currently ini | |||
13 | ## Table of Contents | 13 | ## Table of Contents |
14 | - [Ferdi Recipe Documentation / Overview](#ferdi-recipe-documentation--overview) | 14 | - [Ferdi Recipe Documentation / Overview](#ferdi-recipe-documentation--overview) |
15 | - [Table of Contents](#table-of-contents) | 15 | - [Table of Contents](#table-of-contents) |
16 | - [Installation](#installation) | 16 | - [Preparing](#preparing) |
17 | - [Create a recipe](#create-a-recipe) | ||
17 | - [Recipe structure](#recipe-structure) | 18 | - [Recipe structure](#recipe-structure) |
18 | - [package.json](#packagejson) | 19 | - [package.json](#packagejson) |
19 | - [index.js](#indexjs) | 20 | - [index.js](#indexjs) |
@@ -23,14 +24,26 @@ A Ferdi recipe is basically nothing else than a node module and is currently ini | |||
23 | - [Debugging](#debugging) | 24 | - [Debugging](#debugging) |
24 | - [Publishing](#publishing) | 25 | - [Publishing](#publishing) |
25 | 26 | ||
26 | ## Installation | 27 | ## Preparing |
27 | 1. To install a new recipe for testing, download the recipe folder e.g `whatsapp` or simply create an empty one with the name of your new recipe (we recommend using a recipe like `whatsapp` as a template though). | 28 | Before you can begin, you should have [NodeJS](http://nodejs.org/) installed and should be familiar with using npm, specifically "npm install" and "npm run". |
28 | 2. Open the development Ferdi Plugins folder on your machine (note that the `dev` directory may not exist yet, and you must create it): | 29 | |
29 | * Mac: `~/Library/Application Support/Ferdi/recipes/dev/` | 30 | You should also have basic knowledge of JavaScript - don't worry, you'll really only need some basic commands as we've already prepared the complicated stuff for you. |
30 | * Windows: `%appdata%/Ferdi/recipes/dev/` | 31 | |
31 | * Linux: `~/.config/Ferdi/recipes/dev` | 32 | ## Create a recipe |
32 | 3. Copy the recipe folder into this folder | 33 | 1. Clone this repository. You can do this by running `git clone https://github.com/getferdi/recipes.git` in your terminal or by downloading the repository from <https://github.com/getferdi/recipes/archive/master.zip>. |
33 | 4. Reload Ferdi (`CMD/CTRL + SHIFT + R`) | 34 | 2. Install its dependencies via the terminal: |
35 | ```Bash | ||
36 | cd scripts/ | ||
37 | npm install | ||
38 | ``` | ||
39 | 3. You can now run our automatic recipe wizard that creates and opens the new recipe for you: | ||
40 | ```Bash | ||
41 | # Make sure you are still in the scripts/ folder | ||
42 | npm run create "Service Name" | ||
43 | ``` | ||
44 | Replace `Service Name` with the name of your service, e.g. `npm run create "Google Hangouts"`. | ||
45 | This command will automatically create the development recipe in the correct folder, prepares it for your service and opens the new recipe in your file explorer or Finder. | ||
46 | 4. Reload Ferdi (`CMD/CTRL + SHIFT + R`) in order for it to register the new recipe | ||
34 | 47 | ||
35 | ## Recipe structure | 48 | ## Recipe structure |
36 | Every recipe needs a specific file structure in order to work as a Ferdi recipe | 49 | Every recipe needs a specific file structure in order to work as a Ferdi recipe |
diff --git a/scripts/create.js b/scripts/create.js new file mode 100644 index 0000000..724eeb6 --- /dev/null +++ b/scripts/create.js | |||
@@ -0,0 +1,70 @@ | |||
1 | /** | ||
2 | * Create a new recipe for your service | ||
3 | */ | ||
4 | const fs = require('fs-extra'); | ||
5 | const path = require('path'); | ||
6 | const open = require('open'); | ||
7 | |||
8 | if (process.argv.length < 3) { | ||
9 | console.log(`Usage: npm run create <Recipe name> [Folder name] | ||
10 | For example: | ||
11 | npm run create WhatsApp | ||
12 | npm run create "Google Hangouts" | ||
13 | You can set "Folder name" to "FerdiDev" to use Ferdi's development instance instead: | ||
14 | |||
15 | npm run create WhatsApp FerdiDev | ||
16 | `); | ||
17 | return; | ||
18 | } | ||
19 | |||
20 | const recipeName = process.argv[2]; | ||
21 | const recipe = recipeName.toLowerCase().replace(/\s/g, '-'); | ||
22 | const cleanRecipeId = recipe.replace(/[^a-z]/g, ''); // Clean recipe ID only containing a-z, for usage as the JavaScript class name | ||
23 | const folderName = process.argv[3] || 'Ferdi'; | ||
24 | const filesThatNeedTextReplace = ['package.json', 'index.js', 'README.md']; | ||
25 | |||
26 | (async () => { | ||
27 | // Folder paths | ||
28 | const userData = process.env.APPDATA || (process.platform == 'darwin' ? process.env.HOME + '/Library/Application Support' : process.env.HOME + "/.config"); | ||
29 | const recipesFolder = path.join(userData, folderName, "recipes"); | ||
30 | const devRecipeFolder = path.join(recipesFolder, "dev"); | ||
31 | const newRecipeFolder = path.join(devRecipeFolder, recipe); | ||
32 | const sampleRecipe = path.join(__dirname, 'sample_recipe'); | ||
33 | |||
34 | // Make sure dev recipe folder exists | ||
35 | if (!await fs.exists(recipesFolder)) { | ||
36 | console.log(`Couldn't find your recipe folder (${recipesFolder}). Is Ferdi installed?`); | ||
37 | return; | ||
38 | } | ||
39 | await fs.ensureDir(devRecipeFolder); | ||
40 | |||
41 | if (await fs.exists(newRecipeFolder)) { | ||
42 | console.log('⚠️ Recipe already exists'); | ||
43 | return; | ||
44 | } | ||
45 | |||
46 | console.log('[Info] Passed pre-checks'); | ||
47 | |||
48 | // Copy sample recipe to recipe folder | ||
49 | await fs.copy(sampleRecipe, newRecipeFolder); | ||
50 | console.log('[Info] Copied recipe'); | ||
51 | |||
52 | // Replace "SERVICE" with the service name | ||
53 | for (const file of filesThatNeedTextReplace) { | ||
54 | const filePath = path.join(newRecipeFolder, file); | ||
55 | let contents = await fs.readFile(filePath, 'utf-8'); | ||
56 | contents = contents.replace(/SERVICE/g, recipe); | ||
57 | contents = contents.replace(/SNAME/g, recipeName); | ||
58 | contents = contents.replace(/SCLEAN/g, cleanRecipeId); | ||
59 | await fs.writeFile(filePath, contents); | ||
60 | } | ||
61 | console.log('[Info] Prepared new recipe'); | ||
62 | |||
63 | open(newRecipeFolder); | ||
64 | console.log(`✅ Successfully created your recipe. | ||
65 | |||
66 | What's next? | ||
67 | - Make sure you restart Ferdi in order for the recipe to show up | ||
68 | - Customise "webview.js", "package.json", "icon.svg" and "icon.png (see https://github.com/getferdi/recipes/blob/master/docs/integration.md#recipe-structure) | ||
69 | - Publish and package your recipe (see https://github.com/getferdi/recipes/blob/master/docs/integration.md#publishing)`); | ||
70 | })(); | ||
diff --git a/scripts/package-lock.json b/scripts/package-lock.json index 113ddbe..4eafb50 100644 --- a/scripts/package-lock.json +++ b/scripts/package-lock.json | |||
@@ -165,6 +165,11 @@ | |||
165 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", | 165 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", |
166 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" | 166 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" |
167 | }, | 167 | }, |
168 | "is-docker": { | ||
169 | "version": "2.0.0", | ||
170 | "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz", | ||
171 | "integrity": "sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==" | ||
172 | }, | ||
168 | "is-ssh": { | 173 | "is-ssh": { |
169 | "version": "1.3.1", | 174 | "version": "1.3.1", |
170 | "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz", | 175 | "resolved": "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz", |
@@ -173,6 +178,14 @@ | |||
173 | "protocols": "^1.1.0" | 178 | "protocols": "^1.1.0" |
174 | } | 179 | } |
175 | }, | 180 | }, |
181 | "is-wsl": { | ||
182 | "version": "2.2.0", | ||
183 | "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", | ||
184 | "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", | ||
185 | "requires": { | ||
186 | "is-docker": "^2.0.0" | ||
187 | } | ||
188 | }, | ||
176 | "isarray": { | 189 | "isarray": { |
177 | "version": "1.0.0", | 190 | "version": "1.0.0", |
178 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | 191 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", |
@@ -225,6 +238,15 @@ | |||
225 | "wrappy": "1" | 238 | "wrappy": "1" |
226 | } | 239 | } |
227 | }, | 240 | }, |
241 | "open": { | ||
242 | "version": "7.0.3", | ||
243 | "resolved": "https://registry.npmjs.org/open/-/open-7.0.3.tgz", | ||
244 | "integrity": "sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA==", | ||
245 | "requires": { | ||
246 | "is-docker": "^2.0.0", | ||
247 | "is-wsl": "^2.1.1" | ||
248 | } | ||
249 | }, | ||
228 | "parse-path": { | 250 | "parse-path": { |
229 | "version": "4.0.1", | 251 | "version": "4.0.1", |
230 | "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.1.tgz", | 252 | "resolved": "https://registry.npmjs.org/parse-path/-/parse-path-4.0.1.tgz", |
diff --git a/scripts/package.json b/scripts/package.json index 77d5f2f..1402e52 100644 --- a/scripts/package.json +++ b/scripts/package.json | |||
@@ -12,6 +12,7 @@ | |||
12 | "git-url-parse": "^11.1.2", | 12 | "git-url-parse": "^11.1.2", |
13 | "image-size": "^0.8.3", | 13 | "image-size": "^0.8.3", |
14 | "node-fetch": "^2.6.0", | 14 | "node-fetch": "^2.6.0", |
15 | "open": "^7.0.3", | ||
15 | "semver": "^6.3.0", | 16 | "semver": "^6.3.0", |
16 | "targz": "^1.0.1" | 17 | "targz": "^1.0.1" |
17 | }, | 18 | }, |
@@ -22,6 +23,7 @@ | |||
22 | "update": "node update.js", | 23 | "update": "node update.js", |
23 | "github": "node add_github.js", | 24 | "github": "node add_github.js", |
24 | "gh-load": "node gh_load.js", | 25 | "gh-load": "node gh_load.js", |
25 | "load": "node load.js" | 26 | "load": "node load.js", |
27 | "create": "node create.js" | ||
26 | } | 28 | } |
27 | } | 29 | } |
diff --git a/scripts/sample_recipe/README.md b/scripts/sample_recipe/README.md new file mode 100644 index 0000000..40ddca5 --- /dev/null +++ b/scripts/sample_recipe/README.md | |||
@@ -0,0 +1,2 @@ | |||
1 | # SNAME for Ferdi | ||
2 | This is a Ferdi recipe for SNAME | ||
diff --git a/scripts/sample_recipe/icon.png b/scripts/sample_recipe/icon.png new file mode 100644 index 0000000..88d8101 --- /dev/null +++ b/scripts/sample_recipe/icon.png | |||
Binary files differ | |||
diff --git a/scripts/sample_recipe/icon.svg b/scripts/sample_recipe/icon.svg new file mode 100644 index 0000000..9cdd337 --- /dev/null +++ b/scripts/sample_recipe/icon.svg | |||
@@ -0,0 +1,105 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8" standalone="no"?> | ||
2 | <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> | ||
3 | <svg width="100%" height="100%" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"> | ||
4 | <g transform="matrix(1.65727,0,0,1.65727,-38.7595,-80.4265)"> | ||
5 | <g transform="matrix(86.8898,0,0,86.8898,226.756,265)"> | ||
6 | <path d="M0.065,0L0.065,-0.71L0.293,-0.71C0.351,-0.71 0.401,-0.7 0.443,-0.682C0.484,-0.663 0.516,-0.635 0.539,-0.6C0.561,-0.564 0.572,-0.521 0.572,-0.47C0.572,-0.434 0.565,-0.402 0.552,-0.373C0.539,-0.343 0.52,-0.319 0.495,-0.298C0.47,-0.277 0.441,-0.26 0.407,-0.249C0.372,-0.238 0.334,-0.232 0.292,-0.232C0.267,-0.232 0.241,-0.234 0.212,-0.239L0.212,0L0.065,0ZM0.212,-0.584L0.212,-0.364C0.239,-0.36 0.263,-0.358 0.286,-0.358C0.329,-0.358 0.362,-0.368 0.386,-0.387C0.409,-0.406 0.421,-0.434 0.421,-0.471C0.421,-0.507 0.41,-0.535 0.387,-0.555C0.364,-0.574 0.332,-0.584 0.29,-0.584L0.212,-0.584Z" style="fill-rule:nonzero;"/> | ||
7 | </g> | ||
8 | <g transform="matrix(86.8898,0,0,86.8898,278.803,265)"> | ||
9 | <rect x="0.056" y="-0.746" width="0.14" height="0.746" style="fill-rule:nonzero;"/> | ||
10 | </g> | ||
11 | <g transform="matrix(86.8898,0,0,86.8898,300.699,265)"> | ||
12 | <path d="M0.219,0.015C0.192,0.015 0.167,0.011 0.144,0.003C0.121,-0.005 0.101,-0.017 0.085,-0.032C0.068,-0.047 0.054,-0.064 0.045,-0.084C0.036,-0.104 0.031,-0.126 0.031,-0.15C0.031,-0.183 0.04,-0.213 0.058,-0.238C0.076,-0.263 0.101,-0.283 0.134,-0.298C0.167,-0.312 0.205,-0.319 0.248,-0.319C0.27,-0.319 0.291,-0.317 0.311,-0.313C0.33,-0.309 0.349,-0.303 0.368,-0.296L0.368,-0.327C0.368,-0.357 0.36,-0.381 0.343,-0.4C0.326,-0.419 0.302,-0.428 0.273,-0.428C0.251,-0.428 0.231,-0.423 0.213,-0.412C0.195,-0.401 0.182,-0.385 0.175,-0.365L0.05,-0.39C0.057,-0.421 0.072,-0.448 0.094,-0.471C0.115,-0.494 0.142,-0.511 0.173,-0.524C0.204,-0.537 0.238,-0.543 0.275,-0.543C0.309,-0.543 0.34,-0.538 0.368,-0.527C0.396,-0.516 0.42,-0.501 0.441,-0.481C0.461,-0.461 0.476,-0.438 0.488,-0.411C0.499,-0.384 0.504,-0.353 0.504,-0.32L0.504,0L0.379,0L0.375,-0.062C0.361,-0.039 0.341,-0.021 0.314,-0.007C0.287,0.008 0.256,0.015 0.219,0.015ZM0.169,-0.157C0.169,-0.138 0.177,-0.123 0.192,-0.111C0.207,-0.099 0.228,-0.093 0.253,-0.093C0.275,-0.093 0.295,-0.098 0.312,-0.107C0.329,-0.116 0.343,-0.129 0.353,-0.146C0.363,-0.162 0.368,-0.18 0.368,-0.2L0.368,-0.205C0.353,-0.211 0.338,-0.216 0.321,-0.22C0.304,-0.223 0.288,-0.225 0.271,-0.225C0.24,-0.225 0.215,-0.219 0.197,-0.207C0.178,-0.194 0.169,-0.178 0.169,-0.157Z" style="fill-rule:nonzero;"/> | ||
13 | </g> | ||
14 | <g transform="matrix(86.8898,0,0,86.8898,349.357,265)"> | ||
15 | <path d="M0.301,0.015C0.263,0.015 0.228,0.008 0.196,-0.006C0.163,-0.019 0.135,-0.038 0.112,-0.063C0.088,-0.088 0.069,-0.117 0.056,-0.151C0.043,-0.184 0.036,-0.221 0.036,-0.26C0.036,-0.3 0.043,-0.337 0.057,-0.372C0.07,-0.406 0.089,-0.436 0.114,-0.462C0.138,-0.487 0.166,-0.507 0.199,-0.522C0.232,-0.536 0.267,-0.543 0.305,-0.543C0.343,-0.543 0.378,-0.536 0.41,-0.522C0.442,-0.507 0.469,-0.487 0.492,-0.461C0.514,-0.435 0.529,-0.405 0.538,-0.37L0.405,-0.344C0.395,-0.367 0.381,-0.385 0.363,-0.398C0.345,-0.411 0.325,-0.417 0.302,-0.417C0.278,-0.417 0.257,-0.41 0.239,-0.397C0.22,-0.384 0.206,-0.365 0.195,-0.342C0.184,-0.318 0.179,-0.291 0.179,-0.262C0.179,-0.233 0.184,-0.207 0.195,-0.184C0.205,-0.161 0.219,-0.143 0.238,-0.131C0.257,-0.118 0.278,-0.111 0.302,-0.111C0.326,-0.111 0.348,-0.117 0.367,-0.13C0.386,-0.143 0.401,-0.161 0.41,-0.184L0.543,-0.158C0.534,-0.123 0.518,-0.092 0.495,-0.066C0.471,-0.04 0.442,-0.02 0.409,-0.006C0.376,0.008 0.34,0.015 0.301,0.015Z" style="fill-rule:nonzero;"/> | ||
16 | </g> | ||
17 | <g transform="matrix(86.8898,0,0,86.8898,398.45,265)"> | ||
18 | <path d="M0.306,0.015C0.267,0.015 0.231,0.008 0.198,-0.006C0.165,-0.019 0.136,-0.039 0.112,-0.064C0.088,-0.089 0.069,-0.118 0.056,-0.153C0.043,-0.187 0.036,-0.224 0.036,-0.265C0.036,-0.304 0.043,-0.341 0.056,-0.375C0.069,-0.409 0.088,-0.439 0.112,-0.464C0.135,-0.489 0.163,-0.508 0.195,-0.522C0.227,-0.536 0.262,-0.543 0.299,-0.543C0.338,-0.543 0.373,-0.536 0.405,-0.523C0.436,-0.51 0.463,-0.491 0.486,-0.466C0.509,-0.441 0.526,-0.412 0.539,-0.378C0.551,-0.344 0.557,-0.306 0.557,-0.264L0.557,-0.229L0.178,-0.229C0.184,-0.19 0.198,-0.159 0.221,-0.137C0.244,-0.114 0.272,-0.103 0.307,-0.103C0.331,-0.103 0.353,-0.109 0.373,-0.12C0.392,-0.131 0.408,-0.148 0.421,-0.169L0.546,-0.129C0.534,-0.099 0.516,-0.073 0.492,-0.052C0.468,-0.031 0.44,-0.014 0.408,-0.003C0.376,0.009 0.342,0.015 0.306,0.015ZM0.299,-0.435C0.268,-0.435 0.243,-0.425 0.222,-0.405C0.201,-0.385 0.187,-0.358 0.18,-0.323L0.413,-0.323C0.408,-0.358 0.395,-0.385 0.375,-0.405C0.354,-0.425 0.329,-0.435 0.299,-0.435Z" style="fill-rule:nonzero;"/> | ||
19 | </g> | ||
20 | <g transform="matrix(86.8898,0,0,86.8898,53.7145,351.89)"> | ||
21 | <path d="M0.144,0.204C0.126,0.204 0.109,0.202 0.093,0.199C0.077,0.195 0.062,0.189 0.048,0.181L0.075,0.071C0.082,0.074 0.091,0.077 0.101,0.08C0.111,0.082 0.12,0.083 0.129,0.083C0.148,0.083 0.165,0.078 0.18,0.068C0.194,0.057 0.206,0.041 0.215,0.018L0.224,-0.005L0.011,-0.528L0.164,-0.528L0.289,-0.154L0.402,-0.528L0.55,-0.528L0.333,0.05C0.313,0.103 0.288,0.142 0.257,0.167C0.226,0.192 0.188,0.204 0.144,0.204Z" style="fill-rule:nonzero;"/> | ||
22 | </g> | ||
23 | <g transform="matrix(86.8898,0,0,86.8898,100.809,351.89)"> | ||
24 | <path d="M0.31,0.015C0.271,0.015 0.234,0.008 0.201,-0.006C0.168,-0.02 0.139,-0.04 0.114,-0.065C0.089,-0.09 0.07,-0.119 0.057,-0.153C0.043,-0.187 0.036,-0.224 0.036,-0.264C0.036,-0.304 0.043,-0.341 0.057,-0.375C0.071,-0.408 0.091,-0.438 0.116,-0.463C0.14,-0.488 0.17,-0.508 0.204,-0.522C0.237,-0.536 0.274,-0.543 0.314,-0.543C0.353,-0.543 0.39,-0.536 0.423,-0.522C0.456,-0.508 0.485,-0.489 0.51,-0.464C0.535,-0.439 0.554,-0.409 0.568,-0.376C0.581,-0.342 0.588,-0.305 0.588,-0.265C0.588,-0.225 0.581,-0.188 0.567,-0.154C0.553,-0.12 0.534,-0.09 0.509,-0.065C0.484,-0.04 0.454,-0.02 0.421,-0.006C0.387,0.008 0.35,0.015 0.31,0.015ZM0.312,-0.111C0.337,-0.111 0.36,-0.118 0.38,-0.131C0.4,-0.144 0.416,-0.163 0.428,-0.186C0.439,-0.209 0.445,-0.235 0.445,-0.264C0.445,-0.293 0.439,-0.32 0.428,-0.343C0.416,-0.366 0.4,-0.384 0.38,-0.397C0.36,-0.41 0.337,-0.417 0.312,-0.417C0.287,-0.417 0.264,-0.41 0.244,-0.397C0.224,-0.384 0.208,-0.366 0.197,-0.343C0.185,-0.32 0.179,-0.293 0.179,-0.264C0.179,-0.235 0.185,-0.209 0.197,-0.186C0.208,-0.163 0.224,-0.144 0.244,-0.131C0.264,-0.118 0.287,-0.111 0.312,-0.111Z" style="fill-rule:nonzero;"/> | ||
25 | </g> | ||
26 | <g transform="matrix(86.8898,0,0,86.8898,155.028,351.89)"> | ||
27 | <path d="M0.294,0.015C0.246,0.015 0.204,0.005 0.169,-0.016C0.133,-0.036 0.105,-0.065 0.086,-0.103C0.066,-0.14 0.056,-0.185 0.056,-0.236L0.056,-0.528L0.196,-0.528L0.196,-0.233C0.196,-0.195 0.205,-0.165 0.223,-0.144C0.241,-0.122 0.265,-0.111 0.296,-0.111C0.327,-0.111 0.351,-0.122 0.369,-0.144C0.387,-0.165 0.396,-0.195 0.396,-0.233L0.396,-0.528L0.536,-0.528L0.536,-0.236C0.536,-0.198 0.53,-0.164 0.519,-0.133C0.508,-0.102 0.491,-0.076 0.47,-0.054C0.449,-0.032 0.423,-0.015 0.394,-0.003C0.364,0.009 0.331,0.015 0.294,0.015Z" style="fill-rule:nonzero;"/> | ||
28 | </g> | ||
29 | <g transform="matrix(86.8898,0,0,86.8898,206.467,351.89)"> | ||
30 | <path d="M0.056,0L0.056,-0.528L0.185,-0.528L0.19,-0.448C0.203,-0.476 0.221,-0.498 0.244,-0.513C0.267,-0.528 0.293,-0.535 0.324,-0.535C0.333,-0.535 0.343,-0.534 0.352,-0.533C0.361,-0.531 0.37,-0.529 0.377,-0.526L0.362,-0.388C0.355,-0.391 0.347,-0.393 0.34,-0.394C0.332,-0.395 0.324,-0.395 0.316,-0.395C0.277,-0.395 0.248,-0.383 0.227,-0.36C0.206,-0.336 0.196,-0.302 0.196,-0.259L0.196,0L0.056,0Z" style="fill-rule:nonzero;"/> | ||
31 | </g> | ||
32 | <g transform="matrix(86.8898,0,0,86.8898,259.122,351.89)"> | ||
33 | <path d="M0.246,0.015C0.209,0.015 0.175,0.009 0.145,-0.003C0.114,-0.015 0.089,-0.032 0.068,-0.054C0.047,-0.076 0.032,-0.102 0.024,-0.132L0.15,-0.159C0.157,-0.138 0.169,-0.122 0.186,-0.11C0.203,-0.098 0.224,-0.092 0.248,-0.092C0.271,-0.092 0.289,-0.097 0.304,-0.107C0.319,-0.117 0.326,-0.131 0.326,-0.148C0.326,-0.163 0.32,-0.175 0.307,-0.185C0.294,-0.194 0.272,-0.202 0.242,-0.207L0.214,-0.212C0.157,-0.222 0.113,-0.241 0.084,-0.268C0.054,-0.295 0.039,-0.33 0.039,-0.372C0.039,-0.405 0.048,-0.435 0.065,-0.461C0.082,-0.486 0.106,-0.506 0.137,-0.521C0.168,-0.536 0.203,-0.543 0.243,-0.543C0.278,-0.543 0.311,-0.537 0.34,-0.526C0.369,-0.514 0.393,-0.497 0.412,-0.476C0.431,-0.455 0.445,-0.429 0.452,-0.399L0.327,-0.373C0.32,-0.393 0.31,-0.409 0.295,-0.42C0.28,-0.431 0.262,-0.437 0.242,-0.437C0.221,-0.437 0.204,-0.432 0.191,-0.422C0.178,-0.412 0.171,-0.399 0.171,-0.384C0.171,-0.371 0.178,-0.36 0.191,-0.351C0.204,-0.342 0.226,-0.334 0.257,-0.329L0.285,-0.324C0.342,-0.314 0.385,-0.295 0.415,-0.268C0.445,-0.24 0.46,-0.205 0.46,-0.162C0.46,-0.136 0.455,-0.112 0.445,-0.091C0.434,-0.07 0.419,-0.051 0.4,-0.035C0.381,-0.019 0.358,-0.007 0.332,0.002C0.306,0.011 0.277,0.015 0.246,0.015Z" style="fill-rule:nonzero;"/> | ||
34 | </g> | ||
35 | <g transform="matrix(86.8898,0,0,86.8898,301.785,351.89)"> | ||
36 | <path d="M0.306,0.015C0.267,0.015 0.231,0.008 0.198,-0.006C0.165,-0.019 0.136,-0.039 0.112,-0.064C0.088,-0.089 0.069,-0.118 0.056,-0.153C0.043,-0.187 0.036,-0.224 0.036,-0.265C0.036,-0.304 0.043,-0.341 0.056,-0.375C0.069,-0.409 0.088,-0.439 0.112,-0.464C0.135,-0.489 0.163,-0.508 0.195,-0.522C0.227,-0.536 0.262,-0.543 0.299,-0.543C0.338,-0.543 0.373,-0.536 0.405,-0.523C0.436,-0.51 0.463,-0.491 0.486,-0.466C0.509,-0.441 0.526,-0.412 0.539,-0.378C0.551,-0.344 0.557,-0.306 0.557,-0.264L0.557,-0.229L0.178,-0.229C0.184,-0.19 0.198,-0.159 0.221,-0.137C0.244,-0.114 0.272,-0.103 0.307,-0.103C0.331,-0.103 0.353,-0.109 0.373,-0.12C0.392,-0.131 0.408,-0.148 0.421,-0.169L0.546,-0.129C0.534,-0.099 0.516,-0.073 0.492,-0.052C0.468,-0.031 0.44,-0.014 0.408,-0.003C0.376,0.009 0.342,0.015 0.306,0.015ZM0.299,-0.435C0.268,-0.435 0.243,-0.425 0.222,-0.405C0.201,-0.385 0.187,-0.358 0.18,-0.323L0.413,-0.323C0.408,-0.358 0.395,-0.385 0.375,-0.405C0.354,-0.425 0.329,-0.435 0.299,-0.435Z" style="fill-rule:nonzero;"/> | ||
37 | </g> | ||
38 | <g transform="matrix(86.8898,0,0,86.8898,352.876,351.89)"> | ||
39 | <path d="M0.056,0L0.056,-0.528L0.185,-0.528L0.19,-0.448C0.203,-0.476 0.221,-0.498 0.244,-0.513C0.267,-0.528 0.293,-0.535 0.324,-0.535C0.333,-0.535 0.343,-0.534 0.352,-0.533C0.361,-0.531 0.37,-0.529 0.377,-0.526L0.362,-0.388C0.355,-0.391 0.347,-0.393 0.34,-0.394C0.332,-0.395 0.324,-0.395 0.316,-0.395C0.277,-0.395 0.248,-0.383 0.227,-0.36C0.206,-0.336 0.196,-0.302 0.196,-0.259L0.196,0L0.056,0Z" style="fill-rule:nonzero;"/> | ||
40 | </g> | ||
41 | <g transform="matrix(86.8898,0,0,86.8898,388.762,351.89)"> | ||
42 | <path d="M0.209,0L0.011,-0.528L0.164,-0.528L0.282,-0.148L0.402,-0.528L0.55,-0.528L0.352,0L0.209,0Z" style="fill-rule:nonzero;"/> | ||
43 | </g> | ||
44 | <g transform="matrix(86.8898,0,0,86.8898,437.507,351.89)"> | ||
45 | <path d="M0.206,-0.671C0.206,-0.656 0.203,-0.642 0.196,-0.63C0.189,-0.618 0.179,-0.608 0.167,-0.602C0.154,-0.595 0.141,-0.591 0.126,-0.591C0.111,-0.591 0.098,-0.595 0.086,-0.602C0.073,-0.608 0.064,-0.618 0.057,-0.63C0.049,-0.642 0.046,-0.656 0.046,-0.671C0.046,-0.686 0.049,-0.7 0.057,-0.712C0.064,-0.724 0.073,-0.733 0.086,-0.741C0.098,-0.748 0.111,-0.751 0.126,-0.751C0.141,-0.751 0.154,-0.748 0.167,-0.741C0.179,-0.733 0.189,-0.724 0.196,-0.712C0.203,-0.7 0.206,-0.686 0.206,-0.671ZM0.056,0L0.056,-0.528L0.196,-0.528L0.196,0L0.056,0Z" style="fill-rule:nonzero;"/> | ||
46 | </g> | ||
47 | <g transform="matrix(86.8898,0,0,86.8898,459.403,351.89)"> | ||
48 | <path d="M0.301,0.015C0.263,0.015 0.228,0.008 0.196,-0.006C0.163,-0.019 0.135,-0.038 0.112,-0.063C0.088,-0.088 0.069,-0.117 0.056,-0.151C0.043,-0.184 0.036,-0.221 0.036,-0.26C0.036,-0.3 0.043,-0.337 0.057,-0.372C0.07,-0.406 0.089,-0.436 0.114,-0.462C0.138,-0.487 0.166,-0.507 0.199,-0.522C0.232,-0.536 0.267,-0.543 0.305,-0.543C0.343,-0.543 0.378,-0.536 0.41,-0.522C0.442,-0.507 0.469,-0.487 0.492,-0.461C0.514,-0.435 0.529,-0.405 0.538,-0.37L0.405,-0.344C0.395,-0.367 0.381,-0.385 0.363,-0.398C0.345,-0.411 0.325,-0.417 0.302,-0.417C0.278,-0.417 0.257,-0.41 0.239,-0.397C0.22,-0.384 0.206,-0.365 0.195,-0.342C0.184,-0.318 0.179,-0.291 0.179,-0.262C0.179,-0.233 0.184,-0.207 0.195,-0.184C0.205,-0.161 0.219,-0.143 0.238,-0.131C0.257,-0.118 0.278,-0.111 0.302,-0.111C0.326,-0.111 0.348,-0.117 0.367,-0.13C0.386,-0.143 0.401,-0.161 0.41,-0.184L0.543,-0.158C0.534,-0.123 0.518,-0.092 0.495,-0.066C0.471,-0.04 0.442,-0.02 0.409,-0.006C0.376,0.008 0.34,0.015 0.301,0.015Z" style="fill-rule:nonzero;"/> | ||
49 | </g> | ||
50 | <g transform="matrix(86.8898,0,0,86.8898,508.496,351.89)"> | ||
51 | <path d="M0.306,0.015C0.267,0.015 0.231,0.008 0.198,-0.006C0.165,-0.019 0.136,-0.039 0.112,-0.064C0.088,-0.089 0.069,-0.118 0.056,-0.153C0.043,-0.187 0.036,-0.224 0.036,-0.265C0.036,-0.304 0.043,-0.341 0.056,-0.375C0.069,-0.409 0.088,-0.439 0.112,-0.464C0.135,-0.489 0.163,-0.508 0.195,-0.522C0.227,-0.536 0.262,-0.543 0.299,-0.543C0.338,-0.543 0.373,-0.536 0.405,-0.523C0.436,-0.51 0.463,-0.491 0.486,-0.466C0.509,-0.441 0.526,-0.412 0.539,-0.378C0.551,-0.344 0.557,-0.306 0.557,-0.264L0.557,-0.229L0.178,-0.229C0.184,-0.19 0.198,-0.159 0.221,-0.137C0.244,-0.114 0.272,-0.103 0.307,-0.103C0.331,-0.103 0.353,-0.109 0.373,-0.12C0.392,-0.131 0.408,-0.148 0.421,-0.169L0.546,-0.129C0.534,-0.099 0.516,-0.073 0.492,-0.052C0.468,-0.031 0.44,-0.014 0.408,-0.003C0.376,0.009 0.342,0.015 0.306,0.015ZM0.299,-0.435C0.268,-0.435 0.243,-0.425 0.222,-0.405C0.201,-0.385 0.187,-0.358 0.18,-0.323L0.413,-0.323C0.408,-0.358 0.395,-0.385 0.375,-0.405C0.354,-0.425 0.329,-0.435 0.299,-0.435Z" style="fill-rule:nonzero;"/> | ||
52 | </g> | ||
53 | <g transform="matrix(86.8898,0,0,86.8898,559.587,351.89)"> | ||
54 | <path d="M0.06,-0.432L0.054,-0.71L0.18,-0.71L0.174,-0.432L0.06,-0.432Z" style="fill-rule:nonzero;"/> | ||
55 | </g> | ||
56 | <g transform="matrix(86.8898,0,0,86.8898,579.919,351.89)"> | ||
57 | <path d="M0.246,0.015C0.209,0.015 0.175,0.009 0.145,-0.003C0.114,-0.015 0.089,-0.032 0.068,-0.054C0.047,-0.076 0.032,-0.102 0.024,-0.132L0.15,-0.159C0.157,-0.138 0.169,-0.122 0.186,-0.11C0.203,-0.098 0.224,-0.092 0.248,-0.092C0.271,-0.092 0.289,-0.097 0.304,-0.107C0.319,-0.117 0.326,-0.131 0.326,-0.148C0.326,-0.163 0.32,-0.175 0.307,-0.185C0.294,-0.194 0.272,-0.202 0.242,-0.207L0.214,-0.212C0.157,-0.222 0.113,-0.241 0.084,-0.268C0.054,-0.295 0.039,-0.33 0.039,-0.372C0.039,-0.405 0.048,-0.435 0.065,-0.461C0.082,-0.486 0.106,-0.506 0.137,-0.521C0.168,-0.536 0.203,-0.543 0.243,-0.543C0.278,-0.543 0.311,-0.537 0.34,-0.526C0.369,-0.514 0.393,-0.497 0.412,-0.476C0.431,-0.455 0.445,-0.429 0.452,-0.399L0.327,-0.373C0.32,-0.393 0.31,-0.409 0.295,-0.42C0.28,-0.431 0.262,-0.437 0.242,-0.437C0.221,-0.437 0.204,-0.432 0.191,-0.422C0.178,-0.412 0.171,-0.399 0.171,-0.384C0.171,-0.371 0.178,-0.36 0.191,-0.351C0.204,-0.342 0.226,-0.334 0.257,-0.329L0.285,-0.324C0.342,-0.314 0.385,-0.295 0.415,-0.268C0.445,-0.24 0.46,-0.205 0.46,-0.162C0.46,-0.136 0.455,-0.112 0.445,-0.091C0.434,-0.07 0.419,-0.051 0.4,-0.035C0.381,-0.019 0.358,-0.007 0.332,0.002C0.306,0.011 0.277,0.015 0.246,0.015Z" style="fill-rule:nonzero;"/> | ||
58 | </g> | ||
59 | <g transform="matrix(86.8898,0,0,86.8898,158.851,438.78)"> | ||
60 | <path d="M0.206,-0.671C0.206,-0.656 0.203,-0.642 0.196,-0.63C0.189,-0.618 0.179,-0.608 0.167,-0.602C0.154,-0.595 0.141,-0.591 0.126,-0.591C0.111,-0.591 0.098,-0.595 0.086,-0.602C0.073,-0.608 0.064,-0.618 0.057,-0.63C0.049,-0.642 0.046,-0.656 0.046,-0.671C0.046,-0.686 0.049,-0.7 0.057,-0.712C0.064,-0.724 0.073,-0.733 0.086,-0.741C0.098,-0.748 0.111,-0.751 0.126,-0.751C0.141,-0.751 0.154,-0.748 0.167,-0.741C0.179,-0.733 0.189,-0.724 0.196,-0.712C0.203,-0.7 0.206,-0.686 0.206,-0.671ZM0.056,0L0.056,-0.528L0.196,-0.528L0.196,0L0.056,0Z" style="fill-rule:nonzero;"/> | ||
61 | </g> | ||
62 | <g transform="matrix(86.8898,0,0,86.8898,180.747,438.78)"> | ||
63 | <path d="M0.301,0.015C0.263,0.015 0.228,0.008 0.196,-0.006C0.163,-0.019 0.135,-0.038 0.112,-0.063C0.088,-0.088 0.069,-0.117 0.056,-0.151C0.043,-0.184 0.036,-0.221 0.036,-0.26C0.036,-0.3 0.043,-0.337 0.057,-0.372C0.07,-0.406 0.089,-0.436 0.114,-0.462C0.138,-0.487 0.166,-0.507 0.199,-0.522C0.232,-0.536 0.267,-0.543 0.305,-0.543C0.343,-0.543 0.378,-0.536 0.41,-0.522C0.442,-0.507 0.469,-0.487 0.492,-0.461C0.514,-0.435 0.529,-0.405 0.538,-0.37L0.405,-0.344C0.395,-0.367 0.381,-0.385 0.363,-0.398C0.345,-0.411 0.325,-0.417 0.302,-0.417C0.278,-0.417 0.257,-0.41 0.239,-0.397C0.22,-0.384 0.206,-0.365 0.195,-0.342C0.184,-0.318 0.179,-0.291 0.179,-0.262C0.179,-0.233 0.184,-0.207 0.195,-0.184C0.205,-0.161 0.219,-0.143 0.238,-0.131C0.257,-0.118 0.278,-0.111 0.302,-0.111C0.326,-0.111 0.348,-0.117 0.367,-0.13C0.386,-0.143 0.401,-0.161 0.41,-0.184L0.543,-0.158C0.534,-0.123 0.518,-0.092 0.495,-0.066C0.471,-0.04 0.442,-0.02 0.409,-0.006C0.376,0.008 0.34,0.015 0.301,0.015Z" style="fill-rule:nonzero;"/> | ||
64 | </g> | ||
65 | <g transform="matrix(86.8898,0,0,86.8898,229.84,438.78)"> | ||
66 | <path d="M0.31,0.015C0.271,0.015 0.234,0.008 0.201,-0.006C0.168,-0.02 0.139,-0.04 0.114,-0.065C0.089,-0.09 0.07,-0.119 0.057,-0.153C0.043,-0.187 0.036,-0.224 0.036,-0.264C0.036,-0.304 0.043,-0.341 0.057,-0.375C0.071,-0.408 0.091,-0.438 0.116,-0.463C0.14,-0.488 0.17,-0.508 0.204,-0.522C0.237,-0.536 0.274,-0.543 0.314,-0.543C0.353,-0.543 0.39,-0.536 0.423,-0.522C0.456,-0.508 0.485,-0.489 0.51,-0.464C0.535,-0.439 0.554,-0.409 0.568,-0.376C0.581,-0.342 0.588,-0.305 0.588,-0.265C0.588,-0.225 0.581,-0.188 0.567,-0.154C0.553,-0.12 0.534,-0.09 0.509,-0.065C0.484,-0.04 0.454,-0.02 0.421,-0.006C0.387,0.008 0.35,0.015 0.31,0.015ZM0.312,-0.111C0.337,-0.111 0.36,-0.118 0.38,-0.131C0.4,-0.144 0.416,-0.163 0.428,-0.186C0.439,-0.209 0.445,-0.235 0.445,-0.264C0.445,-0.293 0.439,-0.32 0.428,-0.343C0.416,-0.366 0.4,-0.384 0.38,-0.397C0.36,-0.41 0.337,-0.417 0.312,-0.417C0.287,-0.417 0.264,-0.41 0.244,-0.397C0.224,-0.384 0.208,-0.366 0.197,-0.343C0.185,-0.32 0.179,-0.293 0.179,-0.264C0.179,-0.235 0.185,-0.209 0.197,-0.186C0.208,-0.163 0.224,-0.144 0.244,-0.131C0.264,-0.118 0.287,-0.111 0.312,-0.111Z" style="fill-rule:nonzero;"/> | ||
67 | </g> | ||
68 | <g transform="matrix(86.8898,0,0,86.8898,284.06,438.78)"> | ||
69 | <path d="M0.056,0L0.056,-0.528L0.185,-0.528L0.189,-0.46C0.204,-0.485 0.226,-0.505 0.253,-0.521C0.28,-0.536 0.31,-0.543 0.345,-0.543C0.384,-0.543 0.418,-0.534 0.447,-0.516C0.475,-0.497 0.498,-0.471 0.514,-0.437C0.53,-0.403 0.538,-0.363 0.538,-0.317L0.538,0L0.398,0L0.398,-0.299C0.398,-0.336 0.39,-0.365 0.373,-0.386C0.356,-0.407 0.333,-0.417 0.304,-0.417C0.283,-0.417 0.264,-0.412 0.248,-0.403C0.232,-0.393 0.219,-0.379 0.21,-0.362C0.201,-0.345 0.196,-0.325 0.196,-0.303L0.196,0L0.056,0Z" style="fill-rule:nonzero;"/> | ||
70 | </g> | ||
71 | <g transform="matrix(86.8898,0,0,86.8898,353.832,438.78)"> | ||
72 | <path d="M0.206,-0.671C0.206,-0.656 0.203,-0.642 0.196,-0.63C0.189,-0.618 0.179,-0.608 0.167,-0.602C0.154,-0.595 0.141,-0.591 0.126,-0.591C0.111,-0.591 0.098,-0.595 0.086,-0.602C0.073,-0.608 0.064,-0.618 0.057,-0.63C0.049,-0.642 0.046,-0.656 0.046,-0.671C0.046,-0.686 0.049,-0.7 0.057,-0.712C0.064,-0.724 0.073,-0.733 0.086,-0.741C0.098,-0.748 0.111,-0.751 0.126,-0.751C0.141,-0.751 0.154,-0.748 0.167,-0.741C0.179,-0.733 0.189,-0.724 0.196,-0.712C0.203,-0.7 0.206,-0.686 0.206,-0.671ZM0.056,0L0.056,-0.528L0.196,-0.528L0.196,0L0.056,0Z" style="fill-rule:nonzero;"/> | ||
73 | </g> | ||
74 | <g transform="matrix(86.8898,0,0,86.8898,375.728,438.78)"> | ||
75 | <path d="M0.056,0L0.056,-0.528L0.185,-0.528L0.189,-0.46C0.204,-0.485 0.226,-0.505 0.253,-0.521C0.28,-0.536 0.31,-0.543 0.345,-0.543C0.384,-0.543 0.418,-0.534 0.447,-0.516C0.475,-0.497 0.498,-0.471 0.514,-0.437C0.53,-0.403 0.538,-0.363 0.538,-0.317L0.538,0L0.398,0L0.398,-0.299C0.398,-0.336 0.39,-0.365 0.373,-0.386C0.356,-0.407 0.333,-0.417 0.304,-0.417C0.283,-0.417 0.264,-0.412 0.248,-0.403C0.232,-0.393 0.219,-0.379 0.21,-0.362C0.201,-0.345 0.196,-0.325 0.196,-0.303L0.196,0L0.056,0Z" style="fill-rule:nonzero;"/> | ||
76 | </g> | ||
77 | <g transform="matrix(86.8898,0,0,86.8898,426.038,438.78)"> | ||
78 | <path d="M0.285,0.015C0.248,0.015 0.217,0.008 0.191,-0.007C0.164,-0.021 0.144,-0.042 0.13,-0.069C0.115,-0.096 0.108,-0.13 0.108,-0.169L0.108,-0.415L0.018,-0.415L0.018,-0.528L0.108,-0.528L0.108,-0.708L0.248,-0.708L0.248,-0.528L0.392,-0.528L0.392,-0.415L0.248,-0.415L0.248,-0.186C0.248,-0.161 0.253,-0.141 0.264,-0.128C0.275,-0.114 0.291,-0.107 0.313,-0.107C0.324,-0.107 0.337,-0.109 0.35,-0.112C0.363,-0.115 0.375,-0.12 0.387,-0.125L0.412,-0.02C0.395,-0.009 0.375,-0.001 0.354,0.006C0.333,0.012 0.31,0.015 0.285,0.015Z" style="fill-rule:nonzero;"/> | ||
79 | </g> | ||
80 | <g transform="matrix(86.8898,0,0,86.8898,463.226,438.78)"> | ||
81 | <path d="M0.31,0.015C0.271,0.015 0.234,0.008 0.201,-0.006C0.168,-0.02 0.139,-0.04 0.114,-0.065C0.089,-0.09 0.07,-0.119 0.057,-0.153C0.043,-0.187 0.036,-0.224 0.036,-0.264C0.036,-0.304 0.043,-0.341 0.057,-0.375C0.071,-0.408 0.091,-0.438 0.116,-0.463C0.14,-0.488 0.17,-0.508 0.204,-0.522C0.237,-0.536 0.274,-0.543 0.314,-0.543C0.353,-0.543 0.39,-0.536 0.423,-0.522C0.456,-0.508 0.485,-0.489 0.51,-0.464C0.535,-0.439 0.554,-0.409 0.568,-0.376C0.581,-0.342 0.588,-0.305 0.588,-0.265C0.588,-0.225 0.581,-0.188 0.567,-0.154C0.553,-0.12 0.534,-0.09 0.509,-0.065C0.484,-0.04 0.454,-0.02 0.421,-0.006C0.387,0.008 0.35,0.015 0.31,0.015ZM0.312,-0.111C0.337,-0.111 0.36,-0.118 0.38,-0.131C0.4,-0.144 0.416,-0.163 0.428,-0.186C0.439,-0.209 0.445,-0.235 0.445,-0.264C0.445,-0.293 0.439,-0.32 0.428,-0.343C0.416,-0.366 0.4,-0.384 0.38,-0.397C0.36,-0.41 0.337,-0.417 0.312,-0.417C0.287,-0.417 0.264,-0.41 0.244,-0.397C0.224,-0.384 0.208,-0.366 0.197,-0.343C0.185,-0.32 0.179,-0.293 0.179,-0.264C0.179,-0.235 0.185,-0.209 0.197,-0.186C0.208,-0.163 0.224,-0.144 0.244,-0.131C0.264,-0.118 0.287,-0.111 0.312,-0.111Z" style="fill-rule:nonzero;"/> | ||
82 | </g> | ||
83 | <g transform="matrix(86.8898,0,0,86.8898,187.395,525.67)"> | ||
84 | <path d="M0.285,0.015C0.248,0.015 0.217,0.008 0.191,-0.007C0.164,-0.021 0.144,-0.042 0.13,-0.069C0.115,-0.096 0.108,-0.13 0.108,-0.169L0.108,-0.415L0.018,-0.415L0.018,-0.528L0.108,-0.528L0.108,-0.708L0.248,-0.708L0.248,-0.528L0.392,-0.528L0.392,-0.415L0.248,-0.415L0.248,-0.186C0.248,-0.161 0.253,-0.141 0.264,-0.128C0.275,-0.114 0.291,-0.107 0.313,-0.107C0.324,-0.107 0.337,-0.109 0.35,-0.112C0.363,-0.115 0.375,-0.12 0.387,-0.125L0.412,-0.02C0.395,-0.009 0.375,-0.001 0.354,0.006C0.333,0.012 0.31,0.015 0.285,0.015Z" style="fill-rule:nonzero;"/> | ||
85 | </g> | ||
86 | <g transform="matrix(86.8898,0,0,86.8898,225.452,525.67)"> | ||
87 | <path d="M0.056,0L0.056,-0.746L0.196,-0.746L0.196,-0.47C0.212,-0.493 0.233,-0.51 0.258,-0.524C0.283,-0.537 0.312,-0.543 0.345,-0.543C0.384,-0.543 0.418,-0.534 0.447,-0.516C0.475,-0.497 0.498,-0.471 0.514,-0.437C0.53,-0.403 0.538,-0.363 0.538,-0.317L0.538,0L0.398,0L0.398,-0.299C0.398,-0.336 0.39,-0.365 0.373,-0.386C0.356,-0.407 0.333,-0.417 0.304,-0.417C0.283,-0.417 0.264,-0.412 0.248,-0.403C0.232,-0.393 0.219,-0.379 0.21,-0.362C0.201,-0.345 0.196,-0.325 0.196,-0.303L0.196,0L0.056,0Z" style="fill-rule:nonzero;"/> | ||
88 | </g> | ||
89 | <g transform="matrix(86.8898,0,0,86.8898,277.065,525.67)"> | ||
90 | <path d="M0.206,-0.671C0.206,-0.656 0.203,-0.642 0.196,-0.63C0.189,-0.618 0.179,-0.608 0.167,-0.602C0.154,-0.595 0.141,-0.591 0.126,-0.591C0.111,-0.591 0.098,-0.595 0.086,-0.602C0.073,-0.608 0.064,-0.618 0.057,-0.63C0.049,-0.642 0.046,-0.656 0.046,-0.671C0.046,-0.686 0.049,-0.7 0.057,-0.712C0.064,-0.724 0.073,-0.733 0.086,-0.741C0.098,-0.748 0.111,-0.751 0.126,-0.751C0.141,-0.751 0.154,-0.748 0.167,-0.741C0.179,-0.733 0.189,-0.724 0.196,-0.712C0.203,-0.7 0.206,-0.686 0.206,-0.671ZM0.056,0L0.056,-0.528L0.196,-0.528L0.196,0L0.056,0Z" style="fill-rule:nonzero;"/> | ||
91 | </g> | ||
92 | <g transform="matrix(86.8898,0,0,86.8898,298.961,525.67)"> | ||
93 | <path d="M0.246,0.015C0.209,0.015 0.175,0.009 0.145,-0.003C0.114,-0.015 0.089,-0.032 0.068,-0.054C0.047,-0.076 0.032,-0.102 0.024,-0.132L0.15,-0.159C0.157,-0.138 0.169,-0.122 0.186,-0.11C0.203,-0.098 0.224,-0.092 0.248,-0.092C0.271,-0.092 0.289,-0.097 0.304,-0.107C0.319,-0.117 0.326,-0.131 0.326,-0.148C0.326,-0.163 0.32,-0.175 0.307,-0.185C0.294,-0.194 0.272,-0.202 0.242,-0.207L0.214,-0.212C0.157,-0.222 0.113,-0.241 0.084,-0.268C0.054,-0.295 0.039,-0.33 0.039,-0.372C0.039,-0.405 0.048,-0.435 0.065,-0.461C0.082,-0.486 0.106,-0.506 0.137,-0.521C0.168,-0.536 0.203,-0.543 0.243,-0.543C0.278,-0.543 0.311,-0.537 0.34,-0.526C0.369,-0.514 0.393,-0.497 0.412,-0.476C0.431,-0.455 0.445,-0.429 0.452,-0.399L0.327,-0.373C0.32,-0.393 0.31,-0.409 0.295,-0.42C0.28,-0.431 0.262,-0.437 0.242,-0.437C0.221,-0.437 0.204,-0.432 0.191,-0.422C0.178,-0.412 0.171,-0.399 0.171,-0.384C0.171,-0.371 0.178,-0.36 0.191,-0.351C0.204,-0.342 0.226,-0.334 0.257,-0.329L0.285,-0.324C0.342,-0.314 0.385,-0.295 0.415,-0.268C0.445,-0.24 0.46,-0.205 0.46,-0.162C0.46,-0.136 0.455,-0.112 0.445,-0.091C0.434,-0.07 0.419,-0.051 0.4,-0.035C0.381,-0.019 0.358,-0.007 0.332,0.002C0.306,0.011 0.277,0.015 0.246,0.015Z" style="fill-rule:nonzero;"/> | ||
94 | </g> | ||
95 | <g transform="matrix(86.8898,0,0,86.8898,359.784,525.67)"> | ||
96 | <path d="M0.108,0L0.108,-0.418L0.018,-0.418L0.018,-0.528L0.108,-0.528L0.108,-0.558C0.108,-0.587 0.113,-0.614 0.122,-0.638C0.131,-0.662 0.143,-0.683 0.16,-0.701C0.177,-0.718 0.197,-0.732 0.22,-0.742C0.243,-0.751 0.268,-0.756 0.296,-0.756C0.315,-0.756 0.333,-0.754 0.349,-0.749C0.365,-0.744 0.379,-0.739 0.391,-0.732L0.363,-0.626C0.356,-0.629 0.348,-0.631 0.34,-0.634C0.332,-0.637 0.323,-0.638 0.314,-0.638C0.292,-0.638 0.276,-0.63 0.265,-0.615C0.254,-0.6 0.248,-0.578 0.248,-0.549L0.248,-0.528L0.59,-0.528L0.59,0L0.45,0L0.45,-0.418L0.248,-0.418L0.248,0L0.108,0ZM0.6,-0.671C0.6,-0.656 0.596,-0.642 0.59,-0.63C0.583,-0.618 0.573,-0.608 0.561,-0.602C0.548,-0.595 0.535,-0.591 0.52,-0.591C0.505,-0.591 0.492,-0.595 0.48,-0.602C0.467,-0.608 0.458,-0.618 0.451,-0.63C0.444,-0.642 0.44,-0.656 0.44,-0.671C0.44,-0.686 0.444,-0.7 0.451,-0.712C0.458,-0.724 0.467,-0.733 0.48,-0.741C0.492,-0.748 0.505,-0.751 0.52,-0.751C0.535,-0.751 0.548,-0.748 0.561,-0.741C0.573,-0.733 0.583,-0.724 0.59,-0.712C0.596,-0.7 0.6,-0.686 0.6,-0.671Z" style="fill-rule:nonzero;"/> | ||
97 | </g> | ||
98 | <g transform="matrix(86.8898,0,0,86.8898,415.915,525.67)"> | ||
99 | <rect x="0.056" y="-0.746" width="0.14" height="0.746" style="fill-rule:nonzero;"/> | ||
100 | </g> | ||
101 | <g transform="matrix(86.8898,0,0,86.8898,437.811,525.67)"> | ||
102 | <path d="M0.306,0.015C0.267,0.015 0.231,0.008 0.198,-0.006C0.165,-0.019 0.136,-0.039 0.112,-0.064C0.088,-0.089 0.069,-0.118 0.056,-0.153C0.043,-0.187 0.036,-0.224 0.036,-0.265C0.036,-0.304 0.043,-0.341 0.056,-0.375C0.069,-0.409 0.088,-0.439 0.112,-0.464C0.135,-0.489 0.163,-0.508 0.195,-0.522C0.227,-0.536 0.262,-0.543 0.299,-0.543C0.338,-0.543 0.373,-0.536 0.405,-0.523C0.436,-0.51 0.463,-0.491 0.486,-0.466C0.509,-0.441 0.526,-0.412 0.539,-0.378C0.551,-0.344 0.557,-0.306 0.557,-0.264L0.557,-0.229L0.178,-0.229C0.184,-0.19 0.198,-0.159 0.221,-0.137C0.244,-0.114 0.272,-0.103 0.307,-0.103C0.331,-0.103 0.353,-0.109 0.373,-0.12C0.392,-0.131 0.408,-0.148 0.421,-0.169L0.546,-0.129C0.534,-0.099 0.516,-0.073 0.492,-0.052C0.468,-0.031 0.44,-0.014 0.408,-0.003C0.376,0.009 0.342,0.015 0.306,0.015ZM0.299,-0.435C0.268,-0.435 0.243,-0.425 0.222,-0.405C0.201,-0.385 0.187,-0.358 0.18,-0.323L0.413,-0.323C0.408,-0.358 0.395,-0.385 0.375,-0.405C0.354,-0.425 0.329,-0.435 0.299,-0.435Z" style="fill-rule:nonzero;"/> | ||
103 | </g> | ||
104 | </g> | ||
105 | </svg> | ||
diff --git a/scripts/sample_recipe/index.js b/scripts/sample_recipe/index.js new file mode 100644 index 0000000..0e52bf0 --- /dev/null +++ b/scripts/sample_recipe/index.js | |||
@@ -0,0 +1,2 @@ | |||
1 | module.exports = Ferdi => class SCLEAN extends Ferdi { | ||
2 | }; | ||
diff --git a/scripts/sample_recipe/package.json b/scripts/sample_recipe/package.json new file mode 100644 index 0000000..af522db --- /dev/null +++ b/scripts/sample_recipe/package.json | |||
@@ -0,0 +1,12 @@ | |||
1 | { | ||
2 | "id": "SERVICE", | ||
3 | "name": "SNAME", | ||
4 | "version": "1.0.0", | ||
5 | "description": "SERVICE", | ||
6 | "main": "index.js", | ||
7 | "author": "Ferdi <hello@getferdi.com>", | ||
8 | "license": "MIT", | ||
9 | "config": { | ||
10 | "serviceURL": "https://SERVICE.com" | ||
11 | } | ||
12 | } | ||
diff --git a/scripts/sample_recipe/service.css b/scripts/sample_recipe/service.css new file mode 100644 index 0000000..38dcab0 --- /dev/null +++ b/scripts/sample_recipe/service.css | |||
@@ -0,0 +1 @@ | |||
/* Insert custom styles you want to insert here */ \ No newline at end of file | |||
diff --git a/scripts/sample_recipe/webview.js b/scripts/sample_recipe/webview.js new file mode 100644 index 0000000..ddd0b40 --- /dev/null +++ b/scripts/sample_recipe/webview.js | |||
@@ -0,0 +1,15 @@ | |||
1 | "use strict"; | ||
2 | |||
3 | var _path = _interopRequireDefault(require("path")); | ||
4 | |||
5 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
6 | |||
7 | module.exports = Ferdi => { | ||
8 | const getMessages = function getMessages() { | ||
9 | // TODO: Insert your notification-finding code here | ||
10 | Ferdi.setBadge(0, 0); | ||
11 | }; | ||
12 | |||
13 | Ferdi.loop(getMessages); | ||
14 | Ferdi.injectCSS(_path.default.join(__dirname, 'service.css')); | ||
15 | }; | ||